Meminta TPU dengan pemesanan untuk masa mendatang dalam mode kalender

Panduan ini menunjukkan cara mengoptimalkan penyediaan Tensor Processing Unit (TPU) menggunakan pemesanan untuk masa mendatang dalam mode kalender. Pemesanan untuk masa mendatang dalam mode kalender adalah penasihat dan pemberi rekomendasi kalender bawaan yang dapat membantu Anda menemukan kapasitas TPU dan merencanakan ke depan. Anda dapat meminta kapasitas untuk waktu mulai dan durasi yang ditentukan, antara 1 dan 90 hari, dan pemberi rekomendasi akan memberikan tanggal yang disarankan.

Panduan ini ditujukan untuk Engineer Machine Learning (ML), Admin dan operator platform, serta Spesialis Data dan AI yang tertarik menggunakan kemampuan orkestrasi container Kubernetes untuk menjalankan workload batch. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE umum.

Untuk mengetahui informasi selengkapnya, lihat Tentang pemesanan untuk masa mendatang dalam mode kalender.

Kasus penggunaan

Pemesanan untuk masa mendatang dalam mode kalender berfungsi paling baik untuk workload dengan permintaan terjadwal, jangka pendek, dan permintaan tinggi, seperti pelatihan, atau model inferensi batch yang memerlukan ketersediaan tinggi pada waktu mulai yang diminta.

Jika workload Anda memerlukan resource yang disediakan secara dinamis sesuai kebutuhan, hingga 7 hari tanpa pemesanan jangka panjang atau pengelolaan kuota yang kompleks, pertimbangkan untuk menggunakan opsi penggunaan flex-start. Untuk mengetahui informasi selengkapnya, lihat Tentang penyediaan GPU dan TPU dengan flex-start.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Untuk menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Meminta pemesanan untuk masa mendatang dalam mode kalender untuk TPU

Proses untuk meminta TPU dengan pemesanan untuk masa mendatang dalam mode kalender melibatkan langkah-langkah berikut:

  1. Pastikan Anda memiliki kuota yang cukup untuk resource apa pun yang bukan bagian dari pemesanan saat VM dibuat, seperti disk atau alamat IP. Permintaan pemesanan untuk masa mendatang dalam mode kalender tidak memerlukan kuota Compute Engine.
  2. Selesaikan langkah-langkah dalam membuat permintaan dalam mode kalender. Langkah-langkah ini mencakup hal berikut:
    1. Melihat ketersediaan TPU untuk masa mendatang.
    2. Membuat dan mengirimkan permintaan pemesanan untuk masa mendatang dalam mode kalender untuk TPU.
    3. Menunggu untuk menyetujui permintaan Anda. Google Cloud
  3. Membuat node pool TPU yang menggunakan pemesanan Anda.

Membuat node pool

Bagian ini hanya berlaku untuk cluster Standard, karena mode Autopilot otomatis membuat node berdasarkan workload.

Anda dapat menggunakan pemesanan saat membuat node pool slice TPU host tunggal atau multi-host.

Membuat node pool slice TPU host tunggal

Anda dapat membuat node pool slice TPU host tunggal menggunakan Google Cloud CLI.

gcloud container node-pools create NODE_POOL_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --cluster=CLUSTER_NAME \
    --node-locations=NODE_ZONES \
    --machine-type=MACHINE_TYPE \
    --reservation-affinity=specific \ This is required
    --reservation=RESERVATION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool baru.
  • CONTROL_PLANE_LOCATION: nama zona berdasarkan versi TPU yang ingin Anda gunakan. Untuk mengidentifikasi lokasi yang tersedia, lihat Ketersediaan TPU di GKE.
  • CLUSTER_NAME: nama cluster.
  • NODE_ZONES: daftar yang dipisahkan koma untuk satu atau beberapa zona tempat GKE membuat node pool.
  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk node. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang kompatibel dengan TPU, gunakan tabel di Memilih versi TPU.
  • RESERVATION: nama pemesanan kalender yang akan digunakan.

