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. Pemesanan mode Semua Kapasitas memberikan kontrol yang lebih baik atas resource TPU Anda, yang memungkinkan Anda menempatkan workload dengan kontrol mendetail dalam kapasitas yang Anda pesan.

Dokumen ini ditujukan untuk Engineer machine learning (ML) dan Admin serta operator platform yang ingin menggunakan orkestrasi container Kubernetes dengan kontrol mendetail atas deployment TPU.

Sebelum membaca dokumen ini, pastikan Anda memahami hal berikut:

Apa yang dimaksud dengan mode Semua Kapasitas TPU?

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

Tidak seperti mode terkelola sebelumnya, yang Google Cloud mencadangkan sebagian kapasitas Anda untuk menangani kegagalan hardware, mode Semua Kapasitas memberi Anda akses ke seluruh resource TPU yang Anda pesan. 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 Core 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. Versi gcloud CLI yang lebih lama mungkin tidak mendukung perintah yang ada dalam dokumen ini.
  • Pastikan Anda memiliki cluster Standar yang ada dalam 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. Pelajari TPU Cluster Director.
  2. Minta kapasitas TPU dalam mode Semua Kapasitas.
  3. Lihat topologi dan status kesehatan pemesanan mode Semua Kapasitas.
  4. Selesaikan langkah-langkah dalam dokumen ini:
    1. Membuat node pool GKE
    2. Menjadwalkan workload
    3. Mengelola kegagalan node dengan pemesanan mode Semua Kapasitas
  5. Mengelola peristiwa pemeliharaan dengan TPU dalam mode Semua Kapasitas.
  6. Melaporkan dan memperbaiki host yang rusak dengan TPU dalam mode Semua Kapasitas.

Membuat node pool dalam pemesanan mode Semua Kapasitas

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

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

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

Dalam mode ini, GKE memilih penempatan node pool dalam pemesanan Semua Kapasitas TPU Anda. Proses ini mirip dengan pembuatan node pool dengan opsi penyediaan TPU lainnya, seperti VM sesuai permintaan atau Spot.

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

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

Menargetkan blok atau sub-blok dalam pemesanan

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 pemesanan mode Semua Kapasitas.

  2. 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 Merencanakan TPU di GKE.
    • PROJECT_ID: Project ID Google Cloud 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 pemesanan, gunakan flag --reservation untuk menentukan nama resource lengkap blok atau sub-blok target dalam pemesanan Anda.

    Untuk menargetkan blok tertentu dalam pemesanan 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: Project ID Anda Google Cloud .
    • RESERVATION_NAME: nama pemesanan TPU Anda.
    • BLOCK_NAME: blok tertentu dalam pemesanan Anda.
    • SUB_BLOCK_NAME: sub-blok tertentu dalam pemesanan Anda.

    Dalam perintah sebelumnya, Anda

Menjadwalkan workload

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

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

Mengelola kegagalan node

Pemesanan mode Semua Kapasitas TPU adalah pemesanan tanpa penahanan. 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 pertahankan kapasitas cadangan untuk mengakomodasi penjadwalan ulang workload selama 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 menampilkan status node GKE ke READY.
  • VM TPU memasuki status perbaikan dan workload apa pun yang berjalan di node tersebut mungkin gagal, bergantung pada kebijakan failover-nya. Status node pool tidak berubah menjadi ERROR meskipun satu atau beberapa VM-nya mengalami kegagalan.

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

  1. Cantumkan 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 pemesanan 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 pemesanan 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 Google Cloud akun Anda, hapus TPU node pool yang tidak lagi memiliki workload terjadwal. Jika workload yang berjalan harus dihentikan secara terkontrol, gunakan perintah kubectl drain untuk membersihkan workload 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