Pengantar Cloud TPU
Tensor Processing Unit (TPU) adalah sirkuit terintegrasi khusus aplikasi (ASIC) yang dikembangkan secara kustom oleh Google dan digunakan untuk mempercepat beban kerja machine learning. Untuk mengetahui informasi selengkapnya tentang hardware TPU, lihat Arsitektur TPU. Cloud TPU adalah layanan web yang menyediakan TPU sebagai resource komputasi yang dapat diskalakan di Google Cloud.
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) on-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 akselerator (XLA). XLA adalah compiler tepat waktu yang mengambil grafik yang dikeluarkan oleh aplikasi framework ML dan mengompilasi komponen aljabar linear, kerugian, dan gradien grafik menjadi 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 beban kerja 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 berukuran 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 sematan sangat besar yang umum dalam workload rekomendasi dan peringkat lanjutan
Cloud TPU tidak cocok untuk workload berikut:
- Program aljabar linear yang memerlukan percabangan yang sering atau berisi banyak operasi aljabar per elemen
- Workload yang memerlukan aritmatika presisi tinggi
- Workload jaringan neural yang berisi operasi kustom dalam loop pelatihan utama
TPU di Google Cloud
Anda dapat menggunakan TPU melalui VM Cloud TPU, Google Kubernetes Engine, dan Vertex AI. Tabel berikut mencantumkan resource untuk setiap layanan Google Cloud.
| Google Cloud layanan | Resource |
|---|---|
| Cloud TPU | Mulai menggunakan VM Cloud TPU |
| Google Kubernetes Engine | |
| Vertex AI |
Praktik terbaik untuk pengembangan model
Program yang komputasinya didominasi oleh operasi non-matriks seperti penambahan, pembentukan ulang, atau penggabungan, 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 menyusun perkalian matriks menjadi blok yang lebih kecil, untuk menjalankan komputasi secara efisien pada unit matriks (MXU). Struktur hardware MXU, array sistolik 128x128, dan desain subsistem memori TPU, yang lebih memilih dimensi kelipatan 8, digunakan oleh compiler XLA untuk efisiensi pengelompokan.
Oleh karena itu, tata letak tertentu lebih cocok untuk penataan, sementara tata letak lainnya memerlukan pembentukan ulang sebelum dapat ditata. Operasi mengubah bentuk sering kali terikat 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 yang komputasi padatnya dapat diatur menjadi bagian-bagian 128x128. Jika komputasi matriks tidak dapat menempati seluruh MXU, compiler akan mengisi tensor dengan nol. Ada dua kekurangan padding:
- Tensor yang diisi dengan nol kurang memanfaatkan core TPU.
- Pengisihan meningkatkan jumlah penyimpanan memori on-chip yang diperlukan untuk 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 cocok untuk TPU.
Dimensi
Memilih dimensi tensor yang sesuai sangat membantu dalam mengekstrak performa maksimum dari hardware TPU, terutama MXU. Compiler XLA berupaya menggunakan ukuran batch 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 batch dan dimensi fitur harus kelipatan 8, yang memungkinkan ekstraksi performa tinggi dari subsistem memori.
Mulai menggunakan Cloud TPU
- Menyiapkan Google Cloud akun
- Aktifkan Cloud TPU API
- Memberi Cloud TPU akses ke bucket Cloud Storage Anda
- Menjalankan perhitungan dasar di TPU
- Melatih model referensi di TPU
- Menganalisis model Anda
Meminta bantuan
Untuk mendapatkan bantuan, hubungi dukungan Cloud TPU. Jika Anda memiliki project Google Cloud yang aktif, bersiaplah untuk memberikan informasi berikut:
- ID project Google Cloud Anda
- Nama TPU Anda, jika ada
- Informasi lain yang ingin Anda berikan
Apa langkah selanjutnya?
Ingin mempelajari Cloud TPU lebih lanjut? Referensi berikut dapat membantu: