// data & ai · giornale tecnico MILANO ● LIVE 00:00:00

Programmazione GPU a tile con NVIDIA: da cuTile e Triton alla flash attention

Un modello di programmazione GPU che ragiona per tile invece che per singolo thread: con TileGym, cuTile e Triton si costruiscono vector add, softmax, matmul e flash attention, con fallback a Triton dove il cuTile stack non c’è.

La programmazione GPU classica (il modello SIMT di CUDA) fa scrivere codice per un singolo thread: si calcola un indice globale, si controlla il bound e si tocca un elemento. Il modello a tile di NVIDIA ribalta la prospettiva: si scrive codice per un intero blocco che possiede una tile (per esempio 1024 elementi o una sotto-matrice 128×128), la si carica, si fanno i conti sull’intera tile e la si riscrive; è il compilatore a mappare la tile su thread e tensor core. Il tutorial di MarkTechPost mostra questo modello con TileGym, costruendo una serie di kernel e confrontandoli con PyTorch per correttezza e performance.

Il punto pratico per chi lavora su AI infrastructure e inference è duplice: capire come le operazioni matematiche di alto livello si mappano su pattern di esecuzione GPU efficienti, e avere un percorso di sperimentazione che funziona anche su hardware comune. Il workflow parte con un probe dell’ambiente CUDA: verifica se il backend reale cuTile è utilizzabile (richiede CUDA 13.1+ e una GPU Ampere/Ada/Blackwell) e, quando manca (per esempio su una T4 di Colab standard), ripiega su Triton, che insegna esattamente lo stesso modello di programmazione a tile. Se non c’è nemmeno una GPU utilizzabile, resta il fallback a PyTorch su CPU per la sola correttezza.

I kernel costruiti

Il tutorial implementa cinque kernel, mostrati sia in cuTile sia in Triton (primitive diverse, stessa idea: ct.load/ct.store e a @ b da un lato, tl.load/tl.store e tl.dot dall’altro):

  • Vector add: carica tile, somma, riscrive, il caso base del modello.
  • Fused GELU: moltiplicazione, bias e attivazione GELU fuse in un solo passaggio di memoria invece di tre.
  • Row softmax: riduzioni su tile (prima il max, poi la somma) per una softmax numericamente stabile.
  • Tiled matmul: accumulo lungo la dimensione K a blocchi, indirizzato ai tensor core.
  • Flash attention: il capstone avanzato, che usa la online softmax per calcolare l’attention senza materializzare l’intera matrice.

In sintesi

  • Il modello a tile fa ragionare per blocchi di dati anziché per singolo thread, lasciando al compilatore il mapping su thread e tensor core.
  • La fusione riduce il traffico di memoria, le riduzioni su tile stabilizzano la softmax e la flash attention evita di materializzare la matrice di attention completa.
  • cuTile e Triton sono due grafie dello stesso concetto: si sperimenta oggi con Triton su GPU comuni e lo stesso codice si traduce in kernel cuTile reali su sistemi CUDA 13.1+ recenti.

Fonte: A Coding Guide to NVIDIA’s Tile-Based GPU Programming: From cuTile and Triton Kernels to Flash Attention — https://www.marktechpost.com/2026/07/11/a-coding-guide-to-nvidias-tile-based-gpu-programming-from-cutile-and-triton-kernels-to-flash-attention/

Condividi X Facebook LinkedIn WhatsApp Email

// scritto da

Fernando

Hai qualcosa da aggiungere? Unisciti alla discussione.

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Altri dell'autore

dalla stessa firma