Membuat profil lingkungan Multislice
Lingkungan Multislice Cloud TPU terdiri dari beberapa slice Pod TPU yang berkomunikasi melalui Jaringan Pusat Data (DCN). Anda dapat menggunakan alat statistik kolektif DCN untuk melihat informasi tentang seberapa efektif lingkungan Multislice Anda menggunakan jaringan DCN. Secara khusus, alat Statistik Kolektif DCN memungkinkan Anda:
- Melihat dan memahami performa jaringan antar-slice berdasarkan data yang dikumpulkan
- Mengidentifikasi bottleneck performa
- Mengoptimalkan performa model
Semua metrik di alat statistik kolektif DCN dihasilkan berdasarkan TPU.
Terminologi
Alat statistik kolektif DCN menampilkan metrik yang mendeskripsikan komunikasi yang terjadi antara slice TPU dalam lingkungan Multislice. Saat runtime TPU memulai komunikasi antar-slice, serangkaian operasi akan digunakan:
send
- Menginterupsi host untuk memulai Direct Memory Access (DMA) dan menyediakan buffer yang terisi ke host untuk memulai transfer data.
send-done
- Memberi sinyal kepada host bahwa transfer data telah selesai.
recv
- Memberikan buffer kosong untuk diisi oleh host dengan data yang ditransfer.
recv-done
- Memberi sinyal kepada host bahwa data telah diterima.
Kolektif dimulai saat operasi send
terjadi dan selesai saat
operasi recv-done
yang cocok terjadi.
Waktu Luang
Ukuran waktu kolektif dapat mengirim dan menerima data.
Hal ini tidak mencakup operasi send
, send-done
, recv
, atau recv-done
.
Misalnya, dengan linimasa berikut:
Waktu jeda dihitung dalam contoh ini sebagai:
Waktu jeda = t1 + t2 + t3
Meningkatkan waktu jeda akan mengurangi peluang untuk menjeda TPU untuk kolektif. Anda dapat meningkatkan waktu jeda dengan memilih metode sharding yang berbeda.
Durasi macet
Durasi rata-rata waktu yang dihabiskan kolektif dalam operasi send, send-done, recv, dan recv-done. Perhatikan bahwa ini tidak termasuk waktu yang dihabiskan untuk mengirimkan data. Misalnya, dengan linimasa berikut:
Durasi jeda dihitung dalam contoh ini sebagai:
Durasi jeda = tsend + tsend-done + trecv + trecv-done
Durasi yang diamati
Durasi waktu antara operasi send
dan recv-done
, termasuk
waktu pengiriman dan penerimaan data. Misalnya, dengan linimasa berikut:
Durasi yang diamati dihitung sebagai:
Durasi yang diamati = tsend + t1 + tsend-done + t2 + trecv + t3 + trecv-done
Kejadian
Frekuensi kolektif dimulai dan diselesaikan selama durasi
profil. Kolektif dimulai saat operasi send
terjadi dan
selesai saat operasi recv-end
yang cocok terjadi. Operasi send
dan operasi recv-done
yang cocok harus terjadi dalam durasi profil agar
disertakan dalam metrik ini.
Total jeda gabungan
Total waktu yang dihabiskan kolektif untuk menjeda TPU selama durasi profil. Total jeda agregasi dihitung sebagai:
Total jeda gabungan = durasi jeda * kemunculan
Ukuran data yang dikirim
Jumlah data yang dikirim melalui jaringan untuk kolektif selama durasi profil.
Bandwidth yang diperlukan
Bandwidth yang diperlukan untuk mengirimkan data dalam waktu yang diberikan. Anda dapat menggunakan metrik ini untuk melihat jumlah kolektif yang bersaing untuk mendapatkan bandwidth jaringan selama durasi profil. Bandwidth yang diperlukan dihitung sebagai:
Bandwidth yang diperlukan = ukuran data yang dikirim / waktu jeda
Status alat
Tabel berikut menunjukkan versi TensorFlow atau versi runtime TPU yang diperlukan untuk setiap metrik yang ditampilkan di alat DCN Collective Stats.
Statistik Kolektif DCN | Versi runtime TPU TensorFlow yang didukung |
---|---|
Waktu luang | TensorFlow 2.15.0, tensorboard 2.15.1, dan tensorboard-plugin-profile 2.15.0 |
Durasi macet | TensorFlow 2.15.0, tensorboard 2.15.1, dan tensorboard-plugin-profile 2.15.0 |
Durasi yang diamati | TensorFlow 2.15.0, tensorboard 2.15.1, dan tensorboard-plugin-profile 2.15.0 |
Kejadian | TensorFlow 2.15.0, tensorboard 2.15.1, dan tensorboard-plugin-profile 2.15.0 |
Total jeda gabungan | tf-nightly, tb-nightly, tbp-nightly |
Ukuran data yang dikirim | tf-nightly, tb-nightly, tbp-nightly |
Bandwidth yang diperlukan | tf-nightly, tb-nightly, tbp-nightly |
Cara Menganalisis Alat Statistik Kolektif DCN
- Jalankan server TensorBoard dan buka tab Profil.
- Urutkan tabel di alat statistik kolektif DCN menurut Aggregated Total Stall dalam urutan menurun.
- Identifikasi nama kolektif DCN yang memiliki Total Stall Gabungan tertinggi. Jika durasi jeda gabungan kolektif ini secara signifikan tinggi dibandingkan dengan yang lain, hal ini dapat menunjukkan bahwa ada bottleneck dalam kolektif DCN.
- Kalikan bandwidth kolektif DCN yang diperlukan dengan jumlah core. Ada 8 core per host TPU v4, sehingga bandwidth yang diperlukan untuk kolektif adalah 8 x nilai yang ditampilkan. Jika bandwidth yang diperlukan lebih besar dari bandwidth jaringan maksimum TPU, hal ini mungkin berarti jaringan mengalami kemacetan. Untuk mengurangi bandwidth yang diperlukan, coba ubah mekanisme sharding yang Anda gunakan. Untuk mengetahui informasi selengkapnya tentang mekanisme sharding, lihat Ringkasan Multislice Cloud TPU.
- Buat dump HLO untuk menentukan apakah ada masalah compiler. Sebaiknya
sebarkan operasi
send
danrecv-done
untuk kolektif agar memungkinkan penjadwalan lebih banyak Ops HLO yang tumpang-tindih. Menempatkan lebih banyak operasi HLO secara tumpang-tindih akan mengurangi waktu jeda TPU. - Periksa durasi operasi
recv-done
di Trace Viewer untuk kolektif DCN yang memiliki total jeda gabungan maksimum. Jika durasi transfer tinggi, mungkin ada bottleneck bandwidth karena operasirecv-done
biasanya diblokir di jaringan untuk mendapatkan data. - Jika durasi operasi
recv-done
tidak terlalu tinggi dibandingkan dengan waktu jeda, hal ini dapat menunjukkan masalah hardware.