veilletech.fr
3 sept. Feed du jour
#07 IA Article

PyTorch 2.14 : Python 3.15, sans compile

Un support de version qui échoue bruyamment vaut mieux qu'un silence lent.

PyTorch 2.14 publie des wheels Python 3.15 et 3.15t, mais torch.compile y lève une RuntimeError : le support 3.15 est eager-only. Côté Apple Silicon, l'algèbre linéaire passe en kernels Metal natifs et un nouveau kernel d'attention prefill donne 2 à 4× sur macOS 26.2.

3 min de lectureavancévidéo 1:16
Partager
Sommaire4 sections
  1. Python 3.15 : oui, mais en eager seulement
  2. Apple Silicon : la vraie surprise
  3. Le reste, en bref
  4. À retenir

Python 3.15 : oui, mais en eager seulement

PyTorch 2.14 ajoute le support binaire de Python 3.15, y compris la build sans GIL 3.15t, sur toutes les plateformes : Linux x86_64 et aarch64, Windows, macOS Apple Silicon, en CPU, CUDA, ROCm et XPU. torchvision 0.29.0 suit avec les mêmes roues.

Deux réserves décident de votre mise à jour.

torch.compile ne fonctionne pas sous 3.15. L'appel lève une RuntimeError — un choix délibéré, pour que la limite se voie tout de suite au lieu de se traduire par une perte de performance silencieuse. Si votre charge dépend de la compilation, restez en 3.14. Le travail sur Dynamo est en cours, suivi dans l'issue pytorch/pytorch#184352.

Les roues 3.15 ne sont pas sur PyPI. Elles ne s'installent que depuis download.pytorch.org :

Terminal
pip3 install torch --index-url https://download.pytorch.org/whl/cpu
pip3 install torch --index-url https://download.pytorch.org/whl/cu130
pip3 install torch --index-url https://download.pytorch.org/whl/rocm7.14

Sous un interpréteur free-threaded, les mêmes commandes résolvent automatiquement les roues cp315t.

Bonne nouvelle en passant : torchvision 0.29 est ABI-stable vis-à-vis de torch 2.14, donc compatible avec les 2.15, 2.16 et suivantes. L'équipe pourrait cesser de synchroniser ses sorties sur celles de PyTorch.

Apple Silicon : la vraie surprise

L'algèbre linéaire sur MPS s'appuyait sur les primitives MPSGraph d'Apple, ou retombait sur le CPU. Cette version écrit des kernels Metal :

Le reste, en bref

Côté GPU : NVGEMM amène dans Inductor des kernels CUTLASS générés par CuTeDSL, un backend nccl2 arrive pour PyTorch Distributed, et la tolérance aux pannes devient un concept de premier ordre dans c10d. torch.switch généralise torch.cond au branchement multi-voies, et torch.while_loop se capture désormais dans un graphe CUDA.

Dépréciations à noter : les avertissements TorchScript sont maintenant visibles, l'option use_cuda disparaît du profiler, et le chemin Relay du backend TVM est supprimé au profit du frontend relax.

À retenir

  1. Python 3.15 en production seulement si vous n'utilisez pas torch.compile.
  2. Les roues 3.15 changent vos fichiers de dépendances : --index-url obligatoire.
  3. Sur Mac, la mise à jour vaut le coup pour l'inférence : le prefill accélère de 2 à 4× sans toucher au code.

Source : PyTorch