Merencanakan TPU di GKE


Halaman ini menjelaskan cara merencanakan penggunaan Tensor Processing Unit (TPU) di Google Kubernetes Engine (GKE) untuk mengurangi risiko kesalahan konfigurasi TPU, error ketidaktersediaan, atau gangguan karena kuota habis.

Sebelum menggunakan TPU di GKE, pastikan Anda memahami definisi dan terminologi TPU di GKE.

Merencanakan konfigurasi TPU

Untuk menggunakan TPU di cluster GKE, Anda harus merencanakan konfigurasinya. Sebaiknya ikuti langkah-langkah berikut:

  1. Memilih mode operasi GKE: Jalankan workload Anda di TPU dalam cluster GKE Autopilot atau Standard.

    Praktik terbaik:

    Gunakan cluster Autopilot untuk pengalaman Kubernetes yang dikelola sepenuhnya.

  2. Memilih versi TPU: Berbagai jenis TPU memiliki kemampuan yang berbeda seperti rasio harga-performa, throughput pelatihan, dan latensi penayangan. Jenis TPU memengaruhi kapasitas CPU dan memori yang tersedia.

  3. Memvalidasi ketersediaan TPU: TPU tersedia di region Google Cloud tertentu. Untuk menggunakan jenis TPU dalam workload GKE, cluster Anda harus berada di region yang didukung untuk jenis tersebut.

  4. Pilih Topologi TPU: Pengaturan fisik TPU dalam slice TPU. Pilih topologi yang cocok dengan persyaratan paralelisme model Anda.

Gunakan tabel referensi di halaman ini untuk mengidentifikasi apakah kumpulan node Anda adalah node slice TPU satu host atau multi-host.

Memilih mode operasi GKE

Anda dapat menggunakan TPU dalam mode operasi GKE yang tersedia untuk cluster:

  • Mode Autopilot (direkomendasikan): GKE mengelola infrastruktur dasar seperti konfigurasi node, penskalaan otomatis, upgrade otomatis, konfigurasi keamanan dasar pengukuran, dan konfigurasi jaringan dasar pengukuran. Di Autopilot, Anda memilih jenis dan topologi TPU, lalu menentukannya dalam manifes Kubernetes. GKE mengelola penyediaan node dengan TPU dan menjadwalkan workload Anda.
  • Mode Standard: Anda mengelola infrastruktur dasar, termasuk mengonfigurasi setiap node.

Untuk memilih mode operasi GKE yang paling sesuai untuk workload Anda, lihat Memilih mode operasi GKE.

Memilih versi TPU

VM dalam slice TPU memiliki karakteristik teknis berikut.

Autopilot

Versi TPU Jenis mesin Jumlah vCPU Memori (GiB) Jumlah node NUMA Chip TPU maksimum di node slice TPU
TPU Trillium (v6e) (Pratinjau)
tpu-v6e-slice 44 hingga 180 176 hingga 1440 1 hingga 2 256
TPU v5p
tpu-v5p-slice 208 448 2 6.144
TPU v5e
tpu-v5-lite-podslice 24 hingga 224 48 hingga 384 1 256
TPU v5e (khusus host tunggal)
tpu-v5-lite-device 24 hingga 224 48 hingga 384 1 hingga 2 8
TPU v4
tpu-v4-podslice 240 407 2 4.096
TPU v3 (khusus satu host)
tpu-v3-device 96 340 2 8
TPU v3
tpu-v3-slice 48 340 1 256

Standard

Versi TPU Jenis mesin Jumlah vCPU Memori (GiB) Jumlah node NUMA Kemungkinan didahului
TPU Trillium (v6e) (Pratinjau)
ct6e-standard-1t 44 448 2 Lebih tinggi
TPU v6e (Pratinjau)
ct6e-standard-4t 180 720 1 Sedang
TPU v6e (Pratinjau)
ct6e-standard-8t 180 1440 2 Lebih rendah
TPU v5p
ct5p-hightpu-4t 208 448 2
TPU v5e
ct5l-hightpu-1t 24 48 1 Lebih tinggi
TPU v5e
ct5l-hightpu-4t 112 192 1 Sedang
TPU v5e
ct5l-hightpu-8t 224 384 2 Lebih rendah
TPU v5e
ct5lp-hightpu-1t 24 48 1 Lebih tinggi
TPU v5e
ct5lp-hightpu-4t 112 192 1 Sedang
TPU v5e
ct5lp-hightpu-8t 224 384 1 Rendah
TPU v4
ct4p-hightpu-4t 240 407 2
TPU v3 (khusus satu host)
ct3-hightpu-4t 96 340 2 8
TPU v3
ct3p-hightpu-4t 48 340 1 256

