PyTorch, le populaire framework de machine learning, a publié sa version 2.9 le 15 octobre 2025, introduisant des mises à niveau majeures qui simplifient la programmation multi-GPU et étendent sa compatibilité matérielle au-delà de NVIDIA pour inclure les plateformes AMD, Intel et Arm. Cette mise à jour, fruit de 3 216 commits de 452 contributeurs, propose une interface C++ stable mettant fin au besoin de recompiler constamment les bibliothèques, ainsi qu’un nouveau système, « Symmetric Memory », qui traite plusieurs GPU comme un seul espace mémoire unifié.
L’interface C++ stable résout un problème de longue date pour les développeurs qui devaient auparavant recompiler leurs bibliothèques à chaque mise à jour de PyTorch, selon l’article de blog de l’équipe. La bibliothèque Flash-Attention 3 a déjà adopté cette fonctionnalité, démontrant sa valeur pratique immédiate pour l’écosystème. Les notes de version techniques sur GitHub mettent spécifiquement en évidence la stabilité de l’ABI pour ScalarType, évitant ainsi que les extensions utilisateur ne deviennent incompatibles d’une version à l’autre.
La nouvelle fonctionnalité Symmetric Memory change fondamentalement la manière d’aborder la programmation multi-GPU. Disponible via torch.ops.symm_mem, cette abstraction permet l’accès direct à la mémoire entre GPU, autorisant n’importe quel GPU à lire ou écrire dans la mémoire d’un autre GPU sans appels complexes de gestion de périphérique. Les développeurs peuvent désormais effectuer des opérations atomiques entre différents périphériques et écrire des kernels plus simples pour des systèmes utilisant des interconnexions à haut débit comme NVLink, indique l’équipe PyTorch.
Au-delà des améliorations du modèle de programmation, PyTorch 2.9 étend significativement sa prise en charge matérielle. Le framework propose désormais des binary wheels officielles pour les plateformes ROCm d’AMD et XPU d’Intel sous Linux, réduisant l’installation à une simple commande pip install, selon l’annonce de publication. Les plugins des fournisseurs peuvent détecter automatiquement les configurations matérielles des utilisateurs, éliminant ainsi le besoin d’une sélection manuelle de la plateforme.
Des optimisations de performance accompagnent cet élargissement de la prise en charge des plateformes. Les GPU Intel prennent désormais en charge FlexAttention pour les passes forward et backward, tandis qu’une nouvelle optimisation de flash decoding accélère l’inférence des grands modèles de langage sur CPU x86, particulièrement pour les longues séquences. Les plateformes Arm bénéficient d’améliorations critiques pour de meilleures performances et une stabilité accrue du backend, avec des builds de binary wheels Linux aarch64 désormais disponibles pour toutes les versions de CUDA prises en charge, comme le détaillent les développeurs de la communauté Arm.
La fonctionnalité torch.compile offre un contrôle plus fin grâce à un nouveau gestionnaire de contexte, torch._dynamo.error_on_graph_break(), permettant d’imposer une compilation complète du graphe dans les sections critiques pour les performances, tout en autorisant des interruptions ailleurs. Cela constitue un puissant outil de débogage pour identifier et résoudre les problèmes de compilation, explique l’équipe PyTorch.
Ces mises à jour positionnent PyTorch de manière plus compétitive dans les environnements de calcul hétérogènes, son ABI C++ stable devant accélérer la croissance de l’écosystème en réduisant les contraintes de maintenance pour les développeurs de bibliothèques. Bien que les API C++ de haut niveau demeurent en préversion, les fondations posées dans la version 2.9 témoignent de l’engagement de Meta à rendre PyTorch plus accessible sur diverses configurations matérielles et pour différents workflows de développement.