如要進一步瞭解大量建立功能,請參閱「關於大量建立 VM」。如要進一步瞭解如何建立附加 GPU 的 VM,請參閱「建立附加 GPU 的執行個體總覽」。
事前準備
- 如要查看建立附加 GPU 的執行個體時的限制和額外必要步驟,例如選取 OS 映像檔和檢查 GPU 配額,請參閱「建立附加 GPU 的執行個體總覽」。
- 如要查看大量建立 VM 的限制,請參閱「關於大量建立 VM」。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
gcloud
-
安裝 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 的 VM 時,您可以選擇在區域 (例如 us-central1) 或特定可用區 (例如 us-central1-a) 建立 VM。
如果您選擇指定區域,Compute Engine 會將 VM 放置在該區域內支援 GPU 的任何可用區。
機型
您可以使用加速器最佳化或 N1 一般用途機型,大量建立 GPU VM。
Compute Engine 提供不同機器類型,支援各種工作負載。
部分機器類型支援 NVIDIA RTX 虛擬工作站 (vWS)。建立使用 NVIDIA RTX 虛擬工作站的執行個體時,Compute Engine 會自動新增 vWS 授權。如要瞭解虛擬工作站的定價,請參閱 GPU 定價頁面。
| GPU 機型 | |||
|---|---|---|---|
| AI 和機器學習工作負載 | 圖像和視覺化 | 其他 GPU 工作負載 | |
|
加速器最佳化 A 系列機器類型專為高效能運算 (HPC)、人工智慧 (AI) 和機器學習 (ML) 工作負載設計。 新一代 A 系列適合用於預先訓練及微調基礎模型,這類模型涉及大型加速器叢集,而 A2 系列則可用於訓練較小的模型和單一主機推論。 對於這些機型,系統會自動將 GPU 型號附加至執行個體。 |
加速器最佳化 G 系列機型專為 NVIDIA Omniverse 模擬工作負載、需要大量繪圖資源的應用程式、影片轉碼和虛擬桌面等工作負載設計。這些機型支援 NVIDIA RTX 虛擬工作站 (vWS)。 G 系列也可用於訓練較小的模型,以及單一主機推論。 對於這些機型,系統會自動將 GPU 型號附加至執行個體。 |
對於 N1 一般用途機型 (N1 共用核心除外,即 |
|
|
下列 GPU 型號可附加至 N1 一般用途機型:
|
||
建立 A4X、A4 和 A3 Ultra 群組
如要為 A4X、A4 和 A3 Ultra 機器系列大量建立執行個體,請參閱 AI Hypercomputer 說明文件中的「部署方案總覽」。
建立 A3、A2、G4 和 G2 VM 群組
本節說明如何使用 Google Cloud CLI 或 REST,為 A3 High、A3 Mega、A3 Edge、A2 Standard、A2 Ultra、G4 和 G2 機器系列大量建立執行個體。
gcloud
如要建立 VM 群組,請使用 gcloud compute instances bulk create 指令。如要進一步瞭解參數和這項指令的使用方式,請參閱「大量建立 VM」。
範例
這個範例會使用下列規格,建立兩個已連接 GPU 的 VM:
- VM 名稱:
my-test-vm-1、my-test-vm-2 - 每部 VM 都附加兩個 GPU,方法是使用適當的加速器最佳化機型
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--region=REGION \
--count=2 \
--machine-type=MACHINE_TYPE \
--boot-disk-size=200 \
--image=IMAGE \
--image-project=IMAGE_PROJECT \
--on-host-maintenance=TERMINATE
更改下列內容:
REGION:VM 的區域。這個區域必須支援所選加速器最佳化機型。MACHINE_TYPE:您選取的機型。選擇下列其中一個選項:- A3 High 機型
- A3 Mega 機型
- A3 Edge 機型
- A2 標準機型
- A2 Ultra 機型
- G4 機型
- G2 機型
G2 機型也支援自訂記憶體。記憶體必須是 1024 MB 的倍數,且在支援的記憶體範圍內。舉例來說,如要建立具備 4 個 vCPU 和 19 GB 記憶體的 VM,請指定
--machine-type=g2-custom-4-19456。
IMAGE:支援 GPU 的作業系統映像檔。如要使用映像檔系列中的最新映像檔,請將
--image旗標替換為--image-family旗標,並將其值設為支援 GPU 的映像檔系列。例如:--image-family=rocky-linux-8-optimized-gcp。您也可以指定自訂映像檔或深度學習 VM 映像檔。
IMAGE_PROJECT:OS 映像檔所屬的 Compute Engine 映像檔專案。如果使用自訂映像檔或 Deep Learning VM Images,請指定這些映像檔所屬的專案。VWS_ACCELERATOR_COUNT:所需的虛擬 GPU 數量。
如果成功,輸出內容會與下列內容相似:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
選用旗標
如要進一步設定執行個體,以滿足工作負載或作業系統需求,請在執行 gcloud compute instances bulk create 指令時加入一或多個下列旗標。
| 功能 | 說明 |
|---|---|
| 佈建模型 | 為執行個體設定佈建模式。您可以指定 STANDARD 或 SPOT。如未指定佈建模型,Compute Engine 會將值設為 STANDARD。詳情請參閱「Compute Engine 執行個體佈建模式」。--provisioning-model=PROVISIONING_MODEL |
| 虛擬工作站 | 指定用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。
這項功能僅支援 G4 和 G2 執行個體。--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT 更改下列內容:
|
| 本機 SSD | 將一或多個本機 SSD 連接至執行個體。本機 SSD 可做為快速暫存磁碟,或將資料饋送至 GPU,同時避免 I/O 瓶頸。
--local-ssd=interface=nvme \
--local-ssd=interface=nvme \
--local-ssd=interface=nvme ... |
| 網路介面 | 將多個網路介面附加至執行個體。對於 g4-standard-384 執行個體,最多可附加兩個網路介面。您可以使用這個旗標建立具有雙重網路介面 (2 個 200 Gbps) 的執行個體。每個網路介面都必須位於不重複的虛擬私有雲網路。--network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \ --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC 只有 更改下列內容:
|
| 配置政策 | 控制執行個體在可用區中的位置。您可以指定精簡政策,盡可能縮短 G2 執行個體的網路延遲時間,或指定分散政策,提高 G4 或 G2 執行個體對可用區特定中斷情形的復原能力。--resource-policies=POLICY_NAME 將 |
REST
使用 instances.bulkInsert 方法和必要參數,在可用區中建立多個 VM。如要進一步瞭解參數和如何使用這項指令,請參閱「大量建立 VM」。
範例
這個範例會使用下列規格,建立兩個已連接 GPU 的 VM:
- VM 名稱:
my-test-vm-1、my-test-vm-2 每部 VM 均連接兩個 GPU,並使用適當的加速器最佳化機型指定
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":MACHINE_TYPE, "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":SOURCE_IMAGE_URI }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", ["automaticRestart":true] } } }
更改下列內容:
PROJECT_ID:專案 IDREGION:VM 的區域。這個區域必須支援您選取的 GPU 模型。MACHINE_TYPE:您選取的機器類型。選擇下列其中一個選項:- A3 High 機型
- A3 Mega 機型
- A3 Edge 機型
- A2 Standard 機型
- A2 Ultra 機型
- G4 機型
- G2 機型。
G2 機型也支援自訂記憶體。記憶體必須是 1024 MB 的倍數,且在支援的記憶體範圍內。舉例來說,如果執行個體有 4 個 vCPU 和 19 GB 的記憶體,機型名稱就會是
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。如要進一步瞭解何時該使用映像檔系列,請參閱「映像檔系列最佳做法」。
- 特定圖片:
選填欄位
如要進一步設定執行個體,以滿足工作負載或作業系統需求,請在執行 instances.bulkInsert 方法時,加入下列一或多個旗標。
| 功能 | 說明 |
|---|---|
| 佈建模型 | 如要降低成本,請在要求中的 scheduling 物件中新增 "provisioningModel": "PROVISIONING_MODEL" 欄位,指定其他佈建模型。詳情請參閱「Compute Engine 執行個體佈建模式」。
"scheduling":
{
"onHostMaintenance": "TERMINATE",
"provisioningModel": "PROVISIONING_MODEL"
}
將
|
| 虛擬工作站 | 指定用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS)。
這項功能僅支援 G4 和 G2 執行個體。
"guestAccelerators":
[
{
"acceleratorCount": VWS_ACCELERATOR_COUNT,
"acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
}
]
更改下列內容:
|
| 本機 SSD | 將一或多個本機 SSD 連接至執行個體。本機 SSD 可做為快速暫存磁碟,或將資料饋送至 GPU,同時避免 I/O 瓶頸。
{
"type": "SCRATCH",
"autoDelete": true,
"initializeParams": {
"diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
}
}
|
| 網路介面 | 將多個網路介面附加至執行個體。如果是 g4-standard-384 執行個體,最多可以附加兩個網路介面。這會建立具備雙網路介面 (2 個 200 Gbps) 的執行個體。每個網路介面都必須位於專屬的 VPC 網路中。
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
"nicType": "GVNIC"
},
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
"nicType": "GVNIC"
}
]
只有 更改下列內容:
|
| 配置政策 | 控制執行個體在可用區中的位置。您可以指定緊湊政策,盡量減少 G2 執行個體之間的網路延遲時間,也可以指定分散政策,提升 G4 或 G2 執行個體在區域特定中斷事件中的復原能力。
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
更改下列內容:
|
建立 N1 一般用途 VM 群組
您可以使用 Google Cloud CLI 或 REST 建立 VM 群組,並附加 GPU。
本節說明如何使用下列 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
如要建立 VM 群組,請使用 gcloud compute instances bulk create 指令。如要進一步瞭解參數和這項指令的使用方式,請參閱「大量建立 VM」。
範例
下列範例會使用下列規格建立兩個附加 GPU 的 VM:
- VM 名稱:
my-test-vm-1、my-test-vm-2 - 在支援 GPU 的
us-central1任何可用區中建立的 VM - 每個 VM 都連接兩個 T4 GPU,並使用加速器類型和加速器數量標記指定
- 每個 VM 都已安裝 GPU 驅動程式
- 每個 VM 都使用深度學習 VM 映像檔
pytorch-latest-gpu-v20211028-debian-10
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--count=2 \
--region=us-central1 \
--machine-type=n1-standard-2 \
--accelerator type=nvidia-tesla-t4,count=2 \
--boot-disk-size=200 \
--metadata="install-nvidia-driver=True" \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--image=pytorch-latest-gpu-v20211028-debian-10 \
--image-project=deeplearning-platform-release \
--on-host-maintenance=TERMINATE --restart-on-failure
如果成功,輸出結果會與下列內容相似:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
使用 instances.bulkInsert 方法和必要參數,在可用區中建立多個 VM。如要進一步瞭解參數和如何使用這項指令,請參閱「大量建立 VM」。
範例
下列範例會使用下列規格建立兩個附加 GPU 的 VM:
- VM 名稱:
my-test-vm-1、my-test-vm-2 - 在支援 GPU 的
us-central1任何可用區中建立的 VM - 每個 VM 都連接兩個 T4 GPU,並使用加速器類型和加速器數量標記指定
- 每個 VM 都已安裝 GPU 驅動程式
- 每個 VM 都使用深度學習 VM 映像檔
pytorch-latest-gpu-v20211028-debian-10
將 PROJECT_ID 替換為專案 ID。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/instances/bulkInsert
{
"namePattern":"my-test-vm-#",
"count":"2",
"instanceProperties": {
"machineType":"n1-standard-2",
"disks":[
{
"type":"PERSISTENT",
"initializeParams":{
"diskSizeGb":"200",
"sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
},
"boot":true
}
],
"name": "default",
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/default"
}
],
"guestAccelerators":
[
{
"acceleratorCount": 2,
"acceleratorType": "nvidia-tesla-t4"
}
],
"scheduling":{
"onHostMaintenance":"TERMINATE",
"automaticRestart":true
},
"metadata":{
"items":[
{
"key":"install-nvidia-driver",
"value":"True"
}
]
}
}
}
後續步驟
瞭解如何監控 GPU 效能。
瞭解如何使用更高的網路頻寬。
瞭解如何處理 GPU 主機維護事件。
- 瞭解如何查看 VM 和 GPU 的實際和預估用量。