Membuat MIG dengan slice Cloud TPU multi-host
Dokumen ini menjelaskan cara membuat grup instance terkelola (MIG) dengan slice TPU multi-host.
Prasyarat
Lengkapi prasyarat berikut:
- Buat project untuk TPU Anda seperti yang dijelaskan dalam Menyiapkan project untuk TPU.
- Tentukan persyaratan TPU Anda seperti yang dijelaskan dalam Merencanakan resource Anda.
Membuat MIG dengan slice TPU multi-host
- Buat template instance.
- Buat kebijakan workload.
- Buat MIG.
Membuat template instance
Perintah untuk membuat template instance bergantung pada opsi penggunaan yang Anda gunakan: sesuai permintaan, Spot, terikat reservasi, atau flex-start. Untuk mengetahui informasi selengkapnya tentang opsi penggunaan, lihat Merencanakan resource TPU Anda.
Membuat template instance untuk VM TPU sesuai permintaan
Perintah berikut membuat template instance menggunakan opsi penggunaan sesuai permintaan:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudINSTANCE_TEMPLATE_NAME: Nama template instance Anda.MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya,ct6e-standard-8t.IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag--image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, ini adalahubuntu-os-accelerator-images.
Membuat template instance untuk VM Spot TPU
Perintah berikut membuat template instance menggunakan opsi penggunaan Spot:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudINSTANCE_TEMPLATE_NAME: Nama template instance Anda.MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya,ct6e-standard-8t.IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag--image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, ini adalahubuntu-os-accelerator-images.
Membuat template instance untuk VM terikat reservasi TPU
Perintah berikut membuat template instance menggunakan opsi penggunaan terikat reservasi:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudINSTANCE_TEMPLATE_NAME: Nama template instance Anda.MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya,ct6e-standard-8t.RESERVATION_NAME: Nama reservasi tertentu yang akan digunakan.IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag--image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, ini adalahubuntu-os-accelerator-images.
Membuat template instance untuk VM Flex-start TPU
Perintah berikut membuat template instance menggunakan opsi penggunaan flex-start:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudINSTANCE_TEMPLATE_NAME: Nama template instance Anda.MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya,ct6e-standard-8t.DURATION: Durasi maksimum VM TPU dapat berjalan. Untuk REST, tentukan ini sebagai jumlah detik (misalnya,3600untuk 1 jam, atau604800untuk 7 hari).IMAGE_FAMILY: Keluarga image OS untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag--image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, ini adalahubuntu-os-accelerator-images.
Membuat kebijakan workload
Anda harus membuat kebijakan workload dengan parameter accelerator-topology (misalnya, 4x4, 8x8, atau 4x4x4). Topologi akselerator mengonfigurasi MIG untuk memperlakukan instance sebagai satu slice yang saling terhubung.
Perintah berikut membuat kebijakan workload untuk topologi tertentu:
gcloud
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=TOPOLOGY \
--region=REGION
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "WORKLOAD_POLICY_NAME",
"workloadPolicy": {
"type": "HIGH_THROUGHPUT",
"acceleratorTopology": "TOPOLOGY"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudWORKLOAD_POLICY_NAME: Nama kebijakan workload Anda.TOPOLOGY: Topologi VM TPU, misalnya,4x4x8. Untuk mengetahui informasi selengkapnya tentang topologi untuk setiap versi TPU, lihat Arsitektur sistem.REGION: Region untuk kebijakan workload Anda.
Membuat MIG
Untuk membuat MIG zona yang berisi slice TPU multi-host, gunakan perintah berikut:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
--default-action-on-vm-failure=do-nothing \
--workload-policy=WORKLOAD_POLICY_URL
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"targetSizePolicy": {
"mode": "BULK"
},
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "DO_NOTHING"
},
"resourcePolicies": {
"workloadPolicy": "WORKLOAD_POLICY_URL"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudMIG_NAME: Nama MIG Anda.MIG_SIZE: Ukuran MIG.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
ZONE: Zona untuk MIG Anda.WORKLOAD_POLICY_URL: URL kebijakan workload yang ingin Anda gunakan untuk membuat instance di MIG. Misalnya:projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.
Untuk membuat MIG regional yang berisi slice TPU multi-host, gunakan perintah berikut:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--region=REGION \
--default-action-on-vm-failure=do-nothing \
--workload-policy=WORKLOAD_POLICY_URL \
--target-distribution-shape=any-single-zone \
--instance-redistribution-type=none
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"targetSizePolicy": {
"mode": "BULK"
},
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "DO_NOTHING"
},
"resourcePolicies": {
"workloadPolicy": "WORKLOAD_POLICY_URL"
},
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
Ganti placeholder berikut:
PROJECT_ID: ID project Anda. Google CloudMIG_NAME: Nama MIG Anda.MIG_SIZE: Jumlah VM di MIG.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
ZONE: Zona untuk MIG Anda.REGION: Region untuk MIG Anda.WORKLOAD_POLICY_URL: URL kebijakan workload yang ingin Anda gunakan untuk membuat instance di MIG. Misalnya:projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.
Membuat VM dengan nama kustom di MIG
Anda dapat membuat VM di MIG dengan menentukan nama kustom untuk setiap VM. Hal ini berguna untuk proses debug dan memastikan instance dibuat dalam urutan tertentu.
MIG yang berisi slice TPU multi-host menggunakan mode massal kebijakan ukuran target. Saat membuat VM dengan nama kustom di MIG tersebut, hal berikut berlaku:
Anda harus memverifikasi terlebih dahulu bahwa MIG tidak memiliki VM di dalamnya. Jika MIG memiliki VM, Anda harus mengubah ukuran MIG ke ukuran target
0atau membuat MIG lain dengan ukuran target0.Anda hanya dapat menggunakan REST API untuk membuat VM dengan nama kustom.
Buat VM dengan nama kustom menggunakan salah satu metode REST API berikut:
Untuk MIG zona, gunakan
instanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }Untuk MIG regional, gunakan
regionInstanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
Ganti placeholder berikut:
PROJECT_ID: ID project tempat MIG berada.ZONE: Zona MIG.REGION: Region MIG.INSTANCE_NAME_1,2,..: Nama VM yang akan ditambahkan ke MIG yang ditentukan.
Langkah berikutnya
- Pelajari VM TPU dan MIG.
- Pelajari cara Membuat MIG dengan slice Cloud TPU single-host.
- Pelajari cara mengelola VM TPU.
- Pelajari TPU di GKE.
- Pelajari cara menjalankan workload ML di TPU, misalnya, Menyajikan Qwen2-72B-Instruct dengan vLLM di TPU.