De största företagen inom maskininlÀrning har presenterat projektet OpenXLA, som syftar till att gemensamt utveckla verktyg för kompilering och optimering av modeller för maskininlÀrningssystem. Under projektets tak har utvecklingen av verktyg skett för att standardisera kompileringen av modeller som skapats i ramverken TensorFlow, PyTorch och JAX, för effektiv utbildning och utförande pÄ olika GPU:er och specialiserade acceleratorer. Företag som Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba och Amazon har anslutit sig till projektet.
Det förvÀntas att genom samarbete mellan ledande forskarteam och företrÀdare för gemenskapen kommer man att kunna stimulera utvecklingen av maskininlÀrningssystem och lösa problemet med fragmenteringen av infrastrukturen för olika ramverk och hÄrdvara. OpenXLA möjliggör effektiv stöd för olika hÄrdvaror, oavsett vilket ramverk som modellen för maskininlÀrning har skapats med. Det förvÀntas att OpenXLA kommer att minska trÀningstiden för modeller, öka kapaciteten, minska latensen, sÀnka kostnaderna för berÀkningsresurser och förkorta tiden för att lansera produkter pÄ marknaden.

OpenXLA bestÄr av tre grundlÀggande komponenter, vars kod distribueras under Apache 2.0-licensen:
- XLA (Accelerated Linear Algebra) â en kompilator som möjliggör optimering av maskininlĂ€rningsmodeller för högpresterande körning pĂ„ olika hĂ„rdvaruplattformar, inklusive GPU:er, CPU:er och specialiserade acceleratorer frĂ„n olika tillverkare.
- StableHLO â en specifikation och grundlĂ€ggande implementation av en uppsĂ€ttning hög nivĂ„ operationer (HLO, High-Level Operations) för anvĂ€ndning i modeller av maskininlĂ€rningssystem. Det fungerar som ett lager mellan ramverken för maskininlĂ€rning och kompilatorerna, som omvandlar modellen för att köras pĂ„ specifik hĂ„rdvara. Lager för modellgenerering i StableHLO-format har tagits fram för ramverken PyTorch, TensorFlow och JAX. Som grund för StableHLO har uppsĂ€ttningen MHLO anvĂ€nts, som har utökats med stöd för serialisering och versionshantering.
- IREE (Intermediate Representation Execution Environment) Àr en kompilator och runtime som konverterar maskininlÀrningsmodeller till ett universellt mellanliggande format baserat pÄ MLIR (Multi-Level Intermediate Representation) frÄn LLVM-projektet. Bland funktionerna mÀrks möjligheten till förkompilering (ahead-of-time), stöd för flödeshantering, anvÀndning av dynamiska element i modeller, optimering för olika CPU:er och GPU:er samt lÄga overheadkostnader.
Huvudfördelar med OpenXLA-verktyget:
- UppnÄ optimal prestanda utan att behöva fördjupa sig i att skriva enhetspecifik kod. Erbjuder fÀrdiga optimeringar, inklusive förenkling av algebraiska uttryck, effektiv minnesplacering, och utförandeplanering med fokus pÄ att minska toppminnesanvÀndning och överbelastningar.
- Förenkling av skalning och parallellisering av berÀkningar. Utvecklaren behöver endast lÀgga till annoteringar för en delmÀngd av kritiska tensorer, pÄ grundval av vilka kompilatorn automatiskt kan generera kod för parallella berÀkningar.
- SÀkerstÀllande av portabilitet genom stöd för olika hÄrdvaruplattformar, som GPU:er frÄn AMD och NVIDIA, CPU:er baserade pÄ x86- och ARM-arkitekturer, ML-acceleratorer som Google TPU, AWS Trainium och Inferentia, Graphcore och Cerebras Wafer-Scale Engine.
- Stöd för att ansluta tillÀgg med implementering av ytterligare funktioner, sÄsom stöd för att skriva primitiva djupa maskininlÀrningsfunktioner med CUDA, HIP, SYCL, Triton och andra sprÄk för parallella berÀkningar. Möjlighet till manuell finjustering av flaskhalsar i modeller.
KĂ€lla: opennet.ru
