Pengantar Cloud TPU
Tensor Processing Unit (TPU) adalah sirkuit terintegrasi khusus aplikasi (ASIC) yang dikembangkan secara kustom oleh Google dan digunakan untuk mempercepat workload machine learning. Untuk mengetahui informasi selengkapnya tentang hardware TPU, lihat arsitektur TPU.
TPU melatih model Anda secara efisien dengan menggunakan hardware yang dirancang untuk melakukan operasi matriks besar yang sering ditemukan dalam algoritma machine learning. TPU memiliki memori bandwidth tinggi (HBM) pada chip yang memungkinkan Anda menggunakan model dan ukuran batch yang lebih besar. TPU dapat dihubungkan dalam grup yang disebut slice yang meningkatkan skala beban kerja Anda dengan sedikit atau tanpa perubahan kode.
Kode yang berjalan di TPU harus dikompilasi oleh compiler aljabar linier yang dipercepat (XLA). XLA adalah compiler tepat waktu yang mengambil grafik yang dikeluarkan oleh aplikasi framework ML dan mengompilasi aljabar linier, kerugian, dan komponen gradien grafik ke dalam kode mesin TPU. Bagian program lainnya berjalan di mesin host TPU. Compiler XLA adalah bagian dari image VM TPU yang berjalan di mesin host TPU.
Untuk mengetahui informasi selengkapnya tentang Tensor Processing Unit, lihat Cara memahami TPU.
Kapan harus menggunakan TPU
Cloud TPU dioptimalkan untuk workload tertentu. Dalam beberapa situasi, Anda mungkin ingin menggunakan GPU atau CPU di instance Compute Engine untuk menjalankan workload machine learning. Secara umum, Anda dapat memutuskan hardware terbaik untuk workload Anda berdasarkan panduan berikut.
CPU
- Pembuatan prototipe cepat yang memerlukan fleksibilitas maksimum
- Model sederhana yang tidak memerlukan waktu lama untuk dilatih
- Model kecil dengan ukuran tumpukan efektif yang kecil
- Model yang berisi banyak operasi TensorFlow kustom yang ditulis dalam C++
- Model yang dibatasi oleh I/O yang tersedia atau bandwidth jaringan sistem host
GPU
- Model dengan sejumlah besar operasi PyTorch/JAX kustom yang harus dijalankan setidaknya sebagian di CPU
- Model dengan operasi TensorFlow yang tidak tersedia di Cloud TPU (lihat daftar operasi TensorFlow yang tersedia)
- Model sedang hingga besar dengan ukuran tumpukan efektif yang lebih besar
TPU
- Model yang didominasi oleh komputasi matriks
- Model tanpa operasi PyTorch/JAX kustom di dalam loop pelatihan utama
- Model yang dilatih selama berminggu-minggu atau berbulan-bulan
- Model besar dengan ukuran tumpukan efektif yang besar
- Model dengan embedding sangat besar yang umum dalam workload rekomendasi dan peringkat lanjutan
Cloud TPU tidak cocok untuk beban kerja berikut:
- Program aljabar linear yang memerlukan percabangan yang sering atau berisi banyak operasi aljabar per elemen
- Workload yang memerlukan aritmetika presisi tinggi
- Workload jaringan neural yang berisi operasi kustom dalam loop pelatihan utama
TPU di Google Cloud
Anda dapat menggunakan TPU melalui Compute Engine, Google Kubernetes Engine, dan Vertex AI. Cloud TPU API tidak digunakan lagi. Untuk mengetahui informasi selengkapnya, lihat Bermigrasi dari Cloud TPU API. Tabel berikut mencantumkan resource untuk setiap layanan Google Cloud .
| Google Cloud layanan | Resource |
|---|---|
| Compute Engine | Resource TPU di Compute Engine |
| Google Kubernetes Engine | |
| Vertex AI |
Praktik terbaik untuk pengembangan model
Program yang komputasinya didominasi oleh operasi non-matriks seperti add, reshape, atau concatenate, kemungkinan tidak akan mencapai pemanfaatan MXU yang tinggi. Berikut adalah beberapa panduan untuk membantu Anda memilih dan membangun model yang cocok untuk Cloud TPU.
Tata Letak
Compiler XLA melakukan transformasi kode, termasuk membagi perkalian matriks menjadi blok-blok yang lebih kecil, untuk menjalankan komputasi secara efisien di unit matriks (MXU). Struktur hardware MXU, array sistolik 128x128, dan desain subsistem memori TPU, yang lebih menyukai dimensi yang merupakan kelipatan 8, digunakan oleh compiler XLA untuk efisiensi pengelompokan.
Oleh karena itu, tata letak tertentu lebih kondusif untuk tiling, sementara tata letak lain memerlukan pembentukan ulang sebelum dapat di-tiling. Operasi pembentukan ulang sering kali terikat dengan memori di Cloud TPU.
Bentuk
Compiler XLA mengompilasi grafik ML tepat pada waktunya untuk batch pertama. Jika batch berikutnya memiliki bentuk yang berbeda, model tidak akan berfungsi. (Mengompilasi ulang grafik setiap kali bentuk berubah terlalu lambat.) Oleh karena itu, model apa pun yang memiliki tensor dengan bentuk dinamis tidak cocok untuk TPU.
Padding
Program Cloud TPU berperforma tinggi adalah program di mana komputasi padat dapat diatur menjadi bagian-bagian berukuran 128x128. Saat komputasi matriks tidak dapat mengisi seluruh MXU, compiler akan menambahkan nol pada tensor. Ada dua kekurangan padding:
- Tensor yang diisi dengan angka nol kurang memanfaatkan inti TPU.
- Padding meningkatkan jumlah penyimpanan memori pada chip yang dibutuhkan untuk sebuah tensor dan dapat menyebabkan error kehabisan memori dalam kasus ekstrem.
Meskipun padding dilakukan secara otomatis oleh compiler XLA jika diperlukan, seseorang dapat menentukan jumlah padding yang dilakukan dengan alat op_profile. Anda dapat menghindari padding dengan memilih dimensi tensor yang sesuai dengan TPU.
Dimensi
Memilih dimensi tensor yang sesuai sangat membantu dalam mengekstrak performa maksimal dari hardware TPU, terutama MXU. Compiler XLA berupaya menggunakan ukuran tumpukan atau dimensi fitur untuk menggunakan MXU secara maksimal. Oleh karena itu, salah satunya harus kelipatan 128. Jika tidak, kompiler akan mengisi salah satunya hingga 128. Idealnya, ukuran tumpukan dan dimensi fitur harus kelipatan 8, yang memungkinkan ekstraksi performa tinggi dari subsistem memori.
Mulai menggunakan Cloud TPU
Untuk mulai menggunakan TPU dengan Compute Engine, ikuti langkah-langkah berikut:
- Untuk menyiapkan project, aktifkan Compute Engine API, dan dapatkan izin yang diperlukan, ikuti langkah-langkah dalam Menyiapkan project Google Cloud.
- Untuk mempelajari versi, konfigurasi, kuota, dan harga TPU, baca Merencanakan resource Cloud TPU.
- Untuk mulai menggunakan TPU, lihat Panduan memulai: Membuat instance TPU. Untuk mengetahui informasi selengkapnya tentang cara membuat TPU, lihat Ringkasan pembuatan TPU.
Meminta bantuan
Untuk mendapatkan bantuan, hubungi dukungan Cloud TPU. Jika Anda memiliki project Google Cloud yang aktif, bersiaplah untuk memberikan informasi berikut:
- Google Cloud Project ID Anda
- Nama TPU Anda, jika ada
- Informasi lain yang ingin Anda berikan