Najväčšie spoločnosti zaoberajúce sa vývojom v oblasti strojového učenia predstavili projekt OpenXLA, ktorý je zameraný na spoločný rozvoj nástrojov na kompiláciu a optimalizáciu modelov pre systémy strojového učenia. Do projektu prešli nástroje, ktoré umožňujú unifikovanú kompiláciu modelov pripravených vo frameworkoch TensorFlow, PyTorch a JAX, pre efektívne učenie a vykonávanie na rôznych GPU a špecializovaných akcelerátoroch. Do spolupráce na projekte sa zapojili také spoločnosti ako Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba a Amazon.
Očakáva sa, že vďaka zlúčeniu síl vedúcich výskumných tímov a zástupcov komunity sa podarí stimulovať rozvoj systémov strojového učenia a vyriešiť problém s fragmentáciou infraštruktúry pre rôzne frameworky a vybavenie. OpenXLA umožňuje implementovať efektívnu podporu rôzneho vybavenia, bez ohľadu na to, na akom frameworku bola model strojového učenia vytvorená. Očakáva sa, že vďaka OpenXLA sa podarí skrátiť čas učenia modelov, zvýšiť priepustnosť, skrátiť oneskorenia, znížiť náklady na výpočtové zdroje a skrátiť čas uvedenia produktu na trh.

OpenXLA tvoria tri hlavné komponenty, ktorých kód je šírený pod licenciou Apache 2.0:
- XLA (Accelerated Linear Algebra) — kompilátor, ktorý umožňuje optimalizovať modely strojového učenia pre vysokovýkonné vykonávanie na rôznych hardvérových platformách, vrátane GPU, CPU a špecializovaných akcelerátorov od rôznych výrobcov.
- StableHLO — špecifikácia a základná implementácia súboru vysokolevlových operácií (HLO, High-Level Operations) na použitie v modeloch systémov strojového učenia. Slúži ako medzivrstva medzi frameworkmi strojového učenia a kompilátormi, ktoré transformujú model na vykonávanie na konkrétnom vybavení. Medzivrstvy na generovanie modelov vo formáte StableHLO sú pripravené pre frameworky PyTorch, TensorFlow a JAX. Ako základ pre StableHLO bol použitý súbor MHLO, ktorý bol rozšírený o podporu serializácie a verzionovania.
- IREE (Intermediate Representation Execution Environment) je kompilátor a runtime, ktorý prevedie modely strojového učenia do univerzálneho medziprímého zastúpenia založeného na formáte MLIR (Multi-Level Intermediate Representation) z projektu LLVM. Medzi jeho funkcie patrí možnosť predbežnej kompilácie (ahead-of-time), podpora riadenia toku, možnosť použitia dynamických prvkov v modeloch a optimalizácia pre rôzne CPU a GPU s nízkymi režijnými nákladmi.
Hlavné výhody nástroja OpenXLA:
- Dosiahnutie optimálneho výkonu bez nutnosti hlbšieho zapájania do písania kódu špecifického pre konkrétne zariadenia. Poskytnutie hotových optimalizácií, vrátane zjednodušenia algebraických výrazov, efektívneho umiestnenia v pamäti a plánovania vykonávania s ohľadom na zníženie špičkovej spotreby pamäte a preťaženia.
- Zjednodušenie škálovania a paralelizácie výpočtov. Vývojárovi stačí pridať anotácie pre podmnožinu kritických tenzorov, na základe ktorých kompilátor môže automaticky vygenerovať kód pre paralelné výpočty.
- Zabezpečenie prenositeľnosti prostredníctvom podpory rôznych hardvérových platforiem, ako sú GPU AMD a NVIDIA, CPU založené na architektúre x86 a ARM, ML-urýchľovače TPU Google, IPU AWS Trainium Inferentia, Graphcore a Cerebras Wafer-Scale Engine.
- Podpora pripojenia rozšírení s implementovaním ďalších funkcií, ako je podpora písania primitívov hlbokého strojového učenia pomocou CUDA, HIP, SYCL, Triton a iných jazykov pre paralelné výpočty. Možnosť manuálneho ladenia úzkych miest v modeloch.
Zdroj: opennet.ru
