Membuat profil lingkungan Multislice
Lingkungan Cloud TPU Multislice terdiri dari beberapa slice Pod TPU yang berkomunikasi melalui Data Center Network (DCN). Anda dapat menggunakan alat statistik kolektif DCN untuk melihat informasi tentang seberapa efektif lingkungan Multislice Anda dalam memanfaatkan jaringan DCN. Secara khusus, alat Statistik Kolektif DCN memungkinkan Anda untuk:
- Melihat dan memahami performa jaringan antarbagian berdasarkan data yang dikumpulkan
- Mengidentifikasi bottleneck performa
- Mengoptimalkan performa model Anda
Semua metrik di alat statistik kolektif DCN dibuat per TPU.
Terminologi
Alat statistik kolektif DCN menampilkan metrik yang menjelaskan komunikasi yang terjadi antara slice TPU dalam lingkungan Multislice. Saat runtime TPU memulai komunikasi antar-slice, serangkaian operasi akan digunakan:
send
- Mengganggu host untuk memulai Akses Memori Langsung (DMA) dan menyediakan buffer yang terisi ke host untuk memulai transfer data.
send-done
- Memberi tahu host bahwa transfer data selesai.
recv
- Menyediakan buffer kosong untuk diisi host dengan data yang ditransfer.
recv-done
- Memberi sinyal ke host bahwa data telah diterima.
Kolektif dimulai saat operasi send
terjadi dan diselesaikan saat
operasi recv-done
yang cocok terjadi.
Waktu Slack
Ukuran waktu kumpulan dapat mengirim dan menerima data.
Tidak termasuk operasi send
, send-done
, recv
, atau recv-done
.
Misalnya, dengan linimasa berikut:
Waktu Slack dihitung dalam contoh ini sebagai:
Waktu Slack = t1 + t2 + t3
Menambah waktu kelonggaran akan mengurangi peluang untuk menghentikan TPU untuk kolektif. Anda dapat meningkatkan waktu slack dengan memilih metode sharding lain.
Durasi kios
Durasi rata-rata yang dihabiskan kolektif dalam operasi pengiriman, pengiriman, penerimaan, penerimaan, dan pengambilan. Perhatikan, ini tidak termasuk waktu yang dihabiskan untuk mengirimkan data. Misalnya, dengan linimasa berikut:
Durasi kios dalam contoh ini dihitung sebagai berikut:
Durasi penghentian = tkirim + tkirim-done + trecv + trecv-done
Durasi yang diamati
Jumlah waktu antara operasi send
dan recv-done
, termasuk
waktu mengirim dan menerima data. Misalnya, dengan linimasa berikut:
Durasi yang diamati dihitung sebagai:
Durasi yang diamati = tsend + t1 + tsend-done + t2 + trecv + t3 + trecv-done
Kejadian
Berapa kali 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 kios gabungan
Jumlah total waktu kolektif mengumpulkan TPU selama durasi profil. Total kios agregasi dihitung sebagai:
Total gabungan kios = durasi kios * kemunculan
Ukuran data yang dikirim
Jumlah data yang ditransmisikan melalui jaringan untuk kolektif selama durasi profil.
Bandwidth yang diperlukan
Bandwidth yang diperlukan untuk mengirimkan data dalam slack yang disediakan. Anda dapat menggunakan metrik ini untuk melihat jumlah kolektif yang bersaing untuk bandwidth jaringan selama durasi profil. Bandwidth yang diperlukan dihitung sebagai berikut:
Bandwidth yang diperlukan = ukuran data yang dikirim / waktu slack
Status alat
Tabel berikut menunjukkan versi versi runtime TensorFlow atau TPU yang diperlukan untuk setiap metrik yang ditampilkan di alat DCN Collective Stats.
Statistik Kolektif DCN | TensorFlow versi runtime TPU yang didukung |
---|---|
Waktu Slack | TensorFlow 2.15.0, tensorboard 2.15.1 dan tensorboard-plugin-profile 2.15.0 |
Durasi kios | 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 kios 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 Profile.
- Urutkan tabel di alat statistik kolektif DCN berdasarkan Aggregated Total Stall dalam urutan yang menurun.
- Identifikasi nama kolektif DCN yang memiliki Total Kios Gabungan tertinggi. Jika durasi kios gabungan ini sangat tinggi dibandingkan dengan yang lain, hal ini dapat menunjukkan bahwa ada bottleneck dalam kolektif DCN.
- Kalikan bandwidth yang diperlukan dari kolektif DCN 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 daripada bandwidth jaringan maksimum TPU, hal ini dapat berarti jaringan mengalami kepadatan. Untuk mengurangi bandwidth yang diperlukan, coba ubah mekanisme sharding yang Anda gunakan. Untuk mengetahui informasi selengkapnya tentang mekanisme sharding, lihat Ringkasan Cloud TPU Multislice.
- Membuat dump HLO untuk menentukan apakah ada masalah compiler. Sebaiknya
sebarkan operasi
send
danrecv-done
untuk kolektif guna memungkinkan penjadwalan Operasi HLO yang lebih tumpang-tindih. Tumpang tindih lebih banyak operasi HLO mengurangi waktu tunggu TPU. - Periksa durasi operasi
recv-done
di Trace Viewer untuk kolektif DCN yang memiliki total stall gabungan maksimum. Jika durasi transfer tinggi, mungkin terjadi bottleneck bandwidth karena operasirecv-done
biasanya diblokir di jaringan untuk mendapatkan data. - Jika durasi operasi
recv-done
tidak terlalu tinggi dibandingkan dengan kelonggaran waktu, hal ini dapat mengindikasikan masalah hardware.