建立 A3 High 或 A2 執行個體

本文說明如何建立虛擬機器 (VM) 執行個體,並使用 A2A3 High 加速器最佳化機器系列的機型。

如果是 A3 High 機型,本文僅涵蓋連接少於 8 個 GPU 的機型。如果 A3 High 機型少於 8 個 GPU,只能建立為 Spot VM 或彈性啟動 VM。如要建立連接 8 個 GPU 的 A3 執行個體,請參閱「建立啟用 GPUDirect 的 A3 Mega、A3 High 或 A3 Edge 執行個體」。

如要建立多個 A3 或 A2 VM,也可以使用下列任一選項:

事前準備

  • 如要查看建立附加 GPU 的執行個體時的限制和額外必要步驟 (例如選取 OS 映像檔和檢查 GPU 配額),請參閱建立附加 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. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      若您採用的是外部識別資訊提供者 (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 專案的
  • 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定 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 的 VM

您可以使用Google Cloud 控制台、Google Cloud CLI 或 REST,建立 A2 或 A3 加速器最佳化 VM。

控制台

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

    前往「建立執行個體」
  2. 在「名稱」欄位中,輸入執行個體的專屬名稱。請參閱資源命名慣例
  3. 選取提供這些 GPU 機器類型的區域和可用區。請參閱 GPU 區域和可用區
  4. 在機器類型部分中,選取「GPU」
    1. 在「GPU type」(GPU 類型) 清單中,選取 GPU 類型。
      • 如果是 A2 加速器最佳化 VM,請選取 NVIDIA A100 40GBNVIDIA A100 80GB
      • 如果是 A3 加速器最佳化 VM,請選取 NVIDIA H100 80GB
    2. 在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
  5. 請按照下列步驟設定開機磁碟:
    1. 在「OS 和儲存空間」專區,點選「變更」。 系統會開啟「開機磁碟設定」頁面。
    2. 在「開機磁碟設定」頁面中,執行下列操作:
      1. 在「Public images」(公開映像檔) 分頁中,選擇支援的 Compute Engine 映像檔Deep Learning VM Images
      1. 指定至少 40 GiB 的開機磁碟大小。
      2. 如要確認開機磁碟選項,請按一下「Select」(選取)
  6. 設定佈建模型。 在「Advanced options」(進階選項) 部分的「VM provisioning model」(VM 佈建模型) 下方, 選取下列其中一個選項:
    • 標準:適用於一般用途工作負載。
    • 彈性啟動:適用於可容許彈性啟動時間的短期工作負載。詳情請參閱「關於彈性啟動 VM」。
    • Spot:適用於可先占的容錯工作負載。詳情請參閱「Spot VM」。
  7. 選用:在「On VM termination」(在 VM 終止時) 清單中,選取 Compute Engine 先占 Spot VM 時,或彈性啟動 VM 達到執行時間上限時,要採取的行動:
    • 如要在搶占期間停止 VM,請選取「停止」 (預設)。
    • 如要在先占期間刪除 VM,請選取「刪除」
  8. 如要建立並啟動 VM,請按一下 [Create] (建立)

gcloud

如要建立及啟動 VM,請使用 gcloud compute instances create 指令搭配下列旗標。含 GPU 的 VM 無法即時遷移,因此請務必設定 --maintenance-policy=TERMINATE 標記。

範例指令也會顯示 --provisioning-model 旗標。這個旗標會設定 VM 的佈建模式。建立 GPU 數量少於 8 個的 A3 機型時,必須使用這個旗標,且必須設為 SPOTFLEX_START。如果是 A2 機器類型,這個旗標為選用項目。如未指定模型,系統會使用標準佈建模型。詳情請參閱「Compute Engine 執行個體佈建模型」。

  gcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --zone=ZONE \
      --boot-disk-size=DISK_SIZE \
      --image=IMAGE \
      --image-project=IMAGE_PROJECT \
      --maintenance-policy=TERMINATE \
      --provisioning-model=PROVISIONING_MODEL
  
取代下列項目:
  • VM_NAME:新 VM 的名稱
  • MACHINE_TYPEA2 機型A3 機型,並搭配 1、2 或 4 個 GPU。如果是 A3 機器類型,您必須指定佈建模型。
  • ZONE:VM 的可用區。這個可用區必須支援您選取的 GPU 型號
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。指定開機磁碟大小,至少須有 40 GiB。
  • IMAGE:支援 GPU 的作業系統映像檔。如要使用映像檔系列中的最新映像檔,請將 --image 旗標替換為 --image-family 旗標,並將其值設為支援 GPU 的映像檔系列。例如:--image-family=rocky-linux-8-optimized-gcp
    您也可以指定自訂映像檔或 深度學習 VM 映像檔
  • IMAGE_PROJECT:OS 映像檔所屬的 Compute Engine 映像檔專案。如果使用自訂映像檔或深度學習 VM 映像檔,請指定這些映像檔所屬的專案。
  • PROVISIONING_MODEL:用於建立 VM 的佈建模式。您可以指定 SPOTFLEX_START。如果從指令中移除 --provisioning-model 旗標,系統就會使用標準佈建模型。建立 GPU 數量少於 8 個的 A3 VM 時,必須使用這個旗標。

REST

instances.insert 方法傳送 POST 要求。含 GPU 的 VM 無法即時遷移,請務必將 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": "SOURCE_IMAGE_URI"
    },
    "boot": true
  }
],
"name": "VM_NAME",
"networkInterfaces":
[
  {
    "network": "projects/PROJECT_ID/global/networks/NETWORK"
  }
],
"scheduling":
{
  "onHostMaintenance": "terminate",
  "automaticRestart": true
}
}

