Mojo Academy · Pelajaran

Tiling untuk Lokalisasi Cache

Kelompokkan pekerjaan agar muat dalam cache.

Pelajaran 4 dari 413 langkah

Tiling untuk Lokalisasi Cache adalah pelajaran Mojo Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Gagasan tentang Cache

CPU menyimpan data yang baru digunakan dalam cache yang kecil dan cepat. Cache hit berlangsung cepat; cache miss memaksa perjalanan lambat ke memori utama.

Apa Itu Lokalitas?

Lokalitas cache berarti menggunakan kembali data yang sudah berada di dekatnya dalam cache sebelum data tersebut dikeluarkan untuk memberi ruang.

Data Besar Meluberkan Cache

Jika kernel Anda menyapu array yang sangat besar, elemen awal akan dikeluarkan sebelum digunakan kembali, sehingga terjadi cache miss berulang kali.

Bagi Pekerjaan Menjadi Tile

Pengubinan membagi perulangan besar menjadi blok-blok kecil yang muat di cache, sehingga data setiap blok tetap tersedia di cache saat digunakan.

alias tile = 64

Perulangan Luar dan Dalam

Pengubinan mengubah satu perulangan menjadi dua: perulangan luar untuk blok dan perulangan dalam untuk elemen di setiap blok.

for t in range(0, n, tile):
    for i in range(t, min(t + tile, n)):
        out[i] = a[i] * 2

Satu Blok Sekaligus

Setiap blok cukup kecil untuk berada di cache. Anda menyelesaikan semua pekerjaannya sebelum berpindah, sehingga penggunaan ulang tetap murah.

Cocok untuk Matriks

Perkalian matriks banyak menggunakan ulang baris dan kolom. Memblokir perkalian matriks menjadi ubin menjaga data yang digunakan ulang tetap berada di cache dan mengurangi cache miss.

Pilih Ukuran Ubin

Ubin terbaik memenuhi cache tanpa membuatnya meluap. Ubin yang terlalu kecil menyia-nyiakan penggunaan ulang; ubin yang terlalu besar menyebabkan data tumpah, jadi Anda perlu menyetel ukurannya.

Ubin Lalu Vektorisasi

Pengubinan dan SIMD dapat dipadukan dengan baik. Lakukan vektorisasi pada perulangan dalam setiap blok untuk mendapatkan lokalitas cache dan kecepatan vektor sekaligus.

for t in range(0, n, tile):
    vectorize[body, width](min(tile, n - t))

Perhatikan Batas Tepi

Blok terakhir mungkin lebih kecil daripada ubin penuh. Batasi rentangnya dengan min agar Anda tidak pernah membaca melewati buffer.

var end = min(t + tile, n)

Ukur Peningkatannya

Pengubinan dapat banyak membantu atau hanya sedikit, bergantung pada ukurannya. Selalu lakukan tolok ukur pada beberapa nilai ukuran ubin dengan data nyata Anda untuk memilihnya.

Pemeriksaan Singkat

Kernel Anda terus mengalami cache miss karena menyapu array yang sangat besar dari awal hingga akhir. Teknik apa yang membantu?

Rangkuman

Pengubinan membagi perulangan besar agar setiap potongan muat di cache; setel ukuran ubin, lakukan vektorisasi pada perulangan dalam, dan batasi tepinya. 🧱

Gratis untuk memulai

Belajar Mojo 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 “Tiling untuk Lokalisasi Cache” gratis?

Ya — teks lengkap “Tiling untuk Lokalisasi Cache” 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 “Tiling untuk Lokalisasi Cache”?

Kelompokkan pekerjaan agar muat dalam cache. 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 4 dari 4.

Berapa lama pelajaran “Tiling untuk Lokalisasi Cache” 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

  1. Anatomi Kernel Komputasi
  2. Menggabungkan SIMD dengan Perulangan
  3. Mengurangi Lalu Lintas Memori
  4. Tiling untuk Lokalisasi Cache
← Kembali ke Mojo Academy