建立 A3、A2 或 G2 VM


本文說明如何建立 VM,並使用 A3 High、A3 Mega、A3 Edge、A2 和 G2 系列的機型。如要進一步瞭解如何建立連接 GPU 的 VM,請參閱「建立連接 GPU 的執行個體總覽」。

事前準備

  • 如要查看建立附加 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. 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.
      3. REST

        如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 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.

        詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using 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.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 的 VM

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

如要對 G2 VM 進行部分自訂作業,可能需要使用 Google Cloud CLI 或 REST。請參閱 G2 限制

主控台

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

    前往「建立執行個體」

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

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

  4. 在「Machine configuration」(機器設定) 區段中,選取「GPUs」(GPU) 機器系列。

    1. 請根據機器系列完成下列任一步驟,選取預先定義或自訂的機器類型:

      • 對於所有 GPU 機器系列,您可以選取預先定義的機器類型,如下所示:

        1. 在「GPU type」(GPU 類型) 清單中,選取 GPU 類型。

          • 如果是加速器最佳化的 A3 High、A3 Mega 或 A3 Edge VM,請選取 NVIDIA H100 80GBNVIDIA H100 80GB MEGA
          • 如果是 A2 加速器最佳化 VM,請選取 NVIDIA A100 40GBNVIDIA A100 80GB
          • 如果是 G2 加速器最佳化 VM,請選取 NVIDIA L4
        2. 在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。

      • 如果是 G2 系列機器,您可以選取自訂機器類型,方法如下:

        1. 在「GPU type」(GPU 類型) 清單中,選取 NVIDIA L4
        2. 在「Machine type」(機器類型) 部分中,選取「Custom」(自訂)
        3. 如要指定執行個體的 vCPU 數量和記憶體大小,請拖曳滑桿或在文字方塊中輸入值。當您變更 vCPU 和記憶體的數量時,主控台會顯示執行個體的估計費用。
    2. 選用:G2 系列機器支援圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。如果您打算在 G2 VM 上執行需要大量圖形的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」

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

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

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

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

gcloud

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