取代下列項目:
  • VM_NAME:新 VM 的名稱
  • PROJECT_ID:您的專案 ID。
  • ZONE:VM 的可用區。這個可用區必須支援您選取的 GPU 型號
  • MACHINE_TYPEA2 機型A3 機型,並搭配 1、2 或 4 個 GPU。如果是 A3 機器類型,您必須指定佈建模型。
  • PROVISIONING_MODEL:VM 的佈建模型。 指定 SPOTFLEX_START。建立少於 8 個 GPU 的 A3 VM 時,必須填寫這個欄位。如果是 A2 VM,這個欄位為選填;如未指定模型,系統會使用標準佈建模型。詳情請參閱「Compute Engine 執行個體佈建模型」。
  • SOURCE_IMAGE_URI:要使用的特定映像檔或映像檔系列的 URI。例如:
    • 特定圖片:"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-10-optimized-gcp-v20251017"
    • 映像檔系列:"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-10-optimized-gcp"
    指定映像檔系列時,Compute Engine 會使用該系列中未淘汰的最新 OS 映像檔建立 VM。如要進一步瞭解何時該使用映像檔系列,請參閱映像檔系列最佳做法
  • DISK_SIZE:開機磁碟的大小 (以 GB 為單位)。指定至少 40 GB 的開機磁碟大小。
  • NETWORK:您要用於 VM 的 VPC 網路。如要使用預設網路,請指定 `default`。
其他設定:
  • 如要指定佈建模型,請將 "provisioningModel": "PROVISIONING_MODEL" 欄位新增至要求中的 scheduling 物件。如果 A3 機型搭載的 GPU 不足 8 個,就必須使用這項功能。如果您指定建立 Spot VM,系統會忽略 onHostMaintenanceautomaticRestart 欄位。
    "scheduling":
      {
        "onHostMaintenance": "terminate",
        "automaticRestart": true,
        "provisioningModel": "PROVISIONING_MODEL"
      }
    

安裝驅動程式

如要讓 VM 使用 GPU,您必須在 VM 上安裝 GPU 驅動程式

範例

在這些範例中,大部分的 VM 都是使用 Google Cloud CLI 建立。不過,您也可以使用 Google Cloud consoleREST 建立這些 VM。

以下範例說明如何使用標準 OS 映像檔建立 A3 Spot VM,以及如何使用 Deep Learning VM Images 映像檔建立 A2 VM。

使用 Debian 13 OS 映像檔系列建立 A3 Spot VM

這個範例會使用 Debian 13 OS 映像檔系列,建立 A3 (a3-highgpu-1g) Spot VM。

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a3-highgpu-1g \
    --provisioning-model=SPOT \
    --maintenance-policy=TERMINATE \
    --image-family=debian-13 \
    --image-project=debian-cloud \
    --boot-disk-size=200GB \
    --scopes=https://www.googleapis.com/auth/cloud-platform

