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コンテナを実行すると、ディープ・ラーニング・ジョブに最適なパフォーマンスが提供されます。

開始する前に

次のものを準備します。

NGCイメージに基づいたインスタンスの起動

コンソールの使用

  1. コンソールを開きます。ステップは、最初のサインインを参照してください。
  2. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  3. 作業権限を持つコンパートメントを選択します。
  4. 「インスタンスの作成」をクリックします。
  5. インスタンスの名前を入力します。機密情報の入力は避けてください。

  6. 「配置」セクションで、インスタンスを作成する「可用性ドメイン」を選択します。
  7. 「イメージとシェイプ」セクションで:
    1. 「シェイプ」カードで、「シェイプの変更」をクリックします。その後、次を行います:
      1. 「インスタンス・タイプ」で、「仮想マシン」または「ベア・メタル・マシン」を選択します。

      2. インスタンスのGPUシェイプを選択します。GPUシェイプの詳細は、仮想マシンGPUシェイプに関する項およびベア・メタルGPUシェイプに関する項を参照してください。

        重要

        GPUシェイプにアクセスするには、テナンシにGPU割当てが必要です。テナンシにGPU割当てがない場合、GPUシェイプはシェイプ・リストに表示されません。詳細は、開始する前にを参照してください。
      3. 「シェイプの選択」をクリックします。
    2. NGCイメージを選択するには、「イメージ」カードで、「イメージの変更」をクリックします。その後、次を行います。
      重要

      NVIDIA GPU Cloudイメージにアクセスするには、テナンシにGPU割当てがあり、GPUシェイプを選択する必要があります。
      1. 「イメージ・ソース」リストで、「Oracleイメージ」を選択します。
      2. 「NVIDIA GPU Cloudマシン・イメージ」の横にあるチェック・ボックスを選択します。
      3. 使用条件を確認して同意し、「イメージの選択」をクリックします。
  8. 「ネットワーキング」セクションで、「既存の仮想クラウド・ネットワークを選択」を選択したままにし、仮想クラウド・ネットワーク(VCN)コンパートメント、VCN、サブネット・コンパートメントおよびサブネットを選択します。

  9. 「SSHキーの追加」セクションで、インスタンスへのSSHアクセスに使用するキー・ペアの公開キー部分をアップロードします。アップロードするキー・ファイルを参照するか、ボックスにファイルをドラッグ・アンド・ドロップします。

  10. 「作成」をクリックします。

この時点で、状態が「プロビジョニング中」のNGCインスタンスが表示されます。状態が「実行中」に変わったら、そのインスタンスに接続できます。コンピュート・インスタンスの起動に関する一般情報は、インスタンスの作成を参照してください。

インスタンスにアクセスして操作するステップは、次のトピックを参照してください:

SSHを使用してインスタンスに接続する場合、NGC APIキーの入力を求められます。プロンプトでAPIキーを指定すると、インスタンスによって自動的にNGCコンテナ・レジストリにログインされ、そのレジストリからコンテナを実行できるようになります。プロンプトでAPIキーを指定せずに、インスタンスにログインすることもできます。後からNGCコンテナ・レジストリにログインできます。詳細は、NGCコンテナ・レジストリへのログインを参照してください。

CLIの使用

Oracle Cloud Infrastructureには、タスクを完了するために使用できるコマンドライン・インタフェース(CLI)があります。詳細は、クイックスタートおよびCLIの構成を参照してください。

launchコマンドを使用してインスタンスを作成するときに、sourceTypeイメージを指定し、LaunchInstanceDetailsInstanceSourceDetailsにイメージのOCID ocid1.image.oc1..aaaaaaaaknl6phck7e3iuii4r4axpwhenw5qtnnsk3tqppajdjzb5nhoma3qを指定します。

永続データ・ストレージのためのファイル・ストレージ・サービスの使用

NGCを操作するとき、データ・ストレージのためにファイル・ストレージ・サービスを使用できます。詳細は、ファイル・ストレージの概要を参照してください。ファイル・ストレージ・サービスの作成と使用については、次のタスクを参照してください:

永続データ・ストレージのためのブロック・ボリューム・サービスの使用

NGCを操作するとき、データ・ストレージのためにブロック・ボリューム・サービスを使用できます。詳細は、ブロック・ボリュームの概要を参照してください。ブロック・ボリューム・サービスの作成と使用については、次のタスクを参照してください:

CLIを使用してブロック・ボリュームを管理することもできます。ボリュームに関するコマンドを参照してください。

永続データ・ストレージのためのオブジェクト・ストレージ・サービスの使用

NGCを操作するとき、データ・ストレージのためにオブジェクト・ストレージ・サービスを使用できます。詳細は、オブジェクト・ストレージの概要を参照してください。オブジェクト・ストレージ・サービスの作成および使用については、次のタスクを参照してください:

CLIを使用してオブジェクト・ストレージを管理することもできます。osコマンドを参照してください。

実行中のコンテナの例

最初にNGCコンテナ・レジストリにログインする必要があります。SSHを介してインスタンスにログインしたときにAPIキーを指定した場合は、この項を省略できます。インスタンスへの接続時にAPIキーを指定しなかった場合、このステップを実行する必要があります。

NGCコンテナ・レジストリにログインするには
  1. 次のDockerコマンドを実行します:

    docker login nvcr.io
  2. ユーザー名を求められたら、$oauthtokenと入力します。

  3. パスワードを求められたら、NGC APIキーを入力します。

この時点で、Dockerコマンドを実行すると、インスタンスからNGCコンテナ・レジストリにアクセスできます。

例: PyTorchコンテナを使用したMNISTトレーニング実行

このサンプルでは、PyTorchでのMNIST例の実行を示します。この例では、MNISTデータセットをWebからダウンロードします。

  1. 次のDockerコマンドを使用し、PyTorchコンテナをプルして実行します:

    docker pull nvcr.io/nvidia/pytorch:17.10
    docker run --gpus all --rm -it nvcr.io/nvidia/pytorch:17.10
  2. 次のコマンドを使用して、MNISTの例を実行します:

    cd /opt/pytorch/examples/mnist
    python main.py
例: TensorFlowコンテナを使用したMNISTトレーニング実行

このサンプルでは、TensorFlowでのMNIST例の実行を示します。この例では、MNISTデータセットをWebからダウンロードします。

  1. 次のDockerコマンドを使用し、TensorFlowコンテナをプルして実行します:

    docker pull nvcr.io/nvidia/tensorflow:17.10
    docker run --gpus all --rm -it nvcr.io/nvidia/tensorflow:17.10
  2. 次のコマンドを使用して、MNIST_with_summariesの例を実行します:

    cd /opt/tensorflow/tensorflow/examples/tutorials/mnist
    python mnist_with_summaries.py