Pertimbangkan konfigurasi berikut saat mengevaluasi jenis mesin yang akan digunakan berdasarkan model Anda:

  • Jenis mesin ct5l- cocok untuk menayangkan model berukuran kecil hingga sedang, dan kurang cocok untuk model besar. Jenis mesin ct5l- adalah host tunggal sehingga tidak memiliki link interkoneksi berkecepatan tinggi di antara beberapa host.
  • Jenis mesin ct5lp- multi-host lebih cocok untuk menyalurkan model atau pelatihan yang besar. Komputer ct5lp- multi-host saling terhubung dengan link berkecepatan tinggi.

Tinjau spesifikasi dan harga TPU di dokumentasi harga Cloud TPU untuk menentukan konfigurasi TPU yang akan digunakan.

Batasan

Pertimbangkan batasan berikut saat memilih TPU yang akan digunakan:

  • TPU v6e masih dalam versi Pratinjau dan tersedia dalam versi berikut:
    • Cluster standar dalam versi 1.31.1-gke.1846000 dan yang lebih baru.
    • Cluster Autopilot dalam versi 1.31.2-gke.1115000 dan yang lebih baru.
  • TPU v6e tidak mendukung konfigurasi SMT yang ditetapkan ke 2 di ct6e-standard-8t.
  • Alokasi biaya dan pengukuran penggunaan GKE tidak menyertakan data apa pun terkait penggunaan atau biaya TPU v4 yang direservasi.
  • TPU v5p dan v5e tidak mendukung riptide/streaming gambar di us-east5.
  • Penskalaan otomatis TPU v5p didukung di cluster GKE dengan panel kontrol yang menjalankan setidaknya versi 1.29.2-gke.1035000 atau 1.28.7-gke.1020000.
  • Untuk reservasi kapasitas, gunakan reservasi khusus.

Memvalidasi ketersediaan TPU di GKE

TPU tersedia di region Google Cloud tertentu. Untuk menggunakan jenis TPU di cluster GKE, cluster Anda harus berada di region yang didukung untuk jenis tersebut.

Autopilot

Tabel berikut mencantumkan ketersediaan TPU untuk setiap versi TPU dan jenis mesin:

Versi TPU cloud.google.com/gke-tpu-accelerator Versi GKE minimum Ketersediaan Zona
TPU v6e
tpu-v6e-slice 1.31.2-gke.1384000 Pratinjau us-east5-b
europe-west4-a
us-east1-d
asia-northeast1-b
us-south1-a
TPU v5e tpu-v5-lite-device 1.27.2-gke.2100 Tersedia Secara Umum europe-west4-b
us-central1-a
TPU v5e tpu-v5-lite-podslice 1.27.2-gke.2100 Tersedia Secara Umum europe-west4-a
us-central1-a
us-east1-c
us-east5-b
us-west1-c
us-west4-a
us-west4-b
TPU v5p tpu-v5p-slice 1.28.3-gke.1024000 Tersedia Secara Umum us-east1-d
us-east5-a
us-east5-c
TPU v4 tpu-v4-podslice 1.26.1-gke.1500 Tersedia Secara Umum us-central2-b
TPU v3 tpu-v3-slice 1.31.1-gke.1146000 Tersedia Secara Umum us-east1-d
europe-west4-a
TPU v3 tpu-v3-device 1.31.0-gke.1500 Tersedia Secara Umum us-east1-d
europe-west4-a
us-central1-a
us-central1-b
us-central1-f

Standard

