Berbilang GPU dengan NCCL
Komunikasi kolektif untuk penskalaan
Berbilang GPU dengan NCCL ialah pelajaran CUDA Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CUDA Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Menulis Sendiri Menjadi Sukar
Menyambungkan salinan rakan secara manual merentasi banyak GPU menjadi rumit dengan cepat. Untuk penskalaan sebenar, anda memerlukan pustaka yang dibina untuk komunikasi kolektif.
Kenali NCCL
Jawapan NVIDIA ialah NCCL, pustaka komunikasi kolektif. Ia memindahkan data antara GPU menggunakan pautan terpantas yang ditemuinya secara automatik.
Apakah Operasi Kolektif
Operasi kolektif ialah satu operasi yang disertai bersama oleh setiap GPU, seperti menjumlahkan nilai yang disimpan pada setiap kad. Semua peranti bekerjasama dalam satu panggilan.
Operasi Kolektif Utama: AllReduce
Operasi utama ialah AllReduce. Ia menggabungkan penimbal daripada setiap GPU, contohnya dengan menjumlahkannya, lalu memberikan hasil yang sama kepada semua GPU.
ncclAllReduce(send, recv, n, ncclFloat, ncclSum, comm, stream);Operasi Kolektif Lain
NCCL juga menawarkan Siaran untuk berkongsi data satu GPU dengan semua GPU, serta AllGather dan ReduceScatter untuk corak pertukaran biasa yang lain.
Komunikator
GPU yang berkomunikasi bersama membentuk satu kumpulan yang dijejaki oleh komunikator. Setiap panggilan kolektif menghantar pemegang ini supaya NCCL mengetahui pesertanya.
Rank Mengenal Pasti GPU
Dalam komunikator, setiap GPU menerima nombor yang dipanggil rank, bermula daripada 0. Rank membolehkan anda menyatakan siapa yang menghantar, siapa yang menerima dan siapa yang menjadi akar.
Membina Komunikator
Bagi GPU dalam satu proses, ncclCommInitAll menyediakan semua komunikator serentak daripada senarai id peranti yang anda berikan.
ncclCommInitAll(comms, nGpus, devs);Menyedari Strim
Setiap panggilan NCCL menerima strim. Operasi beratur di situ dan berjalan bersama kernel anda, jadi komunikasi bertindih dengan pengiraan.
Mengumpulkan Panggilan
Untuk mengeluarkan operasi kolektif pada banyak GPU tanpa kebuntuan, apit operasi tersebut antara ncclGroupStart dan ncclGroupEnd supaya NCCL melancarkannya bersama-sama.
ncclGroupStart();
// per-GPU calls
ncclGroupEnd();Mengapa Latihan Menyukainya
Pembelajaran mendalam menyegerakkan kecerunan merentasi GPU pada setiap langkah. AllReduce melakukan tepat perkara itu, sebab itulah NCCL menggerakkan hampir semua latihan berbilang GPU.
Semakan Pantas
Ingat semula operasi kolektif NCCL yang menjumlahkan penimbal merentasi GPU dan mengembalikan hasilnya kepada semua GPU.
Ringkasan
NCCL menjalankan operasi kolektif seperti AllReduce melalui pautan pantas, yang disusun oleh komunikator GPU berperingkat. Ia menjadi tulang belakang latihan berbilang GPU. Kursus selesai. ✨
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Berbilang GPU dengan NCCL” percuma?
Ya — teks penuh “Berbilang GPU dengan NCCL” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CUDA Academy, tingkat taraf kepada CoddyKit PRO. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Berbilang GPU dengan NCCL”?
Komunikasi kolektif untuk penskalaan Anda berlatih CUDA Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan CUDA Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran CUDA Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Berbilang GPU dengan NCCL” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran CUDA Academy ini?
Ya. Setiap pelajaran CUDA Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyenaraikan dan Memilih Peranti
- Membahagikan Kerja Merentas GPU
- Akses Memori Rakan ke Rakan
- Berbilang GPU dengan NCCL