Membuat MIG dengan slice TPU host tunggal

Dokumen ini menjelaskan cara membuat grup instance terkelola (MIG) yang membentuk slice TPU host tunggal. Slice TPU host tunggal dipetakan ke satu instance virtual machine (VM) TPU.

Anda juga dapat membuat slice TPU host tunggal sebagai instance TPU mandiri. Untuk mengetahui informasi selengkapnya, lihat Membuat instance VM TPU.

Sebelum memulai

  • Tinjau batasan untuk membuat MIG dengan instance TPU.
  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    gcloud

    1. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init
  • Tetapkan region dan zona default.
  • REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Prasyarat

Sebelum melanjutkan untuk membuat slice TPU host tunggal, Anda harus melakukan hal berikut:

  1. Pilih versi TPU: pilih versi TPU yang sesuai untuk workload Anda. Untuk mengetahui daftar versi TPU berdasarkan jenis workload, lihat Versi TPU yang direkomendasikan berdasarkan jenis workload.

  2. Pilih opsi pemakaian TPU: pilih opsi pemakaian yang paling sesuai dengan workload, durasi, dan kebutuhan biaya Anda. Untuk mengetahui daftar ketersediaan opsi pemakaian berdasarkan versi TPU, lihat Opsi pemakaian TPU.

  3. Validasi ketersediaan TPU di lokasi pilihan Anda: TPU tersedia di region Google Cloud tertentu. Untuk menggunakan versi TPU, pastikan ketersediaannya di region pilihan Anda. Untuk mengetahui daftar lokasi TPU, lihat Ketersediaan TPU.

  4. Pastikan project Anda memiliki kuota TPU yang memadai: jika Anda membuat slice TPU single-host dengan VM on-demand, Flex-start VM, atau Spot VM, Anda harus memiliki kuota TPU yang memadai di region yang ingin Anda gunakan. Membuat slice TPU host tunggal yang menggunakan pemesanan TPU tidak memerlukan kuota TPU karena kuota digunakan saat pemesanan dibuat. Untuk mengetahui daftar nama kuota TPU, lihat Kuota TPU dan untuk mengetahui petunjuk cara melihat kuota, lihat Melihat dan mengelola kuota

  5. Pilih topologi: pilih topologi yang didukung untuk versi TPU yang dipilih. Untuk mengetahui daftar topologi yang tersedia untuk setiap versi TPU, lihat Topologi TPU.

Membuat MIG dengan beberapa slice TPU host tunggal

Untuk membuat beberapa VM TPU independen di MIG:

  1. Membuat template instance.
  2. Buat MIG.

Membuat template instance

Konfigurasi template instance bervariasi berdasarkan opsi pemakaian yang Anda gunakan: on-demand, Spot, pemesanan, atau Flex-start. Untuk mengetahui informasi selengkapnya tentang opsi konsumsi, lihat Tentang model penyediaan VM.

Membuat template instance untuk VM TPU on-demand

Perintah berikut membuat template instance yang menggunakan opsi konsumsi 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",
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
          }
        }
      ],
      "scheduling": {
        "onHostMaintenance": "TERMINATE"
      },
      "networkInterfaces": [
        {
          "network": "global/networks/default"
        }
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • IMAGE_FAMILY: Kelompok OS image untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang OS image, lihat OS image.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, nilainya adalah ubuntu-os-accelerator-images.

Membuat template instance untuk Spot VM TPU

Perintah berikut membuat template instance yang menggunakan opsi konsumsi 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 Google Cloud Anda.
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • IMAGE_FAMILY: Kelompok OS image untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang OS image, lihat OS image.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, nilainya adalah ubuntu-os-accelerator-images.

Membuat template instance untuk VM TPU yang terikat reservasi

Perintah berikut membuat template instance yang menggunakan opsi pemakaian reservation-bound:

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 Google Cloud Anda.
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • RESERVATION_NAME: Nama pemesanan tertentu yang ingin Anda gunakan. Untuk pemesanan mode Semua Kapasitas, Anda dapat menargetkan blok atau sub-blok dengan menentukan URL reservasi sebagai berikut:

    • Tentukan blok:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
      
    • Tentukan sub-blok:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
      
  • IMAGE_FAMILY: Kelompok OS image untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang OS image, lihat OS image.

  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, nilainya adalah ubuntu-os-accelerator-images.

Membuat template instance untuk VM TPU Flex-start

Perintah berikut membuat template instance yang menggunakan opsi pemakaian 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 Google Cloud Anda.
  • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU (misalnya, ct6e-standard-8t).
  • DURATION: Durasi operasi maksimum untuk VM TPU. Untuk REST, tentukan ini sebagai string yang berisi jumlah detik yang diikuti dengan "s" (misalnya, 3600s untuk 1 jam, atau 604800s untuk 7 hari).
  • IMAGE_FAMILY: Kelompok OS image untuk VM TPU. Jika Anda ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang OS image, lihat OS image.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, nilainya adalah ubuntu-os-accelerator-images.

Membuat MIG

Untuk membuat MIG zona yang berisi slice TPU host tunggal, gunakan perintah berikut:

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "MIG_NAME",
    "targetSize": MIG_SIZE,
    "instanceTemplate": "INSTANCE_TEMPLATE_URL"
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"

Ganti placeholder berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • MIG_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
  • ZONE: Zona untuk MIG Anda.

Untuk membuat MIG regional yang berisi slice TPU host tunggal, gunakan perintah berikut:

gcloud

gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --template=INSTANCE_TEMPLATE_URL \
    --region=REGION \
    --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,
    "instanceTemplate": "INSTANCE_TEMPLATE_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 Google Cloud Anda.
  • MIG_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
  • ZONE: Zona tempat Anda ingin menyediakan MIG.
  • REGION: Region tempat Anda ingin MIG disediakan.

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.

gcloud

Buat VM dengan nama kustom menggunakan perintah create-instance dan tentukan flag --instance. Untuk membuat beberapa VM, ulangi perintah untuk setiap VM. Jika tidak, gunakan metode REST API untuk menentukan beberapa VM dalam satu permintaan.

  • Untuk MIG zona, gunakan perintah berikut:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • Untuk MIG regional, gunakan perintah berikut:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --region=REGION \
        --instance=INSTANCE_NAME
    

Ganti placeholder berikut:

  • MIG_NAME: Nama MIG Anda.
  • ZONE: Zona MIG.
  • REGION: Region MIG.
  • INSTANCE_NAME: Nama VM yang akan ditambahkan ke MIG yang ditentukan.

REST

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