Akses Memori Rakan ke Rakan
Penyalinan terus GPU ke GPU melalui NVLink
Akses Memori Rakan ke Rakan ialah pelajaran CUDA Academy percuma di CoddyKit. Ini ialah pelajaran 3 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.
Lencongan yang Perlahan
Memindahkan data dari satu GPU ke GPU lain biasanya melalui memori CPU terlebih dahulu. Perjalanan pergi balik itu perlahan dan membazirkan lebar jalur hos.
GPU Berkomunikasi Secara Terus
GPU moden boleh memintas CPU sepenuhnya. Capaian rakan ke rakan membolehkan satu GPU membaca dan menulis memori GPU lain melalui pautan terus.
Lebuhraya NVLink
Pautan pantas antara kad selalunya ialah NVLink, yang jauh lebih pantas daripada bas PCIe yang dikongsi. Pemindahan P2P menggunakan laluan ini apabila tersedia.
Semak Sebelum Mempercayai
Bukan setiap pasangan GPU boleh menggunakan P2P. Semak dahulu dengan cudaDeviceCanAccessPeer, yang melaporkan sama ada satu peranti boleh mencapai peranti lain.
int can;
cudaDeviceCanAccessPeer(&can, 0, 1);Hidupkan Capaian
Kebenaran dimatikan secara lalai. Semasa GPU 0 menjadi peranti semasa, panggil cudaDeviceEnablePeerAccess untuk membolehkannya mencapai memori GPU 1.
cudaSetDevice(0);
cudaDeviceEnablePeerAccess(1, 0);Capaian Sehala
Menghidupkan capaian rakan hanya memberikan arah yang anda minta. Agar GPU 1 dapat membaca GPU 0, anda juga mesti menghidupkan arah itu daripada peranti 1.
Menyalin dari Rakan ke Rakan
Untuk memindahkan penimbal secara terus antara kad, gunakan cudaMemcpyPeer. Anda menamakan penunjuk dan peranti destinasi, serta penunjuk dan peranti sumber.
cudaMemcpyPeer(dst, 1, src, 0, bytes);Kernel Membaca Merentasi
Dengan capaian yang dihidupkan, kernel pada GPU 0 boleh menyahrujuk penunjuk yang berada pada GPU 1. Perkakasan mengambilnya melalui pautan rakan secara telus.
Apabila P2P Tidak Tersedia
Jika dua kad tidak boleh berkomunikasi sebagai rakan, masa jalan kembali secara senyap kepada pemindahan sementara melalui memori hos. Anda masih mendapat salinan, tetapi pada kadar PCIe yang lebih perlahan.
Salinan Rakan Tak Segerak
Pemindahan rakan boleh bertindih dengan kerja lain. Padankan cudaMemcpyPeerAsync dengan strim supaya salinan berjalan semasa kernel terus mengira.
cudaMemcpyPeerAsync(dst, 1, src, 0, bytes, stream);Matikan Setelah Selesai
Capaian rakan menggunakan sumber, jadi lepaskannya apabila selesai. cudaDeviceDisablePeerAccess meruntuhkan pautan yang anda buka sebelum ini.
cudaDeviceDisablePeerAccess(1);Semakan Pantas
Ingat semula manfaat capaian rakan ke rakan antara dua GPU.
Ringkasan
P2P membolehkan GPU berkongsi memori secara terus, sebaik-baiknya melalui NVLink. Semak sokongan, hidupkan capaian bagi setiap arah, kemudian gunakan cudaMemcpyPeer. Seterusnya: penskalaan dengan NCCL. ✨
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 “Akses Memori Rakan ke Rakan” percuma?
Ya — teks penuh “Akses Memori Rakan ke Rakan” 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 “Akses Memori Rakan ke Rakan”?
Penyalinan terus GPU ke GPU melalui NVLink 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 3 daripada 4.
Berapa lamakah pelajaran “Akses Memori Rakan ke Rakan” 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