Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Peningkatan inisialisasi komunikasi kolektif
NCCL dan Gloo adalah perpustakaan komunikasi mendasar yang memungkinkan operasi kolektif (seperti all-reduce dan broadcast) di seluruh proses pelatihan terdistribusi. Namun, inisialisasi NCCL dan Gloo tradisional dapat menciptakan kemacetan selama pemulihan kesalahan.
Proses pemulihan standar mengharuskan semua proses untuk terhubung ke terpusat TCPStore dan berkoordinasi melalui proses root, memperkenalkan overhead mahal yang menjadi sangat bermasalah selama restart. Desain terpusat ini menciptakan tiga masalah penting: overhead koordinasi dari TCPStore koneksi wajib, penundaan pemulihan karena setiap restart harus mengulangi urutan inisialisasi penuh, dan satu titik kegagalan dalam proses root itu sendiri. Ini memaksakan langkah koordinasi yang mahal dan terpusat setiap kali pelatihan menginisialisasi atau memulai kembali.
HyperPod pelatihan checkpointless menghilangkan kemacetan koordinasi ini, memungkinkan pemulihan lebih cepat dari kesalahan dengan membuat inisialisasi “tanpa akar” dan “.” TCPStoreless
Konfigurasi tanpa akar
Untuk mengaktifkan Rootless, seseorang cukup mengekspos variabel lingkungan berikut.
export HPCT_USE_ROOTLESS=1 && \ sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \
HPCT_USE_ROOTLESS: 0 atau 1. Gunakan untuk menghidupkan dan mematikan rootless
sysctl -w net.ipv4.ip_local_port_range="20000 65535": Mengatur rentang port sistem
Lihat contoh
Tanpa akar
HyperPod pelatihan checkpointless menawarkan metode inisialisasi baru, Rootless dan TCPStoreless, untuk grup proses NCCL dan Gloo.
Implementasi pengoptimalan ini melibatkan modifikasi NCCL, Gloo, dan: PyTorch
Memperluas pustaka pihak ketiga APIs untuk mengaktifkan pengoptimalan NCCL dan Gloo Rootless dan Storeless sambil mempertahankan kompatibilitas mundur
Memperbarui backend grup proses untuk menggunakan jalur yang dioptimalkan secara kondisional dan menangani masalah pemulihan dalam proses
Melewati TCPStore kreasi mahal di lapisan PyTorch terdistribusi sambil mempertahankan pola alamat simetris melalui penghitung grup global
Grafik berikut menunjukkan arsitektur perpustakaan pelatihan terdistribusi dan perubahan yang dibuat dalam pelatihan tanpa pemeriksaan.
NCCL dan Gloo
Ini adalah paket independen yang melakukan fungsionalitas inti komunikasi kolektif. Mereka menyediakan kunci APIs, seperti ncclCommInit Rank, untuk menginisialisasi jaringan komunikasi, mengelola sumber daya yang mendasarinya, dan melakukan komunikasi kolektif. Setelah membuat perubahan kustom di NCCL dan Gloo, Rootless dan Storeless mengoptimalkan (misalnya, lewati koneksi ke) inisialisasi jaringan komunikasi. TCPStore Anda dapat beralih antara menggunakan jalur kode asli atau jalur kode yang dioptimalkan secara fleksibel.
PyTorch backend grup proses
Backend grup proses, khususnya ProcessGroup NCCL dan ProcessGroupGloo, mengimplementasikan ProcessGroup APIs dengan memanggil pustaka dasar yang sesuai APIs . Karena kami memperluas perpustakaan pihak ketiga APIs, kami harus memanggilnya dengan benar dan membuat sakelar jalur kode berdasarkan konfigurasi pelanggan.
Selain jalur kode pengoptimalan, kami juga mengubah backend grup proses untuk mendukung pemulihan dalam proses.