OpenXLA, un projet open source pour accélérer et simplifier le machine learning

OuvertXLA

OpenXLA est un écosystème de compilateurs ML open source co-développé

Récemment, les plus grandes entreprises engagées dans le développement dans le domaine de l'apprentissage automatique présentées le projet OuvertXLA, destiné au développement conjoint d'outils compiler et optimiser des modèles pour les systèmes d'apprentissage automatique.

Le projet a pris en charge le développement d'outils permettant d'unifier la compilation de modèles préparés dans les frameworks TensorFlow, PyTorch et JAX pour un entraînement et une exécution efficaces sur différents GPU et accélérateurs spécialisés. Des entreprises telles que Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba et Amazon ont rejoint le travail conjoint du projet.

Le projet OpenXLA fournit un compilateur ML de pointe qui peut s'adapter à la complexité de l'infrastructure ML. Ses piliers fondamentaux sont la performance, l'évolutivité, la portabilité, la flexibilité et l'extensibilité pour les utilisateurs. Avec OpenXLA, nous aspirons à libérer le véritable potentiel de l'IA en accélérant son développement et sa livraison.

OpenXLA permet aux développeurs de compiler et d'optimiser des modèles à partir de tous les principaux frameworks ML pour une formation et une maintenance efficaces sur une grande variété de matériels. Les développeurs utilisant OpenXLA verront des améliorations significatives en termes de temps de formation, de performances, de latence de service et, finalement, de délais de commercialisation et de coûts de calcul.

On espère qu'en unissant les efforts des principales équipes de recherche et des représentants de la communauté, il sera possible de stimuler le développement de systèmes d'apprentissage automatique et résoudre le problème de la fragmentation de l'infrastructure pour divers cadres et équipes.

OpenXLA permet d'implémenter un support efficace pour divers matériels, quel que soit le cadre sur lequel le modèle d'apprentissage automatique est basé. OpenXLA devrait réduire le temps de formation des modèles, améliorer les performances, réduire la latence, réduire les frais généraux de calcul et réduire les délais de mise sur le marché.

OuvertXLA se compose de trois éléments principaux, dont le code est distribué sous la licence Apache 2.0 :

  1. XLA (algèbre linéaire accélérée) est un compilateur qui vous permet d'optimiser les modèles d'apprentissage automatique pour une exécution haute performance sur différentes plates-formes matérielles, y compris les GPU, les CPU et les accélérateurs spécialisés de divers fabricants.
  2. StableHLO est une spécification de base et l'implémentation d'un ensemble d'opérations de haut niveau (HLO) à utiliser dans les modèles de système d'apprentissage automatique. Il agit comme une couche entre les frameworks d'apprentissage automatique et les compilateurs qui transforment le modèle pour qu'il s'exécute sur du matériel spécifique. Les couches sont préparées pour générer des modèles au format StableHLO pour les frameworks PyTorch, TensorFlow et JAX. La suite MHLO est utilisée comme base pour StableHLO, qui est étendu avec la prise en charge de la sérialisation et du contrôle de version.
  3. IREE (Intermediate Representation Execution Environment) est un compilateur et un runtime qui convertit les modèles d'apprentissage automatique en une représentation intermédiaire universelle basée sur le format MLIR (Intermediate Multi-Level Representation) du projet LLVM. Parmi les fonctionnalités, la possibilité de précompilation (à l'avance), la prise en charge du contrôle de flux, la possibilité d'utiliser des éléments dynamiques dans les modèles, l'optimisation pour différents CPU et GPU et une faible surcharge sont mises en évidence.

En ce qui concerne les principaux avantages d'OpenXLA, il est mentionné que des performances optimales ont été atteintes sans avoir à se plonger dans l'écriture de code spécifique à l'appareil, en plus de fournir des optimisations prêtes à l'emploi, y compris la simplification des expressions algébriques, l'allocation efficace de la mémoire, la planification de l'exécution, en tenant compte de la réduction de la consommation mémoire maximale et des frais généraux.

Un autre avantage est le simplification de la mise à l'échelle et parallélisation des calculs. Il suffit à un développeur d'ajouter des annotations pour un sous-ensemble de tenseurs critiques, sur la base desquels le compilateur peut générer automatiquement du code pour le calcul parallèle.

Il est également souligné que la portabilité est assurée avec la prise en charge de plusieurs plates-formes matérielles, tels que les GPU AMD et NVIDIA, les processeurs x86 et ARM, les accélérateurs Google TPU ML, les IPU AWS Trainium Inferentia, Graphcore et Wafer-Scale Engine Cerebras.

Prise en charge de la connexion des extensions avec la mise en œuvre de fonctions supplémentaires, comme support pour l'écriture de primitives d'apprentissage automatique en profondeur utilisant CUDA, HIP, SYCL, Triton et d'autres langages pour le calcul parallèle, ainsi que le possibilité de réglage manuel des goulots d'étranglement dans les modèles.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter le détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.