GPU が接続された N1 VM を作成する

このドキュメントでは、GPU が接続され、N1 マシン ファミリーを使用する VM の作成方法について説明します。N1 shared-core を除くほとんどの N1 マシンタイプを使用できます。

始める前に

  • OS イメージの選択や GPU 割り当ての確認など、その他の前提条件を確認するには、概要のドキュメントをご覧ください。
  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    2. Set a default region and zone.

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

必要なロール

VM の作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼します。ロールの付与について詳しくは、プロジェクト、フォルダ、組織へのアクセス権を管理するをご覧ください。

この事前定義ロールには、VM の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

VM を作成するには、次の権限が必要です。

  • プロジェクトに対する compute.instances.create
  • カスタム イメージを使用して VM を作成する: イメージに対する compute.images.useReadOnly
  • スナップショットを使用して VM を作成する: スナップショットに対する compute.snapshots.useReadOnly
  • インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する compute.instanceTemplates.useReadOnly
  • VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する compute.subnetworks.use
  • VM の静的 IP アドレスを指定する: プロジェクトに対する compute.addresses.use
  • VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する compute.subnetworks.useExternalIp
  • VM にレガシー ネットワークを割り当てる: プロジェクトに対する compute.networks.use
  • レガシー ネットワークを使用する際に VM に外部 IP アドレスを割り当てる: プロジェクトに対する compute.networks.useExternalIp
  • VM の VM インスタンス メタデータを設定する: プロジェクトに対する compute.instances.setMetadata
  • VM にタグを設定する: VM に対する compute.instances.setTags
  • VM にラベルを設定する: VM に対する compute.instances.setLabels
  • VM が使用するサービス アカウントを設定する: VM に対する compute.instances.setServiceAccount
  • VM 用の新しいディスクを作成する: プロジェクトに対する compute.disks.create
  • 既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する compute.disks.use
  • 既存のディスクを読み取り専用モードでアタッチする: ディスクに対する compute.disks.useReadOnly

これらの権限は、カスタムロールや他の事前定義ロールを使用して取得することもできます。

概要

N1 マシン ファミリーを使用する VM に接続できる GPU モデルは次のとおりです。

NVIDIA GPU:

  • NVIDIA T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

NVIDIA RTX 仮想ワークステーション(vWS)(旧称 NVIDIA GRID):

  • NVIDIA T4 仮想ワークステーション: nvidia-tesla-t4-vws
  • NVIDIA P4 仮想ワークステーション: nvidia-tesla-p4-vws
  • NVIDIA P100 仮想ワークステーション: nvidia-tesla-p100-vws

    これらの仮想ワークステーションの場合、NVIDIA RTX 仮想ワークステーション(vWS)ライセンスがインスタンスに自動的に追加されます。

GPU が接続された VM を作成する

GPU が割り当てられた N1 VM を作成するには、Google Cloud コンソール、Google Cloud CLI、または REST を使用します。

コンソール

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

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

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

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

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

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

    4. [マシンタイプ] リストで、プリセットの N1 マシンタイプのいずれかを選択します。または、カスタム マシンタイプを設定することもできます。

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

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

    1. [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
    2. ブートディスク サイズは 40 GB 以上で指定します。
    3. ブートディスクのオプションを確認するには、[選択] をクリックします。
  7. 省略可: [VM プロビジョニング モデル] リストで、プロビジョニング モデルを選択します。

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

gcloud

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

ワークロードがフォールト トレラントである場合や、いつでも開始できる場合は、別のプロビジョニング モデルを使用して費用を削減することを検討してください。プロビジョニング モデルを変更するには、コマンドに --provisioning-model=<var>PROVISIONING_MODEL</var> フラグを含めます。使用可能なモデルの詳細については、Compute Engine インスタンスのプロビジョニング モデルをご覧ください。

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 \
    [--provisioning-model=PROVISIONING_MODEL]

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

  • 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 を使用する場合は、それらのイメージが属するプロジェクトを指定します。

  • PROVISIONING_MODEL: VM のプロビジョニング モデル。SPOT または FLEX_START を指定します。プロビジョニング モデルを指定しない場合、標準モデルが使用されます。このフラグは省略可能です。

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

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

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

    • NVIDIA GPU:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • NVIDIA RTX 仮想ワークステーション(vWS)(旧称 NVIDIA GRID):

      • NVIDIA T4 仮想ワークステーション: nvidia-tesla-t4-vws
      • NVIDIA P4 仮想ワークステーション: nvidia-tesla-p4-vws
      • NVIDIA P100 仮想ワークステーション: nvidia-tesla-p100-vws

        これらの仮想ワークステーションの場合、NVIDIA RTX 仮想ワークステーション(vWS)ライセンスがインスタンスに自動的に追加されます。

たとえば、us-east1-d ゾーンで 1 つの NVIDIA T4 GPU と 2 つの vCPU を使用する Ubuntu 22.04 VM を起動するには、次の gcloud コマンドを使用できます。

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

REST

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

割引価格で VM を作成するには、リクエストの scheduling オブジェクトに "provisioningModel": "PROVISIONING_MODEL" フィールドを追加して、別のプロビジョニング モデルを指定します。使用可能なモデルの詳細については、Compute Engine インスタンスのプロビジョニング モデルをご覧ください。

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

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

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

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":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    "provisioningModel": "PROVISIONING_MODEL"
  },
}

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

  • 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 GPU:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • NVIDIA RTX 仮想ワークステーション(vWS)(旧称 NVIDIA GRID):

      • NVIDIA T4 仮想ワークステーション: nvidia-tesla-t4-vws
      • NVIDIA P4 仮想ワークステーション: nvidia-tesla-p4-vws
      • NVIDIA P100 仮想ワークステーション: nvidia-tesla-p100-vws

        これらの仮想ワークステーションの場合、NVIDIA RTX 仮想ワークステーション(vWS)ライセンスがインスタンスに自動的に追加されます。

  • PROVISIONING_MODEL: VM のプロビジョニング モデル。SPOT または FLEX_START を指定します。プロビジョニング モデルを指定しない場合、標準モデルが使用されます。このプロパティは省略可能です。プロビジョニング モデルの詳細については、Compute Engine インスタンスのプロビジョニング モデルをご覧ください。

ドライバをインストールする

ドライバをインストールするには、次のいずれかのオプションを選択します。

次のステップ