Men-deploy TPU dalam mode Semua Kapasitas di GKE

Dokumen ini menjelaskan cara men-deploy dan mengelola workload menggunakan fitur mode Semua Kapasitas TPU di GKE. Semua reservasi mode Kapasitas memberikan kontrol yang ditingkatkan atas resource TPU Anda, yang memungkinkan Anda menempatkan workload dengan kontrol terperinci dalam kapasitas yang dipesan.

Dokumen ini ditujukan untuk engineer Machine Learning (ML) serta Admin dan operator platform yang ingin menggunakan orkestrasi container Kubernetes dengan kontrol terperinci atas deployment TPU.

Sebelum membaca dokumen ini, pastikan Anda memahami hal-hal berikut:

Apa itu mode Semua Kapasitas TPU?

Mode Semua Kapasitas TPU, yang diaktifkan oleh TPU Cluster Director, memberi Anda kontrol penuh atas kapasitas TPU yang dicadangkan. TPU Cluster Director adalah layanan pengelolaan yang memberi Anda kontrol berbasis reservasi atas TPU Anda.

Tidak seperti mode terkelola sebelumnya, yang mencadangkan sebagian kapasitas Anda untuk menangani kegagalan hardware, mode Semua Kapasitas memberi Anda akses ke seluruh resource TPU yang dipesan. Google Cloud Mode ini dilengkapi dengan visibilitas penuh ke status hardware, tetapi juga mengalihkan tanggung jawab pengelolaan kegagalan node dan pemeliharaan terencana kepada Anda.

Untuk mengetahui informasi selengkapnya tentang fitur utama Mode Semua Kapasitas, lihat Mode Semua Kapasitas dalam ringkasan TPU Cluster Director.

Terminologi yang terkait dengan mode Semua Kapasitas di GKE

Tabel berikut mencakup istilah dan kesetaraan yang ditentukan oleh ukuran blok, sub-blok, dan kubus dalam versi Ironwood (TPU7x). Kubus adalah topologi 4x4x4 dari chip TPU yang saling terhubung, yang hanya berlaku untuk topologi dalam 3 tuple ({A}x{B}x{C}).

Resource TPU Cores Chip Host Kubus
1 chip 2 1 - -
1 host 8 4 1 -
1 sub-blok 128 64 16 1
Satu blok berisi 144 sub-blok 18432 9216 2304 144

Untuk mengetahui informasi selengkapnya tentang topologi yang diizinkan dalam blok, lihat Memilih topologi.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin 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. gcloud CLI versi sebelumnya mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
  • Pastikan Anda memiliki cluster Standard yang ada di versi 1.34.0-gke.2201000 atau yang lebih baru. Untuk membuat cluster baru, lihat Membuat cluster regional.
  • Pastikan Anda memiliki kuota yang cukup untuk TPU di region yang ingin Anda gunakan.
  • Instal JobSet v0.2.3 atau yang lebih baru.

Batasan

Mode Semua Kapasitas TPU di GKE hanya mendukung versi Ironwood (TPU7x).

Menggunakan mode Semua Kapasitas TPU di GKE

Bagian ini menjelaskan alur kerja untuk menggunakan mode Semua Kapasitas TPU di GKE.

  1. Pahami TPU Cluster Director.
  2. Minta kapasitas TPU dalam mode Semua Kapasitas.
  3. Melihat topologi dan status respons pemesanan mode Semua Kapasitas.
  4. Selesaikan langkah-langkah dalam dokumen ini:
    1. Membuat node pool GKE
    2. Menjadwalkan workload
    3. Mengelola kegagalan node dengan reservasi mode Semua Kapasitas
  5. Mengelola peristiwa pemeliharaan dengan TPU dalam mode Semua Kapasitas.
  6. Laporkan dan perbaiki host yang rusak dengan TPU dalam mode Semua Kapasitas.

Membuat node pool dalam reservasi mode Semua Kapasitas

