Transfer dari Host ke Perangkat
Unggah data masukan ke GPU.
Transfer dari Host ke Perangkat adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Dua Memori, Satu Tujuan
Data Anda dimulai di RAM hos, tetapi GPU hanya dapat mengolah angka yang berada di memori perangkatnya sendiri. Pertama-tama, Anda harus memindahkannya. 🚚
Berkenalan dengan cudaMemcpy
Fungsi cudaMemcpy adalah truk pengiriman Anda: fungsi ini menyalin sekumpulan bita dari satu alamat ke alamat lain, baik hos maupun perangkat.
cudaMemcpy(dst, src, bytes, kind);Arah Pengunggahan
Untuk mengirim data input ke GPU, gunakan cudaMemcpyHostToDevice. Sumbernya adalah RAM host, sedangkan tujuannya adalah memori perangkat.
cudaMemcpy(d_a, h_a, n*sizeof(float), cudaMemcpyHostToDevice);Urutan Argumen Itu Penting
Seperti pada memcpy, tujuan ditulis lebih dahulu, kemudian sumber. Jika tertukar, buffer GPU Anda tetap kosong. 😬
cudaMemcpy(d_dst, h_src, bytes, cudaMemcpyHostToDevice);Hitung Byte, Bukan Elemen
Argumen ukuran diukur dalam byte, jadi kalikan jumlah elemen dengan ukuran tipe menggunakan sizeof.
size_t bytes = n * sizeof(float);Alokasikan Sebelum Menyalin
Penunjuk perangkat harus sudah menunjuk ke memori GPU yang nyata. Selalu gunakan cudaMalloc untuk mengalokasikan tujuan sebelum mengunggah data ke dalamnya.
cudaMalloc(&d_a, bytes);
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);Penungguan Sinkron
cudaMemcpy biasa bersifat memblokir: thread CPU Anda berhenti hingga setiap byte tiba dengan aman di GPU.
Lalu Jalankan Kernel Anda
Unggah terlebih dahulu, lalu lakukan komputasi. Setelah input berada di perangkat, kernel Anda dapat membacanya dan memulai pekerjaan sebenarnya.
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);
myKernel<<<blocks, threads>>>(d_a, n);Ukuran Harus Sesuai
Pastikan jumlah byte yang diunggah sesuai dengan ukuran buffer yang Anda alokasikan. Menyalin melebihi ruang yang disediakan adalah bug luapan klasik.
Periksa Kode Pengembalian
cudaMemcpy mengembalikan cudaError_t. Periksalah agar penunjuk atau ukuran yang salah segera menghasilkan kegagalan, bukan merusak proses Anda.
cudaError_t err = cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);Penyalinan Tidak Gratis
Setiap pengunggahan melewati bus PCIe yang lambat, jadi salin hanya data yang benar-benar Anda perlukan di perangkat.
Pemeriksaan Singkat
Anda ingin mengirim larik input dari RAM CPU ke GPU. Pemanggilan mana yang benar?
Ringkasan
Anda telah mempelajari cara mengunggah data dengan cudaMemcpyHostToDevice: alokasikan buffer perangkat, tulis tujuan terlebih dahulu, tentukan ukurannya dalam byte, lalu salin sebelum menjalankan kernel. 🎉
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 Host ke Perangkat” gratis?
Ya — teks lengkap “Transfer dari Host ke Perangkat” 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 Host ke Perangkat”?
Unggah data masukan ke GPU. 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 1 dari 4.
Berapa lama pelajaran “Transfer dari Host ke Perangkat” 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