Untuk daftar lengkap semua flag yang dapat Anda tentukan, lihat referensi gcloud container clusters create.

Setelah membuat node pool dengan pemesanan kalender, Anda dapat men-deploy workload seperti node pool TPU lainnya. Penggunaan pemesanan untuk masa mendatang dalam mode kalender berfungsi dengan cara yang sama seperti jenis pemesanan lainnya. Untuk mengetahui informasi selengkapnya, lihat Menggunakan resource zona yang dipesan.

Membuat node pool slice TPU multi-host

Langkah-langkah untuk membuat node pool slice TPU multi-host berbeda-beda, bergantung pada apakah Anda menggunakan Ironwood (TPU7x) atau versi TPU yang lebih lama.

Ironwood (TPU7x)

Anda dapat membuat node pool slice TPU multi-host dalam versi Ironwood (TPU7x) menggunakan Google Cloud CLI atau Terraform:

gcloud

Untuk membuat node pool slice TPU multi-host dengan Ironwood (TPU7x), Anda harus membuat kebijakan workload terlebih dahulu.

  1. Buat kebijakan workload:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=HIGH_THROUGHPUT \
        --accelerator-topology=TPU_TOPOLOGY \
        --project=PROJECT_ID \
        --region=REGION
    

    Ganti kode berikut:

    • WORKLOAD_POLICY_NAME: nama untuk kebijakan workload Anda.
    • TPU_TOPOLOGY: topologi TPU Ironwood (TPU7x). Misalnya, 2x2x2. Untuk melihat semua topologi Ironwood (TPU7x) yang didukung, lihat bagian topologi.
    • PROJECT_ID: project ID Anda Google Cloud .
    • REGION: region untuk kebijakan workload. Kebijakan workload adalah resource regional dan dapat digunakan kembali di seluruh node pool yang memiliki topologi yang sama.
  2. Buat node pool dengan kebijakan workload:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=us-central1 \
        --node-locations=us-central1-c \
        --machine-type=tpu7x-standard-4t \
        --reservation-affinity=specific \
        --reservation=FUTURE_RESERVATION_NAME \
        --placement-policy=WORKLOAD_POLICY \
        --consolidation-delay=CONSOLIDATION_DELAY
    

    Ganti kode berikut:

    • NODE_POOL_NAME: nama node pool baru.
    • WORKLOAD_POLICY: nama kebijakan workload yang Anda buat.
    • FUTURE_RESERVATION_NAME: nama pemesanan untuk masa mendatang Anda.

    Perintah ini akan membuat node pool bernama NODE_POOL_NAME dengan karakteristik berikut:

    • --machine-type=tpu7x-standard-4t menentukan jenis mesin Ironwood (TPU7x) .

Terraform

  1. Pastikan Anda menggunakan penyedia versi 4.84.0 atau yang lebih baru.google
  2. Buat kebijakan workload:

    resource "google_compute_resource_policy" {
      name   = "WORKLOAD_POLICY_NAME"
      region = CLUSTER_LOCATION
      workload_policy {
        type = "HIGH_THROUGHPUT"
        accelerator_topology = "TPU_TOPOLOGY"
      }
    }
    

    Ganti kode berikut:

    • WORKLOAD_POLICY_NAME: nama untuk kebijakan workload Anda.
    • CLUSTER_LOCATION: lokasi Compute untuk cluster. Sebaiknya Anda memiliki cluster regional untuk keandalan panel kontrol Kubernetes yang lebih tinggi. Anda juga dapat menggunakan cluster zona. Untuk mempelajari lebih lanjut, silakan membaca Memilih topologi dan versi TPU.
    • TPU_TOPOLOGY: topologi TPU Ironwood (TPU7x). Misalnya, 2x2x2. Untuk melihat semua topologi Ironwood (TPU7x) yang didukung, lihat Merencanakan TPU.

    Untuk mengetahui informasi selengkapnya tentang referensi google_compute_resource_policy, lihat Penyedia Terraform.

  3. Dalam konfigurasi Terraform, tambahkan blok berikut:

    resource "google_container_node_pool" "NODE_POOL_RESOURCE_NAME" {
      provider           = google
      project            = PROJECT_ID
      cluster            = CLUSTER_NAME
      name               = POOL_NAME
      location           = CLUSTER_LOCATION
      node_locations     = [NODE_ZONES]
      initial_node_count = NUM_NODES
    
      autoscaling {
        max_node_count = MAX_NODES
        location_policy      = "ANY"
      }
      node_config {
        machine_type = MACHINE_TYPE
        reservation_affinity {
          consume_reservation_type = "SPECIFIC_RESERVATION"
          key = "compute.googleapis.com/reservation-name"
          values = [RESERVATION_LABEL_VALUES]
        }
        flex_start = false
      }
    
      placement_policy {
        policy_name = WORKLOAD_POLICY_NAME
      }
    }
    

    Ganti kode berikut:

    • NODE_POOL_RESOURCE_NAME: nama resource node pool di template Terraform.
    • PROJECT_ID: project ID Anda.
    • CLUSTER_NAME: nama cluster yang ada tempat node pool akan ditambahkan.
    • POOL_NAME: nama node pool yang akan dibuat.
    • NODE_ZONES: daftar yang dipisahkan koma untuk satu atau beberapa zona tempat GKE membuat node pool.

      Opsional: gunakan zona AI, seperti us-central1-ai1a. Zona AI adalah lokasi khusus yang dioptimalkan untuk workload AI/ML dalam Google Cloud region.

    • NUM_NODES: jumlah node dalam node pool. Nilainya harus nol atau hasil kali jumlah TPU chip yang dibagi empat, karena dalam slice TPU multi-host, setiap TPU node memiliki empat chip. Misalnya, jika TPU_TOPOLOGY adalah 4x8, maka ada 32 chip, yang berarti NUM_NODES harus ada 8. Untuk mempelajari topologi TPU lebih lanjut, gunakan tabel di Memilih versi TPU.
    • TPU_TOPOLOGY: ini menunjukkan topologi fisik yang dipilih untuk slice TPU. Format topologi bergantung pada versi TPU yang Anda gunakan. Untuk mempelajari topologi TPU lebih lanjut, gunakan tabel di Memilih topologi.

    Secara opsional, Anda juga dapat menggunakan variabel berikut:

    • RESERVATION_NAME: jika Anda menggunakan pemesanan TPU, berikan daftar label resource pemesanan yang akan digunakan saat membuat node pool. Untuk mempelajari lebih lanjut cara mengisi theRESERVATION_LABEL_VALUES di kolom reservation_affinity silakan melihat Penyedia Terraform.
    • autoscaling: membuat node pool dengan penskalaan otomatis yang diaktifkan. Saat GKE menskalakan node pool slice TPU multi-host, GKE secara atomik akan meningkatkan skala node pool dari nol hingga ukuran maksimum.
      • MAX_NODES: ukuran maksimum node pool. Nilai ini harus sama dengan hasil kali nilai yang ditentukan dalam TPU_TOPOLOGY ({A}x{B}x{C}) dibagi dengan jumlah chip di setiap VM. Misalnya, jika TPU_TOPOLOGY adalah 2x2x2, hasilnya adalah 8. Karena setiap VM di tpu7x-standard-4t memiliki 4 chip, jumlah node adalah 2.
    • spot: node pool yang akan menggunakan Spot VM untuk node slice TPU. Setelan ini tidak dapat diubah setelah node pool dibuat. Untuk mengetahui informasi selengkapnya, silakan melihat Spot VM.
    • flex_start: node pool yang akan menggunakan flex-start opsi penggunaan. Setelan ini tidak dapat ditetapkan ke true jika spot diaktifkan.

Versi TPU lainnya

Anda dapat membuat node pool slice TPU multi-host dalam versi v3, v4, v5p, v5e, dan Trillium (v6e) menggunakan Google Cloud CLI, Terraform, atau konsol Google Cloud .

