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 terhubung dalam grup yang disebut slice yang dapat menskalakan workload Anda dengan sedikit atau tanpa perubahan kode.

Kode yang berjalan di TPU harus dikompilasi oleh compiler accelerated linear algebra (XLA). XLA adalah compiler tepat waktu yang mengambil graf yang dikeluarkan oleh aplikasi framework ML dan mengompilasi komponen aljabar linier, kerugian, dan gradien graf 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 mana yang paling sesuai 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 batch 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 berjalan 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 batch 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 batch efektif yang besar
  • Model dengan embedding yang sangat besar dan umum dalam workload rekomendasi dan peringkat lanjutan

Cloud TPU tidak cocok untuk workload berikut:

  • Program aljabar linier 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 Google Cloud layanan.

Google Cloud layanan Resource
Compute Engine Resource TPU di Compute Engine
Google Kubernetes Engine

Tentang TPU di GKE

Men-deploy workload Cloud TPU GKE di Cluster Toolkit

Vertex AI

Pelatihan di Vertex AI dengan TPU

Menggunakan TPU untuk prediksi online di 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 beberapa panduan untuk membantu Anda memilih dan membuat model yang sesuai untuk Cloud TPU.

Tata Letak

Compiler XLA melakukan transformasi kode, termasuk tiling 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 menyukai dimensi yang merupakan kelipatan 8, digunakan oleh compiler XLA untuk efisiensi tiling.

Oleh karena itu, tata letak tertentu lebih kondusif untuk tiling, sementara tata letak lainnya memerlukan pembentukan ulang agar dapat di-tiling. Operasi pembentukan ulang sering kali terikat dengan memori di Cloud TPU.

Bentuk

Compiler XLA mengompilasi graf ML tepat pada waktunya untuk batch pertama. Jika batch berikutnya memiliki bentuk yang berbeda, model tidak akan berfungsi. (Mengompilasi ulang graf setiap kali bentuk berubah akan 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 di-tiling menjadi bagian-bagian berukuran 128x128. Saat komputasi matriks tidak dapat mengisi seluruh MXU, compiler akan menambahkan nol pada tensor. Ada dua kelemahan padding:

  • Tensor yang diisi dengan angka nol tidak memanfaatkan inti TPU secara maksimal.
  • 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, Anda dapat menentukan jumlah padding yang dilakukan dengan menggunakan alat op_profile. Anda dapat menghindari padding dengan memilih dimensi tensor yang sesuai dengan TPU.

Dimensi

Memilih dimensi tensor yang sesuai akan sangat membantu dalam mengekstrak performa maksimum dari hardware TPU, terutama MXU. Compiler XLA mencoba menggunakan ukuran tumpukan atau dimensi fitur untuk menggunakan MXU secara maksimal. Oleh karena itu, salah satunya harus merupakan kelipatan 128. Jika tidak, compiler akan menambahkan salah satunya ke 128. Idealnya, ukuran batch dan dimensi fitur harus merupakan kelipatan 8, yang memungkinkan ekstraksi performa tinggi dari subsistem memori.

Mulai menggunakan Cloud TPU

Untuk mulai menggunakan TPU menggunakan Compute Engine, ikuti langkah-langkah berikut:

  1. Untuk menyiapkan project, mengaktifkan Compute Engine API, dan mendapatkan izin yang diperlukan, ikuti langkah-langkah di Menyiapkan Google Cloud project.
  2. Untuk mempelajari versi, konfigurasi, kuota, dan harga TPU, baca Merencanakan resource Cloud TPU.
  3. Untuk mulai menggunakan TPU, lihat Panduan memulai: Membuat instance TPU. Untuk mengetahui informasi selengkapnya tentang pembuatan TPU, lihat Ringkasan pembuatan TPU.

Meminta bantuan

Untuk mendapatkan bantuan, hubungi dukungan Cloud TPU. Jika Anda memiliki project aktif, bersiaplah untuk memberikan informasi berikut: Google Cloud

  • Project ID Anda Google Cloud
  • Nama TPU Anda, jika ada
  • Informasi lain yang ingin Anda berikan

Langkah berikutnya