Deklarasikan Larik __shared__
Memori scratchpad cepat untuk setiap blok.
Deklarasikan Larik __shared__ 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.
Papan Coretan untuk Setiap Block
Setiap block memperoleh kumpulan kecil memori cepat pada chip yang disebut memori bersama. Anggaplah ini sebagai papan coretan yang dapat ditulisi dan dibaca bersama oleh seluruh block.
Mengapa Sangat Cepat
Memori bersama berada langsung di multiprosesor streaming, sehingga kira-kira 100x lebih cepat daripada memori global. Gunakan untuk menghindari akses berulang ke DRAM yang lambat di luar chip. 🚀
Kata Kunci __shared__
Anda mendeklarasikannya dengan kualifikasi __shared__ di dalam kern. Satu array ini kemudian digunakan bersama oleh setiap thread dalam block.
__global__ void kern() {
__shared__ float tile[256];
}Ukuran Tetap Saat Kompilasi
Ketika Anda memberikan ukuran dalam tanda kurung, itu disebut memori bersama statis. Kompilator harus mengetahui ukurannya, sehingga ukurannya harus berupa konstanta, bukan nilai saat program berjalan.
__shared__ int counts[128];Satu Salinan, Bukan Satu per Thread
Inilah gagasan utamanya: array __shared__ dibuat satu kali per block, bukan satu kali per thread. Semua thread melihat array yang sama persis.
Thread Bekerja Sama Melaluinya
Karena setiap thread melihat data yang sama, memori bersama memungkinkan thread untuk bekerja sama. Satu thread dapat menyimpan nilai, lalu thread di sebelahnya mengambilnya.
Cakupan Block, Tidak Lebih Jauh
Masa hidupnya sama dengan masa hidup block. Array dibuat saat block dimulai dan hilang saat block berakhir, sehingga hanya memiliki cakupan block. 🧱
Setiap Thread Memiliki Satu Slot
Pola yang umum adalah menyediakan satu slot per thread, yang diindeks dengan threadIdx.x. Setiap thread memuat elemennya ke memori bersama secara paralel.
__shared__ float s[256];
s[threadIdx.x] = input[i];Sumber Daya Kecil tetapi Berharga
Memori bersama berukuran kecil, sering kali hanya 48 hingga 100 KB per SM. Meminta terlalu banyak memori per block mengurangi jumlah block yang dapat berjalan secara bersamaan.
Penggunaan Klasik: Menyiapkan Tile
Tugas yang paling umum adalah menyiapkan tile data global agar block dapat menggunakannya kembali berkali-kali tanpa kembali mengakses DRAM yang lambat.
Tidak Terlihat oleh Block Lain
Ingat batasannya: memori bersama bersifat privat bagi block-nya. Dua block yang berbeda masing-masing memperoleh salinan terpisah milik sendiri dan tidak dapat melihat isi satu sama lain.
Pemeriksaan Singkat
Mari periksa cakupan memori bersama.
Ringkasan
Anda telah mempelajari bahwa __shared__ memberikan papan coretan cepat pada chip untuk setiap block, yang dibuat satu kali per block dan ideal untuk menyiapkan data yang dapat digunakan kembali. Berikutnya: menjaga thread tetap selaras. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Deklarasikan Larik __shared__” gratis?
Ya — teks lengkap “Deklarasikan Larik __shared__” 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 “Deklarasikan Larik __shared__”?
Memori scratchpad cepat untuk setiap blok. 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 “Deklarasikan Larik __shared__” 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
- Deklarasikan Larik __shared__
- Sinkronkan dengan __syncthreads
- Hindari Konflik Bank
- Memori Bersama Dinamis