TPU preemptible

Biaya TPU yang dapat dihentikan jauh lebih murah daripada TPU yang tidak dapat dihentikan. Layanan Cloud TPU dapat melakukan preempt (menonaktifkan) TPU ini kapan saja, jika memerlukan resource TPU tambahan.

Jika Anda membuat VM TPU yang dapat dihentikan, gunakan perintah gcloud. Jika membuat Node TPU yang dapat dihentikan, Anda dapat menggunakan perintah gcloud atau Konsol. Untuk mengetahui informasi tentang perbedaan antara VM TPU dan Node TPU, lihat Arsitektur Sistem.

Membuat VM TPU yang dapat dihentikan

gcloud

$ gcloud compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --preemptible
  

dengan:

  • demo-tpu adalah nama dari TPU.
  • --accelerator-type menentukan jenis TPU.
  • --version menentukan versi software VM TPU yang akan diinstal.
  • --preemptible memungkinkan Cloud TPU melakukan preemption terhadap TPU.

Membuat Node TPU yang dapat dihentikan

Konsol

  1. Buka halaman TPU di bagian Compute Engine di halaman utama.
  2. Klik BUAT node TPU untuk membuka halaman pembuatan node TPU.
  3. Ketik nama untuk node TPU Anda.
  4. Pilih zona untuk membuat node TPU.
  5. Pilih jenis TPU untuk node TPU Anda.
  6. Klik Turn on preemtibility for this node untuk menjadikan TPU node Anda dapat dihentikan.
  7. Pilih versi TensorFlow atau PyTorch untuk diinstal di VM Anda.

gcloud

$ gcloud compute tpus execution-groups create \
  --name=demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --tf-version=2.12.0 \
  --preemptible
  

dengan:

  • demo-tpu adalah nama dari TPU.
  • `--Akselerator-type menentukan jenis TPU.
  • --tf-version menentukan versi Tensorflow atau PyTorch yang akan diinstal di VM.
  • --preemptible memungkinkan Cloud TPU melakukan preemption terhadap TPU.

Dengan TPU Node, status preemptible TPU tidak bergantung pada status preemptible instance VM Anda.

Harga dan kuota untuk TPU yang dapat dihentikan

Harga untuk TPU yang dapat dihentikan secara signifikan lebih murah daripada TPU biasa. Untuk mengetahui detailnya, lihat halaman harga. Anda tidak dikenai biaya jika TPU di-preempt pada menit pertama setelah Anda membuatnya.

Kuota untuk TPU yang dapat dihentikan umumnya lebih tinggi dan terpisah dari kuota untuk TPU normal. Lihat halaman kuota.

Mendeteksi apakah TPU telah di-preempt

Anda dapat menggunakan perintah gcloud berikut untuk memeriksa apakah layanan Cloud TPU telah melakukan preemption terhadap TPU Anda:

Menampilkan daftar TPU yang tersedia:

VM TPU

gcloud compute tpus tpu-vm list --zone=us-central1-b

Node TPU

(vm)$ gcloud compute tpus list --zone=us-central1-b

Output perintah akan menampilkan detail TPU yang dibuat di project Anda. Jika TPU telah di-preempt, statusnya akan berubah dari READY menjadi PREEMPTED.

Contoh:

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

Preemptible VM dan TPU (khusus Node TPU)

Seperti yang dijelaskan di panduan memulai untuk framework, Anda memerlukan virtual machine (VM) Compute Engine agar dapat terhubung ke TPU. Perlu diperhatikan bahwa status preemptible TPU tidak bergantung pada status preemptible VM. Anda dapat menentukan TPU sebagai preemptible dan VM sebagai tidak dapat dihentikan, atau sebaliknya. Anda juga dapat menentukan keduanya sebagai preemptible.

Kombinasi yang paling mungkin adalah preemptible TPU dan non-preemptible VM. Perhatikan poin-poin berikut:

  • Biaya untuk VM cenderung rendah dibandingkan dengan biaya untuk TPU. Biaya VM bergantung pada jenis mesin yang Anda gunakan. Lihat halaman harga untuk contoh sederhana biaya relatif.
  • Cloud TPU tidak mengoordinasikan preempting VM dan TPU. Jika Anda menentukan keduanya sebagai preemptible, VM dan TPU dapat di-preempt pada waktu yang berbeda.
  • Jika Compute Engine melakukan preemption terhadap VM, Anda tetap akan dikenai biaya untuk TPU (kecuali jika TPU tersebut di-preempt). Perlu diperhatikan bahwa TPU tidak ada aktivitas saat VM di-preempt.
  • Preemptible instance, baik instance Compute Engine VM dan Cloud TPU, selalu di-preempt setelah dijalankan selama 24 jam. Tindakan tertentu mereset penghitung 24 jam ini.

Mendeteksi apakah instance VM telah di-preempt (khusus Node TPU)

Untuk memeriksa apakah instance VM telah di-preempt, gunakan perintah gcloud compute operations list untuk mendapatkan daftar operasi sistem terbaru. Tambahkan filter name untuk hanya menampilkan instance yang telah Anda jalankan atau tambahkan filter operationType untuk hanya menampilkan resource yang telah di-preempt. Misalnya, gunakan perintah berikut untuk menampilkan hanya instance dengan nama instance yang ditentukan:

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

Contoh berikut hanya menampilkan resource yang telah di-preempt:

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

Untuk mengetahui detail selengkapnya, baca panduan Compute Engine.

Mendesain aplikasi machine learning untuk berjalan di TPU yang dapat dihentikan

Pastikan aplikasi Anda tahan untuk memulai ulang VM dan TPU, dengan menyimpan checkpoint model secara rutin dan dengan mengonfigurasi aplikasi Anda untuk memulihkan checkpoint terbaru saat memulai ulang.