CUDA Academy · Pelajaran

Memori Konstan dan Cache-nya

Sebarkan nilai hanya-baca dengan biaya rendah.

Pelajaran 3 dari 413 langkah

Memori Konstan dan Cache-nya adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Ruang untuk Nilai Hanya-Baca

Memori konstan adalah wilayah kecil yang dibuat untuk data yang dibaca oleh setiap thread, tetapi tidak pernah ditulis oleh thread mana pun selama kernel berjalan.

Mendeklarasikannya

Anda menandai larik dalam cakupan global dengan kualifikasi __constant__. Larik tersebut berada di luar fungsi mana pun dan terlihat oleh semua kernel Anda.

__constant__ float weights[256];

Memang Sangat Kecil

Total memori konstan hanya 64 KB pada GPU umumnya. Memori ini ditujukan untuk koefisien dan parameter, bukan untuk kumpulan data besar.

Mengisinya dari Host

Anda menulis ke memori konstan dari CPU menggunakan cudaMemcpyToSymbol, karena kernel sendiri tidak dapat mengubahnya.

cudaMemcpyToSymbol(weights, h_w,
    256 * sizeof(float));

Didukung oleh Cache Khusus

Pembacaan melewati cache konstan khusus pada setiap multiprosesor. Nilai yang berada di cache kembali hampir secepat register.

Keunggulan Siaran

Saat seluruh warp membaca alamat yang sama, perangkat keras melakukan satu pengambilan lalu menyiarkannya ke semua 32 thread dalam satu langkah. 📡

Alamat yang Sama Merupakan Kuncinya

Keuntungan ini bergantung pada akses yang seragam. Jika thread dalam sebuah warp membaca alamat konstan yang berbeda, pembacaan tersebut diserialkan dan peningkatan kecepatan pun hilang.

Cara Membacanya Tampak Biasa

Di dalam kernel, Anda membaca memori konstan seperti membaca larik apa pun. Compiler secara diam-diam mengarahkan akses tersebut melalui cache konstan yang cepat.

__global__ void k(float *out, int i) {
    out[i] = weights[0] * 2.0f;
}

Sangat Cocok untuk Filter

Kernel konvolusi dan tabel pencarian sangat cocok di sini, karena setiap thread berulang kali menggunakan kembali sekumpulan kecil koefisien yang sama.

Atur Sekali, Gunakan Kembali Sering

Biasanya Anda mengunggah ke memori konstan satu kali, lalu menjalankan banyak kernel yang semuanya membaca nilai yang tidak berubah tersebut dengan biaya rendah.

Kapan Tidak Menggunakannya

Jangan gunakan memori konstan jika data Anda besar atau thread membaca alamat yang tersebar. Dalam kasus tersebut, memori global biasa lebih sesuai.

Pemeriksaan Cepat

Kapan memori konstan memberikan peningkatan kecepatan terbesar?

Rangkuman: Kecil, Di-cache, Disiarkan

Anda telah mempelajari bahwa memori konstan adalah ruang kecil hanya-baca yang cache-nya menyiarkan pembacaan seragam ke seluruh warp. Gunakan untuk nilai kecil yang digunakan bersama. ✨

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 “Memori Konstan dan Cache-nya” gratis?

Ya — teks lengkap “Memori Konstan dan Cache-nya” 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 “Memori Konstan dan Cache-nya”?

Sebarkan nilai hanya-baca dengan biaya rendah. 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 3 dari 4.

Berapa lama pelajaran “Memori Konstan dan Cache-nya” 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. Register dan Memori Lokal
  2. Pertukaran dalam Memori Global
  3. Memori Konstan dan Cache-nya
  4. Model Mental Hierarki
← Kembali ke CUDA Academy