Rescale で高速化された NVIDIA NGC カタログ内の何百もの無料 AI および HPC アプリケーションを実行

概要

NVIDIA GPU Cloud (NCC) カタログは、AI 用に厳選された無料のオープンソース GPU 最適化ソフトウェア セットです。 (HPC) および 可視化を選択します。 NGCカタログ コンテナ化されたアプリケーション、事前トレーニングされたモデル、Kubernetes デプロイメント用の Helm チャート、およびソフトウェア開発キット (SDK) を備えた業界固有の AI ツールキットで構成されます。 NGC on Resale を導入すると、エンジニアや科学者は、単一のプラットフォーム上で研究開発のためのさまざまな新しいユースケースを簡単に開始できるようになります。 Rescale は、必要なハードウェア インフラストラクチャ、ソフトウェア、ワークフローのステップを自動化し、最新の計算ツールをよりアクセスしやすく、高速化します。

このチュートリアルでは、Rescale で NGC カタログを簡単に実行する方法を説明します。 NGC は、Rescale コマンド ラインを使用したバッチ ジョブによって、または Rescale ワークステーションを使用して対話的に実行できます。

バッチジョブ

バッチジョブのビデオチュートリアル

サンプルジョブと結果

をクリックすると、サンプル ジョブにアクセスして直接起動できます。 Import Job Setup ボタンをクリックするか、 をクリックして結果を表示します。 Get Job Results 下のボタン。 

上記のサンプル ジョブでは、TensorFlow 機械学習を構築する Python スクリプトを実行します。 MNIST データセットを使用します。 (参照リンク).

バッチ ジョブを送信するには、最初のステップとして次のことを選択します。 Basic ジョブタイプ。

入力

実行中のスクリプトを入力ファイルとしてアップロードします。 サンプル ジョブでは、Python スクリプトは圧縮アーカイブ ファイル test.zip 内にあります。

ソフトウェア

次にNVIDIAを選択します NGCカタログ タイル。

Command ボックスには、NGC アカウントにログインし、Docker コンテナをプルして実行するための事前入力されたコマンドが提供されています。

ユーザーはコンテナをプルできます NGCカタログ。 ここでは TensorFlow を使用します コンテナ 一例として。

を引くには、 Tensorflow コンテナ、NGC カタログに移動し、 プルタグ docker pull cmdをコピーします。

コマンド ボックスにプル タグ コマンドを貼り付け、次のコマンドを入力してコンテナーを実行します。 サンプルジョブ.

docker pull nvcr.io/nvidia/tensorflow:22.06-tf1-py3
docker run --gpus all -v ${PWD}/test:/test nvcr.io/nvidia/tensorflow:22.06-tf1-py3 
bash -c 'cd /test;  python test.py'

ユーザーは、Rescale プラットフォームを通じて NGC カタログ アカウントにログインできます。 既存のライセンスを使用する [ライセンス オプション] の [再スケール] ボックスにチェックを入れます。 以下の図に示すように、ここに API キーと組織コードを入力します。

API キーと組織コードを取得するには、ユーザーは NGC カタログ アカウントにログインし、独自の API キーと組織コードを生成する必要があります。

NGC アカウントにログインするための事前設定されたコマンドが提供されています。 ユーザーは、プルするコンテナーと実行するコマンドをコマンド ボックスで指定するだけです。 

Hardware

さまざまな CPU や GPU など、お客様のジョブに合わせてさまざまなアーキテクチャを提供しました 種類。 ここでは4を選択します GPU TensorFlow トレーニング用。

Status:

クリック 送信 ボタンをクリックしてジョブを送信します。 ジョブが実行されたら、process_output.log で出力を確認できます。

結果

をクリックしてターミナルを開くこともできます。 新しいウィンドウで開きます スクリプトをデバッグまたは実行するためのボタン アンビディアスミ ジョブの実行中に GPU の使用状況と結果を確認します。

ジョブが完了すると、すべての結果データ ファイルが次の場所に保存されます。 結果 タブ。 ファイルを開いて結果を確認することもできます。

process_output.log ファイルでは、NGC カタログ アカウントが正常にログインしていることがわかります。

サンプル ジョブの最終出力と結果は次のとおりです。

その他のユースケース

NVIDIA Modulus

入力ファイルは、以下からダウンロードした example.zip です。 モジュラス公式サイト。 この使用例では、サンプル ジョブは次のようにロードできます。 このリンク および 結果 ページ をご覧ください 

Cmd (NGC から最新バージョンの NVIDIA Modulus をプルします。 docker run を使用して Modulus コンテナーで蓋駆動キャビティ (LDC) フロー ケースを実行します)。 このコンテナの場合、NGC_API キーは必要ありません。

