
Apple fait un pas de géant dans le domaine de l’intelligence artificielle en intégrant le support des GPU NVIDIA dans son framework MLX dédié au machine learning. Initialement conçu pour les Apple Silicon, MLX peut désormais exploiter un backend CUDA, ouvrant ainsi la voie aux développeurs pour exécuter leurs modèles directement sur des GPU NVIDIA.
Ce développement est dirigé par le développeur @zcbenz sur GitHub, qui a commencé à prototyper le support CUDA il y a quelques mois. Depuis, le projet a été segmenté en plusieurs étapes pour être progressivement intégré dans la branche principale de MLX. Bien que le backend soit encore en cours de perfectionnement, des opérations essentielles comme la multiplication de matrices, softmax, réduction, tri et indexation ont déjà été mises en œuvre et testées.
Qu’est-ce que CUDA ?
Pour ceux qui ne le savent pas, CUDA, ou Compute Unified Device Architecture, est une plateforme de calcul développée par NVIDIA pour tirer le meilleur parti de ses GPU. Considérée comme la référence pour exécuter des charges de travail de machine learning, CUDA est largement utilisé dans tout l’écosystème ML, des recherches universitaires aux déploiements commerciaux. Des frameworks comme PyTorch et TensorFlow s’appuient largement sur CUDA pour bénéficier de l’accélération des GPU.
Pourquoi MLX s’ouvre-t-il à CUDA ?
Jusqu’à présent, MLX était étroitement intégré à Metal, la technologie d’Apple, ce qui limitait son utilisation à macOS. L’ajout de CUDA permet désormais aux chercheurs de prototyper localement sur Mac avec Apple Silicon, puis de déployer le même code sur de vastes clusters de GPU NVIDIA, qui dominent les charges de travail de formation en machine learning.
Cependant, des limitations subsistent ; tous les opérateurs MLX ne sont pas encore implémentés et le support des GPU AMD reste à venir. Mais la capacité de transférer du code MLX vers des GPU NVIDIA sans refonte ouvre la porte à des tests plus rapides et à des possibilités de recherche accrues.
Pour ceux intéressés à essayer cette nouvelle fonctionnalité, les détails sont disponibles sur GitHub.