OpenAI roept Triton in de wereld: een gespecialiseerde programmeertaal waarmee ontwikkelaars gemakkelijk supersnel machine learning algoritmes kunnen creëren.
Twee jaar geleden presenteerde OpenAI wetenschapper Philippe Tillet de eerste versie van Triton in een academisch paper. Voor de lancering van vandaag is de taal verder verbeterd met optimalisaties gericht op enterprise machine learning-projecten.
De overgrote meerderheid van AI-modellen binnen enterprises draait op GPU’s van Nvidia. Ontwikkelaars gebruiken software van Nvidia om hun modellen te bouwen. Vooral het CUDA framework van Nvidia wordt veel gebruikt. Dit framework biedt de fundamentele softwareblokken die AI-applicaties gebruiken om hun berekeningen uit te voeren met GPU’s.
Het CUDA framework komt echter met één probleem volgens OpenAI: het is ingewikkeld om te gebruiken. De grootste uitdaging ligt bij het verbeteren van de prestaties van een AI-model, zodat het data zo snel mogelijk verwerkt. Om dit voor elkaar te krijgen, moeten ontwikkelaars complexe en zeer precieze optimalisaties aanbrengen in hun code die zelfs met vele jaren ervaring erg lastig zijn.
Met zijn nieuwe programmeertaal Triton wil OpenAI hier verandering in brengen. Volgens OpenAI levert Triton twee voorname voordelen op voor software teams:
- Triton versnelt AI-projecten, doordat ontwikkelaars minder tijd kwijt zijn aan het optimaliseren van hun code
- Triton is relatief eenvoudig, waardoor softwareteams zonder uitgebreide CUDA programmeerervaring efficiëntere algoritmes kunnen maken dan ze normaal zouden kunnen
De drie stappen die Triton verbetert
Triton verhoogt AI-prestaties door drie belangrijke stappen te verbeteren aan het proces waarmee een machine learning algoritme in een Nvidia chip data verwerkt:
De eerste stap is het verplaatsen van data tussen een de DRAM en SRAM geheugenbanen van een GPU. GPU’s slaan informatie op in DRAM wanneer deze niet actief wordt gebruikt. Wanneer data nodig zijn voor een calculatie, worden deze verplaatst naar het SRAM-geheugen. Om dit te optimaliseren, worden de blokken data die verplaatst worden van DRAM naar SRAM verpakt met grote hoeveelheden informatie. Triton voert deze taak automatisch uit, wat veel tijd bespaart voor ontwikkelaars.
De tweede stap die Triton optimaliseert is het distribueren van inkomende datablokken over de SRAM geheugenbanen op een manier die het mogelijk maakt om ze zo snel mogelijk te analyseren. De grootste uitdaging in dit proces ligt in het voorkomen dat twee delen van de software proberen data op te slaan in hetzelfde geheugensegment. Dankzij Triton zouden dit soort fouten minder vaak voorkomen.
De derde en laatste stap die Triton automatiseert bevindt zich in de CUDA-kernen, die verantwoordelijk zijn voor het uitvoeren van calculaties. Eén enkele Nvidia-datacenter-GPU heeft duizenden CUDA-kernen, waardoor een chip een groot aantal calculaties tegelijkertijd kan uitvoeren. Om de prestaties van een AI-model te maximaliseren, moeten ontwikkelaars de berekeningen verspreiden over meerdere CUDA-kernen. Triton automatiseert deze taak grotendeels.
Triton is vanaf nu beschikbaar via GitHub.