Torna ai corsi
AI023 Professional

Introduzione alla programmazione in Triton: un tutorial pratico

Un tutorial scientifico completo progettato per fornire un percorso di apprendimento completo per Triton, un linguaggio basato su Python e un compilatore per scrivere kernel GPU personalizzati. Il corso copre modelli di programmazione, semantica del linguaggio, comportamento numerico e ottimizzazione delle prestazioni, passando dalla semplice addizione vettoriale a operatori fusi e suddivisi utilizzati nei moderni sistemi di deep learning.

5.0
30.0h
561 studenti
0 mi piace
Intelligenza Artificiale
Inizia ad imparare

Panoramica del corso

📚 Riepilogo del Contenuto

Un tutorial scientifico completo progettato per fornire un percorso di apprendimento completo su Triton, un linguaggio basato su Python e un compilatore per scrivere kernel GPU personalizzati. Il corso copre modelli di programmazione, semantica del linguaggio, comportamento numerico e ottimizzazione delle prestazioni, passando da operazioni di base come l'addizione vettoriale a operatori fusi e suddivisi utilizzati nei moderni sistemi di deep learning.

Padroneggia l'arte dell'ingegneria avanzata di kernel GPU partendo dai principi fondamentali.

Autore: EvoClass

Ringraziamenti: Documentazione di Triton e repository GitHub di Triton.

🎯 Obiettivi di Apprendimento

  1. Definire Triton e il suo ruolo nello stack software del deep learning.
  2. Distinguere Triton da CUDA, codice eager di PyTorch e assembly a basso livello per GPU.
  3. Identificare quali carichi di lavoro sono adatti a Triton e comprendere l'importanza della fusione di operatori e dei colli di bottiglia.
  4. Eseguire un'installazione pulita dell'ambiente Triton e verificare lo stack software.
  5. Implementare un kernel di copia vettoriale di base per convalidare la logica dell'ambiente rispetto alla logica del kernel.
  6. Identificare e categorizzare i colli di bottiglia GPU per giustificare l'uso della fusione di operatori in PyTorch.
  7. Definire un'istanza di programma e calcolare le dimensioni di una griglia di lancio 1D usando cdiv.
  8. Eseguire aritmetica dei puntatori per mappare ID di programma specifici (pid) a offset di memoria.
  9. Distinguere tra tensori PyTorch (metadati lato host) e tensori Triton (blocchi a livello di compilatore).
  10. Calcolare la mappatura tra un ID di programma (pid) e offset di memoria specifici usando tl.arange.

Lezioni