GPU-Programmierung: OpenAI baut einfachen und freien Cuda-Ersatz
Mit Triton haben die KI-Spezialisten von OpenAI eine eigene freie Sprache samt Compiler erstellt, die für Deep Learning gedacht ist.

Das Team von OpenAI hat das Open-Source-Projekt Triton veröffentlicht. Dabei handelt es sich laut Ankündigung um eine an Python angelehnte Programmiersprache, die explizit dazu gedacht ist, jenen Entwicklern, die keine Erfahrung mit Nvidias Cuda haben, Technik an die Hand zu geben, mit der sehr effizienter GPU-Code erstellt werden kann. Triton ermögliche dabei Code, der so gut sei wie jener, der von Experten erstellt worden sei, heißt es.
Ziel von Triton ist es, komplexe und nur schwer effizient zu implementierende Berechnungen möglichst einfach umzusetzen. In der Ankündigung nennt das Team, das etwa für die Sprachmodelle GPT-2 und GPT-3 bekannt ist, als Beispiele Kernel zur Matrixmultiplikation von Gleitkommazahlen mit halber Genauigkeit (FP16). Dafür seien mit Triton lediglich 25 Zeilen Code notwendig, die Leistung erreiche aber jene der CuBLAS-Bibliothek von Nvidia.
Die Idee für Triton stammt aus der Erkenntnis, dass zur Umsetzung neuer Deep-Learning-Forschungsideen oft zahlreiche Tensoren erstellt werden müssen, was deutliche Leistungseinbußen bringen kann. Umgangen werden könne das zwar durch das Erstellen von GPU-Kerneln, sei oft aber sehr schwierig, da dafür eine direkt GPU-Programmierung notwendig sei.
Diese Vereinfachung im Vergleich zu bestehenden Techniken wie Cuda soll vor allem dadurch erreicht werden, dass Triton über seine Compiler Dinge umsetzt, die sonst händisch umgesetzt werden müssten. Dazu gehört das sogenannte Memory Coalescing, also das Zusammenführen von Speicherzugriffen, die eigentliche Speicherverwaltung sowie das Scheduling von Aufgaben auf einzelne Stream-Processor.
Die Triton-Technik steht als Open Source unter einer freizügigen Lizenz zum Download auf Github bereit. Der für Triton genutzte Compiler basiert dabei auf dem LLVM-Framework und nutzt ein eigene speziell erstellte Zwischenschicht (IR).
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Man könnte soweit ich weiß einfach PyTorch nehmen. Ich schätze aber mal, dass sich Triton...
Naja. All zu bald wird das sicherlich nicht sein, wenn überhaupt und dann evetuell auch...
Das klingt so, als ob CUDA dafür entwickelt worden wäre Neuronale Netze zu programmieren...