← Ultimi articoli
💻 computer science

Triton for MTIA: Bridging the Programming Model Gaps for Custom AI Accelerators

Questo articolo presenta la prima implementazione su scala di produzione del linguaggio di programmazione Triton sull'acceleratore custom MTIA-2i di Meta, dimostrando che un nuovo backend del compilatore e un numero minimo di estensioni del linguaggio consentono lo sviluppo di kernel efficienti e ad alte prestazioni che colmano il divario tra i framework di ML e l'hardware custom.

Autori originali: Haishan Zhu, Domi Yan, Michael Levesque-Dion, Changxu Zhang, Mitch Gamburg, Kirsten Lee, Giancarlo Colmenares, Aditya Bhagwat, Arnab De, Markus Le Roux, Victor Perez Carrasco, Xin Tong, Will Cromar, S
Pubblicato 2026-08-04
📖 6 min di lettura🧠 Approfondimento

Autori originali: Haishan Zhu, Domi Yan, Michael Levesque-Dion, Changxu Zhang, Mitch Gamburg, Kirsten Lee, Giancarlo Colmenares, Aditya Bhagwat, Arnab De, Markus Le Roux, Victor Perez Carrasco, Xin Tong, Will Cromar, Simran Barnwal, Andrew Uderian, Blaine Burton Rister, Jordan Fix, Jazlyn Li, Zejun Huang, Lite Ye, Nan Zhang, Xinchen Guo, Andiry Xu, Michael Roberts, Kunming Ho, Site Cao, Suryadev Sahadevan Rajesh, Tristan Trouwen, Mike Tsai, Jake Lee, Wayne Su, Yuhan Chen, Xiaolong Xie, David Eklov, Aaron Barnes, Max Bremer, Adam Belay, Shintaro Iwasaki, Roman Levenstein, Ajit Mathews

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina di cercare di costruire un sistema di treni ad alta velocità massiccio per trasportare passeggeri (dati) attraverso un continente. Per anni, gli unici treni disponibili sono stati quelli elettrici standard, altamente tecnologici, che tutti sapevano guidare. Avevano porte automatiche, GPS integrato e una corsa fluida. Ma di recente, è stato inventato un nuovo tipo di motore per treni (acceleratori AI personalizzati). Questi nuovi motori sono incredibilmente potenti e costruiti specificamente per il carico pesante, ma sono strani. Non hanno le porte automatiche; devi aprirle e chiuderle manualmente. Non hanno il GPS; devi disegnare tu stesso la mappa. E non corrono sulle stesse rotaie dei vecchi treni.

Il problema è che gli ingegneri che costruiscono le carrozze dei treni (gli sviluppatori software) sono abituati ai vecchi treni elettrici, facili da guidare. Se vogliono usare i nuovi motori super veloci, devono imparare un modo completamente nuovo e difficile di guidare, oppure devono costruire una carrozza del treno nuova di zecca per ogni singola rotta. Questo rallenta tutto. La grande domanda è: possiamo insegnare il vecchio stile di guida facile da usare per funzionare su questi nuovi motori strani senza perdere il vantaggio della velocità? Questo articolo esplora esattamente questo, cercando di colmare il divario tra il mondo familiare del software AI standard e l'hardware strano e personalizzato costruito da aziende come Meta per eseguire i suoi modelli AI.


La Storia: Insegnare a un Nuovo Motore a Parlare una Vecchia Lingua

Meta, l'azienda dietro Facebook e Instagram, ha costruito i propri chip speciali chiamati MTIA-2i per far girare i suoi modelli AI più velocemente ed economicamente. Pensa a MTIA-2i come a un motore di un'auto da corsa costruito su misura. È incredibile in quello che fa, ma è costruito diversamente rispetto ai motori standard (GPU) a cui la maggior parte dei programmatori AI è abituata.

Nel mondo dell'AI, esiste un linguaggio di programmazione popolare chiamato Triton. Puoi pensare a Triton come a un "telecomando universale" per l'AI. Invece di scrivere codice complesso e disordinato per dire a una GPU standard come muovere i dati, gli sviluppatori scrivono codice semplice e pulito in Triton, e un compilatore intelligente lo traduce nel linguaggio macchina che la GPU comprende. È come parlare inglese a un traduttore che sa come parlare alla macchina.

Tuttavia, Triton è stato progettato originariamente solo per i motori GPU standard. Quando Meta ha cercato di usarlo sul suo motore per auto da corsa personalizzato MTIA-2i, non ha funzionato. Il "telecomando" non si adattava ai pulsanti del nuovo motore. Il motore MTIA-2i lavora in modo asincrono (riceve ordini e li esegue in seguito), gestisce la propria memoria in un modo strano tramite un "buffer circolare" e richiede istruzioni molto specifiche per mantenere tutto scorrevole. Il codice Triton standard non riusciva a gestire queste stranezze.

