建立已連接 GPU 的 N1 VM


本文說明如何建立已連接 GPU 並使用 N1 機器系列 的 VM。您可以使用大部分 N1 機器類型,但 N1 shared-core 除外。

事前準備

  • 如要查看其他必要步驟 (例如選取 OS 映像檔和檢查 GPU 配額),請參閱總覽文件。
  • 如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

必要的角色

如要取得建立 VM 所需的權限,請要求管理員為您授予專案的 Compute Instance Admin (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.networks.use 專案上
  • 如要為 VM 指定靜態 IP 位址: compute.addresses.use 專案上的
  • 如要在使用舊版網路時將外部 IP 位址指派給 VM,請按照下列步驟操作: compute.networks.useExternalIp 專案
  • 如要為 VM 指定子網路: compute.subnetworks.use 在專案或所選子網路上
  • 如要在使用虛擬私有雲網路時,將外部 IP 位址指派給 VM,請按照下列步驟操作: compute.subnetworks.useExternalIp 在專案或所選子網路上
  • 如要為 VM 設定 VM 執行個體中繼資料,請按照下列步驟操作: compute.instances.setMetadata 在專案中
  • 如要為 VM 設定標記: compute.instances.setTags 在 VM 上
  • 如要為 VM 設定標籤,請按照下列步驟操作: compute.instances.setLabels VM 上
  • 如要設定 VM 使用的服務帳戶,請按照下列步驟操作: compute.instances.setServiceAccount 在 VM 上
  • 如要為 VM 建立新磁碟,請按照下列步驟操作: compute.disks.create 專案
  • 如要以唯讀或讀寫模式連接現有磁碟: 磁碟的 compute.disks.use 權限
  • 如要以唯讀模式連接現有磁碟,請執行下列操作: compute.disks.useReadOnly 磁碟

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

總覽

下列 GPU 型號可連接至使用 N1 機器系列的 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) 授權新增至 VM。

建立已連結 GPU 的 VM

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,建立已連結 GPU 的 N1 虛擬機。

主控台

  1. 前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。

    前往「Create an instance」(建立執行個體)

  2. 指定 VM 的「名稱」。請參閱「資源命名慣例」。

  3. 選取提供 GPU 的區域。請參閱可用的 GPU 區域清單。

  4. 在「Machine configuration」(機器設定) 區段中,選取「GPUs」機器系列,然後執行下列操作:

    1. 在「GPU 類型」清單中,選取 N1 機器支援的 GPU 型號。
    2. 在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
    3. 如果 GPU 型號支援適用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS),且您打算在這個 VM 上執行需要大量圖形處理能力的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」

    4. 在「Machine type」(機器類型) 清單中,選取其中一個預設的 N1 機器類型。您也可以指定自訂機器類型設定。

  5. 在「Boot disk」(開機磁碟) 部分,按一下「Change」(變更)。系統會開啟「Boot disk configuration」頁面。

  6. 在「Boot disk configuration」(開機磁碟設定) 頁面中,執行下列操作:

    1. 在「Public images」分頁中,選擇支援的 Compute Engine 映像檔深度學習 VM 映像檔
    2. 請指定至少 40 GB 的開機磁碟大小。
    3. 如要確認開機磁碟選項,請按一下「選取」
  7. 選用步驟:設定佈建模型。舉例來說,如果工作負載具備容錯能力,且能承受 VM 先占的影響,建議您使用 Spot VM 來降低 VM 和附加 GPU 的費用。詳情請參閱「Spot VM 上的 GPU」。如要這樣做,請按照下列步驟進行:

    1. 在「可用性政策」專區中,從「VM 佈建模型」清單中選取「Spot」。這個設定會停用 VM 的自動重新啟動和主機維護選項。
    2. 選用:在「On VM termination」清單中,選取 Compute Engine 搶先取得 VM 時的處理方式:
      • 如要在先佔期間停止 VM,請選取「停止」 (預設)。
      • 如要在優先取得期間刪除 VM,請選取「刪除」
  8. 如要建立並啟動 VM,請按一下 [Create] (建立)

gcloud

如要建立及啟動 VM,請使用 gcloud compute instances create 指令搭配下列旗標:

