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
- Buka halaman TPU di bagian Compute Engine di halaman utama.
- Klik BUAT node TPU untuk membuka halaman pembuatan node TPU.
- Ketik nama untuk node TPU Anda.
- Pilih zona untuk membuat node TPU.
- Pilih jenis TPU untuk node TPU Anda.
- Klik Turn on preemtibility for this node untuk menjadikan TPU node Anda dapat dihentikan.
- 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.