Tabel berikut mencantumkan ketersediaan TPU untuk setiap versi TPU dan jenis mesin:

Versi TPU Jenis mesin yang diawali dengan Versi GKE minimum Ketersediaan Zona
TPU v6e ct6e- 1.31.2-gke.1115000 Pratinjau us-east5-b
europe-west4-a
us-east1-d
asia-northeast1-b
us-south1-a
TPU v5e ct5l- 1.27.2-gke.2100 Tersedia Secara Umum europe-west4-b
us-central1-a
TPU v5e ct5lp- 1.27.2-gke.2100 Tersedia Secara Umum europe-west4-a
us-central1-a
us-east1-c
us-east5-b
us-west1-c
us-west4-a
us-west4-b
TPU v5p ct5p- 1.28.3-gke.1024000 Tersedia Secara Umum us-east1-d
us-east5-a
us-east5-c
TPU v4 ct4p- 1.26.1-gke.1500 Tersedia Secara Umum us-central2-b
TPU v3 ct3p- 1.31.1-gke.1146000 Tersedia Secara Umum us-east1-d
europe-west4-a
TPU v3 ct3- 1.31.0-gke.1500 Tersedia Secara Umum us-east1-d
europe-west4-a
us-central1-a
us-central1-b
us-central1-f

Pertimbangkan peringatan berikut saat mengonfigurasi TPU:

  • Anda dapat membuat node pool TPU v5e host tunggal dengan jenis mesin yang diawali dengan ct5lp-, tetapi tidak diawali dengan ct5l- di zona tertentu (europe-west4-a, us-east5-b, dan us-west4-b). Anda dapat menggunakan ct5lp-hightpu-4t dengan topologi minimal 2x4 atau lebih besar di zona tersebut.
  • Untuk membuat TPU v5e host tunggal di region us-west4, pilih zona us-west4-a dan gunakan jenis mesin yang diawali dengan ct5lp-, seperti ct5lp-hightpu-1t.
  • Untuk membuat TPU v5e host tunggal di region lain yang tercantum dalam tabel sebelumnya, gunakan jenis mesin yang diawali dengan ct5l- (seperti ct5l-hightpu-1t, ct5l-hightpu-4t, atau ct5l-hightpu-8t).
  • Jenis mesin yang diawali dengan ct5l- memerlukan kuota yang berbeda daripada jenis mesin yang diawali dengan ct5lp-.

Memilih topologi

Setelah Anda memutuskan versi TPU, pilih topologi yang didukung oleh jenis TPU tersebut. Bergantung pada jenis TPU, topologinya bersifat dua atau tiga dimensi. Persyaratan paralelisme model membantu Anda menentukan topologi. Anda dapat mengidentifikasi jumlah chip TPU dalam slice dengan menghitung hasil kali setiap ukuran dalam topologi. Contoh:

  • 2x2x2 adalah slice TPU v4 multi-host 8 chip
  • 2x2 adalah slice TPU v5e host tunggal 4 chip

Jika topologi tertentu mendukung node slice TPU host tunggal dan multi-host, jumlah chip TPU yang diminta workload Anda akan menentukan jenis host.

Misalnya, TPU v5e (tpu-v5-lite-podslice) mendukung topologi 2x4 sebagai satu dan multi-host. Jika Anda:

  • Meminta 4 chip dalam workload, Anda akan mendapatkan node multi-host yang memiliki 4 chip TPU.
  • Meminta 8 chip dalam workload, Anda akan mendapatkan node satu host yang memiliki 8 chip TPU.

Gunakan tabel berikut untuk memilih jenis mesin dan topologi TPU untuk kasus penggunaan Anda:

  • Untuk pelatihan atau inferensi model berskala kecil, gunakan TPU v4 atau TPU v5e dengan node pool slice TPU host tunggal.
  • Untuk pelatihan atau inferensi model berskala besar, gunakan TPU v4 atau TPU v5e dengan node pool slice TPU multi-host.

Autopilot