gcloud

  gcloud container node-pools create NODE_POOL_NAME \
      --cluster=CLUSTER_NAME \
      --location=CONTROL_PLANE_LOCATION \
      --node-locations=NODE_ZONES \
      --machine-type=MACHINE_TYPE \
      --tpu-topology=TPU_TOPOLOGY \
      --reservation-affinity=specific \
      --reservation=FUTURE_RESERVATION_NAME

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster.
  • CONTROL_PLANE_LOCATION: nama zona berdasarkan versi TPU yang ingin Anda gunakan. Untuk mengidentifikasi lokasi yang tersedia, lihat Ketersediaan TPU di GKE.
  • NODE_ZONES: daftar yang dipisahkan koma untuk satu atau beberapa zona tempat GKE membuat node pool.

    Opsional: gunakan zona AI, seperti us-central1-ai1a. Zona AI adalah lokasi khusus yang dioptimalkan untuk workload AI/ML dalam Google Cloud region.

  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk node. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang kompatibel dengan TPU, gunakan tabel di Memilih versi TPU.
  • TPU_TOPOLOGY: topologi TPU. Misalnya, 2x2x2. Untuk melihat semua topologi TPU yang didukung, lihat bagian topologi.
  • FUTURE_RESERVATION_NAME: nama pemesanan untuk masa mendatang Anda.
  • CONSOLIDATION_DELAY: opsional. Durasi yang ditunggu Autoscaler Cluster sebelum dapat menurunkan skala node yang kurang dimanfaatkan. Gunakan setelan ini untuk menunda penurunan skala dan menyimpan node pool untuk digunakan kembali oleh Pod lain. Angka yang Anda masukkan harus diakhiri dengan s. Misalnya, untuk menentukan satu jam, masukkan 3600s. Tersedia di GKE versi 1.34.1-gke.2364000 dan yang lebih baru.

Terraform

  1. Pastikan Anda menggunakan penyedia versi 4.84.0 atau yang lebih baru.google
  2. Tambahkan blok berikut ke konfigurasi Terraform Anda:

    resource "google_container_node_pool" "NODE_POOL_RESOURCE_NAME" {
      provider           = google
      project            = PROJECT_ID
      cluster            = CLUSTER_NAME
      name               = POOL_NAME
      location           = CLUSTER_LOCATION
      node_locations     = [NODE_ZONES]
      initial_node_count = NUM_NODES
    
      autoscaling {
        max_node_count = MAX_NODES
        location_policy      = "ANY"
      }
      node_config {
        machine_type = MACHINE_TYPE
        reservation_affinity {
          consume_reservation_type = "SPECIFIC_RESERVATION"
          key = "compute.googleapis.com/reservation-name"
          values = [RESERVATION_LABEL_VALUES]
        }
        flex_start = false
      }
    
      placement_policy {
        type = "COMPACT"
        tpu_topology = TPU_TOPOLOGY
      }
    }
    

    Ganti kode berikut:

    • NODE_POOL_RESOURCE_NAME: nama resource node pool di template Terraform.
    • PROJECT_ID: project ID Anda.
    • CLUSTER_NAME: nama cluster yang ada tempat node pool akan ditambahkan.
    • POOL_NAME: nama node pool yang akan dibuat.
    • CLUSTER_LOCATION: lokasi Compute untuk cluster. Sebaiknya Anda memiliki cluster regional untuk keandalan panel kontrol Kubernetes yang lebih tinggi. Anda juga dapat menggunakan cluster zona. Untuk mempelajari lebih lanjut, silakan membaca Memilih topologi dan versi TPU.
    • NODE_ZONES: daftar yang dipisahkan koma untuk satu atau beberapa zona tempat GKE membuat node pool.

      Opsional: gunakan zona AI, seperti us-central1-ai1a. Zona AI adalah lokasi khusus yang dioptimalkan untuk workload AI/ML dalam Google Cloud region.

    • NUM_NODES: jumlah node dalam node pool. Nilainya harus nol atau hasil kali jumlah TPU chip yang dibagi empat, karena dalam slice TPU multi-host, setiap TPU node memiliki 4 chip. Misalnya, jika TPU_TOPOLOGY adalah 4x8, maka ada 32 chip, yang berarti NUM_NODES harus ada 8. Untuk mempelajari topologi TPU lebih lanjut, gunakan tabel di Memilih versi TPU.
    • TPU_TOPOLOGY: ini menunjukkan topologi fisik untuk slice TPU. Format topologi bergantung pada versi TPU yang Anda gunakan. Untuk mempelajari topologi TPU lebih lanjut, gunakan tabel di Memilih topologi.

    Secara opsional, Anda juga dapat menggunakan variabel berikut:

    • RESERVATION_NAME: jika Anda menggunakan pemesanan TPU, ini adalah daftar label resource pemesanan yang akan digunakan saat membuat node pool. Untuk mempelajari lebih lanjut cara mengisi theRESERVATION_LABEL_VALUES di kolom reservation_affinity silakan melihat Penyedia Terraform.
    • autoscaling: Membuat node pool dengan penskalaan otomatis yang diaktifkan. Saat GKE menskalakan node pool slice TPU multi-host, GKE secara atomik akan meningkatkan skala node pool dari nol hingga ukuran maksimum.
      • MAX_NODES: ini adalah ukuran maksimum node pool. Nilai ini harus sama dengan hasil kali nilai yang ditentukan dalam TPU_TOPOLOGY ({A}x{B}x{C}) dibagi dengan jumlah chip di setiap VM).
    • spot: memungkinkan node pool menggunakan Spot VM untuk node slice TPU. Nama ini tidak dapat diubah setelah pembuatan node pool. Untuk mengetahui informasi selengkapnya, silakan melihat Spot VM.
    • flex_start: Menetapkan node pool agar menggunakan flex-start opsi penggunaan. Tidak dapat ditetapkan ke true jika spot diaktifkan.

