本文說明如何建立使用 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
-
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.
- Set a default region and zone.
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 驗證說明文件中的「驗證以使用 REST」。
-
必要的角色
如要取得建立 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 限制。
主控台
前往 Google Cloud 控制台的「Create an instance」頁面。
指定 VM 的「名稱」。請參閱「資源命名慣例」。
選取提供 GPU 的區域。請參閱可用的GPU 區域和可用區清單。
在「機器設定」專區中,選取「GPU」機器系列。
完成下列任一步驟,即可根據機器系列選取預先定義或自訂機器類型:
針對所有 GPU 機器系列,您可以選取預先定義的機器類型,如下所示:
在「GPU type」清單中,選取 GPU 類型。
- 如果是 A3 High、A3 Mega 或 A3 Edge 加速器最佳化 VM,請選取
NVIDIA H100 80GB
或NVIDIA H100 80GB MEGA
。 - 針對 A2 加速器最佳化 VM,請選取
NVIDIA A100 40GB
或NVIDIA A100 80GB
。 - 如為 G2 加速器最佳化 VM,請選取
NVIDIA L4
。
- 如果是 A3 High、A3 Mega 或 A3 Edge 加速器最佳化 VM,請選取
在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
針對 G2 機器系列,您可以選取自訂機器類型,如下所示:
- 在「GPU type」清單中,選取
NVIDIA L4
。 - 在「Machine type」(機器類型) 部分中,選取「Custom」(自訂)。
- 如要指定執行個體的 vCPU 數量和記憶體容量,請拖曳滑桿,或在文字方塊中輸入值。當您變更 vCPU 和記憶體的數量時,主控台會顯示執行個體的估計費用。
- 在「GPU type」清單中,選取
選用:G2 機器系列支援������圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。如果您打算在 G2 VM 上執行需要大量圖形處理能力的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」。
在「Boot disk」(開機磁碟) 部分,按一下「Change」(變更)。系統會開啟「Boot disk configuration」頁面。
在「Boot disk configuration」(開機磁碟設定) 頁面中,執行下列操作:
- 在「Public images」分頁中,選擇支援的 Compute Engine 映像檔或深度學習 VM 映像檔。
- 請指定至少 40 GB 的開機磁碟大小。
- 如要確認開機磁碟選項,請按一下「選取」。
選用步驟:設定佈建模型。舉例來說,如果工作負載具備容錯能力,且能承受 VM 先占的影響,建議您使用 Spot VM 來降低 VM 和附加 GPU 的費用。詳情請參閱「Spot VM 上的 GPU」。如要這樣做,請按照下列步驟進行:
- 在「可用性政���」專區中,從「VM 佈建模型」清單中選取「Spot」。這個設定會停用 VM 的自動重新啟動和主機維護選項。
- 選用:在「On VM termination」(VM 終止時)清單中,選取 Compute Engine 搶佔 VM 時的處理方式:
- 如要在先佔期間停止 VM,請選取「停止」 (預設)。
- 如要在優先取得期間刪除 VM,請選取「刪除」。
如要建立並啟動 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
:您選取的機器類型。請選擇下列其中一個選項: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"
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 console 或 REST 建立這些 VM。
以下範例說明如何使用以下映像檔建立 VM:
- 深度學習 VM 映像檔。本範例使用 A2 Standard (
a2-highgpu-1g
) VM。 - Container-optimized (COS) image。本範例使用
a3-highgpu-8g
或a3-edgegpu-8g
VM。 公開圖片:本範例使用 G2 VM。
COS (A3 Edge/High)
您可以使用容器最佳化 (COS) 映像檔,建立已連結 H100 GPU 的 a3-edgegpu-8g
或 a3-highgpu-8g
VM。
如需有關如何建立使用 Container-Optimized OS 的 a3-edgegpu-8g
或 a3-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 虛擬工作站,請完成下列步驟:
建立 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 的可用區。
安裝 NVIDIA 驅動程式和 CUDA。對於 NVIDIA L4 GPU,必須使用 CUDA XX 以上版本。
DLVM 映像檔 (A2)
使用 DLVM 映像檔是最簡單的入門方式,因為這些映像檔已預先安裝 NVIDIA 驅動程式和 CUDA 程式庫。
這些圖片也能提供效能最佳化功能。
NVIDIA A100 支援下列 DLVM 映像檔:
common-cu110
:預先安裝 NVIDIA 驅動程式和 CUDAtf-ent-1-15-cu110
:預先安裝 NVIDIA 驅動程式、CUDA 和 TensorFlow Enterprise 1.15.3tf2-ent-2-1-cu110
:預先安裝 NVIDIA 驅動程式、CUDA 和 TensorFlow Enterprise 2.1.1tf2-ent-2-3-cu110
:預先安裝 NVIDIA 驅動程式、CUDA 和 TensorFlow 企業版 2.3.1pytorch-1-6-cu110
:NVIDIA 驅動程式、CUDA、Pytorch 1.6
如要進一步瞭解可用的 DLVM 映像檔,以及映像檔上安裝的套件,請參閱 深度學習 VM 說明文件。
使用
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 的可用區
上述範例指令也會為 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,請完成下列步驟:
建立 A3 High、A3 Mega、A3 Edge 或 A2 加速器最佳化 VM。
啟用 NVIDIA GPU 驅動程式。
啟用多執行個體 GPU。
sudo nvidia-smi -mig 1
查看可用的多執行個體 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 | +-----------------------------------------------------------------------------+ .......
建立所需的多執行個體 GPU (GI) 和相關聯的運算執行個體 (CI)。您可以指定完整或縮寫的設定檔名稱、設定檔 ID,或兩者的組合,建立這些執行個體。詳情請參閱「建立 GPU 執行個體」。
以下範例會使用設定檔 ID (
9
) 建立兩個MIG 3g.20gb
GPU 執行個體。您也可以指定
-C
旗標,為必要設定檔建立相關聯的運算執行個體。sudo nvidia-smi mig -cgi 9,9 -C
檢查是否已建立兩個多重執行個體 GPU:
sudo nvidia-smi mig -lgi
檢查是否已建立 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 | +-----------------------------------------------------------------------------+
後續步驟
- 進一步瞭解 GPU 平台。
- 為執行個體新增本機 SSD。如果您的應用程式需要高效能的儲存空間,本機 SSD 裝置和 GPU 是絕佳拍檔。
- 安裝 GPU 驅動程式。
- 如果您已啟用 NVIDIA RTX 虛擬工作站,請為虛擬工作站安裝驅動程式。
- 如要處理 GPU 主機維護作業,請參閱「處理 GPU 主機維護事件」。