0Pricing
CUDA Academy · Pelajaran

Penunjuk ke Memori GPU

Penunjuk perangkat disimpan dalam variabel host.

Penunjuk ke Memori GPU 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.

Penunjuk yang Hidup di CPU

cudaMalloc memberikan Anda variabel penunjuk C++ biasa. Variabel itu berada di memori hos, tetapi alamat di dalamnya menunjuk ke memori GPU. 🔗

Alamat Menunjukkan Perangkat

Penunjuk perangkat menyimpan angka yang hanya valid dalam ruang alamat GPU. Bagi CPU, angka itu hanyalah bilangan bulat, bukan RAM sebenarnya.

float* d_data;  // host variable, device address

Kebiasaan Penamaan d_

Programmer memberi awalan d_ pada penunjuk perangkat dan h_ pada penunjuk hos. Namanya saja mengingatkan Anda di sisi mana masing-masing penunjuk berada.

float* h_data;
float* d_data;

Jangan Dereferensikan di Hos

Menulis *d_data dalam kode CPU adalah jebakan. Hos tidak dapat menyentuh memori GPU secara langsung, sehingga tindakan ini menyebabkan kerusakan atau pembacaan data yang tidak masuk akal.

Kernel Dapat Mendereferensikannya dengan Bebas

Di dalam kernel, penunjuk perangkat yang sama sepenuhnya valid. Di sana, d_data[i] membaca dan menulis memori GPU sebenarnya seperti yang Anda harapkan.

__global__ void k(float* d) {
    d[0] = 1.0f;
}

Teruskan ke Kernel

Anda memberikan penunjuk perangkat kepada kernel sebagai argumen. GPU kemudian menggunakan alamat tersebut untuk menemukan data Anda.

myKernel<<<grid, block>>>(d_data);

Dua Penunjuk, Dua Ruang

Jaga agar penunjuk hos dan perangkat benar-benar terpisah. Penunjuk hos tidak bermakna di GPU, dan penunjuk perangkat tidak bermakna di CPU.

cudaMemcpy Menjembatani Kesenjangan

Untuk memindahkan data di antara keduanya, Anda menyalinnya. cudaMemcpy menerima kedua penunjuk dan memindahkan bita melintasi perbedaan tersebut untuk Anda.

Aritmetika Penunjuk Tetap Berfungsi

Anda dapat menggeser penunjuk perangkat di hos, seperti d_data + n, untuk menunjuk ke bagian tertentu. Namun, Anda tidak boleh membacanya melalui penunjuk tersebut di sana.

float* d_tail = d_data + 100;

Mencampurkannya Sulit Dideteksi

Kompilator tidak akan menghentikan Anda saat keliru membedakan keduanya. Banyak kesalahan CUDA sebenarnya hanyalah penunjuk hos yang diberikan di tempat penunjuk perangkat seharusnya digunakan.

Kedisiplinan Mengalahkan Penelusuran Kesalahan

Penamaan yang jelas dan konvensi tetap menghemat waktu berjam-jam. Tentukan skema d_ dan h_ Anda sejak awal dan jangan pernah melanggarnya. 🧹

Pemeriksaan Cepat

Mari kita uji di mana penunjuk perangkat dapat didereferensikan dengan aman.

Ringkasan

Anda telah mempelajari bahwa penunjuk perangkat berada dalam variabel hos tetapi menunjuk ke memori GPU: dapat digunakan di dalam kernel, tetapi tidak boleh diakses langsung dari hos. 🎉

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penunjuk ke Memori GPU” gratis?

Ya — teks lengkap “Penunjuk ke Memori GPU” 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 “Penunjuk ke Memori GPU”?

Penunjuk perangkat disimpan dalam variabel host. 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 “Penunjuk ke Memori GPU” 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. cudaMalloc dan cudaFree
  2. Penunjuk ke Memori GPU
  3. cudaMemset untuk Inisialisasi
  4. Hindari Kebocoran dan Pembebasan Ganda
← Kembali ke CUDA Academy