Versi TPU Jenis mesin Topologi Jumlah TPU chip dalam slice Jumlah node Jenis node pool
TPU v6e (Pratinjau) tpu-v6e-slice 1x1 1 1 Host tunggal
2x2 4 4 Host tunggal
2x4 8 8 Host tunggal
4x4 16 4 Multi-host
4x8 32 8 Multi-host
8x8 64 16 Multi-host
8x16 128 32 Multi-host
16x16 256 64 Multi-host
TPU v5p tpu-v5p-slice 2x2x1 4 1 Host tunggal
2x2x2 8 2 Multi-host
2x2x4 16 4 Multi-host
2x4x4 32 8 Multi-host
4x4x4 64 16 Multi-host
{A}x{B}x{C} A*B*C (A*B*C/4)1 Multi-host
TPU v5e tpu-v5-lite-podslice2 1x1 1 1 Host tunggal
2x2 4 1
2x4 8 1
2x4 8 2 Multi-host
4x4 16 4
4x8 32 8
8x8 64 16
8x16 128 32
16x16 256 64
TPU v5e (khusus host tunggal) tpu-v5-lite-device 1x1 1 1 Host tunggal
2x2 4 1
2x4 8 1
TPU v4 tpu-v4-podslice2 2x2x1 4 1 Host tunggal
2x2x2 8 2 Multi-host
2x2x4 16 4 Multi-host
2x4x4 32 8 Multi-host
4x4x4 64 16 Multi-host
{A}x{B}x{C} A*B*C (A*B*C/4)1 Multi-host
TPU v3 tpu-v3-slice 4x4 16 2 Multi-host
4x8 32 4 Multi-host
8x8 64 8 Multi-host
8x16 128 16 Multi-host
16x16 256 32 Multi-host
TPU v3 tpu-v3-device 2x2 4 1 Host tunggal
  1. Dihitung berdasarkan produk topologi dibagi empat.

    Topologi kustom untuk lebih dari 64 chip didukung. Kondisi berikut berlaku:

    • Untuk lebih dari 64 chip, {A}, {B}, dan {C} harus merupakan kelipatan 4
    • Topologi terbesar adalah 16x16x24
    • Nilainya harus {A}{B}{C}, seperti 8x12x16.
  2. Topologi kustom tidak didukung.

Setelah Anda memilih jenis dan topologi TPU, tentukan keduanya dalam manifes workload. Untuk mengetahui petunjuknya, lihat Men-deploy workload TPU di Autopilot GKE.

Standard

Versi TPU Jenis mesin Topologi Jumlah TPU chip Jumlah VM Jenis node pool
TPU v6e (Pratinjau) ct6e-standard-1t 1x1 1 1 Host tunggal
ct6e-standard-8t 2x4 8 1 Host tunggal
ct6e-standard-4t 2x2 4 1 Host tunggal
2x4 8 2 Multi-host
4x4 16 4 Multi-host
4x8 32 8 Multi-host
8x8 64 16 Multi-host
8x16 128 32 Multi-host
16x16 256 64 Multi-host
TPU v5p ct5p-hightpu-4t 2x2x1 4 1 Host tunggal
2x2x2 8 2 Multi-host
2x2x4 16 4 Multi-host
2x4x4 32 8 Multi-host
{A}x{B}x{C} A*B*C (A*B*C/4)1 Multi-host
TPU v5e ct5l-hightpu-1t 1x1 1 1 Host tunggal
ct5l-hightpu-4t 2x2 4 1 Host tunggal
ct5l-hightpu-8t 2x4 8 1 Host tunggal
ct5lp-hightpu-1t 1x1 1 1 Host tunggal
ct5lp-hightpu-4t 2x2 4 1 Host tunggal
ct5lp-hightpu-8t 2x4 8 1 Host tunggal
ct5lp-hightpu-4t 2x4 8 2 Multi-host
4x4 16 4 Multi-host
4x8 32 8 Multi-host
8x8 64 16 Multi-host
8x16 128 32 Multi-host
16x16 256 64 Multi-host
TPU v4 ct4p-hightpu-4t 2x2x1 4 1 Host tunggal
2x2x2 8 2 Multi-host
2x2x4 16 4 Multi-host
2x4x4 32 8 Multi-host
{A}x{B}x{C} A*B*C (A*B*C/4)1 Multi-host
TPU v3 ct3-hightpu-4t 2x2 4 1 Host tunggal
TPU v3 ct3p-hightpu-4t 4x4 16 4 Multi-host
4x8 32 8 Multi-host
8x8 64 16 Multi-host
8x16 128 32 Multi-host
16x16 256 64 Multi-host
16x32 512 128 Multi-host
32x32 1024 256 Multi-host
  1. Dihitung berdasarkan produk topologi dibagi empat.