Semua mode Kapasitas di GKE memungkinkan Anda membuat node pool dengan cara berikut:

  • Node pool tempat GKE memilih blok atau sub-blok dalam reservasi TPU All Capacity Anda.
  • Node pool yang menargetkan blok atau sub-blok tertentu dalam pemesanan mode Semua Kapasitas TPU.

GKE memilih blok atau sub-blok dalam reservasi Semua Kapasitas TPU Anda

Dalam mode ini, GKE memilih penempatan node pool dalam reservasi TPU All Capacity Anda. Proses ini mirip dengan membuat node pool dengan opsi penyediaan TPU lainnya, seperti VM on-demand atau Spot VM.

Untuk membuat node pool, gunakan perintah gcloud container node-pools create dengan flag --reservation. Tentukan nama resource lengkap pemesanan TPU Anda sebagai nilai untuk tanda --reservation.

Untuk contoh perintah pembuatan node pool, lihat Membuat node pool secara manual.

Menargetkan blok atau sub-blok dalam reservasi

Mode Semua Kapasitas TPU memungkinkan Anda menargetkan blok atau sub-blok tertentu dalam pemesanan TPU untuk workload paralel. Kemampuan ini berguna untuk workload yang memerlukan kedekatan antara chip TPU untuk meminimalkan latensi.

  1. Lihat konfigurasi blok, sub-blok, dan host yang tersedia. Selesaikan langkah-langkah dalam dokumen Melihat topologi dan status kesehatan reservasi mode Semua Kapasitas.

  2. Buat kebijakan beban kerja:

    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). Contoh, 2x2x2. Untuk melihat semua topologi Ironwood (TPU7x) yang didukung, lihat Merencanakan TPU di GKE.
    • PROJECT_ID: Google Cloud Project ID Anda.
    • REGION: region untuk kebijakan workload. Kebijakan workload adalah resource regional dan dapat digunakan kembali di seluruh node pool yang memiliki topologi yang sama.
  3. Untuk membuat node pool dan menargetkan blok atau sub-blok tertentu dari reservasi, gunakan flag --reservation untuk menentukan nama resource lengkap dari blok atau sub-blok target dalam reservasi Anda.

    Untuk menargetkan blok tertentu dalam reservasi Anda, gunakan perintah berikut:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --machine-type=tpu7x-standard-4t \
        --placement-policy=WORKLOAD_POLICY_NAME \
        --zone=ZONE \
        --reservation=project/PROJECT/reservation/RESERVATION_NAME/reservationBlocks/BLOCK_NAME
    

    Untuk menargetkan sub-blok tertentu dalam blok, gunakan perintah berikut:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --machine-type=tpu7x-standard-4t \
        --placement-policy=WORKLOAD_POLICY_NAME \
        --zone=ZONE \
        --reservation=project/PROJECT/reservation/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME
    

    Ganti kode berikut:

    • NODE_POOL_NAME: nama node pool baru.
    • CLUSTER_NAME: nama cluster GKE Anda.
    • WORKLOAD_POLICY_NAME: nama kebijakan workload yang Anda buat.
    • ZONE: zona untuk node pool, misalnya, us-central1-a.
    • PROJECT: Google Cloud Project ID Anda.
    • RESERVATION_NAME: nama reservasi TPU Anda.
    • BLOCK_NAME: blok tertentu dalam reservasi Anda.
    • SUB_BLOCK_NAME: sub-blok tertentu dalam reservasi Anda.

    Dalam perintah sebelumnya, Anda

Menjadwalkan workload

Setelah membuat node pool dengan VM TPU dalam mode Semua Kapasitas, Anda dapat men-deploy beban kerja seperti node pool TPU lainnya. Untuk mode Semua Kapasitas TPU, tidak ada perbedaan tambahan dalam penjadwalan workload dibandingkan dengan node pool yang menggunakan pemesanan standar yang didukung SLO.

Untuk mengetahui informasi dan contoh workload yang menggunakan TPU, lihat Menjalankan workload Anda di node slice TPU dan Menjalankan workload Multi-slice.