更改下列內容:

  • VM_NAME:VM 執行個體的名稱
  • PROJECT_ID:您的專案 ID
  • ZONE:VM 執行個體的可用區

在 VM 上建立 Vertex AI Workbench 使用者自行管理的筆記本執行個體,並使用 A2 VM

這個範例會使用 tf2-ent-2-3-cu110 Deep Learning VM Images 映像檔,建立 A2 Standard (a2-highgpu-1g) VM。在本範例中,指定了開機磁碟大小和範圍等選用標記。

使用 DLVM 映像檔最容易上手,因為這些映像檔已預先安裝 NVIDIA 驅動程式和 CUDA 程式庫。

這些圖片也能提升效能。

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 說明文件

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a2-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --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
  • ZONE:VM 執行個體的可用區

上述範例指令也會為 VM 產生 Vertex AI Workbench 使用者自行管理的筆記本執行個體。如要存取筆記本,請前往 Google Cloud 控制台,依序點選「Vertex AI Workbench」>「使用者自行管理的筆記本」頁面。

前往「使用者自行管理的筆記本」頁面

多執行個體 GPU

多執行個體 GPU 會將同一部 VM 中的單一 NVIDIA A100 或 NVIDIA H100 GPU 分割成最多七個獨立的 GPU 執行個體。這些執行緒會同時執行,各自擁有專屬的記憶體、快取和串流多處理器。與先前的 GPU 型號相比,NVIDIA A100 和 H100 GPU 的利用率最高可提高 7 倍,並提供一致的服務品質 (QoS)。

您最多可以建立七個多重執行個體 GPU。如果是 A100 40GB GPU,每個多重執行個體 GPU 會分配到 5 GB 的記憶體。使用 A100 80GB GPU 時,分配到的記憶體會加倍,每個 GPU 為 10 GB。使用 H100 80GB GPU 時,每個多重執行個體 GPU 也會分配到 10 GB 的記憶體。

如要進一步瞭解如何使用多例項 GPU,請參閱 NVIDIA 多例項 GPU 使用者指南

如要建立多重執行個體 GPU,請完成下列步驟:

  1. 建立 A2 (A100) 或 A3 (H100) 加速器最佳化 VM 執行個體。

  2. 連線至 VM 執行個體。詳情請參閱「連線至 Linux VM」或「連線至 Windows VM」。

  3. 啟用 NVIDIA GPU 驅動程式

  4. 啟用多執行個體 GPU。

    sudo nvidia-smi -mig 1
    
  5. 查看可用的多執行個體 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.10gb       19     7/7        9.62       No     16     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.10gb+me    20     1/1        9.62       No     16     1     0   |
    |                                                             1     1     1   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.20gb       15     4/4        19.50      No     26     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 2g.20gb       14     3/3        19.50      No     32     2     0   |
    |                                                             2     2     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 3g.40gb        9     2/2        39.25      No     60     3     0   |
    |                                                             3     3     0   |
    +-----------------------------------------------------------------------------+
    .......
    
  6. 建立所需的多執行個體 GPU (GI) 和相關聯的運算執行個體 (CI)。您可以指定完整或縮短的設定檔名稱、設定檔 ID,或兩者的組合,藉此建立這些執行個體。詳情請參閱「建立 GPU 執行個體」。

    以下範例會使用設定檔 ID (9) 建立兩個 MIG 3g.20gb GPU 執行個體。

    此外,系統也會指定 -C 旗標,為必要設定檔建立相關聯的運算執行個體。

    sudo nvidia-smi mig -cgi 9,9 -C
    
  7. 確認已建立兩個多重執行個體 GPU:

    sudo nvidia-smi mig -lgi
    
  8. 確認已建立 GI 和對應的 CI。

    sudo nvidia-smi
    

    輸出結果會與下列內容相似:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.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  NVIDIA H100 80G...  Off  | 00000000:04:00.0 Off |                   On |
    | N/A   33C    P0    70W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA H100 80G...  Off  | 00000000:05:00.0 Off |                   On |
    | N/A   32C    P0    69W / 700W |     39MiB / 81559MiB |     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  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

後續步驟