CUDA Academy · Pelajaran

Menangkap Pekerjaan ke dalam Graf

Merekam aliran ke dalam graf CUDA

Pelajaran 3 dari 413 langkah

Menangkap Pekerjaan ke dalam Graf adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CUDA Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CUDA Academy mencakup 4 pelajaran total.

Pengertian CUDA Graph

CUDA graph merekam seluruh rangkaian kernel dan penyalinan sebagai satu unit pekerjaan yang dapat digunakan kembali dan dikirimkan berulang kali.

Peluncuran Terakumulasi

Setiap peluncuran kernel memiliki beban tambahan kecil pada CPU. Dalam ribuan peluncuran per iterasi, biaya tersebut menjadi signifikan.

Definisikan Sekali, Jalankan Berkali-kali

Graph memungkinkan Anda menjelaskan pekerjaan sekali, lalu memutarnya kembali dengan biaya rendah karena biaya penyiapan hanya dibayar satu kali.

Mode Perekaman Stream

Cara termudah untuk membuatnya adalah perekaman stream: Anda merekam peluncuran normal yang sudah Anda lakukan ke dalam sebuah stream.

cudaStreamBeginCapture(stream, cudaStreamCaptureModeGlobal);

Kirimkan Pekerjaan Seperti Biasa

Di antara awal dan akhir, Anda meluncurkan kernel dan penyalinan seperti biasa. Belum ada yang dijalankan; operasi tersebut hanya direkam, bukan dieksekusi.

kernelA<<<g, b, 0, stream>>>(d);
kernelB<<<g, b, 0, stream>>>(d);

Akhiri Perekaman

Anda menghentikan perekaman dengan cudaStreamEndCapture, yang mengembalikan cudaGraph_t yang menjelaskan seluruh pekerjaan.

cudaGraph_t graph;
cudaStreamEndCapture(stream, &graph);

Dependensi Disimpulkan

Perekaman secara otomatis menentukan dependensi antaroperasi berdasarkan cara Anda menggunakan stream.

Buat Instans Sebelum Menjalankan

Graph hanyalah sebuah deskripsi. Anda harus mengompilasinya menjadi objek eksekusi graph yang dapat dijalankan sebelum meluncurkannya.

cudaGraphExec_t exec;
cudaGraphInstantiate(&exec, graph, 0);

Membangun Graph Secara Manual

Anda juga dapat menambahkan node secara eksplisit dengan API graph untuk mengendalikan struktur dan sisi sepenuhnya.

cudaGraphAddKernelNode(&n, graph, deps, 1, &params);

Beberapa Stream, Satu Graph

Perekaman dapat mencakup beberapa stream, sehingga cabang independen yang berjalan secara bersamaan semuanya masuk ke graph yang sama.

Gunakan Kembali dalam Banyak Iterasi

Setelah dibuat instansnya, objek eksekusi yang sama diluncurkan berulang kali. Di sinilah graph benar-benar memberikan manfaat.

Pemeriksaan Singkat

Apa yang dihasilkan oleh cudaStreamEndCapture?

Ringkasan: Merekam Graph

Bungkus peluncuran dalam perekaman stream untuk merekam cudaGraph_t, buat instansnya satu kali, dan biarkan perekaman menyimpulkan dependensinya untuk Anda. Kemajuan Anda sangat baik! 🎉

Gratis untuk memulai

Belajar C++ dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menangkap Pekerjaan ke dalam Graf” gratis?

Ya — teks lengkap “Menangkap Pekerjaan ke dalam Graf” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CUDA Academy, upgrade ke CoddyKit PRO. Kursus CUDA Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menangkap Pekerjaan ke dalam Graf”?

Merekam aliran ke dalam graf CUDA Kamu berlatih CUDA Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai CUDA Academy?

Tidak diperlukan pengalaman sebelumnya. CUDA Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menangkap Pekerjaan ke dalam Graf” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran CUDA Academy ini?

Ya. Setiap pelajaran CUDA Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Meluncurkan Kernel dari dalam Kernel
  2. Kapan Paralelisme Dinamis Menguntungkan
  3. Menangkap Pekerjaan ke dalam Graf
  4. Memutar Ulang Graf untuk Mengurangi Overhead
← Kembali ke CUDA Academy