Cosa Fa l'Articolo: Costruire un Nuovo Adattatore

Il team di Meta ha deciso di risolvere il problema. Non si sono limitati a forzare il vecchio telecomando per farlo funzionare; hanno costruito un nuovo backend del compilatore specificamente per MTIA-2i. Questo nuovo sistema agisce come un adattatore super intelligente. Prende il codice Triton semplice e facile da leggere che scrivono gli sviluppatori e lo traduce perfettamente nelle istruzioni complesse e di basso livello che il motore MTIA-2i richiede.

Ecco come ci sono riusciti, usando alcune analogie divertenti:

  1. La Linea a Buffet "FIFO": Sulle GPU standard, il computer gestisce automaticamente la memoria come un buffet intelligente dove i piatti vengono presi e sostituiti istantaneamente. Su MTIA-2i, è più simile a una linea di montaggio manuale con un buffer "First-In, First-Out" (FIFO). Il nuovo compilatore ha imparato a gestire questa linea perfettamente, assicurando che i dati arrivino esattamente quando la macchina ne ha bisogno, senza che il programmatore debba spingere manualmente ogni singolo piatto.
  2. La Cucina con Due Chef: Il chip MTIA-2i ha due "core" (come due chef in una cucina) che possono lavorare contemporaneamente. Il compilatore ha capito come dividere i compiti di cucina tra di loro in modo che non si scontrino o non rimangano in attesa. Permette persino ai programmatori esperti di dire agli chef esattamente chi deve tagliare le cipolle e chi deve mescolare la zuppa se vogliono fare le cose in modo elaborato.
  3. La Rotta di Consegna a "Zigzag": Immagina di dover consegnare pacchi a 64 case. Se vai giù per la strada in linea retta (lineare), le prime case vengono servite velocemente, ma le ultime aspettano per sempre. Il team ha scoperto che una rotta di consegna a "zigzag" (andando avanti e indietro) bilanciava il lavoro molto meglio. Hanno aggiunto una funzione a Triton in modo che i programmatori potessero scegliere facilmente questa rotta più intelligente.

I Risultati: Veloci, Flessibili e Pronti per il Mondo Reale

Il team non ha costruito questo solo in un laboratorio; lo ha messo al lavoro nel mondo reale. Hanno implementato con successo questi nuovi kernel Triton in produzione su 60 diversi tipi di modelli AI.

Ecco cosa hanno scoperto:

  • Velocità: Il codice scritto nel semplice linguaggio Triton girava veloce quanto il codice scritto da esperti in complessi linguaggi C++ di basso livello (il linguaggio "nativo" del chip). Infatti, per la Moltiplicazione di Matrici Generali (GEMM) — un compito matematico pesante — il codice Triton ha raggiunto oltre l'80% della velocità massima teorica del chip.
  • Adozione: Entro un solo trimestre, il numero di tipi di modelli che utilizzano Triton su MTIA è triplicato.
  • Impatto: Triton ora gestisce il 50% degli strati e il 47% del tempo di esecuzione non-GEMM di questi modelli. È quasi metà del lavoro svolto da questo nuovo sistema facile da usare!

Perché Questo È Importante

L'articolo sostiene che non è necessario scegliere tra "facile da scrivere" e "super veloce". Prima di questo, se volevi usare un chip personalizzato come MTIA, dovevi essere un mago della programmazione di basso livello e scrivere tutto da zero. Se volevi usare un linguaggio di alto livello come Triton, eri bloccato con le GPU standard.

Colmando questo divario, Meta ha dimostrato che i linguaggi di alto livello possono essere adattati per funzionare su quasi ogni hardware personalizzato. Ciò significa che in futuro, man mano che le aziende costruiranno chip AI ancora più strani e specializzati, gli sviluppatori non dovranno imparare un nuovo e difficile linguaggio per ognuno di essi. Possono continuare a usare gli strumenti familiari e potenti che già conoscono, mentre il compilatore si occupa dei dettagli complicati del nuovo hardware.

L'articolo nota anche che in precedenza avevano provato un linguaggio diverso e molto più basso, chiamato KNYFE, ma lo avevano abbandonato perché era troppo difficile da imparare per la maggior parte delle persone. Hanno dimostrato che restare fedeli a un linguaggio flessibile e di alto livello come Triton, anche con alcuni piccoli accorgimenti personalizzati, è la strategia vincente per mantenere lo sviluppo dell'AI veloce ed efficiente.

In breve, l'articolo dimostra che con il giusto "trucco del compilatore", possiamo far funzionare il "telecomando universale" su quasi ogni "TV", anche su quelle strane e costruite su misura, senza sacrificare la qualità dell'immagine.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →