Arsitektur TPU
Tensor Processing Unit (TPU) adalah sirkuit terintegrasi khusus aplikasi (ASIC) yang dirancang oleh Google untuk mempercepat workload machine learning. Cloud TPU adalah layanan yang menyediakan TPU sebagai resource yang dapat diskalakan. Google Cloud
TPU dirancang untuk melakukan operasi matriks dengan cepat sehingga ideal untuk workload machine learning. Anda dapat menjalankan workload machine learning di TPU menggunakan framework seperti PyTorch dan JAX.
Cara kerja TPU
Untuk memahami cara kerja TPU, Anda perlu memahami cara akselerator lain mengatasi tantangan komputasi dalam melatih model ML.
Cara kerja CPU
CPU adalah prosesor tujuan umum yang didasarkan pada arsitektur von Neumann. Artinya, CPU bekerja dengan software dan memori seperti ini:

Manfaat terbesar CPU adalah fleksibilitasnya. Anda dapat memuat semua jenis software di CPU untuk berbagai jenis aplikasi. Misalnya, Anda dapat menggunakan CPU untuk pengolah kata di PC, mengontrol mesin roket, menjalankan transaksi bank, atau mengklasifikasikan gambar dengan jaringan neural.
CPU memuat nilai dari memori, melakukan perhitungan pada nilai, dan menyimpan hasilnya kembali dalam memori untuk setiap perhitungan. Akses memori lambat jika dibandingkan dengan kecepatan perhitungan dan dapat membatasi total throughput CPU. Hal ini sering disebut sebagai von Neumann bottleneck.
Cara kerja GPU
Untuk mendapatkan throughput yang lebih tinggi, GPU berisi ribuan Arithmetic Logic Units (ALU) dalam satu prosesor. GPU modern biasanya berisi antara 2.500–5.000 ALU. Jumlah prosesor yang besar berarti Anda dapat menjalankan ribuan perkalian dan penambahan secara bersamaan.

Arsitektur GPU ini berfungsi dengan baik pada aplikasi dengan paralelisme besar, seperti operasi matriks dalam jaringan neural. Bahkan, pada workload pelatihan umum untuk deep learning, GPU dapat memberikan throughput yang jauh lebih tinggi daripada CPU.
Namun, GPU tetap merupakan prosesor tujuan umum yang harus mendukung berbagai aplikasi dan software. Oleh karena itu, GPU memiliki masalah yang sama dengan CPU. Untuk setiap perhitungan dalam ribuan ALU, GPU harus mengakses register atau memori bersama untuk membaca operand dan menyimpan hasil perhitungan sementara.
Cara kerja TPU
Google mendesain Cloud TPU sebagai prosesor matriks yang dikhususkan untuk workload jaringan neural. TPU tidak dapat menjalankan pengolah kata, mengontrol mesin roket, atau menjalankan transaksi bank, tetapi dapat menangani operasi matriks besar yang digunakan dalam jaringan neural dengan kecepatan tinggi.
Tugas utama TPU adalah pemrosesan matriks, yang merupakan kombinasi operasi perkalian dan akumulasi. TPU berisi ribuan multiply-accumulator yang terhubung langsung satu sama lain untuk membentuk matriks fisik besar. Hal ini disebut arsitektur array sistolik. Cloud TPU v3 berisi dua array sistolik ALU 128 x 128, pada satu prosesor.
Host TPU melakukan streaming data ke antrean infeed. TPU memuat data dari antrean infeed dan menyimpannya di High Bandwidth Memory (HBM). Setelah komputasi selesai, TPU akan memuat hasilnya ke dalam antrean outfeed. Kemudian, host TPU membaca hasil dari antrean outfeed dan menyimpannya dalam memori host.
Untuk melakukan operasi matriks, TPU memuat parameter dari HBM ke dalam Matrix Multiplication Unit (MXU).

Kemudian, TPU memuat data dari HBM. Saat setiap perkalian dijalankan, hasilnya akan diteruskan ke multiply-accumulator berikutnya. Output adalah penjumlahan semua hasil perkalian antara data dan parameter. Tidak ada akses memori yang diperlukan selama proses perkalian matriks.

