Transfer dari Perangkat ke Host
Unduh hasil kembali ke CPU.
Transfer dari Perangkat ke Host 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.
Membawa Hasil Kembali
Kernel Anda baru saja mengisi buffer perangkat dengan hasil, tetapi CPU tidak dapat membaca memori GPU secara langsung. Anda harus mengunduh hasilnya kembali. 📥
Arah Pengunduhan
Untuk mengambil kembali data, gunakan cudaMemcpyDeviceToHost. Kini sumbernya adalah memori perangkat dan tujuannya adalah RAM host.
cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);Tujuan Tetap Ditulis Dahulu
Aturannya tidak pernah berubah: argumen tujuan ditulis lebih dahulu, lalu sumber. Saat mengunduh, penunjuk host ditulis di awal.
cudaMemcpy(h_dst, d_src, bytes, cudaMemcpyDeviceToHost);Buffer Host Harus Sudah Ada
Tujuan memerlukan memori CPU nyata yang sudah disiapkan. Alokasikan penyimpanan host dengan malloc atau new sebelum menyalin data kembali.
float* h_c = (float*)malloc(bytes);Tunggu Kernel Selesai
cudaMemcpy yang memblokir menunggu pekerjaan sebelumnya di aliran bawaan selesai, sehingga kernel selesai sebelum hasil apa pun dibaca.
myKernel<<<blocks, threads>>>(d_c, n);
cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);Jumlah Byte yang Sama
Unduh tepat sebanyak byte yang Anda unggah dan komputasikan. Ukuran yang tidak sesuai menghasilkan hasil yang terpotong atau tidak bermakna.
size_t bytes = n * sizeof(float);Kini Anda Dapat Membacanya
Setelah penyalinan selesai, nilainya berada di memori CPU biasa. Anda dapat mencetak, memeriksa, atau menyimpannya seperti larik host lainnya.
printf("%f\n", h_c[0]);Perjalanan Pulang-Pergi
Pekerjaan GPU lengkap merupakan perjalanan pulang-pergi: unggah input, jalankan kernel, lalu unduh output. Setiap tahap menggunakan cudaMemcpy.
Verifikasi Sebelum Memercayai Hasil
Setelah mengunduh, bandingkan hasil GPU dengan referensi CPU sederhana. Verifikasi menemukan bug sebelum bug tersebut menyebar. ✅
Bebaskan yang Anda Alokasikan
Setelah hasil kembali, bebaskan kedua sisi: gunakan cudaFree pada buffer perangkat dan bebaskan buffer host agar tidak terjadi kebocoran.
cudaFree(d_c);
free(h_c);Pengunduhan Juga Memerlukan Waktu
Perjalanan kembali melewati bus lambat yang sama, jadi salin kembali hanya hasil yang benar-benar Anda perlukan di host.
Pemeriksaan Singkat
Kernel Anda menulis hasil ke buffer perangkat d_c. Bagaimana cara membacanya di CPU?
Ringkasan
Anda telah mempelajari perjalanan kembali dengan cudaMemcpyDeviceToHost: alokasikan penyimpanan host, tulis penunjuk host terlebih dahulu, tunggu kernel selesai, lalu verifikasi dan bebaskan. 🎉
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 “Transfer dari Perangkat ke Host” gratis?
Ya — teks lengkap “Transfer dari Perangkat ke Host” 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 “Transfer dari Perangkat ke Host”?
Unduh hasil kembali ke CPU. 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 “Transfer dari Perangkat ke Host” 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
- Transfer dari Host ke Perangkat
- Transfer dari Perangkat ke Host
- Enum Arah Penyalinan
- Bottleneck Transfer PCIe