Konfigurasi lanjutan

Bagian berikut menjelaskan praktik terbaik penjadwalan untuk konfigurasi TPU lanjutan.

Pemesanan TPU

Pemesanan TPU tersedia saat membeli komitmen. Semua pemesanan TPU dapat digunakan dengan GKE.

Saat membuat node pool slice TPU, gunakan flag --reservation dan --reservation-affinity=specific untuk menggunakan instance TPU yang dicadangkan.

Penskalaan otomatis TPU di GKE

GKE mendukung Tensor Processing Unit (TPU) untuk mempercepat beban kerja machine learning. Node pool slice TPU host tunggal dan node pool slice TPU multi-host mendukung penskalaan otomatis dan penyediaan otomatis.

Dengan flag --enable-autoprovisioning di cluster GKE, GKE membuat atau menghapus node pool slice TPU host tunggal atau multi-host dengan versi dan topologi TPU yang memenuhi persyaratan workload yang tertunda.

Saat Anda menggunakan --enable-autoscaling, GKE menskalakan node pool berdasarkan jenisnya, sebagai berikut:

  • Node pool slice TPU host tunggal: GKE menambahkan atau menghapus node TPU di node pool yang ada. Node pool dapat berisi jumlah node TPU antara nol dan ukuran maksimum node pool seperti yang ditentukan oleh flag --max-nodes dan --total-max-nodes. Saat node pool diskalakan, semua node TPU dalam node pool memiliki jenis mesin dan topologi yang sama. Untuk mempelajari lebih lanjut cara membuat node pool slice TPU host tunggal, lihat Membuat node pool.

  • Node pool slice TPU multi-host: GKE secara atomik akan meningkatkan skala node pool dari nol hingga jumlah node yang diperlukan untuk memenuhi topologi TPU. Misalnya, dengan node pool TPU dengan jenis mesin ct5lp-hightpu-4t dan topologi 16x16, node pool berisi 64 node. Autoscaler GKE memastikan bahwa node pool ini memiliki tepat 0 atau 64 node. Saat menskalakan kembali, GKE akan mengeluarkan semua pod terjadwal, dan menghabiskan seluruh node pool menjadi nol. Untuk mempelajari lebih lanjut cara membuat node pool slice TPU multi-host, lihat Membuat node pool.

CPU untuk cluster Standard

Bagian ini tidak berlaku untuk cluster Autopilot karena GKE meletakkan setiap slice TPU di node-nya sendiri. Untuk mempelajari lebih lanjut, lihat Cara kerja TPU dalam mode Autopilot.

Untuk cluster Standard, pertimbangkan praktik terbaik penjadwalan berikut.

Untuk menjadwalkan beban kerja non-TPU di VM dalam node slice TPU, pastikan Pod GKE Anda dapat menoleransi taint google.com/tpu. Jika Anda ingin beban kerja di-deploy ke node tertentu, gunakan pemilih node.

Pengelolaan resource dan prioritas Kubernetes memperlakukan VM di TPU sama seperti jenis VM lainnya. Untuk memberi prioritas penjadwalan pada Pod yang memerlukan TPU daripada Pod lain pada node yang sama, minta CPU atau memori maksimum untuk slice TPU tersebut. Slice TPU prioritas rendah harus melakukan hal berikut:

  1. Tetapkan permintaan CPU dan memori yang rendah untuk memastikan node memiliki resource yang dapat dialokasikan yang cukup untuk workload TPU. Untuk mempelajari lebih lanjut, baca artikel Cara Kubernetes menerapkan permintaan dan batas resource.
  2. Tetapkan tanpa batas CPU (tidak terbatas) untuk memastikan bahwa Pod dapat melakukan burst untuk menggunakan semua siklus yang tidak digunakan.
  3. Tetapkan batas memori yang sesuai untuk memastikan Pod dapat berfungsi dengan benar tanpa risiko pengusiran tekanan node.

