Modular révèle Mojo, le sur-ensemble Python avec une vitesse de niveau C

  • Français


  • Modular, une start-up d’intelligence artificielle avec des compétences techniques supérieures à la moyenne, a dévoilé un langage de programmation appelé Mojo qui aspire à combiner la convivialité de Python avec la vitesse de C.

    Il existe de nombreux projets en cours pour rendre Python plus rapide, comme Jax et plus récemment un compilateur Python appelé Codon. Et c’est sans parler des langages alternatifs orientés science des données comme Julia.

    Mojo parvient à se distinguer des autres efforts d’amélioration de Python par l’extrémité de sa prétendue accélération – 35 000 fois plus rapide que Python lors de l’exécution d’algorithmes numériques tels que Mandelbrot grâce à l’accélération matérielle – et le pedigree du PDG Chris Lattner.

    Mojo combine les parties de Python que les chercheurs adorent avec les fonctionnalités de programmation système qui nécessitent l’utilisation de C, C++ et CUDA

    Lattner, un vétéran d’Apple, Google et Tesla, a co-développé la chaîne d’outils du compilateur LLVM, co-fondé l’infrastructure du compilateur MLIR et a dirigé le développement du langage de programmation Swift. Et son co-fondateur de Modular, Tim Davis, apporte également une expérience considérable en tant qu’ancien dirigeant de Google ML, où il a supervisé les API d’apprentissage automatique, les compilateurs et l’infrastructure d’exécution du goliath du Web.

    La startup âgée d’un an a annoncé cette semaine deux projets connexes : Mojo, un langage de programmation basé sur Python qui promet les performances de C ; et le moteur d’inférence modulaire prétendument portable et performant pour exécuter des modèles d’IA à moindre coût en production – l’inférence étant l’utilisation d’un modèle après qu’il a été formé.

    “Mojo combine les parties de Python que les chercheurs adorent avec les fonctionnalités de programmation système qui nécessitent l’utilisation de C, C++ et CUDA”, a expliqué l’entreprise.

    “Mojo est construit sur des technologies de compilateur de nouvelle génération qui débloquent des gains de performances significatifs lorsque vous ajoutez des types à vos programmes, vous permet de définir des abstractions sans coût, de bénéficier d’une sécurité de mémoire de type Rust, et qui alimente un réglage automatique et une compilation uniques. capacités de métaprogrammation temporelle.

    En tirant parti du MLIR, le code Mojo peut accéder à une variété de fonctionnalités matérielles optimisées par l’IA, telles que les extensions TensorCores et AMX. Par conséquent, pour certains types d’algorithmes, il est beaucoup plus rapide que Python vanille – 0,03 seconde exécutant l’algorithme Mandelbrot sur un AWS r7iz.metal-16xl, contre 1 027 secondes (environ 17 minutes) pour Python 3.10.9.

    TEC

    Mojo est toujours en développement, bien qu’il existe un cahier Jupyter pour l’essayer. Une fois terminé, il devrait s’agir d’un sur-ensemble de Python – l’écosystème Python avec une boîte à outils de programmation système. Sous cette forme, il devrait exécuter n’importe quel programme Python. Mais pour le moment, alors que Mojo prend en charge les fonctionnalités de base de Python, notamment l’asynchronisme/attente, la gestion des erreurs et les variadics, il reste encore beaucoup de travail à faire pour obtenir une compatibilité totale.

    Dans une annonce jeudi, le scientifique des données Jeremy Howard, co-fondateur de Fast.ai, a déclaré : “Mojo est peut-être la plus grande avancée en matière de langage de programmation depuis des décennies”.

    Mojo, explique Howard, tente de répondre à la réalité bifurquée de l’IA : alors que les modèles d’IA sont développés en Python en raison de la richesse de l’écosystème, les programmeurs Python finissent généralement par connecter leur code à des modules dans des langages plus performants, tels que C/C++ et Rust. . Et cette approche « bilingue » rend plus difficile le profilage, le débogage, l’apprentissage et le déploiement d’applications d’apprentissage automatique.

    “Une astuce clé dans Mojo est que vous pouvez activer à tout moment un ‘mode’ plus rapide en tant que développeur, en utilisant ‘fn’ au lieu de ‘def’ pour créer votre fonction”, explique Howard. “Dans ce mode, vous devez déclarer exactement le type de chaque variable et, par conséquent, Mojo peut créer un code machine optimisé pour implémenter votre fonction.

    “De plus, si vous utilisez ‘struct’ au lieu de ‘class’, vos attributs seront étroitement emballés dans la mémoire, de sorte qu’ils peuvent même être utilisés dans des structures de données sans chasser les pointeurs. Ce sont les types de fonctionnalités qui permettent aux langages comme C d’être si rapides, et maintenant ils sont également accessibles aux programmeurs Python – juste en apprenant un tout petit peu de nouvelle syntaxe.”

    Un autre avantage de Mojo est que le code peut être compilé dans un binaire autonome à lancement rapide, ce qui facilite son déploiement tout en tirant parti des cœurs et de l’accélération disponibles.

    Il y a encore des pièces manquantes, comme un système de gestion et de construction de paquets – quelque chose avec lequel la communauté Python continue de se débattre. Et le langage n’est pas encore sous licence open source on s’attend à ce que ce soitfinalement.

    “Mojo n’est pas terminé – mais ce qu’il y a est déjà époustouflant, et il a été créé par une très petite équipe en très peu de temps”, a déclaré Howard. par Twitter. “Cela montre les avantages d’utiliser des fondations soigneusement architecturées, basées sur [Lattner’s] années d’expérience avec Clang, LLVM et Swift.” ®

    L'équipe de Comparaland

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

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