Alat Analisis Roofline
Alat Analisis Roofline menawarkan model performa visual intuitif yang dapat Anda gunakan untuk memahami batasan hardware bawaan yang memengaruhi performa program Anda. Secara khusus, hal ini berfokus pada apakah program dibatasi memori atau dibatasi komputasi, dan seberapa dekat performa program dengan performa puncak teoretis hardware, yang direpresentasikan sebagai "roofline".
Platform yang Didukung
TPU: Didukung
GPU: Didukung (dalam versi beta)
Apa yang dimaksud dengan Diagram Atap
Diagram roofline memvisualisasikan hubungan antara intensitas operasional (FLOPS per byte yang diakses) dan FLOPS per detik yang dicapai.
\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]
Bentuk "atap" dibentuk oleh FLOPS puncak yang lebih rendah dan performa yang dapat dicapai dengan bandwidth memori dan intensitas operasional. Titik ridge menunjukkan intensitas operasional minimum yang diperlukan untuk mencapai FLOPS puncak.
Anda dapat mempelajari model roofline lebih lanjut di Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures, atau di topik Roofline model di Wikipedia.
Menafsirkan Diagram Atap
Dengan memetakan intensitas operasional dan FLOPS yang dicapai untuk berbagai langkah, bagian program, atau setiap operasi HLO pada diagram roofline, Anda dapat memperoleh insight tentang bottleneck performa:
- Jika titik data berada di bagian miring roofline, performa mungkin dibatasi oleh bandwidth memori (memory-bound). Meningkatkan intensitas operasional (melakukan lebih banyak komputasi per byte data yang diakses) berpotensi meningkatkan performa.
- Jika titik data berada di bagian datar roofline, performa mungkin dibatasi oleh kemampuan komputasi (compute-bound). Dalam hal ini, peningkatan intensitas operasional lebih lanjut mungkin tidak menghasilkan peningkatan performa yang signifikan, kecuali jika FLOPS puncak hardware dapat digunakan dengan lebih baik.
- Jarak titik data dari roofline menunjukkan potensi peningkatan performa. Jarak yang lebih besar menunjukkan bahwa ada peluang untuk mengoptimalkan program agar dapat memanfaatkan kemampuan hardware dengan lebih baik.
Komponen Antarmuka
Antarmuka alat Roofline Analysis memiliki beberapa komponen utama:
- Bagian Informasi Perangkat menjelaskan spesifikasi hardware; ini digunakan untuk menggambar “roofline” secara statis pada diagram
- Diagram roofline tingkat program dengan titik data yang sesuai dengan
hal berikut:
- Total durasi profil.
- Total durasi profil, tetapi dengan data FLOPS/s yang berasal dari penghitung performa hardware, bukan model biaya default yang dihitung oleh compiler XLA.
- Rata-rata langkah lengkap yang dieksekusi selama durasi profil (untuk tugas pelatihan; Anda dapat mengabaikan terminologi langkah untuk tugas inferensi).
- Setiap langkah lengkap yang dijalankan selama durasi profil (untuk pekerjaan pelatihan; Anda dapat mengabaikan terminologi langkah untuk pekerjaan inferensi).
- Diagram roofline juga memiliki fitur berikut:
- Anda dapat memilih untuk menyertakan atau mengecualikan operasi infeed/outfeed menggunakan drop-down yang disediakan.
- Mengarahkan kursor ke titik data mana pun dalam diagram akan menampilkan informasi tambahan yang relevan seperti jumlah bandwidth untuk memori yang berbeda, total waktu yang dihabiskan, dll.
- Tabel statistik tingkat program yang memberikan detail tambahan untuk setiap titik data, seperti penggunaan memori maksimum %, kecepatan FLOP puncak %, dll.
- Diagram roofline kedua yang memberikan informasi yang lebih terperinci, dengan titik
data yang dipetakan untuk 1.000 operasi yang paling banyak menghabiskan waktu selama periode
profiling:
- Seperti diagram roofline tingkat program, mengarahkan kursor ke setiap titik data akan menampilkan informasi tambahan tentang operasi tersebut.
- Anda dapat menyesuaikan titik data yang ditampilkan pada diagram dengan cara berikut:
- Menyertakan/mengecualikan operasi infeed dan outfeed melalui drop-down.
- Memfilter untuk kategori operasi tertentu.
- Memfilter operasi yang terikat oleh resource tertentu.
- Memfilter untuk operasi bernama tertentu.
- Tabel statistik kedua, mirip dengan tabel tingkat program, yang memberikan detail tambahan untuk setiap titik data.
Di semua bagian yang dijelaskan di atas, memori berikut didukung:
- Untuk TPU: HBM, VMEM, CMEM (khusus TPU v4).
- Untuk GPU: HBM, L1/SharedMem.
- Garis yang sesuai dalam diagram hanya muncul jika ada operasi dalam durasi profil yang terikat dengan memori tersebut. Misalnya, jika semua operasi terikat HBM atau komputasi, Anda tidak akan melihat baris untuk VMEM atau CMEM.