2min

Tags in dit artikel

, ,

AI-onderzoeksinstituut OpenAI heeft versie 1.0 van de nieuwe programmeertaal Triton gelanceerd. De programmeertaal moet een alternatief zijn voor Nvidia-software.

Open AI hoopt met de introductie van Triton 1.0 AI-specialisten een eenvoudigere manier te bieden om snelle algoritmes op basis van machine learning te ontwikkelen. Vooral als zij hiervoor de GPU’s van Nvidia gebruiken.

De programmeertaal moet ontwikkelaars een alternatief bieden voor de door de chipset- en AI-specialist meegeleverde eigen software voor het maken van machine learning algoritmes. Ontwikkelaars gebruiken de Nvidia-software, het CUDA framework, als basisbouwblokken voor het uitvoeren van de berekeningen met de GPU’s.

Het CUDA framework is echter lastig te gebruiken, vooral omdat het een uitdaging is de prestaties van een AI-model zo te maximaliseren, dat het data zo snel mogelijk verwerkt. Hiervoor moeten ontwikkelaars dan gecompliceerde en zeer fijne berekeningen in hun code maken. Deze berekeningen zijn vaak te gecompliceerd om daadwerkelijk toe te passen.

Automatiseren van machine learning code

Met Triton 1.0 wil OpenAI het optimaal aanpassen van deze code zoveel mogelijk automatiseren. Dit moet ontwikkelaars veel tijd besparen. Daarnaast moet deze nieuwe programmeertaal, die op Python lijkt, het mogelijk maken dat meer ontwikkelaars zonder specifieke kennis van het CUDA framework makkelijker efficiënte algoritmes kunnen ontwikkelen.

Volgens OpenAI kunnen AI-ontwikkelaars met de software zonder al te veel moeite hoge prestaties afleveren. Onder meer kunnen zij zogenoemde ‘FP16 matrix multiplication kernels’ schrijven die dezelfde prestaties hebben als de prestaties van cuBLAS. Matrix multiplication kernels zijn softwaremechanismes die machine learning algoritmes gebruiken voor berekeningen. Dit kunnen volgens OpenAI weinig GPU-programmeurs niet doen binnen 25 coderegels.

Driestappenproces

Meer concreet zorgt Triton 1.0 voor een workflow in drie stappen hoe machine learning algoritmes data verwerken op een Nvidia GPU. Als eerste stap zorgt de programmeertaal ervoor dat data tussen de DRAM- en de SRAM-geheugencircuits sneller plaatsvindt. Hoe sneller deze verplaatsing, hoe sneller machine learning algoritmes draaien. Triton 1.0 verzorgt dit proces geheel automatisch en bespaart ontwikkelaars veel tijd.

De tweede stap die Triton 1.0 van OpenAI verder optimaliseert, is het verdelen van de inkomende datablokken over de SRAM-circuits in de GPU’s. Dit voor het zo snel mogelijke analyseren van deze datablokken. Hierbij moet worden voorkomen dat zogenoemde ‘memory bank’ conflicten ontstaan die deze berekeningen kunnen vertragen. Triton 1.0 zorgt ervoor dat het verdelen van de datablokken wordt geoptimaliseerd, zodat de conflicten niet optreden.

De derde en laatste stap die Triton 1.0 regelt is het gedeeltelijk automatiseren van het verspreiden van berekeningen over de CUDA cores in circuits binnen de Nvidia GPU’s. Hierdoor kunnen meerdere berekeningen tegelijkertijd worden uitgevoerd, in plaats van achter elkaar. Dit proces wordt door Triton 1.0 slechts gedeeltelijk geautomatiseerd, omdat OpenAI ontwikkelaars meer flexibiliteit wil geven om de processen naar wens aan te passen voor hun projecten.

Triton 1.0 van OpenAI is nu beschikbaar via GitHub.