CUDA Academy · Pelajaran

Masalah Penggunaan Ulang Data

Mengapa kernel naif membaca ulang memori global.

Pelajaran 1 dari 413 langkah

Masalah Penggunaan Ulang Data 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.

Biaya Tersembunyi

Sebuah kernel dapat benar tetapi tetap lambat karena terus mengambil data yang sama dari memori global yang lambat berulang kali. 🐢

Memori adalah Hambatan

Pada GPU, operasi aritmetika murah, tetapi mengakses memori global mahal. Banyak kernel lebih sering menunggu memori daripada melakukan komputasi.

Definisi Penggunaan Ulang Data

Penggunaan ulang data berarti satu nilai yang dimuat dari memori global digunakan oleh banyak komputasi, bukan dibaca ulang setiap kali.

Stencil Sederhana

Bayangkan Anda mengaburkan gambar. Setiap piksel keluaran menghitung rata-rata tetangganya, sehingga setiap piksel masukan dibaca oleh beberapa thread yang berbeda.

out[i] = (in[i-1] + in[i] + in[i+1]) / 3.0f;

Menghitung Pembacaan

Dalam pengaburan tersebut, nilai in[i] dibaca oleh thread i-1, i, dan i+1. Byte yang sama melintasi bus lambat yang dialiri PCIe sebanyak tiga kali.

Redundansi Terakumulasi

Dengan jendela yang lebih lebar atau grid 2D, setiap elemen dapat dibaca ulang puluhan kali. Lalu lintas redundan ini mendominasi waktu eksekusi.

Bandwidth Itu Terbatas

Memori global memiliki bandwidth puncak yang tetap. Membaca data yang sama berulang kali membuang anggaran tersebut untuk byte yang sudah Anda miliki.

Komputasi Menganggur

Saat warp berhenti menunggu pemuatan global yang berulang, unit matematika menganggur. Anda telah membayar inti yang hampir tidak digunakan. 😴

Intensitas Aritmetika

Intensitas aritmetika adalah rasio operasi matematika terhadap byte yang dipindahkan. Intensitas rendah berarti memori, bukan komputasi, yang membatasi Anda.

Tujuannya: Baca Sekali

Solusinya adalah memuat setiap nilai yang diperlukan sekali ke penyimpanan cepat di dalam chip, lalu membiarkan banyak thread menggunakannya kembali dari sana.

Memasuki Memori Bersama

Penyimpanan cepat di dalam chip tersebut adalah memori bersama. Menempatkan data di sana menjadi dasar setiap optimasi tiling berikutnya.

Pemeriksaan Singkat

Mengapa kernel stencil sederhana sering kali lambat?

Rangkuman

Kernel sederhana membaca ulang data bersama dari memori global, membuang bandwidth, dan membuat komputasi berhenti menunggu. Tiling digunakan untuk memuat sekali lalu menggunakan kembali. ✅

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 “Masalah Penggunaan Ulang Data” gratis?

Ya — teks lengkap “Masalah Penggunaan Ulang Data” 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 “Masalah Penggunaan Ulang Data”?

Mengapa kernel naif membaca ulang memori global. 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 “Masalah Penggunaan Ulang Data” 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. Masalah Penggunaan Ulang Data
  2. Pola Muat-Sinkronkan-Hitung
  3. Stencil dan Jendela Geser
  4. Tangani Ubin Tepi
← Kembali ke CUDA Academy