如果您的工作負載可以容錯,也能承受 VM 先占可能帶來的影響,建議您使用 Spot VM 來降低 VM 和連接 GPU 的費用。詳情請參閱「Spot VM 上的 GPU」。--provisioning-model=SPOT 是選用標記,可將 VM 設為 Spot VM。對於 Spot VM,自動重新啟動和主機維護選項標記已停用。

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=SPOT]

更改下列內容:

  • VM_NAME:新 VM 的名稱
  • MACHINE_TYPE:您為 VM 選取的機器類型
  • ZONE:VM 的區域。這個區域必須支援GPU 類型
  • DISK_SIZE:開機磁碟的大小 (以 GB 為單位)。請指定至少 40 GB 的開機磁碟大小。
  • IMAGEIMAGE_FAMILY 支援 GPU。請指定下列其中一個選項:

    • IMAGE:公開映像檔的必要版本。例如:--image debian-10-buster-v20200309
    • IMAGE_FAMILY圖片群組。這會使用最新的非淘汰作業系統映像檔建立 VM。舉例來說,如果您指定 --image-family debian-10,Compute Engine 會使用 Debian 10 映像檔系列中的最新 OS 映像檔版本建立 VM。

    您也可以指定自訂映像檔或深度學習 VM 映像檔

  • IMAGE_PROJECT:映像檔系列所屬的 Compute Engine 映像檔專案。如果使用自訂映像檔或深度學習 VM 映像檔,請指定這些映像檔所屬的專案。

  • ACCELERATOR_COUNT:您要新增至 VM 的 GPU 數量。如需適用虛擬機器機器類型的 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) 授權新增至 VM。

示例

舉例來說,您可以使用下列 gcloud 指令,在 us-east1-d 區域中啟動配備 1 個 NVIDIA T4 GPU 和 2 個 vCPU 的 Ubuntu 22.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-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

REST

找出要新增至 VM 的 GPU 類型。如要列出特定區域中適用於專案的 GPU 類型,請提交 GET 要求。

如果您的工作負載可以容錯,也能承受 VM 先占可能帶來的影響,建議您使用 Spot VM 來降低 VM 和連接 GPU 的費用。詳情請參閱「Spot VM 上的 GPU」。"provisioningModel": "SPOT" 是選用參數,可將 VM 設為 Spot VM。對於 Spot VM,自動重新啟動和主機維護選項標記已停用。

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

更改下列內容:

  • PROJECT_ID:專案 ID。
  • ZONE:您想要列出可用 GPU 類型的區域

將 POST 要求傳送至 instances.insert 方法。加入 acceleratorType 參數來指定您要使用的 GPU 類型,再加入 acceleratorCount 參數來指定您要新增的 GPU 數量。請同時將 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": "SPOT"]
  },
}

更改下列內容:

  • VM_NAME:VM 的名稱
  • PROJECT_ID:您的專案 ID。
  • ZONE:VM 的區域。這個區域必須支援GPU 類型
  • MACHINE_TYPE:您為 VM 選取的機器類型。如要瞭解哪些機器類型可提供您需要的 GPU 數量,請參閱 Compute Engine 上的 GPU一文。
  • IMAGEIMAGE_FAMILY:指定下列其中一個選項:

    • IMAGE:公開圖片的必要版本。例如:"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY圖片群組。這會使用最新的非淘汰作業系統映像檔建立 VM。舉例來說,如果您指定 "sourceImage": "projects/debian-cloud/global/images/family/debian-10",Compute Engine 會使用 Debian 10 映像檔系列中的最新版 OS 映像檔建立 VM。

    您也可以指定自訂映像檔或深度學習 VM 映像檔

  • IMAGE_PROJECT:映像檔系列所屬的 Compute Engine 映像檔專案。如果使用自訂映像檔或深度學習 VM 映像檔,請指定這些映像檔所屬的專案。

  • DISK_SIZE:開機磁碟的大小 (以 GB 為單位)。請指定至少 40 GB 的開機磁碟大小。

  • NETWORK:您要為 VM 使用的 VPC 網路。您可以指定 default 來使用預設網路。

  • ACCELERATOR_COUNT:您要新增至 VM 的 GPU 數量。如需適用虛擬機器機器類型的 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) 授權新增至 VM。

安裝驅動程式

如要安裝驅動程式,請選擇下列其中一個選項:

後續步驟