Cele mai mari companii specializate în dezvoltarea de soluții de machine learning au prezentat proiectul OpenXLA, destinat dezvoltării colaborative a instrumentelor pentru compilarea și optimizarea modelelor pentru sistemele de machine learning. Proiectul a preluat dezvoltarea instrumentelor care permit unificarea compilării modelului, pregătite în cadrul framework-urilor TensorFlow, PyTorch și JAX, pentru un antrenament și o execuție eficientă pe diferite GPU-uri și acceleratoare specializate. La proiect au aderat astfel de companii precum Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba și Amazon.
Se așteaptă ca, datorită eforturilor unificate ale echipelor de cercetare de frunte și ale membrilor comunității, să se stimuleze dezvoltarea sistemelor de machine learning și să se rezolve problema fragmentării infrastructurii pentru diverse framework-uri și echipamente. OpenXLA permite implementarea unei suporturi eficiente pentru diferite hardware, indiferent de framework-ul pe baza căruia a fost creat modelul de machine learning. Se preconizează că, datorită OpenXLA, va fi posibilă reducerea timpului de antrenament al modelelor, creșterea capacității de procesare, reducerea întârzierilor, diminuarea costurilor pentru resursele de calcul și accelerarea timpului de lansare a produsului pe piață.

OpenXLA este format din trei componente principale, a căror cod este distribuit sub licența Apache 2.0:
- XLA (Accelerated Linear Algebra) - un compilator care optimizează modelele de machine learning pentru execuție de înaltă performanță pe diferite platforme hardware, inclusiv GPU, CPU și acceleratoare specializate de la diferiți producători.
- StableHLO - specificația și implementarea de bază a unui set de operații de înalt nivel (HLO, High-Level Operations) pentru utilizarea în modelele sistemelor de machine learning. Acesta acționează ca un strat între framework-urile de machine learning și compilatoarele care transformă modelul pentru execuție pe echipamente specifice. Straturile pentru generarea modelelor în format StableHLO au fost pregătite pentru framework-urile PyTorch, TensorFlow și JAX. Ca bază pentru StableHLO s-a folosit setul MHLO, extins cu suport pentru serializare și versiune.
- IREE (Intermediate Representation Execution Environment) — un compilator și un runtime care transformă modelele de învățare automată într-o reprezentare intermediară universală, bazată pe formatul MLIR (Multi-Level Intermediate Representation) de la proiectul LLVM. Printre caracteristicile notabile se numără capacitatea de pre-compilare (ahead-of-time), suportul pentru managementul fluxului, posibilitatea utilizării elementelor dinamice în modele, optimizarea pentru diverse CPU și GPU, și costuri reduse de supraveghere.
Principalele avantaje ale instrumentarului OpenXLA:
- Obținerea unei performanțe optime fără a necesita aprofundarea scrierii de cod specific pentru anumite dispozitive. Oferirea de optimizări gata făcute, inclusiv simplificarea expresiilor algebrice, plasarea eficientă în memorie, și programarea execuției având în vedere reducerea consumului maxim de memorie și a suprasarcinilor.
- Simplificarea scalării și a paralelizării calculilor. Este suficient ca dezvoltatorul să adauge anotații pentru un subset de tensori critici, pe baza cărora compilatorul poate genera automat cod pentru calcule paralele.
- Asigurarea portabilității prin suportul pentru diverse platforme de hardware, cum ar fi GPU-urile AMD și NVIDIA, CPU-uri bazate pe arhitectura x86 și ARM, acceleratoarele ML TPU Google, IPU AWS Trainium Inferentia, Graphcore și Cerebras Wafer-Scale Engine.
- Suport pentru conectarea extensiilor care implementează funcționalități suplimentare, cum ar fi suportul pentru scrierea primitivelor de învățare profundă folosind CUDA, HIP, SYCL, Triton și alte limbaje pentru calcul paralel. Posibilitatea de tunare manuală a colapsurilor în modele.
Sursa: opennet.ro
