Maison > Article > Périphériques technologiques > PyTorch 1.12 est publié, prend officiellement en charge l'accélération GPU de la puce Apple M1 et corrige de nombreux bugs
PyTorch 1.12 est officiellement publié. Les amis qui n'ont pas mis à jour peuvent mettre à jour.
Quelques mois seulement après le lancement de PyTorch 1.11, PyTorch 1.12 est là ! Cette version comprend plus de 3124 commits depuis la version 1.11, complétés par 433 contributeurs. La version 1.12 inclut des améliorations majeures et de nombreuses corrections de bugs.
Avec la sortie de la nouvelle version, la chose la plus discutée est peut-être que PyTorch 1.12 prend en charge la puce Apple M1.
En fait, dès le mois de mai de cette année, PyTorch a officiellement annoncé qu'il prenait officiellement en charge la formation du modèle d'apprentissage automatique PyTorch accélérée par GPU sur la version M1 de Mac. Auparavant, la formation PyTorch sur Mac ne pouvait utiliser que le processeur, mais avec la sortie de la version 1.12 de PyTorch, les développeurs et les chercheurs peuvent tirer parti des GPU Apple pour accélérer considérablement la formation des modèles.
L'accélération de la formation GPU PyTorch est implémentée en utilisant Apple Metal Performance Shaders (MPS) comme backend. Le backend MPS étend le framework PyTorch pour fournir des scripts et des fonctionnalités permettant de configurer et d'exécuter des opérations sur Mac. MPS optimise les performances de calcul en utilisant la puissance de base affinée pour les caractéristiques uniques de chaque famille de GPU Metal. Le nouvel appareil mappe les graphiques et primitives informatiques d'apprentissage automatique sur le cadre MPS Graph et les noyaux de réglage fournis par MPS.
Chaque Mac équipé des puces développées par Apple dispose d'une architecture de mémoire unifiée, permettant au GPU d'accéder directement à l'intégralité du stockage mémoire. Les responsables de PyTorch affirment que cela fait de Mac une excellente plate-forme d'apprentissage automatique, permettant aux utilisateurs de former localement des réseaux plus grands ou des lots de plus grande taille. Cela réduit les coûts associés au développement basé sur le cloud ou le besoin de puissance de calcul GPU locale supplémentaire. L'architecture de mémoire unifiée réduit également la latence de récupération des données et améliore les performances de bout en bout.
On peut constater que par rapport à la référence du CPU, l'accélération GPU a atteint une amélioration exponentielle des performances d'entraînement :
Avec le support du GPU, la vitesse d'entraînement et d'évaluation dépasse celle du CPU
L'image ci-dessus est le résultat de tests effectués par Apple en avril 2022 sur un système Mac Studio équipé d'Apple M1 Ultra (CPU 20 cœurs, GPU 64 cœurs), 128 Go de mémoire et 2 To SSD. Les modèles de test sont ResNet50 (taille du lot = 128), HuggingFace BERT (taille du lot = 64) et VGG16 (taille du lot = 64). Les tests de performances sont effectués à l'aide de systèmes informatiques spécifiques et reflètent les performances approximatives de Mac Studio.
Les responsables de PyTorch ont publié une nouvelle version bêta que les utilisateurs peuvent essayer : TorchArrow. Il s'agit d'une bibliothèque de prétraitement d'apprentissage automatique pour le traitement des données par lots. Il est hautes performances, de style Pandas, et dispose d'une API facile à utiliser pour accélérer les flux de travail de prétraitement et de développement des utilisateurs.
Actuellement, PyTorch prend en charge nativement les nombres complexes, l'autograd complexe, le module complexe et un grand nombre d'opérations complexes (algèbre linéaire et transformée de Fourier rapide). Les nombres complexes sont déjà utilisés dans de nombreuses bibliothèques, notamment torchaudio et ESPNet, et PyTorch 1.12 étend encore les capacités des nombres complexes avec des convolutions complexes et le type de données expérimental complex32, qui prend en charge les opérations FFT de demi-précision. En raison d'un bug dans le package CUDA 11.3, si les utilisateurs souhaitent utiliser plusieurs nombres, il est officiellement recommandé d'utiliser le package CUDA 11.6.
AD en mode avant permet de calculer des dérivées directionnelles (ou des produits vectoriels jacobiens équivalents) dans la passe avant. PyTorch 1.12 améliore considérablement la couverture AD en mode direct.
PyTorch prend désormais en charge plusieurs implémentations fastpath CPU et GPU (BetterTransformer), qui est le module d'encodeur Transformer, y compris les implémentations de TransformerEncoder, TransformerEncoderLayer et MultiHeadAttention (MHA). Dans la nouvelle version, BetterTransformer est 2 fois plus rapide dans de nombreux scénarios courants, en fonction du modèle et des fonctionnalités d'entrée. La nouvelle version de l'API prend en charge la compatibilité avec la précédente API PyTorch Transformer, qui accélérera les modèles existants s'ils répondent aux exigences d'exécution fastpath, ainsi que les modèles de lecture entraînés avec les versions précédentes de PyTorch. De plus, la nouvelle version comporte quelques mises à jour :
Pour plus d'informations, veuillez consulter : https://pytorch.org/blog/pytorch-1.12-released/.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!