Hasilnya, TPU dapat mencapai throughput komputasi yang tinggi pada perhitungan jaringan neural.
Arsitektur sistem TPU
Bagian berikut menjelaskan konsep utama sistem TPU. Untuk mengetahui informasi selengkapnya tentang istilah machine learning umum, lihat Glosarium Machine Learning.
Jika Anda baru menggunakan Cloud TPU, lihat halaman beranda dokumentasi TPU.
Chip TPU
Chip TPU berisi satu atau beberapa TensorCore. Jumlah TensorCore bergantung pada versi chip TPU. Setiap TensorCore terdiri dari satu atau beberapa unit perkalian matriks (MXU), unit vektor, dan unit skalar. Untuk mengetahui informasi selengkapnya tentang TensorCore, lihat Superkomputer Khusus Domain untuk Melatih Jaringan Neural yang Mendalam.
MXU terdiri dari 256 x 256 (TPU v6e dan TPU7x) atau 128 x 128 (versi TPU sebelum v6e) multiply-accumulator dalam array sistolik. MXU menyediakan sebagian besar daya komputasi di TensorCore. Setiap MXU mampu melakukan 16 ribu operasi multiply-accumulate per siklus. Semua perkalian menggunakan bfloat16, tetapi semua akumulasi dilakukan dalam format angka FP32.
Unit vektor digunakan untuk komputasi umum seperti aktivasi dan softmax. Unit skalar digunakan untuk alur kontrol, menghitung alamat memori, dan operasi pemeliharaan lainnya.
Pod TPU
Pod TPU adalah kumpulan TPU yang berdekatan dan dikelompokkan bersama melalui jaringan khusus. Jumlah chip TPU dalam Pod TPU bergantung pada versi TPU.
Slice
Slice adalah kumpulan chip yang semuanya berada di dalam Pod TPU yang sama dan terhubung oleh interkoneksi chip berkecepatan tinggi (ICI). Slice dideskripsikan berdasarkan chip atau TensorCore, bergantung pada versi TPU.
Bentuk chip dan topologi chip juga mengacu pada bentuk slice.
Multislice versus slice tunggal
Multislice adalah grup slice, yang memperluas konektivitas TPU di luar koneksi interkoneksi chip (ICI) dan memanfaatkan jaringan pusat data (DCN) untuk mengirimkan data di luar slice. Data dalam setiap slice masih dikirimkan oleh ICI. Dengan menggunakan konektivitas hybrid ini, Multislice memungkinkan paralelisme di seluruh slice dan memungkinkan Anda menggunakan jumlah core TPU yang lebih besar untuk satu tugas daripada yang dapat ditampung oleh satu slice.
TPU dapat digunakan untuk menjalankan tugas di satu slice atau beberapa slice. Lihat Pengantar Multislice untuk mengetahui detail selengkapnya.
Kubus TPU
Topologi 4x4x4 dari chip TPU yang saling terhubung. Kubus ini hanya berlaku untuk topologi 3D (mulai dari TPU v4).
SparseCore
SparseCore adalah prosesor dataflow yang mempercepat model menggunakan operasi jarang. Kasus penggunaan utama adalah mempercepat model rekomendasi, yang sangat bergantung pada embedding. v5p dan TPU7x memiliki empat SparseCore per chip, dan v6e memiliki dua SparseCore per chip. Untuk penjelasan mendalam tentang cara penggunaan SparseCore dapat digunakan, lihat Penjelasan mendalam tentang SparseCore untuk Model Embedding Besar (LEM). Anda mengontrol cara compiler XLA menggunakan SparseCore menggunakan flag XLA. Untuk mengetahui informasi selengkapnya, lihat: Flag XLA TPU.
Resiliensi ICI Cloud TPU
Resiliensi ICI membantu meningkatkan fault tolerance link optik dan optical circuit switch (OCS) yang menghubungkan TPU antar-kubus. (Koneksi ICI dalam satu kubus menggunakan link tembaga yang tidak terpengaruh). Resiliensi ICI memungkinkan koneksi ICI dirutekan di sekitar kesalahan OCS dan ICI optik. Hasilnya, resiliensi ICI meningkatkan ketersediaan penjadwalan slice TPU, dengan kompromi penurunan performa ICI sementara.
Untuk Cloud TPU v4, v5p, dan TPU7x, resiliensi ICI diaktifkan secara default untuk slice yang berukuran satu kubus atau lebih besar, misalnya:
- v5p-128 saat menentukan jenis akselerator
- 4x4x4 saat menentukan konfigurasi akselerator
Versi TPU
Arsitektur pasti chip TPU bergantung pada versi TPU yang Anda gunakan. Setiap versi TPU juga mendukung ukuran dan konfigurasi slice yang berbeda. Untuk mengetahui informasi selengkapnya tentang arsitektur sistem dan konfigurasi yang didukung, lihat halaman berikut:
Arsitektur cloud TPU
Google Cloud menyediakan TPU sebagai resource komputasi melalui VM TPU. Anda dapat langsung menggunakan VM TPU untuk workload atau menggunakannya melalui Google Kubernetes Engine atau Vertex AI. Bagian berikut menjelaskan komponen utama arsitektur cloud TPU.
Arsitektur VM TPU
Arsitektur VM TPU memungkinkan Anda terhubung langsung ke VM yang terhubung secara fisik ke perangkat TPU menggunakan SSH. VM TPU, yang juga dikenal sebagai pekerja, adalah mesin virtual yang menjalankan Linux dan memiliki akses ke TPU yang mendasarinya. Anda memiliki akses root ke VM, sehingga dapat menjalankan kode arbitrer. Anda dapat mengakses log debug dan pesan error runtime dan compiler.

Host tunggal, multi-host, dan sub-host
Host TPU adalah VM yang berjalan di komputer fisik yang terhubung ke hardware TPU. Workload TPU dapat menggunakan satu atau beberapa host.
Workload host tunggal terbatas pada satu VM TPU. Workload multi-host mendistribusikan pelatihan ke beberapa VM TPU. Workload sub-host tidak menggunakan semua chip di VM TPU.
Visualisator topologi TPU
Visualisator topologi TPU adalah alat yang memungkinkan Anda memvisualisasikan tata letak fisik TPU dan infrastruktur jaringan terkait dalam pusat data fisik. Gunakan alat ini untuk memahami tata letak infrastruktur fisik untuk berbagai generasi dan topologi TPU.