Memori Tetap dan Cache-nya
Siarkan nilai baca sahaja dengan kos rendah.
Memori Tetap dan Cache-nya ialah pelajaran CUDA Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CUDA Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Ruang untuk Nilai Baca Sahaja
Memori malar ialah rantau kecil yang dibina untuk data yang dibaca oleh setiap bebenang tetapi tidak pernah ditulis oleh mana-mana bebenang semasa kernel berjalan.
Mengisytiharkannya
Anda menandakan tatasusunan berskop global dengan pengecam __constant__. Tatasusunan itu berada di luar mana-mana fungsi dan kelihatan kepada semua kernel anda.
__constant__ float weights[256];Ia Benar-Benar Kecil
Jumlah memori malar hanyalah 64 KB pada GPU biasa. Memori ini bertujuan untuk pekali dan parameter, bukan untuk set data besar.
Mengisinya daripada Hos
Anda menulis ke memori malar daripada CPU menggunakan cudaMemcpyToSymbol, kerana kernel itu sendiri tidak dapat mengubahnya.
cudaMemcpyToSymbol(weights, h_w,
256 * sizeof(float));Disokong oleh Cache Khas
Bacaan melalui cache malar khusus pada setiap pemproses berbilang. Nilai yang dicache kembali hampir sepantas daftar.
Kuasa Penyiaran
Apabila seluruh warp membaca alamat yang sama, perkakasan melakukan satu capaian dan menyiarkannya kepada semua 32 bebenang dalam satu langkah. 📡
Alamat Sama ialah Kuncinya
Manfaatnya bergantung pada capaian seragam. Jika bebenang dalam warp membaca alamat malar yang berbeza, bacaan tersebut bersiri dan peningkatan kelajuan hilang.
Cara Membacanya Kelihatan Biasa
Dalam kernel, anda membaca memori malar seperti mana-mana tatasusunan. Pengkompil secara senyap menghalakan capaian itu melalui cache malar yang pantas.
__global__ void k(float *out, int i) {
out[i] = weights[0] * 2.0f;
}Sangat Sesuai untuk Penapis
Kernel konvolusi dan jadual carian sangat sesuai di sini kerana setiap bebenang menggunakan semula set kecil pekali yang sama berulang kali.
Tetapkan Sekali, Guna Semula Selalu
Biasanya anda memuat naik ke memori malar sekali sahaja, kemudian melancarkan banyak kernel yang semuanya membaca nilai yang tidak berubah itu dengan murah.
Bila Tidak Patut Menggunakannya
Jangan gunakan memori malar jika data anda besar atau jika bebenang membaca alamat yang bertaburan. Dalam keadaan itu, memori global biasa lebih sesuai untuk anda.
Semakan Pantas
Bilakah memori malar memberikan peningkatan kelajuan terbesar?
Imbas Kembali: Kecil, Dicache, Disiarkan
Anda telah mempelajari bahawa memori malar ialah ruang baca sahaja yang kecil, dan cachenya menyiarkan bacaan seragam kepada seluruh warp. Gunakannya untuk nilai kecil yang dikongsi. ✨
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Memori Tetap dan Cache-nya” percuma?
Ya — teks penuh “Memori Tetap dan Cache-nya” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CUDA Academy, tingkat taraf kepada CoddyKit PRO. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Memori Tetap dan Cache-nya”?
Siarkan nilai baca sahaja dengan kos rendah. Anda berlatih CUDA Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan CUDA Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran CUDA Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Memori Tetap dan Cache-nya” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran CUDA Academy ini?
Ya. Setiap pelajaran CUDA Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Daftar dan Memori Setempat
- Pertukaran Memori Global
- Memori Tetap dan Cache-nya
- Model Mental Hierarki