0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPU、CPU、インテル® Gaudi® AI アクセラレーターで動作する学習処理スクリプトの記述

Posted at

<インテル® Gaudi® AI アクセラレーターを活用した最適化>
 • 新たなディープラーニング・モデルの作成も既存コードの移植も数分で完了
 • シンプルな開発と生産性の向上を両立しながら生成 AI のパフォーマンスを実現

詳細情報
https://www.intel.com/content/www/us/en/developer/platform/gaudi/overview.html

このチュートリアルでは、マシンに搭載されている AI アクセラレーターのタイプ (GPU、CPU、インテル® Gaudi® AI アクセラレーター) を自動で検出するコードの記述方法と、そのコードをスムーズに実行するために必要な変更の手順について説明します。開発者ならば、異なるタイプの AI アクセラレーターを同じモデルコードで動かしたいと考えるのではないでしょうか。例えば、GPU が搭載された開発用のノートブック PC で PyTorch コードを記述したいけれども、コードを実行するのはインテル® Gaudi® AI アクセラレーターが搭載された学習処理サーバーを想定している場合、最小限のコード変更だけで、共通のコードをベースに複数のハードウェア・プラットフォームを簡単に動かすことが可能です。

このチュートリアルでは、インテル® Gaudi® AI アクセラレーターを使用して学習処理を開始する のページで説明している torch_compile.py を例に、数カ所の調整だけで異なるプラットフォームにわたり利用可能なコードの記述方法を紹介します。torch_compile.py のコード例は次のとおりです。
https://docs.habana.ai/en/latest/PyTorch/Getting_Started_with_PyTorch_and_Gaudi/Getting_Started_with_PyTorch.html

1.png

2.png

3.png

4.png

このコードを対象のプラットフォーム上にある torch_compile.py ファイルにコピーすると、次のコマンドを使用して実行できるようになります。

5.png

PyTorch は有効だけれどもインテル® Gaudi® ソフトウェアがインストールされていない環境でこのコードを実行すると、次のようなエラーが発生します。

6.png

この不具合を回避するには、次のように import habana_frameworks ステートメントを try/except ブロックで括ります。

7.png

インポートの失敗が原因で例外がスローされた場合、このコードから htcore と hthpu の両方に None 値が渡されます。これはインテル® Gaudi® ソフトウェア・スタックがインストールされていない、または対象のプラットフォームで利用できないことを示しています。コードを再度実行してください。以下のようなエラーが出力されます。

8.png

コードは import ステートメントで失敗してはいないものの、やはりモデルをインテル® Gaudi® アクセラレーターのバックエンドへ移動させようとしています。これはインテル® Gaudi® ソフトウェアまたはドライバーなしではサポートされていません。アクセラレーター (HPU) を有効化する元の行は、以下のとおりです。

9.png

この行を、最も有効なハードウェアを動的に選択するコードに置き換えます。

10.png

None 値は、habana_frameworks モジュールがインストールされていない場合に hthpu へ渡され、インテル® Gaudi® ソフトウェアがインストールされているかの判断に使用できることを覚えておいてください。インストールされている場合、コードは is_available() API を使用して、サーバーにインテル® Gaudi® アクセラレーターが搭載されているかを動的に識別します。インテル® Gaudi® アクセラレーターを利用できない場合は、この API に相当する CUDA API によってサーバーに GPU が搭載されているかを判断します。見つからない場合、コードは CPU を使用します。
https://docs.habana.ai/en/latest/PyTorch/PyTorch_User_Guide/Python_Packages.html#hpu-apis

次に、インテル® Gaudi® ソフトウェアがインストールされている場合のみ、hpu_backend オプションを使用してモデルをコンパイルします。

11.png

これで GPU、CPU、インテル® Gaudi® AI アクセラレーターのいずれでも、このコードを実行できるようになりました。

関連記事
インテル® Gaudi® アクセラレーター, PyTorch, Python API
https://docs.habana.ai/en/latest/PyTorch/PyTorch_User_Guide/Python_Packages.html

製品およびパフォーマンスに関する情報
性能は、使用状況、構成、その他の要因によって異なります。詳細については、https://www.Intel.com/PerformanceIndex/ (英語) を参照してください。

関連情報:
インテル® Gaudi® 3 アクセラレーター
https://www.intel.co.jp/content/www/jp/ja/products/details/processors/ai-accelerators/gaudi.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?