Konsol

Untuk membuat node pool dengan TPU:

  1. Buka halaman Google Kubernetes Engine di Google Cloud konsol.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik tab Nodes.

  4. Klik Create user-managed node pool.

  5. Di bagian Node pool details, centang kotak Specify node locations.

  6. Pilih nama zona berdasarkan versi TPU yang ingin Anda gunakan. Untuk mengidentifikasi lokasi yang tersedia, lihat Ketersediaan TPU di GKE.

  7. Dari panel navigasi, klik Node.

  8. Di bagian Konfigurasi Mesin, pilih TPU.

  9. Di menu drop-down Seri, pilih salah satu opsi berikut:

    • CT3: TPU v3, perangkat host tunggal
    • CT3P: TPU v3, slice pod multi-host
    • CT4P: TPU v4
    • CT5LP: TPU v5e
    • CT5P: TPU v5p
    • CT6E: TPU Trillium (v6e)
  10. Di menu drop-down Jenis mesin, pilih nama mesin yang akan digunakan untuk node. Gunakan tabel Memilih versi TPU untuk mempelajari cara menentukan jenis mesin dan topologi TPU yang membuat node pool slice TPU multi-host.

  11. Di menu drop-down Topologi TPU, pilih topologi fisik untuk slice TPU.

  12. Dalam dialog Perubahan yang diperlukan, klik Buat perubahan.

  13. Pastikan Jenis boot disk adalah Persistent disk standar atau Persistent disk SSD.

  14. Secara opsional, pilih kotak centang Aktifkan node di Spot VM agar dapat menggunakan Spot VM untuk node di node pool.

  15. Klik Buat.

Setelah membuat node pool dengan pemesanan kalender, Anda dapat men-deploy workload seperti node pool TPU lainnya. Penggunaan pemesanan untuk masa mendatang dalam mode kalender berfungsi dengan cara yang sama seperti jenis pemesanan lainnya. Untuk mengetahui informasi selengkapnya, lihat Menggunakan resource zona yang dipesan.

Langkah berikutnya