CUDA Academy · Pelajaran

Siklus Hidup Program CUDA

Alokasikan, salin, luncurkan, salin kembali, lalu bebaskan.

Pelajaran 4 dari 413 langkah

Siklus Hidup Program CUDA adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Irama yang Berulang

Hampir setiap program CUDA mengikuti pola lima langkah yang sama. Pelajari urutannya sekali, dan Anda dapat membaca kode GPU apa pun. 🕺

Langkah 1: Alokasikan

Pertama, siapkan memori perangkat untuk data masukan dan keluaran Anda dengan cudaMalloc, karena GPU tidak dapat langsung menggunakan penyangga host.

cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);

Langkah 2: Salin Masuk

Berikutnya, unggah data masukan dari host ke perangkat dengan cudaMemcpy. Kini GPU memiliki salinannya sendiri untuk diproses.

cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);

Langkah 3: Jalankan

Sekarang jalankan kernel pada banyak thread. Di sinilah pekerjaan paralel benar-benar berlangsung pada perangkat. 🚀

myKernel<<<blocks, threads>>>(d_a, d_b, n);

Langkah 4: Salin Kembali

Setelah komputasi selesai, unduh hasil dari perangkat ke host agar CPU dapat membaca dan menggunakannya.

cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);

Langkah 5: Bebaskan

Terakhir, bebaskan setiap penyangga perangkat dengan cudaFree. Jika dilewati, memori GPU akan bocor dan tidak dapat digunakan oleh pekerjaan lain.

cudaFree(d_a);
cudaFree(d_b);

Jangan Lupa Menyinkronkan

Karena peluncuran berlangsung secara asinkron, panggil cudaDeviceSynchronize sebelum membaca hasil untuk memastikan GPU benar-benar telah selesai.

cudaDeviceSynchronize();

Penyalinan Memerlukan Waktu

Langkah penyalinan melewati bus PCIe yang lambat, jadi transfer data sering menjadi hambatan utama, bukan kernel itu sendiri.

Gunakan Kembali Penyangga

Melakukan alokasi sekali lalu menggunakan kembali penyangga dalam banyak peluncuran lebih baik daripada mengalokasikan memori baru pada setiap iterasi perulangan.

Simetri Pola

Perhatikan simetrinya: setiap cudaMalloc memiliki pasangan cudaFree, dan setiap penyalinan masuk pada akhirnya memiliki pasangan penyalinan keluar.

Siklus Hidup dalam Satu Tarikan Napas

Ucapkan seperti mantra: alokasikan, salin, jalankan, salin kembali, bebaskan. Satu baris itu adalah kerangka hampir setiap program kernel.

Pemeriksaan Cepat

Mari kita periksa siklus hidup program CUDA standar.

Rangkuman

Anda telah mempelajari siklus hidup CUDA dalam lima langkah: alokasikan, salin masuk, jalankan, salin kembali, bebaskan, serta menyinkronkan sebelum membaca hasil. 🎉

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 “Siklus Hidup Program CUDA” gratis?

Ya — teks lengkap “Siklus Hidup Program CUDA” 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 “Siklus Hidup Program CUDA”?

Alokasikan, salin, luncurkan, salin kembali, lalu bebaskan. 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 4 dari 4.

Berapa lama pelajaran “Siklus Hidup Program CUDA” 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. Kualifikasi Fungsi __global__
  2. Fungsi __device__ dan __host__
  3. Ruang Alamat Terpisah
  4. Siklus Hidup Program CUDA
← Kembali ke CUDA Academy