Oracle Cloud InfrastructureでのNVIDIA GPU Cloudの使用
NVIDIA GPU Cloud (NGC)は、ディープ・ラーニングおよび科学計算用に最適化されたGPU高速クラウド・プラットフォームです。この項では、Oracle Cloud InfrastructureでのNGCの使用方法の概要を説明します。
NVIDIAによって、Oracle Cloud Infrastructure上で、NVIDIA Tesla VoltaおよびPascal GPUに対して最適化されたカスタマイズされたコンピュート・イメージが利用できるようになりました。このインスタンスでNGCコンテナを実行すると、ディープ・ラーニング・ジョブに最適なパフォーマンスが提供されます。
開始する前に
次の準備をします。
-
GPU割当てのあるOracle Cloud Infrastructureテナンシ。割当ての詳細は、コンピュート割当てに関する項を参照してください。
-
インスタンスを起動するクラウド・ネットワーク。クラウド・ネットワークの設定の詳細は、VCNおよびサブネットのVCNおよびサブネットの管理を参照してください。
-
SSH経由でインスタンスに接続するために使用するキー・ペア。キー・ペアの生成の詳細は、Linuxインスタンスでのキー・ペアの管理を参照してください。
-
ファイル・ストレージ・サービス用に構成されたセキュリティ・グループおよびポリシー。詳細は、グループの管理、ポリシーの開始およびファイル・ストレージ・サービスの詳細を参照してください。
-
NGCサービスで認証するためのNGC APIキー。
NGC APIキーを生成するには-
NGC Webサイトにサインインします。
-
NGC Registryページで「Get API Key」をクリックします。
-
「Generate API Key」をクリックして「Confirm」をクリックすると、キーが生成されます。既存のAPIキーがある場合、新しいキーを生成すると無効になります。
-
NGCイメージに基づいたインスタンスの起動
コンソールの使用
-
コンソールを開きます。ステップは、最初のサインインを参照してください。
-
- 作業権限を持つコンパートメントを選択します。
- 「インスタンスの作成」をクリックします。
-
インスタンスの名前を入力します。機密情報の入力は避けてください。
- 「配置」セクションで、インスタンスを作成する「可用性ドメイン」を選択します。
- 「イメージとシェイプ」セクションで:
- 「シェイプ」カードで、「シェイプの変更」をクリックします。その後、次を行います:
-
「インスタンス・タイプ」で、「仮想マシン」または「ベア・メタル・マシン」を選択します。
-
インスタンスのGPUシェイプを選択します。GPUシェイプの詳細は、仮想マシンGPUシェイプに関する項およびベア・メタルGPUシェイプに関する項を参照してください。
- 「シェイプの選択」をクリックします。
-
-
NGCイメージを選択するには、「イメージ」カードで、「イメージの変更」をクリックします。その後、次を行います。重要
NVIDIA GPU Cloudイメージにアクセスするには、テナンシにGPU割当てがあり、GPUシェイプを選択する必要があります。- 「イメージ・ソース」リストで、「Oracleイメージ」を選択します。
- 「NVIDIA GPU Cloudマシン・イメージ」の横にあるチェック・ボックスを選択します。
- 使用条件を確認して同意し、「イメージの選択」をクリックします。
- 「シェイプ」カードで、「シェイプの変更」をクリックします。その後、次を行います:
-
「ネットワーキング」セクションで、「既存の仮想クラウド・ネットワークを選択」を選択したままにし、仮想クラウド・ネットワーク(VCN)コンパートメント、VCN、サブネット・コンパートメントおよびサブネットを選択します。
-
「SSHキーの追加」セクションで、インスタンスへのSSHアクセスに使用するキー・ペアの公開キー部分をアップロードします。アップロードするキー・ファイルを参照するか、ボックスにファイルをドラッグ・アンド・ドロップします。
-
「作成」をクリックします。
この時点で、状態が「プロビジョニング中」のNGCインスタンスが表示されます。状態が「実行中」に変わったら、そのインスタンスに接続できます。コンピュート・インスタンスの起動に関する一般情報は、インスタンスの作成を参照してください。
インスタンスにアクセスして操作するステップは、次のトピックを参照してください:
SSHを使用してインスタンスに接続する場合、NGC APIキーの入力を求められます。プロンプトでAPIキーを指定すると、インスタンスによって自動的にNGCコンテナ・レジストリにログインされ、そのレジストリからコンテナを実行できるようになります。プロンプトでAPIキーを指定せずに、インスタンスにログインすることもできます。後からNGCコンテナ・レジストリにログインできます。詳細は、NGCコンテナ・レジストリへのログインを参照してください。
CLIの使用
Oracle Cloud Infrastructureには、タスクを完了するために使用できるコマンドライン・インタフェース(CLI)があります。詳細は、クイックスタートおよびCLIの構成を参照してください。
launchコマンドを使用してインスタンスを作成するときに、sourceTypeにイメージを指定し、LaunchInstanceDetailsのInstanceSourceDetailsにイメージのOCID ocid1.image.oc1..aaaaaaaaknl6phck7e3iuii4r4axpwhenw5qtnnsk3tqppajdjzb5nhoma3q
を指定します。
永続データ・ストレージのためのファイル・ストレージ・サービスの使用
NGCを操作するとき、データ・ストレージのためにファイル・ストレージ・サービスを使用できます。詳細は、ファイル・ストレージの概要を参照してください。ファイル・ストレージ・サービスの作成と使用については、次のタスクを参照してください:
永続データ・ストレージのためのブロック・ボリューム・サービスの使用
NGCを操作するとき、データ・ストレージのためにブロック・ボリューム・サービスを使用できます。詳細は、ブロック・ボリュームの概要を参照してください。ブロック・ボリューム・サービスの作成と使用については、次のタスクを参照してください:
CLIを使用してブロック・ボリュームを管理することもできます。ボリュームに関するコマンドを参照してください。
実行中のコンテナの例
最初にNGCコンテナ・レジストリにログインする必要があります。SSHを介してインスタンスにログインしたときにAPIキーを指定した場合は、この項を省略できます。インスタンスへの接続時にAPIキーを指定しなかった場合、このステップを実行する必要があります。
-
次のDockerコマンドを実行します:
docker login nvcr.io
-
ユーザー名を求められたら、
$oauthtoken
と入力します。 -
パスワードを求められたら、NGC APIキーを入力します。
この時点で、Dockerコマンドを実行すると、インスタンスからNGCコンテナ・レジストリにアクセスできます。
このサンプルでは、PyTorchでのMNIST例の実行を示します。この例では、MNISTデータセットをWebからダウンロードします。
-
次のDockerコマンドを使用し、PyTorchコンテナをプルして実行します:
docker pull nvcr.io/nvidia/pytorch:17.10 docker run --gpus all --rm -it nvcr.io/nvidia/pytorch:17.10
-
次のコマンドを使用して、MNISTの例を実行します:
cd /opt/pytorch/examples/mnist python main.py
このサンプルでは、TensorFlowでのMNIST例の実行を示します。この例では、MNISTデータセットをWebからダウンロードします。
-
次のDockerコマンドを使用し、TensorFlowコンテナをプルして実行します:
docker pull nvcr.io/nvidia/tensorflow:17.10 docker run --gpus all --rm -it nvcr.io/nvidia/tensorflow:17.10
-
次のコマンドを使用して、MNIST_with_summariesの例を実行します:
cd /opt/tensorflow/tensorflow/examples/tutorials/mnist python mnist_with_summaries.py