cudaGetLastError Setelah Peluncuran
Tangkap konfigurasi peluncuran yang tidak valid.
cudaGetLastError Setelah Peluncuran adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Menangkap Peluncuran yang Diam
Karena peluncuran kernel tidak mengembalikan apa pun, Anda memerlukan pembantu untuk menanyakan apa yang baru saja terjadi kepada GPU. Pembantu itu adalah cudaGetLastError. 🔎
Apa yang Dikembalikannya
cudaGetLastError mengembalikan kode galat terbaru yang dicatat runtime, atau cudaSuccess jika sejauh ini semuanya baik.
myKernel<<<g, b>>>(d);
cudaError_t e = cudaGetLastError();Panggil Tepat Setelah Peluncuran
Letakkan pemeriksaan pada baris tepat setelah peluncuran. Dengan begitu, kesalahan konfigurasi tertangkap sebelum pemanggilan lain menimpa keadaan tersebut.
kernel<<<g, b>>>();
if (cudaGetLastError() != cudaSuccess) abort();Menangkap Galat Konfigurasi Peluncuran
Fungsi ini menangkap tahap konfigurasi: terlalu banyak thread per blok, jumlah blok nol, atau grid yang tidak dapat diterima perangkat.
kernel<<<g, 99999>>>(); // invalid thread countMenghapus Galat
Membaca galat juga mengatur ulang galat tersebut menjadi cudaSuccess. Runtime hanya menyimpan galat terakhir, sehingga pemeriksaan ini mengosongkan keadaan sebelumnya.
Lihat Tanpa Menghapus
Ingin melihatnya tanpa mengatur ulang? Gunakan cudaPeekAtLastError. Fungsi tersebut mengembalikan kode yang sama, tetapi membiarkan keadaan galat tetap utuh.
cudaError_t e = cudaPeekAtLastError();Tidak Menangkap Kesalahan Runtime
Dengan sendirinya, fungsi ini hanya melihat peluncuran, bukan eksekusi. Akses di luar batas di dalam kernel masih dapat terlewat.
Pasangkan dengan Sinkronisasi
Untuk menangkap kesalahan runtime, lanjutkan dengan cudaDeviceSynchronize. Pemeriksaan peluncuran ditambah sinkronisasi mencakup kedua tahap kegagalan.
kernel<<<g, b>>>();
cudaGetLastError();
cudaDeviceSynchronize();Mengapa Dua Pemeriksaan Membantu
Pemeriksaan peluncuran memberi tahu Anda bahwa konfigurasi valid; sinkronisasi memberi tahu bahwa kernel benar-benar selesai tanpa mengalami kerusakan. Anda mengetahui tahap yang bermasalah.
Bungkus dalam Makro
Mengetik ini setelah setiap peluncuran lama-kelamaan melelahkan. Sebagian besar proyek membungkus pemeriksaan peluncuran dalam makro yang ringkas, sehingga cukup satu baris pendek.
kernel<<<g, b>>>();
CHECK_LAUNCH();Penyelamat Saat Menelusuri Galat
Ketika kernel secara misterius tidak melakukan apa-apa, cudaGetLastError singkat sering mengungkap peluncuran tidak valid yang sebelumnya tidak akan pernah Anda temukan.
Pemeriksaan Cepat
Uji pemahaman Anda tentang cudaGetLastError.
Ringkasan: Periksa Peluncuran
Panggil cudaGetLastError tepat setelah peluncuran untuk menangkap galat konfigurasi, lalu lakukan sinkronisasi untuk menangkap kesalahan runtime. Dua pemeriksaan mengungkap lokasi kerusakan. 🎉
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 “cudaGetLastError Setelah Peluncuran” gratis?
Ya — teks lengkap “cudaGetLastError Setelah Peluncuran” 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 “cudaGetLastError Setelah Peluncuran”?
Tangkap konfigurasi peluncuran yang tidak valid. 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 2 dari 4.
Berapa lama pelajaran “cudaGetLastError Setelah Peluncuran” 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
- Kode Kembalian versus Kesalahan Asinkron
- cudaGetLastError Setelah Peluncuran
- Makro CUDA_CHECK yang Dapat Digunakan Kembali
- Uraikan cudaGetErrorString