Stencil dan Jendela Geser
Bagi lingkungan data menjadi ubin dengan sel halo.
Stencil dan Jendela Geser 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.
Apa Itu Stencil
Stencil menghitung setiap keluaran dari lingkungan masukan yang tetap, seperti menghitung rata-rata sebuah piksel dengan sel-sel di sekitarnya.
Jendela Bergeser
Saat Anda bergerak sepanjang array, jendela masukan bergeser satu posisi. Keluaran yang berurutan berbagi sebagian besar masukannya, sehingga penggunaan ulangnya sangat besar.
Sangat Cocok untuk Tiling
Karena elemen tetangga saling tumpang tindih, tile yang dimuat sekali dapat menghasilkan banyak keluaran. Stencil adalah contoh klasik yang menunjukkan keunggulan tiling.
Kenali Halo
Untuk menghitung tepi tile, Anda juga memerlukan beberapa elemen tepat di luar tile tersebut. Sel-sel batas tambahan ini disebut halo.
Mengapa Halo Diperlukan
Thread pertama dalam sebuah tile memerlukan tetangga kirinya, yang berada di tile sebelumnya. Tanpa sel halo, pembacaan tersebut akan salah.
Menentukan Ukuran Halo
Untuk stencil berjari-jari r, muat r sel tambahan di setiap sisi. Pengaburan 3 titik memiliki jari-jari 1, sehingga satu sel halo per sisi sudah cukup.
Tile dengan Padding
Deklarasikan memori bersama sebesar blockDim ditambah 2 * radius agar dapat menampung bagian dalam dan kedua halo dalam satu buffer yang rapi.
__shared__ float tile[BLOCK + 2 * RADIUS];Memuat Bagian Dalam
Setiap thread terlebih dahulu memuat elemennya sendiri ke dalam tile pada offset radius, sehingga tersedia ruang untuk halo kiri di bagian depan.
tile[threadIdx.x + RADIUS] = in[gid];Memuat Halo
Beberapa thread pertama melakukan tugas ganda, yaitu mengambil sel halo kiri dan kanan sebelum blok melakukan sinkronisasi.
Lalu Sinkronisasi dan Stencil
Setelah __syncthreads, setiap thread membaca tetangganya sepenuhnya dari tile dan tidak lagi menyentuh memori global untuk langkah tersebut.
Pengganda Penggunaan Ulang
Setiap nilai bagian dalam kini melayani 2r + 1 keluaran dari satu pemuatan memori bersama. Tepat itulah lalu lintas redundan yang dihilangkan oleh tiling.
Pemeriksaan Singkat
Mengapa stencil bertiling memerlukan sel halo?
Rangkuman
Stencil menggeser jendela yang saling tumpang tindih, sehingga halo berisi r sel tambahan per sisi memungkinkan sebuah tile melayani setiap keluaran dengan satu kali pemuatan. ✅
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 “Stencil dan Jendela Geser” gratis?
Ya — teks lengkap “Stencil dan Jendela Geser” 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 “Stencil dan Jendela Geser”?
Bagi lingkungan data menjadi ubin dengan sel halo. 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 “Stencil dan Jendela Geser” 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
- Masalah Penggunaan Ulang Data
- Pola Muat-Sinkronkan-Hitung
- Stencil dan Jendela Geser
- Tangani Ubin Tepi