建立已連接 GPU 的 N1 VM

如需可新增 GPU 的一般用途 VM,以提供適度的加速效果,您可以在Google Cloud Compute Engine 的 N1 一般用途機器上,建立附加 GPU 的運算執行個體。將舊版 GPU (例如 T4、V100 和 P4) 連接至 N1 VM,可為小規模或效能要求不高的 AI 任務、遠端虛擬工作站和影片轉碼作業,提供經濟實惠的彈性。除了 N1 共用核心機器外,大多數 N1 機型都支援連接 GPU。

如果主要工作負載高度耗用 GPU,且能受益於最新的 GPU 架構和平台最佳化,請選擇加速器最佳化 A 系列或 G 系列機器。

事前準備

  • 如要查看其他必要步驟,例如選取 OS 映像檔和檢查 GPU 配額,請參閱總覽文件。
  • 如果尚未設定驗證,請先完成設定。驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    請根據您打算如何使用本頁範例,選取對應的分頁標籤:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  • 設定預設區域和可用區。
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

如要取得建立 VM 所需的權限,請要求管理員授予您專案的「Compute 執行個體管理員 (v1)」 (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立 VM 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

您必須具備下列權限,才能建立 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 在專案中
  • 如要在使用虛擬私有雲網路時,將外部 IP 位址指派給 VM: compute.subnetworks.useExternalIp 在專案或所選子網路上
  • 如要將舊版網路指派給 VM,請按照下列步驟操作: compute.networks.use 在專案中
  • 如要在使用舊版網路時,為 VM 指派外部 IP 位址: compute.networks.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 V100:nvidia-tesla-v100

NVIDIA RTX 虛擬工作站 (vWS) (舊稱 NVIDIA GRID):

  • NVIDIA T4 虛擬工作站:nvidia-tesla-t4-vws
  • NVIDIA P4 虛擬工作站:nvidia-tesla-p4-vws

    對於這些虛擬工作站,系統會自動將 NVIDIA RTX 虛擬工作站 (vWS) 授權新增至執行個體。

建立已附加 GPU 的 VM

您可以使用Google Cloud 控制台、Google Cloud CLI 或 REST,建立已附加 GPU 的 N1 VM。

控制台

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

    前往「建立執行個體」

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

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

  4. 在「機器設定」部分,選取「GPU」機器系列,然後執行下列操作:

    1. 在「GPU type」(GPU 類型) 清單中,選取 N1 機器支援的其中一種 GPU 型號。
    2. 在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
    3. 如果 GPU 型號支援圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS),且您打算在這部 VM 上執行圖形密集型工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」。

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

  5. 在「開機磁碟」專區中,按一下「變更」。「開機磁碟設定」頁面隨即開啟。

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

    1. 在「Public images」(公開映像檔) 分頁中,選擇支援的 Compute Engine 映像檔或深度學習 VM 映像檔。
    2. 指定至少 40 GB 的開機磁碟大小。
    3. 按一下「選取」,確認開機磁碟選項。
  7. 選用:在「VM 佈建模型」清單中,選取佈建模型。

  8. 如要建立並啟動 VM,請按一下 [Create] (建立)。

gcloud

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

如果工作負載具備容錯能力,或可隨時啟動,建議使用其他佈建模式來降低費用。如要變更佈建模型,請在指令中加入 --provisioning-model=PROVISIONING_MODEL 旗標。如要進一步瞭解可用模型,請參閱「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 的開機磁碟大小。
  • IMAGE 或 IMAGE_FAMILY,支援 GPU。 指定下列其中一項:

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

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

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

  • 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 V100:nvidia-tesla-v100
    • NVIDIA RTX 虛擬工作站 (vWS) (舊稱 NVIDIA GRID):

      • NVIDIA T4 虛擬工作站:nvidia-tesla-t4-vws
      • NVIDIA P4 虛擬工作站:nvidia-tesla-p4-vws

        系統會自動將 NVIDIA RTX 虛擬工作站 (vWS) 授權新增至這些虛擬工作站的執行個體。

範例

舉例來說,您可以使用下列 gcloud 指令,在 us-east1-d 可用區中啟動 Ubuntu 22.04 VM,並配備 1 個 NVIDIA T4 GPU 和 2 個 vCPU。

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,您可以在要求中將 "provisioningModel": "PROVISIONING_MODEL" 欄位新增至 scheduling 物件,指定不同的佈建模式。如要進一步瞭解可用模型,請參閱「Compute Engine 執行個體佈建模型」。

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

更改下列內容:

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

向 instances.insert 方法傳送 POST 要求。 加入 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": "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。

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

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

  • DISK_SIZE:開機磁碟大小 (GB)。 指定至少 40 GB 的開機磁碟大小。

  • NETWORK:要用於 VM 的虛擬私有雲網路。您可以指定 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 V100:nvidia-tesla-v100
    • NVIDIA RTX 虛擬工作站 (vWS) (舊稱 NVIDIA GRID):

      • NVIDIA T4 虛擬工作站:nvidia-tesla-t4-vws
      • NVIDIA P4 虛擬工作站:nvidia-tesla-p4-vws

        系統會自動為這些虛擬工作站的執行個體新增 NVIDIA RTX 虛擬工作站 (vWS) 授權。

  • PROVISIONING_MODEL:VM 的佈建模型。指定 SPOT 或 FLEX_START。如未指定佈建模型,系統會使用標準模型。這項屬性為選用項目。如要進一步瞭解佈建模式,請參閱「Compute Engine 執行個體佈建模式」。

安裝驅動程式

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

後續步驟