0Pricing
Mojo Academy · Lezione

Tiling per la località della cache

Suddivida il lavoro in blocchi che entrino nella cache.

Tiling per la località della cache è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

The Cache Idea

The CPU keeps recently used data in a small, fast cache. Hits are quick; misses force a slow trip to main memory.

What Is Locality?

Cache locality means reusing data that is already nearby in the cache before it gets evicted to make room.

Big Data Spills the Cache

If your kernel sweeps a huge array, early elements are evicted before you reuse them, causing repeated cache misses.

Tile the Work

Tiling splits a big loop into small blocks that fit in cache, so each block's data stays hot while you use it.

alias tile = 64

An Outer and Inner Loop

Tiling turns one loop into two: an outer loop over blocks and an inner loop over the elements inside each block.

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

One Block at a Time

Each block is small enough to live in cache. You finish all its work before moving on, so reuse stays cheap.

Great for Matrices

Matrix multiply reuses rows and columns heavily. Blocking a matmul into tiles keeps reused data in cache and cuts misses.

Pick the Tile Size

The best tile fills the cache without overflowing it. Too small wastes reuse; too large spills, so you tune the size.

Tile Then Vectorize

Tiling and SIMD stack well. Vectorize the inner loop of each block to get cache locality and vector speed together.

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

Mind the Edges

The last block may be smaller than a full tile. Clamp its range with min so you never read past the buffer.

var end = min(t + tile, n)

Measure the Gain

Tiling can help a lot or a little depending on sizes. Always benchmark a few tile values on your real data to choose.

Quick Check

Your kernel keeps missing cache because it sweeps a huge array end to end. What technique helps?

Recap

Tiling blocks a big loop so each chunk fits in cache; tune the tile size, vectorize the inner loop, and clamp the edges. 🧱

Domande Frequenti

La lezione «Tiling per la località della cache» è gratuita?

Sì — il testo completo di «Tiling per la località della cache» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.

Cosa imparerò in «Tiling per la località della cache»?

Suddivida il lavoro in blocchi che entrino nella cache. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Mojo Academy?

Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Tiling per la località della cache»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Mojo Academy?

Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Anatomia di un kernel di calcolo
  2. Combinare SIMD e cicli
  3. Ridurre il traffico di memoria
  4. Tiling per la località della cache
← Torna a Mojo Academy