Alat Statistik Operasi HLO
Anda dapat menggunakan Statistik Operasi HLO untuk melihat statistik performa operasi Pengoptimal Tingkat Tinggi (HLO) yang dijalankan selama sesi pembuatan profil. Alat ini bermanfaat untuk mengidentifikasi target potensial untuk pengoptimalan performa dengan menandai operasi yang paling memakan waktu dalam grafik HLO selama periode pembuatan profil.
Platform yang Didukung
TPU: Didukung
GPU: Didukung
Untuk GPU, operasi HLO memiliki hubungan N:M dengan kernel yang benar-benar dijalankan. Untuk statistik di tingkat kernel, lihat alat Statistik Kernel GPU.
Komponen Alat Statistik Operasi HLO
Alat HLO Op Stats memiliki komponen utama berikut:
- Tabel Statistik Operasi HLO: Ini adalah komponen utama, yang menyajikan
perincian mendetail dari setiap operasi HLO yang dijalankan selama sesi
profiling dalam format tabel. Ada satu baris untuk setiap operasi HLO
yang berbeda, dan kolom yang merekam berbagai detail terkait
operasi tersebut.
- Pemilih drop-down memungkinkan Anda menentukan kolom yang ingin divisualisasi untuk setiap operasi HLO.
- Anda juga dapat memfilter baris menurut kategori HLO Op melalui pemilih drop-down kedua.
- Kotak penelusuran memungkinkan Anda memfilter menurut ID program tertentu, operasi HLO, teks operasi HLO, atau nama operasi framework; filter memilih string yang diberikan yang muncul di mana saja dalam kolom masing-masing.
- Bagian Diagram Ringkas: Bagian ini memiliki diagram yang meringkas
tabel per operasi yang mendetail, dengan cara berikut:
- Diagram lingkaran yang menunjukkan fraksi waktu yang digunakan oleh berbagai kategori operasi HLO.
- Diagram lingkaran yang menunjukkan fraksi waktu yang digunakan oleh setiap operasi HLO yang berbeda (dipotong ke operasi N teratas, dengan sisanya diklasifikasikan sebagai "Lainnya" untuk meningkatkan keterbacaan).
- Diagram lingkaran yang menunjukkan fraksi total waktu yang dihabiskan untuk operasi yang merupakan bagian dari rematerialisasi; XProf menerima informasi ini dari metadata compiler yang terkait dengan profil.
- Diagram lingkaran yang menunjukkan kategori operasi HLO tempat waktu rematerialisasi (jika ada) berlangsung.
- Waktu yang dihabiskan untuk kompilasi di luar: Kompilasi di luar adalah fitur TensorFlow yang memungkinkan operasi tertentu dalam komputasi XLA untuk berjalan secara transparan di CPU host, bukan perangkat akselerator (misalnya, tf.summary atau tf.print yang memerlukan akses I/O yang tidak dimiliki perangkat).
- Diagram yang memetakan GFLOPS/s untuk semua operasi HLO, yang diurutkan menurut total waktu mandiri.
- Khusus untuk TPU, waktu per HLO menurut grup replika: Drop-down memungkinkan Anda memilih dari berbagai operasi kolektif yang dijalankan selama sesi profiling. Berbagai instance operasi kolektif tersebut mungkin telah dijalankan di antara grup replika yang berbeda (misalnya, AllGather); diagram lingkaran menunjukkan distribusi waktu di antara berbagai instance ini.
Detail Tabel Statistik Operasi HLO
Anda dapat mengklik salah satu judul kolom untuk mengurutkan tabel statistik operasi HLO. Urutan default didasarkan pada total waktu mandiri operasi (berlabel “peringkat” dalam tabel).
Tabel ini mencakup informasi berikut untuk setiap operasi HLO:
- Nama Operasi: Nama unik yang ditetapkan ke operasi HLO oleh compiler XLA.
- ID Program: ID untuk modul HLO yang terkait dengan operasi ini
- Kategori Operasi HLO: Kategori ini sebagian besar ditentukan oleh compiler XLA; XProf juga menggunakan heuristik untuk mengidentifikasi dan mengategorikan operasi tertentu (misalnya, penggabungan konvolusi).
- Teks Operasi HLO: Disediakan oleh compiler XLA, dan menyertakan detail seperti jenis dan bentuk input/parameter.
- Nama operasi framework: Operasi di tingkat framework (misalnya, JAX) yang menghasilkan operasi HLO ini dibuat.
- Kejadian: Jumlah total frekuensi operasi HLO tertentu ini dijalankan selama periode pembuatan profil.
- Total waktu (μs): Waktu kumulatif yang dihabiskan untuk mengeksekusi operasi ini di semua kemunculannya. Jika operasi ini memiliki operasi turunan (misalnya, dalam penggabungan), waktu ini mencakup waktu yang dihabiskan di turunan tersebut.
- Waktu rata-rata (μs): Waktu rata-rata per eksekusi operasi HLO ini, termasuk waktu yang dihabiskan dalam operasi turunan, jika ada.
- Total waktu mandiri (μs): Waktu kumulatif yang dihabiskan hanya dalam isi operasi HLO ini, tidak termasuk waktu yang dihabiskan dalam operasi turunannya.
- Waktu mandiri rata-rata (μs): Waktu rata-rata per eksekusi operasi HLO ini, tidak termasuk waktu yang dihabiskan dalam operasi turunannya.
- Total waktu mandiri (%): Waktu mandiri operasi sebagai persentase dari total waktu di perangkat di semua operasi.
- Total waktu mandiri kumulatif (%): Jumlah total waktu mandiri (%) yang berjalan untuk semua operasi yang muncul lebih awal dalam urutan “peringkat”.
- Penundaan DMA (%): Persentase total waktu selama operasi tertunda karena operasi Akses Memori Langsung (DMA).
- Penggunaan bandwidth (penggunaan/detik) untuk FLOP, HBM, dan memori TPU internal jika tersedia (misalnya, CMEM hanya ada di TPU v4). Semua ini dihitung menggunakan analisis biaya statis compiler (penyebut), dan waktu eksekusi yang diprofilkan (pembilang).
- Model GFLOPS/s: Biaya GFLOP dihitung oleh compiler XLA, dan waktu diukur oleh profil.
- GFLOPS/s yang dinormalisasi: Mennormalisasi FLOP yang dihitung compiler berdasarkan basis per operasi berdasarkan presisi numerik, dan FLOP puncak yang didukung oleh perangkat untuk presisi yang berbeda. Misalnya, TPU v6e mendukung dua kali FLOP puncak di int8 dibandingkan dengan bf16; XProf dinormalisasi ke bf16 secara default.
- BW Memori: Jumlah byte/detik yang digunakan oleh operasi, dari memori apa pun (misalnya, VMEM dan HBM TPU di chip). Compiler XLA memberikan jumlah "byte" dan durasi diukur dalam profil.
- HBM BW: Jumlah byte/dtk yang secara khusus digunakan dari HBM.
- Intensitas operasional: Dihitung sebagai rasio FLOPS per byte, seperti yang ditentukan untuk analisis roofline.
- Batasan komputasi/Memori: Berdasarkan Model Roofline, kolom ini menunjukkan apakah performa operasi terutama dibatasi oleh kemampuan komputasi atau bandwidth memori.
- Rematerialisasi: Menunjukkan apakah operasi merupakan bagian dari rematerialisasi.
- Kompilasi di luar: Menunjukkan apakah operasi berjalan di CPU host menggunakan fasilitas kompilasi di luar TensorFlow.
- Disesuaikan secara otomatis: Menunjukkan apakah operasi disesuaikan secara otomatis oleh XLA. Untuk informasi selengkapnya, lihat Penyesuaian Otomatis dan Penyesuaian Otomatis yang Dipertahankan.