docker pull nvcr.io/nvidia/modulus/modulus:22.03.1
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864            
--runtime nvidia -v ${PWD}/examples:/examples nvcr.io/nvidia/modulus/modulus:22.03.1 
bash -c 'cd ldc;python ldc_2d.py'

process_output.log を監視し、出力を確認します。

ワークステーション

サンプルワークステーション

Rescale プラットフォームでは、ユーザーは対話的に作業することもできます。 ワークステーション。 ジョブを送信するには、 新作 ボタン。 がここにあります サンプルジョブ 参考のため。

 

入力として、実行する必要があるスクリプトをアップロードします。 次に選択します NGC カタログのインタラクティブなワークフロー ソフトウェアとしてのタイル。 とは異なり バッチジョブ、ワークステーションを実行するためにコマンド スクリプトを指定する必要はありません。 代わりに、GUI を使用して操作します。 

チェック 既存のライセンスを使用する [ライセンス オプション] ボックスにチェックを入れて、NGC アカウントにログインします。 ここに NGC API キーと組織コードを入力します。 NGC API キーとハードウェア設定の生成手順はバッチ ジョブと同じなので、ここでは繰り返しません。 

ワークステーションの準備ができたら、 お問合せ 上部のボタンをクリックするか、ローカル クライアントを使用して接続 (NiceDCV クライアントをダウンロードしてインストール) してワークステーションにログインします。

ワークステーションで、 をクリックしてターミナル ウィンドウを開くことができます。 アクティビティ 左上隅にあるターミナルを見つけて起動します。

開いたターミナルでは、インタラクティブな作業を行うことができます。 ターミナル ウィンドウで次の XNUMX 行の cmd を実行して、NGC アカウントにログインします。

$ echo -e "\n \n $(echo $NGC_ORG_ID) \n \n \n" | ngc config set
$ docker login -u '$oauthtoken' --password-stdin nvcr.io <<< $(echo $NGC_CLI_API_KEY)

これでコンテナをプルする準備が整いました。 NGCカタログ.

Tensorflow コンテナ

この例では、Tensorflow コンテナをプルします。

$ docker pull nvcr.io/nvidia/tensorflow:22.06-tf1-py3

次の方法で Tensorflow コンテナを開始します。

$ docker run --gpus all -it --rm -v ${PWD}/test:/test nvcr.io/nvidia/tensorflow:22.06-tf1-py3 bash

コンテナーで次の単純なケースを実行します (参照リンク):

$ python3
$ import tensorflow as tf
$ tf.enable_eager_execution()
$ mnist = tf.keras.datasets.mnist
$ (x_train, y_train), (x_test, y_test) = mnist.load_data()
$ x_train, x_test = x_train / 255.0, x_test / 255.0
$ model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10)
])
$ predictions = model(x_train[:1]).numpy()
$ predictions

すべてがうまくいけば、ターミナルに出力された予測結果を確認できます。

モジュラスコンテナ

最新バージョンの NVIDIA Modulus を次からプルします。 NGC.

$ docker pull nvcr.io/nvidia/modulus/modulus:22.03.1

次のディレクトリで Modulus コンテナを起動します。

$ docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864
--runtime nvidia -it -v ${PWD}/examples:/examples
nvcr.io/nvidia/modulus/modulus:22.03.1 bash 

最新のモジュールを正常にロードしました。

以下の方法で、蓋駆動キャビティケースをコンテナ内で実行します。

$ cd ldc
$ python ldc_2d.py

上記のように が実行されている場合、視覚化の目的で Paraview GUI コンテナをプルできます。

ParaView GUIコンテナ

新しいターミナル ウィンドウを開き、paraview ドッカー コンテナーをプルします。 NGC.

$ docker pull nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0
$ docker run --gpus all -p 8080:8080 -v ${PWD}:/ldc     
nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0         ./bin/pvpython 
share/paraview-5.9/web/visualizer/server/pvw-visualizer.py         --content 
share/paraview-5.9/web/visualizer/www/         --port 8080         --data /ldc

DCV Web ブラウザ (Firefox Web など) で ParaView を開きます。 https://localhost:8080/

その後、GUI を開いて結果ファイルを視覚化できます。

まとめ

このチュートリアルが、Rescale で NGC カタログの実行を開始するのに役立つことを願っています。 ご覧のとおり、Rescale バッチ ジョブを通じて複数の GPU を使用して、NGC カタログで利用可能なすべてのコンテナーをプルして実行できます。 または、コードの開発、トレーニングのモニタリング、および複数の GPU による結果の後処理のために、Rescale ワークステーション上でコンテナーを対話的に実行および起動できます。 当社のプラットフォームは、選択できるさまざまな GPU アーキテクチャと、AI ワークフローの構築に必要なすべての資産を提供します。 追加情報については、次のサイトを参照してください。 NGC に関する NVIDIA ドキュメント ページはこちら.