Chris Lattner, célèbre pour avoir créé le compilateur LLVM et co-développé Swift, présente Mojo, un langage de programmation innovant conçu spécifiquement pour l'intelligence artificielle. Mojo se positionne comme un sur-ensemble de Python combinant la simplicité de ce dernier avec les performances du langage C, permettant ainsi de programmer indifféremment sur CPU, GPU et TPU sans recourir à des bibliothèques matérielles propriétaires comme CUDA, ROCm ou XLA. Cette approche vise à résoudre le problème fondamental de fragmentation des écosystèmes matériels en IA, où chaque fabricant propose sa propre pile logicielle, compliquant considérablement le développement et le déploiement d'applications.
Le parcours de Lattner explique en partie cette vision unificatrice : après avoir développé LLVM pendant sa thèse, travaillé douze ans chez Apple sur les outils développeurs, puis passé cinq ans chez Tesla, Google et SiFive, il fonde en 2022 Modular AI avec un collègue de Google. Ses expériences avec LLVM, Clang, Swift et MLIR lui ont révélé les limitations des langages existants face aux besoins spécifiques du machine learning, notamment l'absence de support natif pour l'hétérogénéité matérielle et la complexité croissante des écosystèmes logiciels.
Mojo s'appuie techniquement sur MLIR et introduit plusieurs innovations majeures : un système de types basé sur des structures, un système de traits pour la typage statique, un système de propriété garantissant la sécurité mémoire sans garbage collection, et un métaprogrammation avancée durant la compilation. Ces fonctionnalités permettent d'écrire un même code exécutable sur différents matériels tout en offrant des gains de performance pouvant atteindre 1000x par rapport à Python pur, sans nécessiter de réécriture en Rust ou C++ comme le font actuellement NumPy ou PyTorch.
Le langage vise ainsi à devenir la "LLVM pour l'IA" en offrant une plateforme logicielle unifiée pour le développement et le déploiement d'applications de machine learning, indépendante des fabricants de matériel. Cette approche pourrait significativement simplifier le travail des développeurs ML tout en accélérant l'innovation dans le domaine, en éliminant la complexité liée à la gestion des différentes piles logicielles matérielles.