PyTorch 2.15 apporte le support FP8 et un décodage LLM plus rapide sur Apple Silicon
PyTorch 2.15 introduit la prise en charge du format FP8, des noyaux Metal natifs pour les modèles MoE et d'importantes économies de mémoire pour la génération vidéo sur macOS 15.
Traduit automatiquement depuis l'original anglais.
L'équipe PyTorch chez Hugging Face a publié la version 2.15, marquant une mise à niveau significative pour les ingénieurs en apprentissage automatique travaillant sur Apple Silicon. Cette mise à jour introduit la prise en charge native du format FP8, accélère jusqu'à 6,5 fois le décodage des modèles mixture-of-experts et réduit drastiquement l'utilisation de la mémoire pour les tâches de génération vidéo. La version cible macOS 15 et Python 3.11 ou supérieur, avec pour objectif de faire des Macs un environnement de premier plan pour l'entraînement et l'exécution de modèles d'IA complexes.
Ce qui s'est passé
Durant une grande partie du début de l'année 2026, les développeurs utilisant le backend MPS sur Mac ont fait face à des chutes de performances, des opérations non prises en charge et une croissance imprévisible de la mémoire. L'équipe PyTorch chez Hugging Face a résolu ces problèmes en remplaçant l'ancien chemin d'exécution MPSGraph par des noyaux Metal dédiés pour les opérations critiques. Ce changement permet un contrôle plus direct des ressources GPU et élimine de nombreux goulets d'étranglement qui entravaient auparavant le développement local de modèles.
La nouveauté la plus notable est la prise en charge des tenseurs float8_e4m3fn, permettant aux développeurs de stocker les valeurs dans la moitié de l'espace requis par BF16 tout en effectuant des multiplications matricielles mises à l'échelle directement sur le GPU. Cette fonctionnalité aligne les capacités des Mac sur celles déjà disponibles sur les backends CUDA et CPU. De plus, la mise à jour inclut des optimisations étendues pour l'algèbre linéaire, le traitement audio et le décodage vidéo, garantissant qu'un plus large éventail de modèles puisse s'exécuter efficacement sans recourir à des chemins d'exécution plus lents.
Les améliorations de performance sont particulièrement frappantes pour les grands modèles de langage. Les architectures mixture-of-experts bénéficient désormais d'une implémentation native de multiplication matricielle groupée qui maintient les données sur le GPU, réduisant ainsi la surcharge de synchronisation. Les modèles denses voient également des gains grâce à des couches linéaires mono-ligne optimisées et à des opérations softmax considérablement plus rapides. Ces changements transforment collectivement le Mac, passant d'un appareil principalement utilisé pour l'inférence à un outil viable pour des charges de travail d'entraînement et de génération plus exigeantes.
Comment cela fonctionne
Le changement technique central dans PyTorch 2.15 est la migration des opérations de MPSGraph vers des noyaux Metal personnalisés. MPSGraph, bien que flexible, introduisait souvent une surcharge due à la compilation de graphes et à la synchronisation CPU-GPU. En écrivant des noyaux dédiés pour des tâches spécifiques comme la multiplication matricielle groupée, le remplissage constant (padding) et le softmax, l'équipe garantit que les données restent sur le GPU et s'exécutent avec une latence minimale. Par exemple, le nouveau noyau de multiplication matricielle groupée lit les décalages de groupe directement sur le GPU, évitant l'approche coûteuse de boucle sur les groupes utilisée dans les versions précédentes.
L'efficacité mémoire a été améliorée en repensant la manière dont les opérations de remplissage gèrent la mémoire du pilote. Dans les versions précédentes, le décodage VAE vidéo par tuiles déclenchait des milliers d'appels de remplissage qui faisaient exploser la mémoire du pilote. La nouvelle implémentation de remplissage constant basée sur Metal gère ces allocations plus efficacement, empêchant la croissance exponentielle de la mémoire réservée. Ce mécanisme permet aux pipelines complexes de génération vidéo de fonctionner dans les limites de mémoire standard plutôt que de nécessiter des ressources système excessives.
Détails clés
- Prise en charge FP8 : La prise en charge native des tenseurs
torch.float8_e4m3fnpermet un stockage en demi-précision et une multiplication matricielle mise à l'échelle sur MPS. - Accélération MoE : Les modèles mixture-of-experts décident 5 à 6,5 fois plus vite, Qwen3.6-35B-A3B atteignant 61,3 tokens/s sur un M3 Ultra.
- Économies de mémoire : Le pic de mémoire du pilote lors du décodage VAE vidéo Wan2.2 passe de 270 GiB à environ 8 GiB.
- Algèbre linéaire : La factorisation LU complexe, les résolutions triangulaires et les inverses de petites matrices plus rapides sont désormais pris en charge sur MPS.
- Optimisation Softmax : Le calcul softmax sur de grands vocabulaires est environ 8 fois plus rapide, passant de 57 µs à 7 µs pour des tailles typiques.
- Configuration requise : La mise à jour nécessite macOS 15 ou ultérieur et Python 3.11 ou ultérieur.
Pourquoi c'est important
Pour les ingénieurs logiciels développant des produits d'IA sur matériel Mac, cette version supprime plusieurs points de friction majeurs. La possibilité d'utiliser des poids FP8 signifie que vous pouvez intégrer des modèles plus volumineux dans une VRAM limitée ou réduire la pression sur la bande passante mémoire lors de l'inférence. Cela est crucial pour le développement et les tests locaux d'architectures de pointe qui étaient auparavant trop gourmandes en ressources pour les machines Apple Silicon grand public.
La réduction drastique de l'utilisation de la mémoire pour les workflows de génération vidéo ouvre également de nouvelles possibilités pour les applications créatives. Les développeurs qui rencontraient auparavant des erreurs de mémoire insuffisante ou une instabilité système lors de l'utilisation d'outils comme ComfyUI ou Diffusers peuvent désormais exécuter ces pipelines de manière fiable. La correction de la corruption d'image lors de l'édition avec Qwen-Image-2.1 garantit en outre le maintien de la fidélité visuelle, faisant des Macs une plateforme plus fiable pour les tâches de production d'images et de vidéos.
Ce que vous pouvez faire
- Mettez à niveau votre environnement de développement vers macOS 15 et Python 3.11 pour assurer la compatibilité avec les nouvelles fonctionnalités MPS.
- Testez la quantification FP8 dans vos modèles en utilisant
torch.float8_e4m3fnetF.scaled_mmpour réduire l'empreinte mémoire. - Effectuez des benchmarks sur vos modèles mixture-of-experts pour mesurer les améliorations de vitesse de décodage apportées par la multiplication matricielle groupée native.
- Mettez à jour vos pipelines de génération vidéo pour tirer parti des nouveaux noyaux de remplissage constant et surveillez l'utilisation de la mémoire du pilote.
- Expérimentez avec les flux MPS publics via
torch.mps.Streampour un contrôle plus fin des opérations GPU concurrentes. - Signalez tout problème de performance persistant ou toute opération manquante sur le dépôt GitHub de PyTorch afin d'aider à orienter les futures mises à jour.



