GPU が接続された VM の作成


Compute Engine は、仮想マシン(VM)に追加できるグラフィック プロセッシング ユニット(GPU)を備えています。これらの GPU を使用して、VM で実行される機械学習やデータ処理などの特定のワークロードを高速化できます。

このページでは、GPU が接続された VM の作成方法について説明します。既存の VM に GPU を追加する場合は、GPU の追加または削除をご覧ください。

GPU の機能と、使用できる GPU ハードウェアのタイプの詳細については、Compute Engine の GPU をご覧ください。

始める前に

  • このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
    1. gcloud コマンドライン ツールの最新バージョンをインストールするか、最新バージョンに更新します。
    2. デフォルトのリージョンとゾーンを設定します。
  • このガイドの API の例を使用する場合、API アクセスを設定します
  • お使いの VM で GPU を使用する場合のコストについては、Compute Engine での GPU の料金をご覧ください。
  • GPU を備えた VM の制限を確認します。
  • GPU の割り当てを確認します。
  • オペレーティング システム イメージを選択します。
    • 機械学習に GPU を使用している場合は、VM に Deep Learning VM イメージを使用できます。Deep Learning VM Image には GPU ドライバがあらかじめインストールされ、TensorFlow や PyTorch などのパッケージも含まれています。一般的な GPU ワークロードに Deep Learning VM Image を使用することもできます。使用可能なイメージとイメージにインストールされているパッケージの詳細については、イメージの選択をご覧ください。
    • 公開イメージカスタム イメージを使用することもできますが、一部のイメージでは、このドキュメントで説明されていない独自のドライバやインストール プロセスが必要な場合があります。イメージに適したドライバを確認する必要があります。ドライバをインストールする手順については、GPU ドライバのインストールをご覧ください。

GPU 割り当ての確認

Compute Engine システムとユーザーを保護するため、新しいプロジェクトにはグローバル GPU 割り当てが設定されます。この割り当ては、サポート対象のすべてのゾーンで作成できる GPU の総数を制限するものです。

regions describe コマンドを使用して、GPU 付き VM を作成するリージョンに十分な GPU 割り当てがあることを確認します。

gcloud compute regions describe REGION

REGION は、GPU 割り当てを確認するリージョンに置き換えます。

追加の GPU 割り当てが必要な場合は、割り当ての増加をリクエストします。GPU 割り当てをリクエストするときは、各リージョンで作成する GPU タイプに対する割り当てに加え、すべてのゾーンで利用できる全種類の GPU の合計数に対する追加のグローバル割り当てもリクエストする必要があります。

プロジェクトに確定済みのお支払い履歴がある場合、リクエストの送信後に割り当てが自動的にプロジェクトで受信されます。

制限事項

GPU(A100)が接続された Windows VM には次の制限事項が適用されます。

  • a2-megagpu-16g マシンタイプは、Windows オペレーティング システムではサポートされていません。Windows オペレーティング システムを使用する場合は、別のマシンタイプを選択します。マシンタイプの一覧については、NVIDIA® A100 GPU をご覧ください。
  • A2 マシンタイプを使用する Windows VM の場合、アタッチされているローカル SSD をクイック フォーマットすることはできません。これらのローカル SSD をフォーマットするには、diskpart ユーティリティを使用し、format fs=ntfs label=tmpfs を指定して、完全フォーマットを行う必要があります。

GPU が接続された VM の作成

GPU が接続された VM を作成するには、次の手順を行います。

  1. VM を作成します。VM の作成に使用されるメソッドは GPU のモデルによって異なります。

  2. VM で GPU を使用するには、VM に GPU ドライバをインストールする必要があります。

  3. NVIDIA® GRID 仮想ワークステーションを有効にした場合は、仮想ワークステーション用の GRID® ドライバをインストールします。

GPU を接続した VM の作成(A100 GPU)

