De grootste bedrijven die zich bezighouden met machine learning hebben het OpenXLA-project gepresenteerd, gericht op de gezamenlijke ontwikkeling van tools voor het compileren en optimaliseren van modellen voor machinesystemen. Onder het project valt de ontwikkeling van tools die de compilatie van modellen, gemaakt in de frameworks TensorFlow, PyTorch en JAX, kunnen uniformeren voor efficiënt leren en uitvoeren op verschillende GPU's en gespecialiseerde accelerators. Bedrijven zoals Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba en Amazon hebben zich aangesloten bij dit gezamenlijke project.
Het wordt verwacht dat door de samenwerking van toonaangevende onderzoeksteams en vertegenwoordigers van de gemeenschap de ontwikkeling van machinesystemen wordt gestimuleerd en het probleem van de fragmentatie van infrastructuur voor verschillende frameworks en hardware wordt opgelost. OpenXLA maakt een effectieve ondersteuning van verschillende hardware mogelijk, ongeacht op welk framework het machine learning-model is gebaseerd. Het wordt verwacht dat OpenXLA zal helpen om de leertijd van modellen te verkorten, de verwerkingscapaciteit te verhogen, vertragingen te verminderen, de kosten van rekenbronnen te verlagen en de tijd om een product op de markt te brengen te verkorten.

OpenXLA bestaat uit drie hoofdcomponenten, wiens code onder de Apache 2.0-licentie wordt verspreid:
- XLA (Accelerated Linear Algebra) is een compiler die het mogelijk maakt om machine learning-modellen te optimaliseren voor hoogwaardig uitvoeren op verschillende hardwareplatforms, inclusief GPU's, CPU's en gespecialiseerde accelerators van verschillende fabrikanten.
- StableHLO is een specificatie en basisimplementatie van een set high-level operations (HLO) voor gebruik in modellen van machinesystemen. Het fungeert als een tussenlaag tussen machine learning-frameworks en compilers die het model omzetten voor uitvoering op specifieke hardware. Tussenlagen voor het genereren van modellen in het StableHLO-formaat zijn voorbereid voor de frameworks PyTorch, TensorFlow en JAX. De basis voor StableHLO is een set MHLO, die is uitgebreid met ondersteuning voor serialisatie en versiebeheer.
- IREE (Intermediate Representation Execution Environment) is een compiler en runtime die modellen voor machine learning omzet naar een universele tussentijdse weergave, gebaseerd op het MLIR (Multi-Level Intermediate Representation) formaat van het LLVM-project. Belangrijke kenmerken zijn onder andere de mogelijkheid voor ahead-of-time compilatie, ondersteuning van stroombeheer, gebruik van dynamische elementen in modellen, optimalisatie voor verschillende CPU's en GPU's, en lage overhead.
De belangrijkste voordelen van de OpenXLA-toolset:
- Het bereiken van optimale prestaties zonder dat diepgaande kennis van apparaat-specifieke codering vereist is. Het bieden van kant-en-klare optimalisaties, waaronder vereenvoudiging van algebraïsche uitdrukkingen, efficiënte geheugentoewijzing, en uitvoeringplanning gericht op het verminderen van piek-geheugengebruik en overbelasting.
- Vereenvoudiging van schaling en parallelle berekeningen. De ontwikkelaar hoeft alleen annotaties toe te voegen voor een subset van kritische tensoren, waar de compiler automatisch code voor parallelle berekeningen kan genereren.
- Zorg voor draagbaarheid door ondersteuning van verschillende hardwareplatforms, zoals AMD en NVIDIA GPU's, x86 en ARM gebaseerde CPU's, Google TPU ML-versnellers, AWS Trainium en Inferentia, en Graphcore en Cerebras Wafer-Scale Engine.
- Ondersteuning voor het aansluiten van extensies met extra functionaliteiten, zoals de ondersteuning voor het schrijven van primitieve diepgaande machine learning met CUDA, HIP, SYCL, Triton en andere talen voor parallelle berekeningen. De mogelijkheid om handmatig bottlenecks in modellen te tunen.
Bron: opennet.ru
