Table des matières[Cacher][Montrer]
Avez-vous déjà souhaité créer des applications plus rapides et plus efficaces tout en découvrant que les langages de programmation standard sont incapables de répondre à vos besoins ?
C'est à ce moment que Mojo Language entre en jeu.
Mojo est un nouveau langage de programmation développé par Modulaire, une entreprise spécialisée dans les infrastructures d'IA.
Il est particulièrement conçu pour permettre aux développeurs de construire des applications plus rapides et plus robustes pour plusieurs cas d'utilisation, y compris le développement d'IA. Dans cet article, nous verrons ce que Mojo c'est-à-dire comment cela fonctionne et pourquoi vous devriez l'utiliser dans votre prochain projet.
Les origines du mojo
Les créateurs de Mojo ont reconnu le besoin d'un langage de programmation combinant la convivialité de Python avec la vitesse et l'efficacité de C.
Et, ils ont établi un langage qui permettrait aux développeurs de créer des applications hautes performances sans avoir à apprendre les langages de description de matériel standard.
En conséquence, ils ont créé Mojo, qui est censé être entièrement compatible avec l'écosystème Python tout en offrant une vitesse de niveau C.
Modulaire : l'organisation derrière le langage Mojo
Alors, qui sont les créateurs de ce langage futuriste ?
Modular est une startup d'infrastructure d'IA de renommée mondiale créée par Chris Lattner et Tim Davis, qui se sont rencontrés chez Google et ont réalisé qu'une infrastructure trop compliquée et fragmentée limitait l'influence mondiale de l'IA.
Le but et l'objectif de Modular sont de repenser l'infrastructure de l'IA pour améliorer l'humanité. Leur culture et leurs principes accordent une grande importance aux clients, aux logiciels de production de haute qualité et à l'obtention de résultats significatifs
Les objectifs de Mojo
Mojo a été conçu pour fournir un modèle de programmation unique pour les accélérateurs d'apprentissage automatique.
Modular a déterminé que Mojo devrait permettre une programmation à usage général car les processeurs d'aujourd'hui ont des tenseurs et d'autres accélérateurs d'IA. De plus, comme Python est largement utilisé dans l'apprentissage automatique et d'autres domaines, Modular a choisi de rejoindre l'écosystème Python.
L'utilisation de Python a encore facilité la conception du langage. Étant donné que la majorité de la syntaxe avait déjà été déterminée, la société pouvait plutôt se concentrer sur la construction du mécanisme de compilation et fournir des capacités de programmation spécialisées.
Caractéristiques importantes à prendre en compte
Programmabilité
Types progressifs
La fonction de types progressifs de Mojo Language permet aux développeurs d'utiliser des annotations de type pour améliorer l'efficacité et contrôles d'erreurs.
Les développeurs peuvent concevoir un code plus efficace qui détecte les erreurs au moment de la compilation, élimine les bogues et améliore l'efficacité, en fournissant des informations de type plus détaillées.
Abstractions à coût zéro
Les développeurs peuvent prendre le contrôle du stockage en allouant des données en ligne dans des structures grâce aux abstractions à coût nul fournies par le langage Mojo.
En supprimant l'exigence d'allocations de mémoire supplémentaires, cette fonctionnalité améliore l'efficacité du code et réduit la quantité de code passe-partout.
Réglage automatique de la langue intégré
La fonctionnalité de réglage automatique intégrée au langage dans Mojo Language permet aux développeurs de déterminer automatiquement les valeurs idéales des paramètres pour bénéficier du matériel cible.
Avec cette fonctionnalité, il est plus simple d'optimiser le code sans avoir à l'ajuster manuellement pour chaque combinaison matérielle.
Mojo Language est un outil flexible et efficace pour le développement de l'IA car il fournit également toute la puissance de MLIR (Multi-Level Intermediate Representation), un runtime hétérogène parallèle et des temps de construction rapides.
Parallélisation
Mojo utilise MLIR, qui permet aux programmeurs d'utiliser des vecteurs, des threads et des unités matérielles pour l'IA pour la parallélisation. Mojo prend en charge le traitement parallèle sur plusieurs cœurs par opposition à l'exécution à un seul thread de Python.
Avec une accélération de 35,000 XNUMXx par rapport à Python, Mojo bat les autres langages en termes de vitesse.
Interopérabilité
L'interopérabilité avec l'ensemble de l'écosystème Python est l'un des avantages uniques de Mojo. Cela implique que vous pouvez combiner Mojo avec toutes les bibliothèques arbitraires, telles que Numpy et Matplotlib, ainsi que votre code sur mesure.
Par exemple, vous pouvez visualiser les données dans votre code Mojo en utilisant la bibliothèque Python Matplotlib.
Extensibilité
Mojo est également assez flexible, permettant aux utilisateurs d'ajouter simplement des étapes de pré- et post-traitement aux modèles ou de remplacer les étapes existantes par de nouvelles.
Pour améliorer leurs modèles et la pile modulaire, les développeurs peuvent utiliser la fusion du noyau, les réécritures de graphes, les fonctions de forme et d'autres techniques.
Pourquoi le choisiriez-vous plutôt que Python ?
Python est un langage de développement d'IA populaire en raison de sa flexibilité et de ses bibliothèques compilées hautes performances. Cependant, il est nettement plus lent que des langages tels que C++.
Par conséquent, les programmeurs apprennent à utiliser des wrappers Python autour de langages plus rapides pour éviter d'utiliser Python pour les zones critiques en termes de performances.
Cela conduit au problème du bilinguisme, dans lequel les modèles Python doivent être transformés en une implémentation plus rapide, telle que ONNX ou un script torche, qui ne prend pas en charge toutes les fonctionnalités de Python. Python a également des problèmes de performances et un manque de bon traitement parallèle.
Même les programmeurs expérimentés ont du mal à étudier, déboguer et résoudre les problèmes de performances en raison du dilemme des deux langues.
Il existe également des restrictions de base à ce que Python peut faire en raison de la façon dont le langage est structuré. Bien que la mise en œuvre dans le monde réel d'algorithmes utilisant des composants de base puisse sembler facile, elle est nettement plus difficile et nécessite l'utilisation d'un langage plus rapide.
Comment commencer?
Vous pouvez commencer à utiliser Mojo Language dès maintenant dans leur Playground pour commencer. Le Playground basé sur JupyterHub donne des leçons et la possibilité de créer votre propre code Mojo, même si Mojo est encore un travail en cours.
Vous pouvez vous inscrire sur leur site Web pour accéder au terrain de jeu.
Pour atteindre ses objectifs de performances, Mojo utilise des technologies de compilateur de nouvelle génération avec des technologies intégrées de mise en cache, de multithreading et de distribution dans le cloud.
Il ajoute des primitives supplémentaires à la programmation des systèmes et aspire à devenir un sur-ensemble Python au fil du temps. Pour commencer à coder avec Mojo, utilisez le compilateur Mojo pour exécuter un programme Mojo à partir du terminal de la même manière que Python.
Le langage est actuellement en cours de développement et s'adresse aux développeurs ayant une expérience en programmation système.
Emballer
Mojo est considéré comme un sur-ensemble Python. Et, il a le potentiel de révolutionner la programmation en combinant la simplicité de Python avec les performances de C++ et Rust.
Il peut profiter pleinement Librairie Python écosystème, permettant aux développeurs de créer des bibliothèques hautes performances sans avoir besoin de C, C++, Rust ou CUDA.
Il permet la production de code portable grâce à ses fonctionnalités d'autoréglage et de méta-programmation à la compilation.
Bien qu'il s'agisse encore d'un travail en cours, il a le potentiel de devenir un formidable outil de programmation et de transformer l'industrie de la programmation. Nous devons donc rester à l'affût des futurs développements de Modular !
Chris Santos
Pensez-vous qu'une personne ayant des connaissances de base à intermédiaires serait en mesure de commencer ses études dans cette nouvelle langue ? Ou conseillez-vous d'abord d'étudier un langage plus basique, comme Javascript ou Python ?
Ilke Candan Bengi
Bonjour Chris, désolé pour la réponse tardive ! Je pense qu'avoir une compréhension / expérience de base de Python au préalable pourrait être utile avant de commencer avec Mojo.