本文說明如何使用 A3 Ultra 或 A4 機器系列建立附加 GPU 的執行個體。如要進一步瞭解如何建立附加 GPU 的執行個體,請參閱「建立附加 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
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.
-
事前準備
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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- 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.
必要的角色
如要取得建立執行個體所需的權限,請要求管理員為您授予專案的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含建立執行個體所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立執行個體,您必須具備下列權限:
-
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
磁碟
建立 A3 Ultra 或 A4 執行個體
您可以透過下列建立選項取得 A3 Ultra 或 A4 執行個體,每個選項都有不同的建立程序、資源可用性和價格。根據工作負載,找出要使用的選項。
如果您需要執行需要極低延遲時間的大型模型訓練和推論等長時間執行的 AI 和 ML 工作負載,建議您建立可使用叢集總監提供的功能和服務的 VM 或叢集。您可以使用 Cluster Director 預留密集分配的機器,以便提供拓樸圖相關的排程,並強化對這些預留容量的監控和維護。如要進一步瞭解叢集管理器,請參閱 AI 超級電腦說明文件中的「叢集管理器」。
如需建立 A3 Ultra 或 A4 執行個體的操作說明,請參閱 AI Hypercomputer 說明文件中的「建立 VM 和叢集的總覽」。
如果您需要執行較低優先順序的 AI 和 ML 工作負載,且可容許服務中斷,則可使用 Spot VM 享有大幅折扣。雖然您可以視需要建立及刪除 Spot VM,但 Spot VM 是有限資源,不一定隨時可用,而且 Compute Engine 可能隨時會搶佔 (自動停止或刪除) Spot VM。如要進一步瞭解 Spot VM,請參閱「Spot VM」。
如要瞭解如何使用 Spot VM 建立 A3 Ultra 或 A4 執行個體,請參閱本文的「使用 Spot VM 建立 A3 Ultra 或 A4 執行個體」一節。
使用 Spot VM 建立 A3 Ultra 或 A4 執行個體
如要使用 Spot VM 建立 A3 Ultra 或 A4 執行個體,請完成下列各節中的步驟:
建立虛擬私有雲網路
根據您要使用的機器類型和機器類型中的網路介面數量,您需要建立虛擬私有雲 (VPC) 網路,如下所示:
機型 | 實體 NIC 數量* | 網路介面† | 要建立的虛擬私有雲網路數 |
---|---|---|---|
a4-highgpu-8g |
10 |
|
3 |
a3-ultragpu-8g |
10 |
|
3 |
您可以按照操作說明手動設定網路,也可以使用提供的指令碼自動設定。
操作說明
如要建立網路,請按照下列操作說明進行:
- 如要建立主機網路,請參閱「建立及管理虛擬私有雲網路」。
- 如要建立 GPU 網路,請參閱「為 RDMA NIC 建立虛擬私有雲網路」。
指令碼
如要建立網路,您可以使用下列指令碼。
#!/bin/bash # Create standard VPCs (network and subnets) for the gVNICs for N in $(seq 0 1); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --region=REGION \ --range=10.$N.0.0/16 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 done # Create SSH firewall rules gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=IP_RANGE # Assumes that an external IP is only created for vNIC 0 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=icmp \ --source-ranges=IP_RANGE # List and make sure network profiles exist gcloud compute network-profiles list # Create network for CX-7 gcloud compute networks create RDMA_NAME_PREFIX-mrdma \ --network-profile=ZONE-vpc-roce \ --subnet-mode custom # Create subnets. for N in $(seq 0 7); do gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \ --network=RDMA_NAME_PREFIX-mrdma \ --region=REGION \ --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs done
更改下列內容:
建立 Spot VM
如要建立 Spot VM,請使用下列任一方法:
主控台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
前往「Create an instance」(建立執行個體)
「Create an instance」畫面隨即顯示,並顯示「Machine configuration」窗格。
在「Machine configuration」窗格中,完成下列步驟:
- 指定執行個體的「名稱」。請參閱「資源命名慣例」。
- 選取要保留容量的「Region」(區域)和「Zone」(可用區)。請參閱可用的GPU 區域和可用區清單。
- 按一下「GPU」分頁標籤,然後完成下列步驟:
- 在「GPU type」清單中,選取 GPU 類型。
- 針對 A4 執行個體,請選取
NVIDIA B200
- 針對 A3 Ultra 執行個體,請選取
NVIDIA H200 141GB
- 針對 A4 執行個體,請選取
- 在「Number of GPUs」(GPU 數量) 清單中,選取
8
。
- 在「GPU type」清單中,選取 GPU 類型。
在導覽選單中,按一下「OS 和儲存空間」。在隨即顯示的「OS and storage」窗格中,完成下列步驟:
- 按一下「變更」。「Boot disk configuration」窗格隨即開啟。
- 在「Public images」分頁中,選取建議的映像檔。如需建議的映像檔清單,請參閱「作業系統」。
- 如要確認開機磁碟選項,請按一下「選取」。
如要建立多 NIC 執行個體,請完成下列步驟。否則,如要建立單一 NIC 執行個體,請略過這些步驟。
在導覽選單中,按一下「Networking」。在隨即顯示的「Networking」窗格中,完成下列步驟:
在「Network interfaces」 專區中,完成下列步驟:
刪除預設網路介面。如要刪除介面,請按一下
「刪除」。按一下「新增網路介面」。使用這個選項,新增您在上一節建立的 gVNIC 和 RDMA 網路。新增網路時,請注意下列事項:
- 在「Network」(網路) 和「Subnetwork」(子網路) 清單中指定主機網路,並將「Network interface card」(網路介面卡) 清單設為 gVNIC。
- 在「Network」和「Sub-network」清單中指定 GPU 網路,然後將「Network interface card」清單設為這些網路的 MRDMA。
在導覽選單中,按一下「進階」。在隨即顯示的「進階」窗格中,完成下列步驟:
在「佈建模型」部分,在「VM 佈建模型」清單中選取「Spot」。
選用:如要指定 Compute Engine 在搶先取得執行個體時要採取的動作 (停止 (預設) 或刪除),請完成下列步驟:
- 展開「VM 佈建模式進階設定」部分。
- 在「On VM termination」清單中,選取所需選項。
如要建立並啟動執行個體,請按一下「建立」。
gcloud
如要建立執行個體,請使用 gcloud beta compute instances create
指令:
gcloud beta compute instance create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --provisioning-model=SPOT \ --instance-termination-action=TERMINATION_ACTION \ --zone=ZONE \ --boot-disk-type=hyperdisk-balanced \ --boot-disk-size=DISK_SIZE \ --scopes=cloud-platform \ --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \ --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \ --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address
更改下列內容:
INSTANCE_NAME
:執行個體的名稱。MACHINE_TYPE
:執行個體使用的機器類型,可為a3-ultragpu-8g
或a4-highgpu-8g
。IMAGE_FAMILY
:您要使用的 OS 映像檔的映像檔系列。如需選項,請參閱「作業系統詳細資訊」。IMAGE_PROJECT
:OS 映像檔的專案 ID。TERMINATION_ACTION
:選用:指定 Compute Engine 預取執行個體時要採取的動作,可選為STOP
(預設行為) 或DELETE
。ZONE
:您要建立執行個體的區域。如需選項,請參閱「GPU 地區和區域」。DISK_SIZE
:開機磁碟的大小,單位為 GB。
REST
如要建立例項,請向 instances.insert
方法提出 POST
要求,如下所示:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/ { { "machineType":"projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE", "name":"INSTANCE_NAME", "disks":[ { "boot":true, "initializeParams":{ "diskSizeGb":"DISK_SIZE", "diskType":"hyperdisk-balanced", "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" }, "mode":"READ_WRITE", "type":"PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "name": "external-nat", "type": "ONE_TO_ONE_NAT" } ], "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0", "nicType": "GVNIC", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0" }, { "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1", "nicType": "GVNIC", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6" }, { "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma", "nicType": "MRDMA", "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7" } ], "scheduling":{ "provisioningModel":"SPOT", "instanceTerminationAction":"TERMINATION_ACTION" } } }
更改下列內容:
PROJECT_ID
:您要在其中建立執行個體的專案 ID。ZONE
:您要建立執行個體的區域。如需選項,請參閱「GPU 區域和可用區」。MACHINE_TYPE
:執行個體使用的機器類型,可為a3-ultragpu-8g
或a4-highgpu-8g
。INSTANCE_NAME
:執行個體的名稱。DISK_SIZE
:開機磁碟的大小,單位為 GB。IMAGE_PROJECT
:OS 映像檔的專案 ID。IMAGE_FAMILY
:您要使用的 OS 映像檔的映像檔系列。如需選項,請參閱「作業系統詳細資訊」。TERMINATION_ACTION
:選用:指定 Compute Engine 預取執行個體時要採取的動作,可選為STOP
(預設行為) 或DELETE
。
準備 Spot VM 並連接 GPU 以供使用
如要準備附加 GPU 的 Spot VM,請完成下列步驟:
- 如要讓執行個體使用已連結的 GPU,執行個體需要 GPU 驅動程式。除非您指定的映像檔已包含必要的 GPU 驅動程式,否則請按照安裝 GPU 驅動程式中的步驟操作。
- 如要準備 Spot VM 供使用,請完成下列步驟:
- 如要瞭解如何確保 Spot VM 能承受預取用,請參閱「管理 Spot VM 的預取用」。
- 選用:瞭解使用 Spot VM 的最佳做法。
後續步驟
- 如要監控 GPU 效能,請參閱「監控 GPU 效能」一文。
- 如要排解 GPU 執行個體的問題,請參閱「排解 GPU VM 問題」。
- 進一步瞭解 GPU 平台。