OpenXLA, un progetto open source per velocizzare e semplificare il machine learning

ApriXLA

OpenXLA è un ecosistema di compilatori ML open source co-sviluppato

Recentemente, presentate le più grandi aziende impegnate nello sviluppo nel campo dell'apprendimento automatico il progetto ApriXLA, destinato allo sviluppo congiunto di strumenti compilare e ottimizzare modelli per sistemi di machine learning.

Il progetto si è occupato dello sviluppo di strumenti che consentano di unificare la compilazione dei modelli preparati nei framework TensorFlow, PyTorch e JAX per un addestramento ed esecuzione efficiente su diverse GPU e acceleratori specializzati. Aziende come Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba e Amazon si sono unite al lavoro congiunto del progetto.

Il progetto OpenXLA fornisce un compilatore ML all'avanguardia in grado di adattarsi alla complessità dell'infrastruttura ML. I suoi pilastri fondamentali sono prestazioni, scalabilità, portabilità, flessibilità ed estensibilità per gli utenti. Con OpenXLA, aspiriamo a sbloccare il vero potenziale dell'IA accelerandone lo sviluppo e la consegna.

OpenXLA consente agli sviluppatori di compilare e ottimizzare i modelli da tutti i principali framework ML per formazione e assistenza efficienti su un'ampia varietà di hardware. Gli sviluppatori che utilizzano OpenXLA vedranno miglioramenti significativi nei tempi di formazione, nelle prestazioni, nella latenza del servizio e, in ultima analisi, nel time-to-market e nei costi di calcolo.

Si spera che unendo gli sforzi dei principali gruppi di ricerca e rappresentanti della comunità, sarà possibile stimolare lo sviluppo di sistemi di machine learning e risolvere il problema della frammentazione dell'infrastruttura per vari framework e team.

OpenXLA consente di implementare un supporto efficace per vari hardware, indipendentemente dal framework su cui si basa il modello di machine learning. Si prevede che OpenXLA ridurrà i tempi di addestramento del modello, migliorerà le prestazioni, ridurrà la latenza, ridurrà l'overhead di elaborazione e ridurrà il time-to-market.

ApriXLA consiste di tre componenti principali, il cui codice è distribuito con licenza Apache 2.0:

  1. XLA (accelerated linear algebra) è un compilatore che consente di ottimizzare i modelli di machine learning per l'esecuzione ad alte prestazioni su diverse piattaforme hardware, tra cui GPU, CPU e acceleratori specializzati di vari produttori.
  2. StableHLO è una specifica di base e un'implementazione di un set di operazioni di alto livello (HLO) da utilizzare nei modelli di sistema di machine learning. Funge da strato tra framework di machine learning e compilatori che trasformano il modello in modo che venga eseguito su hardware specifico. I livelli sono preparati per generare modelli in formato StableHLO per i framework PyTorch, TensorFlow e JAX. La suite MHLO viene utilizzata come base per StableHLO, che viene esteso con il supporto per la serializzazione e il controllo della versione.
  3. IREE (Intermediate Representation Execution Environment) è un compilatore e runtime che converte i modelli di machine learning in una rappresentazione intermedia universale basata sul formato MLIR (Intermediate Multi-Level Representation) del progetto LLVM. Tra le funzionalità, vengono evidenziate la possibilità di precompilazione (in anticipo), il supporto per il controllo del flusso, la possibilità di utilizzare elementi dinamici nei modelli, l'ottimizzazione per diverse CPU e GPU e un basso sovraccarico.

Per quanto riguarda i principali vantaggi di OpenXLA, si dice che prestazioni ottimali sono state raggiunte senza dover approfondire la scrittura del codice specifico del dispositivo, oltre a fornire ottimizzazioni pronte all'uso, compresa la semplificazione delle espressioni algebriche, l'efficiente allocazione della memoria, la pianificazione dell'esecuzione, tenendo conto della riduzione del consumo massimo di memoria e dei costi generali.

Un altro vantaggio è il semplificazione del ridimensionamento e parallelizzazione dei calcoli. È sufficiente che uno sviluppatore aggiunga annotazioni per un sottoinsieme di tensori critici, sulla base dei quali il compilatore può generare automaticamente codice per il calcolo parallelo.

Si evidenzia anche questo la portabilità è fornita con il supporto per più piattaforme hardware, come GPU AMD e NVIDIA, CPU x86 e ARM, acceleratori Google TPU ML, IPU AWS Trainium Inferentia, Graphcore e Wafer-Scale Engine Cerebras.

Supporto per il collegamento di estensioni con l'implementazione di funzioni aggiuntive, come supporto per la scrittura di primitive di deep machine learning utilizzando CUDA, HIP, SYCL, Triton e altri linguaggi per il calcolo parallelo, così come il possibilità di regolazione manuale dei colli di bottiglia nei modelli.

Infine, se sei interessato a saperne di più, puoi consultare il dettagli nel seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.