Le più grandi aziende impegnate nello sviluppo nel campo dell'apprendimento automatico hanno presentato il progetto OpenXLA, volto a promuovere lo sviluppo collaborativo di strumenti per la compilazione e l'ottimizzazione dei modelli per sistemi di apprendimento automatico. Sotto l'ombrello del progetto, è passata la sviluppo di strumenti che consentono di unificare la compilazione dei modelli preparati nei framework TensorFlow, PyTorch e JAX, per un efficiente apprendimento e esecuzione su diverse GPU e acceleratori specializzati. Aziende come Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba e Amazon si sono unite al lavoro collaborativo sul progetto.
Si prevede che, grazie alla fusione degli sforzi dei principali team di ricerca e dei rappresentanti della comunità, sarà possibile stimolare lo sviluppo dei sistemi di apprendimento automatico e risolvere il problema della frammentazione dell'infrastruttura per diversi framework e attrezzature. OpenXLA consente di realizzare un'efficace supporto per diverse attrezzature, indipendentemente dal framework su cui è stato creato il modello di apprendimento automatico. Si prevede che grazie a OpenXLA sarà possibile ridurre il tempo di addestramento dei modelli, aumentare la larghezza di banda, ridurre le latenze, abbattere i costi delle risorse computazionali e accelerare il time-to-market.

OpenXLA è composto da tre componenti principali, il cui codice è distribuito sotto la licenza Apache 2.0:
- XLA (Accelerated Linear Algebra) è un compilatore che ottimizza i modelli di apprendimento automatico per l'esecuzione ad alte prestazioni su diverse piattaforme hardware, inclusi GPU, CPU e acceleratori specializzati di vari produttori.
- StableHLO è una specifica e una realizzazione di base di un insieme di operazioni ad alto livello (HLO, High-Level Operations) per l'uso nei modelli di sistemi di apprendimento automatico. Funziona come interfaccia tra i framework di apprendimento automatico e i compilatori che trasformano il modello per l'esecuzione su hardware specifico. Interfacce per la generazione di modelli nel formato StableHLO sono state preparate per i framework PyTorch, TensorFlow e JAX. La base per StableHLO è l'insieme MHLO, potenziato con supporto per la serializzazione e il versionamento.
- IREE (Ambiente di Esecuzione della Rappresentazione Intermedia) è un compilatore e runtime che trasforma i modelli di apprendimento automatico in una rappresentazione intermedia universale, basata sul formato MLIR (Rappresentazione Intermedia Multi-Livello) del progetto LLVM. Tra le sue caratteristiche si segnala la possibilità di compilazione anticipata, il supporto per la gestione del flusso, la possibilità di utilizzare elementi dinamici nei modelli, l'ottimizzazione per diverse CPU e GPU e bassi costi di overhead.
Principali vantaggi dello strumento OpenXLA:
- Raggiungimento di prestazioni ottimali senza la necessità di addentrarsi nella scrittura di codice specifico per dispositivi particolari. Fornitura di ottimizzazioni pronte per l'uso, che includono la semplificazione di espressioni algebriche, un'efficace allocazione della memoria e la pianificazione dell'esecuzione tenendo conto della riduzione del picco di consumo di memoria e dei sovraccarichi.
- Semplificazione della scalabilità e del parallelismo dei calcoli. È sufficiente che il programmatore aggiunga annotazioni a un sottoinsieme di tensori critici, sulla base dei quali il compilatore può generare automaticamente codice per calcoli paralleli.
- Garanzia di portabilità grazie al supporto per diverse piattaforme hardware, come GPU AMD e NVIDIA, CPU basate su architettura x86 e ARM, accelerator ML TPU Google, IPU AWS Trainium Inferentia, Graphcore e Cerebras Wafer-Scale Engine.
- Supporto per l'integrazione di estensioni con funzionalità aggiuntive, come la scrittura di primitivi di deep learning utilizzando CUDA, HIP, SYCL, Triton e altri linguaggi per calcoli paralleli. Possibilità di intervento manuale sui colli di bottiglia nei modelli.
Fonte: opennet.ru
