PyTorch 2.15 : MPS, FP8 et IA accélérée sur Mac
PyTorch 2.15, dont l’équipe PyTorch de Hugging Face a détaillé les évolutions au début de 2026, renforce fortement le backend MPS, utilisé pour exécuter des modèles d’apprentissage automatique sur les Mac équipés de puces Apple. Ce travail repose sur des tests de modèles réels issus du Hugging Face Hub et poursuit la migration de composants MPSGraph vers des kernels Metal écrits sur mesure. L’objectif est de faire du Mac une plateforme plus complète pour l’inférence et, dans une moindre mesure, l’entraînement. La version ajoute la prise en charge du format FP8 float8_e4m3fn sur MPS. Ce format occupe un octet par valeur, soit moitié moins que BF16, et permet des multiplications matricielles à l’échelle via F.scaled_mm. Il offre une nouvelle façon de réduire la mémoire nécessaire sur un Mac. Pour les modèles à experts multiples, dits MoE, la génération de texte devient nettement plus rapide : Qwen3.6-35B-A3B passe de 9,4 à 61,3 jetons par seconde sur un M3 Ultra grâce à un grouped matmul natif, à un chemin de décodage dédié et à moins de synchronisations entre le processeur et le GPU. Les couches linéaires utilisées pendant le décodage bénéficient de kernels spécialisés pour les produits matrice-vecteur, avec un gain moyen géométrique de 1,23 fois sur de nombreuses formes de couches. Le softmax sur les grands vocabulaires est lui environ huit fois plus rapide, ce qui accélère la sélection du jeton suivant. L’algèbre linéaire progresse aussi : les factorisations LU et les résolutions triangulaires pour nombres complexes arrivent sur MPS, tandis que les petites matrices et certaines décompositions sont accélérées. Les charges audio, vidéo et d’entraînement profitent de nouveaux chemins pour les convolutions, le padding, le dropout, l’interpolation et les réductions. Le progrès le plus spectaculaire concerne le décodage vidéo du VAE de Wan2.2. En déplaçant le padding constant sur des kernels Metal, la mémoire pilote utilisée passe d’environ 270 gigaoctets à 8 gigaoctets au pic, un changement qui peut déterminer si une tâche tient dans la mémoire d’un Mac. PyTorch 2.15 expose aussi des flux MPS directement depuis Python et améliore la fiabilité du chronométrage. Cette version demande macOS 15 ou plus récent et Python 3.11 ou plus récent. Plusieurs opérations supplémentaires sont désormais prises en charge sur MPS, avec une correction importante pour l’attention à diffusion. Enfin, PyTorch 2.16 devrait poursuivre cette orientation : décodage encore plus rapide, attention entièrement sur Metal, nouvelles migrations hors de MPSGraph et installation plus légère grâce à des shaders compilés par défaut pour Metal 3.1. Au total, PyTorch 2.15 fait du Mac une cible plus crédible pour les modèles de langage, multimodaux et génératifs.