このセクションでは、NVIDIA® A100 GPU を接続した VM の作成方法について説明します。その他の GPU タイプについては、GPU(他の GPU タイプ)が接続された VM の作成をご覧ください。

GPU を搭載した Windows VM を作成する場合は、このドキュメントの制限事項をご覧ください。

Console

  1. Google Cloud Console で、[インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. VM の名前を指定します。リソースの命名規則をご覧ください。

  3. GPU が利用可能なリージョンとゾーンを選択します。使用可能な A100 GPU ゾーンのリストをご覧ください。

  4. [マシンの構成] セクションで、[GPU] マシン ファミリーを選択し、次の操作を行います。

    1. [GPU のタイプ] リストで、NVIDIA Tesla A100 を選択します。マシンタイプのシリーズは、GPU のタイプに基づいて設定されます。

      NVIDIA Tesla A100 を選択すると、マシンタイプのシリーズA2 に設定され、マシンタイプA2 マシンタイプに設定されます。

    2. [GPU の数] リストで、GPU の数を選択します。

  5. [ブートディスク] セクションで [変更] をクリックします。[ブートディスクの構成] ページが表示されます。

  6. [ブートディスクの構成] ページで、次の操作を行います。

    1. [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
    2. ブートディスク サイズは 40 GB 以上で指定します。
    3. ブートディスクのオプションを確認するには、[保存] をクリックします。
  7. 必要なその他の VM 設定を構成します。たとえば、[プリエンプティブ] 設定を変更して、VM をプリエンプティブル インスタンスとして構成できます。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。

  8. VM を作成して起動するには、[作成] をクリックします。

gcloud

VM を作成して起動するには、次のフラグを指定して、gcloud compute instances create コマンドを使用します。GPU を使用した VM はライブ マイグレーションできません。必ず --maintenance-policy TERMINATE フラグを設定してください。

--preemptible は、プリエンプティブル インスタンスとして VM を構成するオプションのフラグです。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

次のように置き換えます。

  • VM_NAME: 新しい VM の名前
  • MACHINE_TYPE: VM に選択した A2 マシンタイプ
  • ZONE: VM のゾーン。このゾーンは A100 GPU をサポートしている必要があります。
  • DISK_SIZE: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。
  • GPU をサポートする IMAGE または IMAGE_FAMILY。次のいずれかを指定します。

    • IMAGE: 公開イメージの必須バージョン。例: --image debian-10-buster-v20200309
    • IMAGE_FAMILY: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、--image-family debian-10 を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。

    カスタム イメージまたは Deep Learning VM Image を指定することもできます。

  • IMAGE_PROJECT: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。

API

API で、instances.insert メソッドに対する POST リクエストを作成します。GPU を使用した VM はライブ マイグレーションできません。必ず onHostMaintenance パラメータを TERMINATE に設定してください。

"preemptible": true は、プリエンプティブル インスタンスとして VM を構成するオプションのパラメータです。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

次のように置き換えます。

  • VM_NAME: VM の名前
  • PROJECT_ID: プロジェクト ID。
  • ZONE: VM のゾーン。このゾーンは A100 GPU をサポートしている必要があります。
  • MACHINE_TYPE: VM に選択した A2 マシンタイプ
  • IMAGE または IMAGE_FAMILY: 次のいずれかを指定します。

    • IMAGE: 公開イメージの必須バージョン。たとえば、"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、"sourceImage": "projects/debian-cloud/global/images/family/debian-10" を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。

    カスタム イメージまたは Deep Learning VM Image を指定することもできます。

  • IMAGE_PROJECT: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。

  • DISK_SIZE: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。

  • NETWORK: VM に使用する VPC ネットワーク。default を指定して、デフォルト ネットワークを使用できます。

次に、システムでデバイスを使用できるように、VM に GPU ドライバをインストールします。A100 GPU の場合、CUDA 11 が必要です。

例(A100 GPU)

これらの例では、gcloud コマンドライン ツールを使用して、接続された NVIDIA® A100 GPU を使用して VM を作成します。ただし、Google Cloud Console または Compute Engine API を使用して、これらの VM を作成することもできます。

次の例は、以下のイメージを使用して VM を作成する方法を示しています。

DLVM イメージ

すでに NVIDIA ドライバと CUDA ライブラリがプリインストールされているため、DLVM イメージを使用するのが最も簡単な方法です。

これらのイメージは、パフォーマンスの最適化にも役立ちます。

NVIDIA® A100 では、次の DLVM イメージがサポートされています。

  • common-cu110: NVIDIA ドライバと CUDA がプリインストールされています
  • tf-ent-1-15-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 1.15.3 がプリインストールされています
  • tf2-ent-2-1-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 2.1.1 がプリインストールされています
  • tf2-ent-2-3-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 2.3.1 がプリインストールされています
  • pytorch-1-6-cu110: NVIDIA ドライバ、CUDA、Pytorch 1.6

使用可能な DLVM イメージと、イメージにインストールされているパッケージの詳細については、ディープ ラーニング VM のドキュメントをご覧ください。

  1. tf2-ent-2-3-cu110 イメージと a2-highgpu-1g マシンタイプを使用して VM を作成します。この例では、ブートディスクのサイズやスコープなどのオプションのフラグが指定されています。

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-c \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family tf2-ent-2-3-cu110 \
       --image-project deeplearning-platform-release \
       --boot-disk-size 200GB \
       --metadata "install-nvidia-driver=True,proxy-mode=project_editors" \
       --scopes https://www.googleapis.com/auth/cloud-platform
    

    次のように置き換えます。

    • VM_NAME: VM の名前。
    • PROJECT_ID: プロジェクト ID。
  2. 上記のコマンドの例では、VM の AI Platform Notebook も生成されます。ノートブックにアクセスするには、Google Cloud Console で AI Platform ページに移動します。

    AI Platform のページに移動

公開イメージまたはカスタム イメージ

Compute Engine で利用可能な公開イメージまたはカスタム イメージのいずれかを使用し、GPU が接続された VM を作成できます。

CentOS 7 イメージ ファミリーa2-highgpu-1g マシンタイプの非推奨でない最新のイメージを使用して VM を作成するには、以下の手順を行います。

  1. VM を作成します。この例では、ブートディスクのタイプやサイズなどのオプションのフラグも指定されています。

    gcloud compute instances create VM_NAME \
        --project PROJECT_ID \
        --zone us-central1-c \
        --machine-type a2-highgpu-1g \
        --maintenance-policy TERMINATE --restart-on-failure \
        --image-family centos-7 \
        --image-project centos-cloud \
        --boot-disk-size 200GB \
        --boot-disk-type pd-ssd
    

    次のように置き換えます。

    • VM_NAME: VM の名前。
    • PROJECT_ID: プロジェクト ID。
  2. NVIDIA ドライバと CUDA をインストールします。NVIDIA® A100 GPU の場合、CUDA バージョン 11 以降が必要です。

COS

コンテナ用に最適化された(COS)イメージを使用し、GPU が接続された VM を作成できます。

cos-85-lts イメージと a2-highgpu-1g マシンタイプを使用して VM を作成するには、ローカル クライアントから次の手順を行います。次の例は、Mac または Linux クライアントで実行できます。

  1. ディレクトリがない場合は、/tmp ディレクトリを作成します。

    mkdir /tmp
  2. 構成ファイル /cloud-init.yaml/tmp ディレクトリに追加します。

    この情報は、Container-Optimized VM のセットアップと、VM 起動時の NVIDIA ドライバと CUDA のインストールで必要になります。

    cat <<'EOF' > /tmp/cloud-init.yaml
    #cloud-config
    
    write_files:
      - path: /etc/systemd/system/cos-gpu-installer.service
        permissions: 0755
        owner: root
        content: |
          [Unit]
          Description=Run the GPU driver installer container
          Requires=network-online.target gcr-online.target
          After=network-online.target gcr-online.target
    
          [Service]
          User=root
          Type=oneshot
          RemainAfterExit=true
          Environment=INSTALL_DIR=/var/lib/nvidia
          ExecStartPre=/bin/mkdir -p ${INSTALL_DIR}
          ExecStartPre=/bin/mount --bind ${INSTALL_DIR} ${INSTALL_DIR}
          ExecStartPre=/bin/mount -o remount,exec ${INSTALL_DIR}
          ExecStart=/usr/bin/docker run --privileged \
                                        --net=host  \
                                        --pid=host \
                                        --volume ${INSTALL_DIR}:/usr/local/nvidia \
                                        --volume /dev:/dev \
                                        --volume /:/root \
                                        --env NVIDIA_DRIVER_VERSION=450.80.02 \
                                        gcr.io/cos-cloud/cos-gpu-installer:v20200701
          StandardOutput=journal+console
          StandardError=journal+console
    
    runcmd:
      - systemctl daemon-reload
      - systemctl enable cos-gpu-installer.service
      - systemctl start cos-gpu-installer.service
    
    EOF
    
  3. cos-85-lts イメージ ファミリーと a2-highgpu-1g を使用して、コンテナ用に最適化された VM を作成します。

    -metadata-from-file user-data フラグに構成ファイルを指定する必要があります。

    この例では、オプションのフラグ ブートディスクのサイズも指定されています。

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-a \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family cos-85-lts \
       --image-project cos-cloud \
       --boot-disk-size 200GB \
       --metadata-from-file user-data=/tmp/cloud-init.yaml
    

    次のように置き換えます。

    • VM_NAME: VM の名前。
    • PROJECT_ID: プロジェクト ID。

    VM を作成したら、VM にログインして次のコマンドを実行し、NVIDIA ドライバがインストールされていることを確認します。

    /var/lib/nvidia/bin/nvidia-smi

    ドライバのインストールには約 5 分かかります。

複数インスタンス GPU(A100)

複数インスタンス GPU は、同じ VM 内の単一の NVIDIA A100 GPU を、最大で 7 つの独立した GPU インスタンスに分割します。これらは、それぞれ独自のメモリ、キャッシュ、ストリーミング マルチプロセッサを備え、同時に実行されます。この設定により、A100 GPU は以前の GPU モデルと比較して最大 7 倍高い品質保証(QoS)を提供できます。

複数インスタンス GPU の使用について詳しくは、NVIDIA マルチインスタンス GPU ユーザーガイドをご覧ください。

複数インスタンス GPU を作成する手順は次のとおりです。

  1. A100 GPU が接続された VM を作成します。

  2. NVIDIA GPU ドライバを有効にします。

  3. 複数インスタンスの GPU を有効にして VM を再起動します。

    sudo nvidia-smi -mig 1
    sudo reboot
    
  4. 利用可能な複数インスタンスの GPU シェイプを確認します。

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    出力は次のようになります。

    +--------------------------------------------------------------------------+
    | GPU instance profiles:                                                   |
    | GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                           Free/Total   GiB              CE    JPEG  OFA  |
    |==========================================================================|
    |   0  MIG 1g.5gb     19     7/7        4.75       No     14     0     0   |
    |                                                          1     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 2g.10gb    14     3/3        9.75       No     28     1     0   |
    |                                                          2     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 3g.20gb     9     2/2        19.62      No     42     2     0   |
    |                                                          3     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 4g.20gb     5     1/1        19.62      No     56     2     0   |
    |                                                          4     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 7g.40gb     0     1/1        39.50      No     98     5     0   |
    |                                                          7     1     1   |
    +--------------------------------------------------------------------------+
    
  5. 必要なマルチインスタンス GPU(GI)と関連するコンピューティング インスタンス(CI)を作成します。これらのインスタンスを作成するには、プロファイル名(完全または短縮)とプロファイル ID の一方、または両方の組み合わせを指定します。詳細については、 GPU インスタンスの作成をご覧ください。

    次の例では、短縮プロファイル名(3g.20gb)とプロファイル ID(9)の組み合わせを使用して、2 つの MIG 3g.20gb GPU インスタンスを作成します。

    -C フラグも指定されているため、必要なプロファイル用の関連付けられたコンピューティング インスタンスが作成されます。

    sudo nvidia-smi mig -cgi 9,3g.20gb -C
    

    出力は次のようになります。

    Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
    Successfully created GPU instance ID  1 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  1 using profile MIG 3g.20gb (ID  2)
    
  6. 2 基のマルチインスタンス GPU が作成されていることを確認します。

    sudo nvidia-smi mig -lgi
    

    出力は次のようになります。

    +----------------------------------------------------+
    | GPU instances:                                     |
    | GPU   Name          Profile  Instance   Placement  |
    |                       ID       ID       Start:Size |
    |====================================================|
    |   0  MIG 3g.20gb       9        1          0:4     |
    +----------------------------------------------------+
    |   0  MIG 3g.20gb       9        2          4:4     |
    +----------------------------------------------------+
    
  7. GI と、それに対応する CI の両方が作成されていることを確認します。

    sudo nvidia-smi
    

    出力は次のようになります。

    Tue May 18 18:32:22 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                   On |
    | N/A   43C    P0    52W / 350W |     22MiB / 40537MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

GPU(他の GPU タイプ)が接続された VM の作成

このセクションでは、次の GPU タイプを使用して VM を作成する方法について説明します。

  • NVIDIA® T4: nvidia-tesla-t4
  • NVIDIA® T4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-t4-vws
  • NVIDIA® V100: nvidia-tesla-v100
  • NVIDIA® P100: nvidia-tesla-p100
  • NVIDIA® P100 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p100-vws

  • NVIDIA® P4: nvidia-tesla-p4

  • NVIDIA® P4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p4-vws

  • NVIDIA® K80: nvidia-tesla-k80

Console

  1. Google Cloud Console で、[インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

  2. VM の名前を指定します。詳しくは、リソースの命名規則をご覧ください。

  3. GPU モデルをサポートするリージョンとゾーンを選択します。

    各種のリージョンとゾーンでサポート対象となっている GPU モデルについて詳しくは、GPU のリージョンとゾーンをご覧ください。

  4. [マシンの構成] セクションで、次の操作を行います。

    1. [シリーズ] で [N1] を選択します。
    2. [マシンタイプ] で、[N1 マシンタイプ] を選択します。または、カスタム マシンタイプを設定することもできます。
    3. [CPU プラットフォームと GPU] メニューを展開します。

      1. [GPU を追加] をクリックします。
      2. [GPU のタイプ] と [GPU の数] を指定します。
      3. GPU モデルが仮想ワークステーションをサポートしていて、この VM でグラフィックを多用するワークロードを実行する場合は、[仮想ワークステーション(NVIDIA GRID)を有効にする] を選択します。

        NVIDIA® GRID 仮想ワークステーションの詳細については、グラフィック ワークロード用 NVIDIA® GRID® GPU をご覧ください。

  5. オペレーティング システムを選択するには、[ブートディスク] セクションで [変更] をクリックします。[ブートディスクの構成] ページが表示されます。

  6. [ブートディスクの構成] ページで、次の操作を行います。

    1. [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
    2. ブートディスク サイズは 40 GB 以上で指定します。
    3. ブートディスクのオプションを確認するには、[保存] をクリックします。
  7. 必要なその他の VM 設定を構成します。たとえば、[プリエンプティブ] 設定を変更して、VM をプリエンプティブル VM として構成できます。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル VM の GPU をご覧ください。

  8. VM を作成して起動するには、[作成] をクリックします。

gcloud

VM を作成して起動するには、次のフラグを指定して、gcloud compute instances create コマンドを使用します。

--preemptible は、プリエンプティブル インスタンスとして VM を構成するオプションのフラグです。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

次のように置き換えます。

  • VM_NAME: 新しい VM の名前
  • MACHINE_TYPE: VM に選択したマシンタイプ
  • ZONE: VM のゾーン。このゾーンは GPU タイプをサポートしている必要があります。
  • DISK_SIZE: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。
  • GPU をサポートする IMAGE または IMAGE_FAMILY。次のいずれかを指定します。

    • IMAGE: 公開イメージの必須バージョン。例: --image debian-10-buster-v20200309
    • IMAGE_FAMILY: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、--image-family debian-10 を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。

    カスタム イメージまたは Deep Learning VM Image を指定することもできます。

  • IMAGE_PROJECT: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。

  • ACCELERATOR_COUNT: VM に追加する GPU の数。VM のマシンタイプに基づく GPU 制限の一覧については、Compute Engine の GPU をご覧ください。

  • ACCELERATOR_TYPE: 使用する GPU モデル。この VM でグラフィックを多用するワークロードを実行する場合は、仮想ワークステーション モデルのいずれかを使用します。

    次のいずれかの値を選択します。

    • NVIDIA® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA® P4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

たとえば、次の gcloud コマンドを使用して、us-east1-d ゾーンで 1 つの NVIDIA K80 GPU と 2 つの vCPU を使用する Ubuntu 16.04 VM を開始できます。

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure

API

VM に追加する GPU タイプを特定します。GET リクエストを発行し、特定のゾーンのプロジェクトで使用可能な GPU タイプをリストします。

"preemptible": true は、プリエンプティブル インスタンスとして VM を構成するオプションのパラメータです。これにより、VM とそれに接続される GPU のコストが削減されます。詳細については、プリエンプティブル インスタンスの GPU をご覧ください。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • ZONE: 使用可能な GPU タイプをリストするゾーン

API で、instances.insert メソッドに対する POST リクエストを作成します。使用する GPU タイプを指定する acceleratorType パラメータを組み込み、追加する GPU の数を指定する acceleratorCount パラメータを組み込みます。また、onHostMaintenance パラメータを TERMINATE に設定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

次のように置き換えます。

  • VM_NAME: VM の名前
  • PROJECT_ID: プロジェクト ID。
  • ZONE: VM のゾーン。このゾーンは GPU タイプをサポートしている必要があります。
  • MACHINE_TYPE: VM に選択したマシンタイプです。希望する GPU 数に基づいた使用可能なマシンタイプについては、Compute Engine の GPU をご覧ください。
  • IMAGE または IMAGE_FAMILY: 次のいずれかを指定します。

    • IMAGE: 公開イメージの必須バージョン。たとえば、"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージから VM が作成されます。たとえば、"sourceImage": "projects/debian-cloud/global/images/family/debian-10" を指定すると、Compute Engine は Debian 10 イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。

    カスタム イメージまたは Deep Learning VM Image を指定することもできます。

  • IMAGE_PROJECT: イメージ ファミリーが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。

  • DISK_SIZE: 起動ディスクのサイズ(GB 単位)。ブートディスク サイズは 40 GB 以上で指定します。

  • NETWORK: VM に使用する VPC ネットワーク。default を指定して、デフォルト ネットワークを使用できます。

  • ACCELERATOR_COUNT: VM に追加する GPU の数。VM のマシンタイプに基づく GPU 制限の一覧については、Compute Engine の GPU をご覧ください。

  • ACCELERATOR_TYPE: 使用する GPU モデル。この VM でグラフィックを多用するワークロードを実行する場合は、仮想ワークステーション モデルのいずれかを使用します。

    次のいずれかの値を選択します。

    • NVIDIA® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA® P4 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation with NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

次の手順: お使いのシステムで GPU を使用できるようにするには、次の手順を行います。

次のステップ