Peristiwa untuk Pengukuran Waktu dan Sinkronisasi
Gunakan cudaEvent untuk mengukur dan mengurutkan pekerjaan.
Peristiwa untuk Pengukuran Waktu dan Sinkronisasi 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.
Apa Itu Event?
Event CUDA adalah penanda yang Anda tempatkan ke dalam stream. GPU mencatat saat mencapai titik tersebut, sehingga Anda dapat mengukur waktu dan mengurutkan pekerjaan. ⏱️
Penangan Event
Event menggunakan penangan cudaEvent_t, sama seperti stream. Anda membuatnya, mencatatnya, memeriksanya, lalu menghancurkannya setelah selesai digunakan.
cudaEvent_t start, stop;Membuat Event
Panggil cudaEventCreate untuk setiap event yang diperlukan. Pengukuran waktu biasanya memerlukan dua event: satu sebelum pekerjaan dan satu sesudahnya.
cudaEventCreate(&start);
cudaEventCreate(&stop);Mencatat Event
cudaEventRecord menempatkan event ke dalam stream. GPU mencatat cap waktu tepat setelah semua pekerjaan yang sebelumnya masuk ke antrean selesai.
cudaEventRecord(start, stream);Mengukur Waktu Kernel
Catat waktu mulai, luncurkan kernel, lalu catat waktu berhenti, semuanya dalam stream yang sama. Jeda di antara keduanya adalah waktu eksekusi GPU yang sebenarnya.
cudaEventRecord(start, s);
kernel<<<g, b, 0, s>>>(d);
cudaEventRecord(stop, s);Menunggu Event
Event berjalan secara asinkron, jadi host harus menunggu. cudaEventSynchronize memblokir hingga event yang diberikan benar-benar dicatat di GPU.
cudaEventSynchronize(stop);Mengukur Waktu Berlalu
cudaEventElapsedTime mengembalikan jumlah milidetik antara dua event yang telah dicatat. Hasil ini jauh lebih akurat daripada jam CPU di sisi host.
float ms;
cudaEventElapsedTime(&ms, start, stop);Mengapa Bukan Jam CPU?
Pengukur waktu host mencakup biaya peluncuran dan tidak menangkap waktu GPU yang sebenarnya. Event berada di dalam stream, sehingga mencatat tepat apa yang dilakukan perangkat.
Pengurutan Lintas Stream
Event juga dapat menyinkronkan stream. cudaStreamWaitEvent membuat satu stream berhenti sementara hingga event yang dicatat di stream lain terjadi.
cudaStreamWaitEvent(streamB, eventA, 0);Membangun Ketergantungan
Dengan menunggu event pada stream, Anda menyatakan sebuah ketergantungan: streamB baru memulai pekerjaannya setelah streamA mencapai event-nya, tanpa memblokir host.
Membersihkan Event
Bebaskan event yang tidak lagi diperlukan dengan cudaEventDestroy. Seperti stream, event tidak mahal, tetapi tidak boleh dibiarkan menumpuk dalam aplikasi yang berjalan lama.
cudaEventDestroy(start);
cudaEventDestroy(stop);Pemeriksaan Singkat
Fungsi mana yang memberikan waktu di antara dua event?
Ringkasan
Event memungkinkan Anda mengukur pekerjaan GPU secara tepat dan mengurutkan satu stream setelah stream lainnya. Event adalah alat Anda untuk mengukur dan mengoordinasikan tumpang tindih. 🎯
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 “Peristiwa untuk Pengukuran Waktu dan Sinkronisasi” gratis?
Ya — teks lengkap “Peristiwa untuk Pengukuran Waktu dan Sinkronisasi” 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 “Peristiwa untuk Pengukuran Waktu dan Sinkronisasi”?
Gunakan cudaEvent untuk mengukur dan mengurutkan pekerjaan. 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 “Peristiwa untuk Pengukuran Waktu dan Sinkronisasi” 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
- Jebakan Aliran Bawaan
- Buat dan Gunakan Aliran
- Peristiwa untuk Pengukuran Waktu dan Sinkronisasi
- Tumpangtindihkan Penyalinan dan Penghitungan