建立 A3、A2 或 G2 VM


本文說明如何建立使用 A3 High、A3 Mega、A3 Edge、A2 和 G2 機器系列的機器類型 VM。如要進一步瞭解如何建立連接 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.

    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 的 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」(建立執行個體) 頁面。

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

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

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

  4. 在「機器設定」專區中,選取「GPU」機器系列。

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

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

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

  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 指令搭配下列旗標。含 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

將 POST 要求傳送至 instances.insert 方法。含 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 控制台REST 建立這些 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,這些 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 執行個體。這些處理器會同時執行,每個處理器都有自己的記憶體、快取和串流多處理器。這項設定可讓 NVIDIA H100 或 A100 GPU 提供保證的服務品質 (QoS),且比先前 GPU 型號的使用率高出 7 倍。

您最多可以建立七個多重執行個體 GPU。對於 A100 40GB GPU,每個多重執行個體 GPU 都會分配 5 GB 記憶體。使用 A100 80GB 和 H100 80GB 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                                                 |
    +-----------------------------------------------------------------------------+
    

後續步驟