Aller au contenu

Préférences et cookies

Afin d’améliorer votre expérience sur notre site et de réaliser des statistiques de visites, nous utilisons des cookies. Rien n’est déposé sans votre accord, et le refus n’enlève l’accès à aucun contenu. Ce choix peut être modifié à tout moment.

Gérer les traceursVos données

Personnaliser

ArticleApplications & Développement

TensorFlow accélère l'apprentissage machine avec MLIR

Le projet de sous-langage Multi-Level Intermediate Representation (MLIR) promet une compilation plus rapide et une optimisation matérielle plus facile des modèles d'apprentissage machine haute performance.

La rédaction

Le sous-projet MLIR révélé par les ingénieurs travaillant sur le framework d'apprentissage machine TensorFlow de Google est destiné à servir de langage intermédiaire commun pour les frameworks d'apprentissage machine. MLIR, abréviation de Multi-Level Intermediate Representation, permettra de compiler les projets utilisant TensorFlow et d'autres bibliothèques d'apprentissage machine dans un code plus efficace capable de tirer le meilleur parti du matériel sous-jacent. De plus, à terme, MLIR pourrait être utilisé par tous les compilateurs et faire profiter d’autres projets de ses avantages d'optimisation, en dehors des seuls projets d'apprentissage machine.

Le langage MLIR ne ressemble pas au C++ ou à Python. Il introduit une étape de compilation intermédiaire entre ces langages de niveau supérieur et le code machine. Le framework de compilation LLVM utilise une représentation intermédiaire, ou IR, qui lui est propre. L'un des fondateurs de LLVM, Chris Lattner, est co-créateur du MLIR. Faire du MLIR un co-projet LLVM pourrait favoriser une adoption plus générale.

La compilation parallélisée, point fort de MLIR

Dans un diaporama présenté à la conférence EuroLLLVM organisée les 8 et 9 avril à Bruxelles, Chris Lattner et sa collègue Tatiana Shpeisman ont expliqué comment TensorFlow générait déjà plusieurs RI en interne, mais que ces RI disparates ne tiraient pas profit les uns des autres. MLIR fournit un IR standard unique pour tous ces sous-systèmes TensorFlow. TensorFlow migre actuellement pour utiliser le MLIR en interne. Autre avantage du MLIR : la compilation parallélisée. Avec le MLIR, un compilateur peut travailler sur différents segments de code en parallèle, ce qui permet aux modèles d'apprentissage machine - et à d'autres types d'applications - une mise en production plus rapide.

Le MLIR pourrait apporter d'autres avantages aux langages et aux frameworks en dehors de l'apprentissage machine. Par exemple, les langages basés sur LLVM comme Swift et Rust ont dû développer leurs propres IR internes, parce que de nombreuses optimisations utilisées dans ces langages ne peuvent être exprimées en LLVM. Le MLIR pourrait devenir un moyen d’expression standard de ces optimisations, avec la possibilité de les réutiliser à leur tour pour d'autres langages. Le projet MLIR est open source. Une spécification officielle est disponible pour les développeurs souhaitant générer du MLIR.

Newsletter

La Quotidienne LMI

Recevez chaque matin l’actualité IT de la rédaction.

TensorFlow accélère l'apprentissage machine avec MLIR