Mengelola kegagalan node

Pemesanan mode Semua Kapasitas TPU adalah pemesanan tanpa penundaan. Tanpa penahanan berarti Anda menerima kapasitas TPU penuh, yang mencakup bagian yang Google Cloud biasanya dipertahankan untuk failover dalam mode kapasitas terkelola.

Dalam mode Semua Kapasitas TPU, jika VM gagal karena masalah seperti kegagalan hardware, Google Cloud akan mencoba memulihkan VM di host yang sama (perbaikan di tempat). Oleh karena itu, sebaiknya Anda mempertahankan kapasitas cadangan untuk mengakomodasi penjadwalan ulang beban kerja selama terjadi kegagalan infrastruktur.

Kegagalan dan pemulihan node

Jika node gagal dalam pemesanan mode Semua Kapasitas TPU, peristiwa berikut akan terjadi:

  • Google Cloud memulai peristiwa perbaikan untuk instance VM Compute Engine yang gagal. Proses ini mencoba memulihkan VM ke status RUNNING dan mengembalikan status node GKE ke READY.
  • VM TPU akan memasuki status perbaikan dan setiap beban kerja yang berjalan di node tersebut mungkin gagal, bergantung pada kebijakan failover-nya. Status kumpulan node tidak berubah menjadi ERROR meskipun satu atau beberapa VM-nya mengalami kegagalan.

Untuk memantau status kondisi node Anda, ikuti langkah-langkah berikut:

  1. Mencantumkan node di node pool:

    kubectl get nodes
    

    Node yang gagal memiliki status NotReady.

  2. Pantau status node Compute Engine:

    Untuk VM TPU dalam mode Semua Kapasitas, gunakan gcloud compute instances describe. Perintah ini juga memberikan status fisik topologi untuk menemukan detail host, sub-blok, dan blok.

    gcloud compute instances describe VM_NAME \
            --format="table[box,title=VM-Position](resourceStatus.physical_host_topology:label=location)" \
            --zone=ZONE
    

    Ganti kode berikut:

    • VM_NAME: nama instance VM TPU.
    • ZONE: zona VM, misalnya, us-central1-a.

    Untuk mengetahui langkah-langkah selengkapnya tentang cara mengambil informasi topologi dan kesehatan tentang kapasitas mode Semua Kapasitas, lihat Melihat topologi dan status kesehatan reservasi Mode Semua Kapasitas.

Mengelola pemeliharaan

Untuk menangani potensi gangguan dan membantu memastikan workload Anda tetap tangguh, Anda dapat mengelola pemeliharaan untuk setiap node menggunakan kebijakan pemeliharaan GKE. Untuk mengetahui informasi selengkapnya, lihat Masa pemeliharaan dan pengecualian pemeliharaan.

GKE tidak mendukung pemeliharaan grup untuk VM TPU dalam reservasi mode Semua Kapasitas. Untuk melakukan pemeliharaan grup di tingkat sub-blok, blok, atau pemesanan, gunakan Compute Engine API. Untuk mengetahui informasi selengkapnya, lihat Mengelola peristiwa pemeliharaan dengan TPU dalam mode Semua Kapasitas.

Pembersihan

Agar tidak menimbulkan biaya yang tidak diinginkan pada akun Anda, hapus TPU node pool yang tidak lagi memiliki workload terjadwal. Google Cloud Jika beban kerja yang berjalan harus dihentikan secara terkontrol, gunakan perintah kubectl drain untuk membersihkan beban kerja sebelum Anda menghapus node pool.

  1. Hapus TPU node pool:

    gcloud container node-pools delete NODE_POOL_NAME \
        --location=LOCATION \
        --cluster=CLUSTER_NAME
    

    Ganti kode berikut:

    • NODE_POOL_NAME: nama node pool.
    • CLUSTER_NAME: nama cluster.
    • LOCATION: lokasi komputasi cluster.

Langkah berikutnya