範例指令會顯示下列選用標記:

  • --provisioning-model=SPOT 旗標,可將 VM 設定為 Spot VM。 如果工作負載具備容錯能力,且能承受 VM 可能遭到先占的影響,則可考慮使用 Spot VM,以降低 VM 和所連 GPU 的費用。詳情請參閱在 Spot VM 上使用 GPU。 對於 Spot VM,自動重新啟動和主機維護選項標記會停用。
  • 用於指定虛擬工作站的 --accelerator 標記。 NVIDIA RTX 虛擬工作站 (vWS) 僅支援 G2 VM。
  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=SPOT] \
      [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
  
取代下列項目:
  • VM_NAME:新 VM 的名稱
  • MACHINE_TYPE:您選取的機器類型。選擇下列其中一個選項:
    • A3 機型
    • A2 機型
    • G2 機型。 G2 機器類型也支援自訂記憶體。記憶體必須是 1024 MB 的倍數,且在支援的記憶體範圍內。舉例來說,如要建立具有 4 個 vCPU 和 19 GB 記憶體的 VM,請指定 --machine-type=g2-custom-4-19456
  • ZONE:VM 所在的可用區。這個可用區必須支援您選取的 GPU 型號
  • DISK_SIZE:開機磁碟的大小 (以 GB 為單位)。指定至少 40 GB 的開機磁碟大小。
  • IMAGE:支援 GPU 的作業系統映像檔。如要使用映像檔系列中的最新映像檔,請將 --image 旗標替換為 --image-family 旗標,並將其值設為支援 GPU 的映像檔系列。例如:--image-family=rocky-linux-8-optimized-gcp
    您也可以指定自訂映像檔或 深度學習 VM 映像檔
  • IMAGE_PROJECT:OS 映像檔所屬的 Compute Engine 映像檔專案。如果使用自訂映像檔或深度學習 VM 映像檔,請指定這些映像檔所屬的專案。
  • VWS_ACCELERATOR_COUNT:您需要的虛擬 GPU 數量。

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_TYPE:您選取的機器類型。選擇下列其中一個選項:
    • A3 機型
    • A2 機型
    • G2 機型。 G2 機器類型也支援自訂記憶體。記憶體必須是 1024 MB 的倍數,且在支援的記憶體範圍內。舉例來說,如要建立具有 4 個 vCPU 和 19 GB 記憶體的 VM,請指定 --machine-type=g2-custom-4-19456
    SOURCE_IMAGE_URI:您要使用的特定映像檔或映像檔系列的 URI。例如:
    • 特定圖片:"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • 映像檔系列:"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
    指定映像檔系列時,Compute Engine 會使用該系列中未淘汰的最新 OS 映像檔建立 VM。如要進一步瞭解映像檔系列的使用時機,請參閱映像檔系列最佳做法
  • DISK_SIZE:開機磁碟的大小 (以 GB 為單位)。指定至少 40 GB 的開機磁碟大小。
  • NETWORK:您要用於 VM 的 VPC 網路。如要使用預設網路,請指定 `default`。
其他設定:
  • 如果工作負載具備容錯能力,且能承受 VM 可能遭到先占的影響,則可考慮使用 Spot VM,降低 VM 和所連 GPU 的費用。詳情請參閱「Spot VM 上的 GPU」。如要指定 Spot VM,請在要求中新增 "provisioningModel": "SPOT" 選項。對於 Spot VM,自動重新啟動和主機維護選項標記會停用。
    "scheduling":
      {
        "provisioningModel": "SPOT"
      }
    
  • G2 VM 支援 NVIDIA RTX 虛擬工作站 (vWS)。如要指定虛擬工作站,請在要求中新增 `guestAccelerators` 選項。請將 VWS_ACCELERATOR_COUNT 替換為需要的虛擬 GPU 數量。
    "guestAccelerators":
      [
        {
          "acceleratorCount": VWS_ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws"
        }
      ]
    

安裝驅動程式

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

範例

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

下列範例說明如何使用下列映像檔建立 VM:

COS (A3 Edge/High)

您可以使用容器最佳化 (COS) 映像檔,建立已附加 H100 GPU 的 a3-edgegpu-8ga3-highgpu-8g VM。

如需詳細操作說明,瞭解如何建立使用 Container-Optimized OS 的 a3-edgegpu-8ga3-highgpu-8g VM,請參閱「建立啟用 GPUDirect-TCPX 的 A3 VM」。

公開 OS 映像檔 (G2)

您可以建立附加 GPU 的 VM,並使用 Compute Engine 提供的公開映像檔自訂映像檔

如要使用 Rocky Linux 8 最佳化 Google Cloud 映像檔系列中未淘汰的最新映像檔建立 VM,並使用 g2-standard-8 機型和 NVIDIA RTX 虛擬工作站,請完成下列步驟:

  1. 建立 VM。在本例中,也指定了開機磁碟類型和大小等選用標記。

    gcloud compute instances create VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --machine-type=g2-standard-8  \
        --maintenance-policy=TERMINATE --restart-on-failure \
        --network-interface=nic-type=GVNIC \
        --accelerator=type=nvidia-l4-vws,count=1 \
        --image-family=rocky-linux-8-optimized-gcp \
        --image-project=rocky-linux-cloud \
        --boot-disk-size=200GB \
        --boot-disk-type=pd-ssd
    

    更改下列內容:

    • VM_NAME:VM 名稱
    • PROJECT_ID:您的專案 ID。
    • ZONE:VM 所在的可用區。
  2. 安裝 NVIDIA 驅動程式和 CUDA。 如要使用 NVIDIA L4 GPU,必須安裝 CUDA XX 以上版本。

DLVM 映像檔 (A2)

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

  1. 使用 tf2-ent-2-3-cu110 映像檔和a2-highgpu-1g機器類型建立 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 的可用區
  2. 上述範例指令也會為 VM 生成 Vertex AI Workbench 使用者自行管理的筆記本執行個體。如要存取筆記本,請前往 Google Cloud 控制台的「Vertex AI Workbench」>「使用者自行管理的筆記本」頁面。

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

多執行個體 GPU (僅限 A3 和 A2 VM)

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

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

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

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

  1. 建立 A3 High、A3 Mega、A3 Edge 或 A2 加速器最佳化 VM。

  2. 啟用 NVIDIA GPU 驅動程式

  3. 啟用多執行個體 GPU。

    sudo nvidia-smi -mig 1
    
  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.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   |
    +-----------------------------------------------------------------------------+
    .......
    
  5. 建立所需的多執行個體 GPU (GI) 和相關聯的運算執行個體 (CI)。您可以指定完整或縮短的設定檔名稱、設定檔 ID,或兩者的組合,藉此建立這些執行個體。詳情請參閱「建立 GPU 執行個體」。

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

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

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

    sudo nvidia-smi mig -lgi
    
  7. 確認已建立 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                                                 |
    +-----------------------------------------------------------------------------+
    

後續步驟