Triton for MTIA: Bridging the Programming Model Gaps for Custom AI Accelerators
Dit artikel presenteert de eerste implementatie op productieschaal van de programmeertaal Triton op Meta's aangepaste MTIA-2i accelerator, waarmee wordt aangetoond dat een nieuwe compiler-backend en minimale taalextensies hoogwaardige, efficiënte kernelontwikkeling mogelijk maken die de kloof tussen ML-frameworks en aangepaste hardware overbrugt.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een massaal, razendsnel treinsysteem probeert te bouwen om passagiers (data) over een continent te vervoeren. Jarenlang waren de enige beschikbare treinen de standaard, hoogtechnologische elektrische treinen (GPU's) waarvan iedereen wist hoe je ze moest besturen. Ze hadden automatische deuren, ingebouwde GPS en een soepele rit. Maar onlangs is er een nieuw type treinelement uitgevonden (custom AI-versnellers). Deze nieuwe motoren zijn ongelooflijk krachtig en speciaal gebouwd voor zwaar transport, maar ze zijn vreemd. Ze hebben geen automatische deuren; je moet ze handmatig openen en sluiten. Ze hebben geen GPS; je moet zelf de kaart tekenen. En ze rijden niet op dezelfde rails als de oude treinen.
Het probleem is dat de ingenieurs die de treinwagons bouwen (de softwareontwikkelaars), gewend zijn aan de oude, gemakkelijk te besturen elektrische treinen. Als ze de nieuwe, super snelle motoren willen gebruiken, moeten ze een volledig nieuwe, moeilijke manier van rijden leren, of ze moeten voor elke nieuwe route een compleet nieuwe treinwagon boujakken. Dit vertraagt alles. De grote vraag is: kunnen we de oude, gemakkelijk te gebruiken rijstijl aanleren om op deze vreemde, nieuwe motoren te werken zonder het snelheidsvoordeel te verliezen? Dit artikel onderzoekt precies dat, in een poging de kloof te overbruggen tussen de vertrouwde wereld van standaard AI-software en de vreemde, op maat gemaakte hardware van bedrijven zoals Meta om hun AI-modellen te draaien.
Het Verhaal: Een Nieuwe Motor Leren Spreken in een Oude Taal
Meta, het bedrijf achter Facebook en Instagram, heeft zijn eigen speciale computerchips gebouwd genaamd MTIA-2i om zijn AI-modellen sneller en goedkoper te laten draaien. Zie MTIA-2i als een op maat gemaakte racewagenmotor. Hij is geweldig in wat hij doet, maar hij is anders gebouwd dan de standaardmotoren (GPU's) waar de meeste AI-programmeurs mee gewend zijn.
In de wereld van AI is er een populaire programmeertaal genaamd Triton. Je kunt Triton zien als een "universele afstandsbediening" voor AI. In plaats van complexe, rommelige code te schrijven om een standaard GPU te vertellen hoe hij data moet verplaatsen, schrijven ontwikkelaars eenvoudige, heldere code in Triton, en een slimme compiler vertaalt dit naar de machinetaal die de GPU begrijpt. Het is alsof je Engels spreekt tegen een vertaler die weet hoe hij met de machine moet praten.
Triton was echter oorspronkelijk ontworpen voor alleen standaard GPU-motoren. Toen Meta probeerde het op hun eigen custom MTIA-2i racewagenmotor te gebruiken, werkte het niet. De "afstandsbediening" paste niet op de knoppen van de nieuwe motor. De MTIA-2i motor werkt asynchroon (hij neemt opdrachten aan en voert ze later uit), beheert zijn eigen geheugen op een vreemde manier via een "circular buffer", en heeft zeer specifieke instructies nodig om alles soepel te laten verlopen. Standaard Triton-code kon deze eigenaardigheden simpelweg niet aan.
Wat het Papier Doet: Het Bouwen van een Nieuwe Adapter
Het team bij Meta besloot dit op te lossen. Ze dwongen de oude afstandsbediening niet om te werken; ze bouwden een nieuwe compiler backend specif씩 voor MTIA-2i. Dit nieuwe systeem fungeert als een super slimme adapter. Het neemt de eenvoudige, gemakkelijk leesbare Triton-code die ontwikkelaars schrijven en vertaalt deze perfect naar de complexe, laag-niveau instructies die de MTIA-2i motor nodig heeft.
Zo hebben ze het werkend gekregen, met behulp van enkele leuke analogieën:
- De "FIFO" Buffetlijn: Op standaard GPU's beheert de computer het geheugen automatisch als een slim buffet waar borden direct worden gepakt en vervangen. Op MTIA-2i is het meer als een handmatige assemblageband met een "First-In, First-Out" (FIFO) buffer. De nieuwe compiler leerde deze lijn perfect te beheren, waardoor de data precies aankomt wanneer de machine deze nodig heeft, zonder dat de programmeur handmatig elk bord hoeft te duwen.
- De Keuken met Twee Chefs: De MTIA-2i chip heeft twee "cores" (zoals twee chefs in een keuken) die tegelijkertijd kunnen werken. De compiler ontdekte hoe hij de kooktaken tussen hen kon verdelen, zodat ze elkaar niet in de weg zitten of niet hoeven te wachten. Het laat zelfs deskundige programmeurs de chefs precies vertellen wie de uien moet snijden en wie de soep moet roeren als ze wat fancier willen doen.
- De "Zigzag" Bezorgroute: Stel je voor dat je pakketjes moet bezorgen bij 64 huizen. Als je gewoon in een rechte lijn door de straat rijdt (lineair), worden de eerste paar huizen snel afgewerkt, maar moeten de laatste wel heel lang wachten. Het team ontdekte dat een "zigzag" bezorgroute (heen en weer gaan) het werk veel beter verdeelde. Ze voegden een functie toe aan Triton zodat programmeurs gemakkelijk deze slimmere route kunnen kiezen.
De Resultaten: Snel, Flexibel en Klaar voor de Echte Wereld
Het team heeft dit niet alleen in een lab gebouwd; ze hebben het in de echte wereld ingezet. Ze hebben deze nieuwe Triton-kernels succesvol uitgerold in productie voor 60 verschillende soorten AI-modellen.
Dit is wat ze vonden:
- Snelheid: De code geschreven in de eenvoudige Triton-taal liep net zo snel als code geschreven door experts in complexe, laag-niveau C++ (de "native" taal van de chip). Sterker nog, voor General Matrix Multiplication (GEMM)—een zware wiskundige taak—bereikte de Triton-code meer dan 80% van de theoretische maximale snelheid van de chip.
- Adoptie: Binnen slechts één kwartaal is het aantal modeltypen dat Triton gebruikt op MTIA verdrievoudigd.
- Impact: Triton beheert nu 50% van de lagen en 47% van de non-GEMM executietijd voor deze modellen. Dat is bijna de helft van het werk dat wordt gedaan door dit nieuwe, gemakkelijk te gebruiken systeem!
Waarom Dit Er Toe Doet
Het paper betoogt dat je niet hoeft te kiezen tussen "gemakkelijk te schrijven" en "super snel". Voorheen, als je een custom chip zoals MTIA wilde gebruiken, moest je een low-level programmeerwizard zijn en alles vanaf nul schrijven. Als je een high-level taal zoals Triton wilde gebruiken, zat je vast aan standaard GPU's.
Door deze kloof te overbruggen, heeft Meta aangetoond dat high-level talen kunnen worden aangepast om op bijna elke custom hardware te werken. Dit betekent dat in de toekomst, wanneer bedrijven nog vreemdere en meer gespecialiseerde AI-chips bouwen, ontwikkelaars niet voor elke nieuwe chip een nieuwe, moeilijke taal hoeven te leren. Ze kunnen de vertrouwde, krachtige tools blijven gebruiken die ze al kennen, terwijl de compiler de rommelige details van de nieuwe hardware afhandelt.
Het paper merkt ook op dat ze eerder een andere, zeer low-level taal genaamd KNYFE hebben geprobeerd, maar die hebben verlaten omdat het te moeilijk was voor de meeste mensen om te leren. Ze hebben bewezen dat het vasthouden aan een flexibele, high-level taal zoals Triton, zelfs met enkele kleine aanpassingen, de winnende strategie is om AI-ontwikkeling snel en efficiënt te houden.
Kortom, het paper laat zien dat we met de juiste compiler-magie de "universele afstandsbediening" op bijna elke "TV" kunnen laten werken, zelfs op de vreemde, op maat gemaakte exemplaren, zonder dat dit ten koste gaat van de beeldkwaliteit.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.