Suured masinĂ”ppe arendamisega tegelevad ettevĂ”tted on kĂ€ivitanud projekti OpenXLA, mille eesmĂ€rk on ĂŒhendada jĂ”ud tööriistade arendamisel mudelite kompileerimise ja optimeerimise jaoks masinĂ”ppe sĂŒsteemides. Projekti all on vĂ€lja töötatud tööriistad, mis vĂ”imaldavad ĂŒhtlustada mudelite kompileerimist, mis on loodud TensorFlow, PyTorch ja JAX raamistikes, et tĂ”husalt koolitada ja kĂ€itada erinevates GPU-s ja spetsialiseeritud kiirendites. Projekti on kaasatud sellised ettevĂ”tted nagu Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba ja Amazon.
Oodatakse, et juhtivate teadusmeeskondade ja kogukonna liikmete koostöö tulemusena Ă”nnestub edendada masinĂ”ppesĂŒsteemide arengut ja lahendada probleem, mis on seotud erinevate raamistike ja riistvara infrastruktuuri fragmentatsiooniga. OpenXLA vĂ”imaldab rakendada tĂ”husat tuge erinevale riistvarale, olenemata sellest, millises raamistikus on masinĂ”ppe mudel loodud. Oodatakse, et OpenXLA abil Ă”nnestub vĂ€hendada mudelite koolitamise aega, suurendada lĂ€bilaskevĂ”imet, vĂ€hendada viivitusi, alandada arvutusressursside kulusid ja lĂŒhendada toote turuletoomise aega.

OpenXLA koosneb kolmest pÔhikomponendist, mille kood on jagatud Apache 2.0 litsentsi all:
- XLA (Accelerated Linear Algebra) â kompilaator, mis vĂ”imaldab optimeerida masinĂ”ppe mudeleid kĂ”rge jĂ”udlusega tĂ€itmiseks erinevatel riistvaraplatvormidel, sealhulgas GPU, CPU ja erinevatelt tootjatelt spetsialiseeritud kiirenditel.
- StableHLO â spetsifikatsioon ja baasseade HLO (High-Level Operations) kĂ”rgtaseme operatsioonide komplekti rakendamiseks masinĂ”ppesĂŒsteemide mudelites. See toimib sillana masinĂ”ppe raamistike ja kompilatorite vahel, mis muudavad mudeli konkreetse riistvara tĂ€itmiseks. Mudelite genereerimiseks StableHLO formaadis on valmid erinevates raamistiketes, sealhulgas PyTorch, TensorFlow ja JAX. StableHLO aluseks on MHLO komplekt, mis on laiendatud serialiseerimise ja versioonihalduse toega.
- IREE (Intermediate Representation Execution Environment) â kompilaator ja runtime, mis muundab masinĂ”ppe mudeleid universaalseks vaheesitusformaatiks, mis pĂ”hineb projekti LLVM MLIR (Multi-Level Intermediate Representation) formaadil. Eristatakse vĂ”imalust eelkompileerimiseks (ahead-of-time), voogude juhtimise toetust, dĂŒnaamiliste elementide kasutamise vĂ”imalust mudelites, optimeerimist erinevatele CPU ja GPU-dele ning madalaid ĂŒleliigseid kulusid.
OpenXLA tööriista peamised eelised:
- Optimaalse jĂ”udluse saavutamine ilma vajaduseta sĂŒveneda seadme-spetsiifilise koodi kirjutamisse. Valmis optimeerimiste pakkumine, mis hĂ”lmab algebrailiste avaldiste lihtsustamist, efektiivset mĂ€lukohta planeerimist, mille puhul arvestatakse mĂ€lu tipptarbimise ja ĂŒlekoormustega.
- MÔÔtmete ja arvutuste parendamine ja paralleelne teostamine. Arendajal on piisav, kui lisada annotatsioone teatud kriitiliste tensorite alamhulgas, mille pÔhjal saab kompilaator automaatselt genereerida koodi paralleelseks arvutamiseks.
- Kandetransportimise tagamine, toetades erinevaid riistvaraplatvorme, nagu AMD ja NVIDIA GPU-d, x86 ja ARM arhitektuuril pÔhinevad CPU-d, Google'i TPU ML-kiirendajad, AWS Trainium Inferentia, Graphcore ja Cerebras Wafer-Scale Engine.
- Toetatakse laienduste ĂŒhendamist, mis rakendavad tĂ€iendavaid vĂ”imalusi, nagu sĂŒgava masinĂ”ppe primitiivide kirjutamise tugi, kasutades CUDA, HIP, SYCL, Triton ja muid paralleelsete arvutuste keeli. VĂ”imalus manuaalselt timmida mudelite kitsaskohti.
Allikas: opennet.ru
