Mengurangi Lalu Lintas Memori
Jaga data tetap dekat dengan komputasi.
Mengurangi Lalu Lintas Memori adalah pelajaran Mojo 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 Mojo Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Mojo Academy mencakup 4 pelajaran total.
Mengapa Memori Penting
CPU modern menghitung jauh lebih cepat daripada mengambil data. Sering kali kernel menunggu memori, bukan menunggu matematikanya.
Apa Itu Lalu Lintas Memori?
Lalu lintas memori adalah total byte yang dibaca dan ditulis kernel Anda. Lalu lintas yang lebih sedikit untuk setiap hasil biasanya berarti kernel yang lebih cepat.
Akses Data Sekali
Membaca nilai yang sama berkali-kali membuang bandwidth. Muat sekali, kerjakan semuanya, lalu gunakan kembali dari register.
var x = a[i]
var y = x * x + xGabungkan Loop Anda
Dua loop terpisah atas array yang sama akan membacanya dua kali. Penggabungan keduanya menjadi satu lintasan membuat setiap elemen hanya dibaca sekali.
for i in range(n):
out[i] = a[i] * 2 + a[i]Simpan Nilai dalam Register
Nilai yang disimpan dalam register CPU tidak memerlukan akses memori. Gunakan kembali hasil antara, alih-alih menulisnya keluar lalu membacanya kembali.
Hindari Buffer Sementara
Array sementara tambahan menambah operasi penyimpanan dan pemuatan. Lewati jika memungkinkan dan hitung langsung ke output akhir.
Alirkan Secara Berurutan
Membaca memori secara berurutan memungkinkan CPU melakukan prefetch lebih awal. Melompat-lompat akan menggagalkan prefetch dan membuat loop terhenti.
for i in range(n):
total += a[i]Cache Line Bergerak Bersama
Memori hadir dalam cache line berukuran tetap. Menggunakan setiap byte dari satu line yang Anda ambil memberi Anda data yang sudah dimuat tanpa biaya tambahan.
Lakukan Lebih Banyak Komputasi per Byte
Intensitas aritmetika adalah pekerjaan yang dilakukan per byte yang dimuat. Meningkatkannya berarti setiap nilai yang diambil menghasilkan lebih banyak komputasi sebelum Anda berpindah.
Tulis Sekali Jika Bisa
Operasi penyimpanan juga membutuhkan bandwidth. Akumulasikan dalam variabel lokal dan tulis hasil akhir sekali, alih-alih memperbarui memori berulang kali.
var acc = Float32(0)
for i in range(n):
acc += a[i]
out[0] = accLebih Sedikit Lalu Lintas, Lebih Banyak Kecepatan
Saat kernel menunggu data, mengurangi pembacaan dan penulisan adalah keuntungan terbesar, yang sering kali mengungguli penyetelan aritmetika yang cerdik.
Pemeriksaan Singkat
Kernel Anda membaca array yang sama dalam dua loop terpisah. Perubahan tunggal apa yang paling banyak mengurangi lalu lintas memorinya?
Rangkuman
Kurangi lalu lintas memori dengan mengakses data sekali, menggabungkan loop, menggunakan kembali register, mengalirkan data secara berurutan, dan menulis hasil hanya sekali. 💾
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengurangi Lalu Lintas Memori” gratis?
Ya — teks lengkap “Mengurangi Lalu Lintas Memori” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Mojo Academy, upgrade ke CoddyKit PRO. Kursus Mojo Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengurangi Lalu Lintas Memori”?
Jaga data tetap dekat dengan komputasi. Kamu berlatih Mojo 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 Mojo Academy?
Tidak diperlukan pengalaman sebelumnya. Mojo 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 “Mengurangi Lalu Lintas Memori” 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 Mojo Academy ini?
Ya. Setiap pelajaran Mojo 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
- Anatomi Kernel Komputasi
- Menggabungkan SIMD dengan Perulangan
- Mengurangi Lalu Lintas Memori
- Tiling untuk Lokalisasi Cache