Jika Pod Kubernetes tidak meminta CPU dan memori (sekalipun meminta TPU), Kubernetes akan menganggapnya sebagai upaya terbaik, dan tidak ada jaminan bahwa pod tersebut memerlukan CPU dan memori apa pun. Hanya Pod yang secara eksplisit meminta CPU dan memori yang memiliki jaminan tersebut. Untuk penjadwalan Kubernetes tertentu, konfigurasikan kebutuhan Pod dengan permintaan CPU dan memori eksplisit. Untuk mengetahui informasi selengkapnya, lihat Pengelolaan Resource untuk Pod dan Container.

Untuk mempelajari praktik terbaik lebih lanjut, lihat Praktik terbaik Kubernetes: Permintaan dan batas resource.

Mengurangi gangguan workload

Jika Anda menggunakan TPU untuk melatih model machine learning dan workload Anda terganggu, semua pekerjaan yang dilakukan seak checkpoint terakhir akan hilang. Untuk mengurangi kemungkinan bahwa workload terganggu, lakukan langkah berikut:

  • Tetapkan prioritas yang lebih tinggi untuk Tugas ini daripada semua Tugas lain: Jika resource langka, penjadwal GKE akan mendahului Tugas dengan prioritas lebih rendah untuk menjadwalkan Tugas dengan prioritas lebih tinggi. Hal ini juga memastikan bahwa beban kerja yang berprioritas lebih tinggi menerima semua resource yang diperlukannya (hingga total resource yang tersedia dalam cluster). Untuk mempelajari lebih lanjut, lihat Prioritas dan preemption Pod.
  • Mengonfigurasi pengecualian pemeliharaan: Pengecualian pemeliharaan adalah jangka waktu yang tidak berulang saat pemeliharaan otomatis dilarang. Untuk mempelajari lebih lanjut, lihat Pengecualian pemeliharaan.
  • Menggunakan Pod dengan waktu operasi yang diperpanjang di Autopilot: Gunakan Pod dengan waktu operasi yang diperpanjang untuk masa tenggang hingga tujuh hari sebelum GKE menghentikan Pod Anda untuk penurunan skala atau upgrade node.

Rekomendasi ini membantu meminimalkan gangguan, tetapi tidak mencegahnya. Misalnya, preemption karena kegagalan hardware atau preemption untuk defragmentasi masih dapat terjadi. Demikian pula, menyetel pengecualian pemeliharaan GKE tidak akan mencegah peristiwa pemeliharaan Compute Engine.

Praktik terbaik:

Simpan checkpoint secara rutin dan tambahkan kode ke skrip pelatihan untuk memulai dari checkpoint terakhir saat dilanjutkan.

Menangani gangguan karena pemeliharaan node

Node GKE yang menghosting TPU tunduk pada peristiwa pemeliharaan atau gangguan lainnya yang dapat menyebabkan penonaktifan node. Di cluster GKE dengan control plane yang menjalankan versi 1.29.1-gke.1425000 dan yang lebih baru, Anda dapat mengurangi gangguan pada workload dengan mengonfigurasi GKE untuk menghentikan workload dengan baik.

Untuk memahami, mengonfigurasi, dan memantau peristiwa gangguan yang mungkin terjadi di node GKE yang menjalankan beban kerja AI/ML, lihat Mengelola gangguan node GKE untuk GPU dan TPU.

Memaksimalkan pemanfaatan TPU

Untuk memaksimalkan investasi dalam TPU, jadwalkan campuran prioritas Tugas dan antrekan untuk memaksimalkan waktu operasi TPU. Untuk penjadwalan dan preemption tingkat Tugas, Anda harus menggunakan add-on untuk Kubernetes yang mengatur Tugas ke dalam antrean.

Praktik terbaik:

Gunakan Kueue untuk mengatur Tugas ke dalam antrean.

Langkah selanjutnya