
il serait 35 000 fois plus rapide que Python
La startup Modular AI, spécialisée dans les infrastructures d'IA, a dévoilé cette semaine Mojo, un nouveau langage de programmation qui combine la syntaxe de Python avec la portabilité et la rapidité de C. L'équipe affirme que cela devrait le rendre idéal à la fois pour la recherche et la production. Il vise à résoudre le double problème de l'informatique hétérogène en unifiant l'informatique haute performance et les cas d'utilisation dynamiques. Mojo prend en charge plusieurs backends matériels, notamment les CPU, les GPU, les TPU et les ASIC (Application-specific integrated circuit) personnalisés. En outre, l'entreprise affirme que Mojo est 35 000 fois plus rapide que Python.
Langage de programmation Mojo : quels sont ses caractéristiques et ses avantages ?
Modular AI est une startup américaine spécialisée dans les infrastructures d'IA fondée par Tim Davis et Chris Lattner, deux anciens employés de Google. La société vient de lancer Mojo, un nouveau langage de programmation qui tente de combler le fossé entre la recherche et la production en combinant le meilleur de la syntaxe Python avec la programmation de systèmes et la métaprogrammation. « Mojo permet une programmabilité inégalée du matériel d'IA et l'extensibilité des modèles d'IA. Vous pouvez écrire du code portable plus rapide que le C et interopérer de manière transparente avec l'écosystème Python », indique la documentation du langage.
Mojo🔥 combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models.
— Modular (@Modular_AI) May 2, 2023
Also, it's up to 35000x faster than Python 🤯 and … deploys 🏎 pic.twitter.com/tjT09U4F80
Modular AI affirme qu'elle n'avait pas l'intention de créer un nouveau langage de programmation. « Mais alors que nous construisions notre plateforme avec l'intention d'unifier l'infrastructure ML/AI mondiale, nous avons réalisé que la programmation à travers toute la pile était trop compliquée », note l'équipe. Cela signifie qu'il faut construire un langage de programmation avec une métaprogrammation puissante au moment de la compilation, l'intégration de techniques de compilation adaptatives, la mise en cache tout au long du flux de compilation, et d'autres choses qui ne sont pas prises en charge par les langages existants. Mais ils ne sont pas partis de zéro.
Mojo exploitera l'ensemble de l'écosystème des bibliothèques Python, tout en étant construit sur une toute nouvelle base de code. Ceci, ainsi que la capacité de calcul élevée de C/C++, permettra aux développeurs d'IA Python de s'appuyer sur Mojo, au lieu de se rabattre sur C ou C++. Selon les développeurs, l'une des principales motivations de la création de Mojo est que la plupart des systèmes de programmation modernes s'appuient sur des accélérateurs tels que les GPU pour les opérations, et ne s'appuient sur les CPU principaux que pour les opérations de support telles que le chargement des données, le prétraitement et le post-traitement, etc.
La startup souhaitait prendre en charge l'ensemble de ces opérations dans un seul et même langage. De plus, pour ne pas avoir à construire et à innover une nouvelle syntaxe ou une nouvelle communauté, l'entreprise a décidé d'opter pour Python et son écosystème. Mojo restera également open source jusqu'à ce qu'il devienne le superset de Python 3. Voici quelques-unes des principales caractéristiques et avantages cités par Modular AI pour Mojo :
- prise en charge native de plusieurs backends matériels : Mojo prend en charge plusieurs backends matériels, notamment les CPU, les GPU, les TPU et les ASIC personnalisés, ce qui permet aux développeurs de tirer parti des atouts de chaque type de matériel ;
- syntaxe et sémantique de haut niveau : Mojo possède une syntaxe et une sémantique de haut niveau similaires à celles de Python, ce qui facilite son apprentissage et son utilisation par les développeurs familiers de Python ;
- parallélisation automatique : Mojo parallélise automatiquement le code sur plusieurs backends matériels, ce qui facilite l'écriture d'un code parallèle efficace sans avoir à se préoccuper des détails de bas niveau de la parallélisation ;
- inférence et vérification de type : Mojo dispose d'un puissant système d'inférence et de vérification des types qui permet de détecter les erreurs à la compilation, réduisant ainsi la probabilité d'erreurs à l'exécution ;
- compilation statique : Mojo est compilé de manière statique, ce qui signifie que le code est compilé avant d'être exécuté, ce qui se traduit par des temps d'exécution plus rapides et une meilleure optimisation.
Quels sont les défis et la concurrence auxquels le langage Mojo pourrait faire face ?
Mojo est le nouveau venu dans le domaine de l'IA. Il promet quelque chose qui, s'il s'avère exact, pourrait révolutionner l'IA d'une manière qui pourrait rendre toutes les applications d'IA des centaines de fois plus rapides. Le langage de programmation vise à concurrencer des langages plus établis dans le domaine comme Python, Julia, et Rust. Selon l'enquête Stack Overflow Developer Survey 2022, Rust est le langage le plus apprécié, et ce depuis sept ans sans interruption. Le problème de Rust est sa syntaxe complexe, qui rend son apprentissage difficile. Malgré cela, Rust est utilisé par Meta, Dropbox, et Google prévoit de l'implémenter également.
What if its the best of all of them? 😏 Tune in May 2nd at 9am to find out on https://t.co/bhbmGy7hYb 🔥 https://t.co/vXetLqqKQs pic.twitter.com/S15DOjA1aH
— Modular (@Modular_AI) April 22, 2023
L'enquête rapporte en outre que Julia s'est classé dans le top 5 des langages les plus appréciés, battant Python. Il en était de même l'année précédente. Répondant à des questions sur Hacker News à propos de la comparaison entre Julia et Rust, et des plans pour concurrencer Python, Chris Lattner, l'un des co-créateurs de Mojo, a fait l'éloge de Julia comme étant un "langage merveilleux et une communauté merveilleuse". Abordant les différences entre Julia et Mojo, il insiste sur le fait que Mojo a un tas d'avancées techniques par rapport à des langages comme Swift, Rust, C++, et même Julia, parce qu'il a appris d'eux et s'est construit à partir d'eux.
Python (ou même Julia) n'est pas un langage privilégié pour la programmation de systèmes, mais surtout pour la construction de modèles d'IA. Bien qu'il surmonte cette limitation grâce à une liaison de bas niveau avec C...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.