Les points forts sont les suivants :
- Intégration Continue (IC) complète pour ROCm sur PyTorch – Toutes les fonctions sont désormais vérifiées par un processus complet d’intégration continue, ce qui permet de favoriser un processus de création et de test approprié avant la sortie prévue de wheel Docker et PIP.
- Ajout du profileur Kineto - Avec l'ajout du support du profileur à ROCm, les développeurs et les utilisateurs peuvent profiter des outils de diagnostic et de profilage pour mieux comprendre et traiter les goulots d'étranglement des performances.
- Prise en charge des principales bibliothèques PyTorch - Les bibliothèques de l'écosystème PyTorch comme TorchText, TorchRec, TorchVision, TorchAudio et d'autres collections optimisées comme MIOpen, RCCL et rocBLAS sont accessibles pour atteindre de nouveaux gains d’efficacité potentiels et de meilleures performances
- Moteur d'inférence AITemplate - Pour améliorer les performances, AITemplate, le logiciel libre de MetaAI, et la bibliothèque AMD Composable Kernel (CK) peuvent prendre en charge une utilisation accrue des cœurs matriciels AMD pour les blocs de transformation.
Pour faciliter l'accélération de l'IA à la fois à la périphérie et dans les centres de données, AMD fournit également un support PyTorch pour son portefeuille de FPGA et de SoC adaptatifs. La plateforme AMD Vitis AI propose des modèles d'IA, des Deep learning Processor Unit (DPU) optimisés, des outils, des bibliothèques et des exemples de conception pour l'IA.
Démocratiser l'IA avec la Fondation PyTorch et le support ROCm™ pour PyTorch
L'année dernière, Meta a annoncé que PyTorch rejoignait la Fondation Linux en tant que foyer neutre pour la croissance du projet et de la communauté d'apprentissage automatique, avec une représentation d'AMD faisant partie des membres fondateurs et du conseil d'administration.
AMD, en collaboration avec les principaux développeurs de la base de code PyTorch (y compris ceux de Meta AI), a livré un ensemble de mises à jour de l'écosystème logiciel ouvert ROCm™ qui apporte un support stable pour les accélérateurs AMD Instinct™ ainsi que pour de nombreux GPU Radeon™. Cela donne maintenant aux développeurs PyTorch la possibilité de construire leurs prochaines grandes solutions d'IA en exploitant les accélérateurs GPU AMD et ROCm. Le soutien de la communauté PyTorch dans l'identification des lacunes, la priorisation des mises à jour clés, les commentaires pour l'optimisation des performances et le soutien de notre voyage de "Beta" à "Stable" a été immensément utile et la forte collaboration entre les deux équipes d'AMD et de PyTorch est profondément appréciée.
Le passage de la prise en charge de ROCm de "Beta" à "Stable" a eu lieu dans la version 1.12 de PyTorch (juin 2022) qui apporte le support supplémentaire pour exécuter facilement PyTorch dans un environnement natif sans avoir à configurer des dockers personnalisés. C'est un signe de confiance quant à la qualité du support et des performances de PyTorch utilisant AMD Instinct et ROCm. Les résultats de ces efforts de collaboration sont évidents dans les performances mesurées sur les principaux benchmarks de l'industrie comme SuperBench de Microsoft présenté ci-dessous dans le graphique 1.
Soumith Chintala, lead-mainteneur de PyTorch et directeur de l'ingénierie, Meta AI, a déclaré :
Nous sommes ravis de constater l'impact significatif des développeurs d'AMD qui contribuent et étendent les fonctionnalités de PyTorch afin que les modèles d'IA s'exécutent de manière plus performante, efficace et évolutive. Un excellent exemple de cela est le leadership de la pensée autour des approches de mémoire unifiée entre le cadre et les futurs systèmes matériels, et nous sommes impatients de voir cette fonctionnalité progresser.
Graphique 1 : Performance du modèle ML sur la génération en utilisant Microsoft Superbench Suite 1, 2, 3
Intégration continue (IC) complète pour ROCm sur PyTorch
Avec le passage du support ROCm pour PyTorch de "Beta" à "Stable", toutes les fonctions et caractéristiques commises sont maintenant vérifiées par un processus complet d'intégration continue (IC). Le processus d'intégration continue permet de garantir un processus de construction et de test adéquat avant la sortie prévue d'une version Docker et PIP wheel avec des commits stables à venir.
Support pour Kineto Profiler
L'ajout de la prise en charge du profileur Kineto à ROCm aide désormais les développeurs et les utilisateurs à comprendre les goulets d'étranglement en matière de performance grâce à des outils de diagnostic et de profilage efficaces. L'outil fournit également des recommandations pour améliorer les problèmes connus et la visualisation via l'interface utilisateur TensorBoard.
Ajout du support des librairies clés de PyTorch
Les bibliothèques de l'écosystème PyTorch telles que TorchText (classification de texte), TorchRec (bibliothèques pour les systèmes de recommandation - RecSys), TorchVision (vision par ordinateur), TorchAudio (traitement audio et du signal) sont entièrement supportées depuis ROCm 5.1 et en amont avec PyTorch 1.12.
Les bibliothèques clés fournies avec la pile logicielle ROCm, notamment MIOpen (modèles de convolution), RCCL (ROCm Collective Communications) et rocBLAS (BLAS pour les transformateurs) ont été optimisées pour offrir de nouvelles efficacités potentielles et des performances plus élevées.
MIOpen innove sur plusieurs fronts, comme la mise en œuvre de la fusion pour optimiser la bande passante de la mémoire et les frais de lancement du GPU, la fourniture d'une infrastructure d'auto-tuning pour surmonter le vaste espace de conception des configurations de problèmes, et la mise en œuvre de différents algorithmes pour optimiser les convolutions pour différents filtres et tailles d'entrée. MIOpen est l'une des premières bibliothèques à prendre publiquement en charge le type de données bfloat16 pour les convolutions, ce qui permet un apprentissage efficace avec une précision moindre, tout en maintenant la précision attendue.
RCCL (prononcé "Rickle" est une bibliothèque autonome de routines de communication collective standard pour les GPU, implémentant all-reduce, all-gather, reduce, broadcast, reduce-scatter, gather, scatter, et all-to-all. Elle prend en charge les opérations d'envoi et de réception directes de GPU à GPU. Il a été optimisé pour obtenir une bande passante élevée sur les plates-formes utilisant PCIe®, Infinity Fabric™ (GPU à GPU) ainsi que les réseaux utilisant les verbes InfiniBand ou les sockets TCP/IP. RCCL prend en charge un nombre arbitraire de GPU installés sur un ou plusieurs nœuds et peut être utilisé dans des applications mono ou multi-processus (par exemple, MPI).
Outre les points saillants ci-dessus, plus de 50 caractéristiques et améliorations de fonctionnalité ont été réalisées conjointement par AMD et PyTorch pour ajouter un support stable à ROCm. Il s'agit notamment d'améliorations apportées aux outils, aux compilateurs, au runtime, à l'optimisation des graphes grâce à TorchScript, à l'utilisation du chemin quant INT8 et à l'intégration du runtime ONNX, y compris la prise en charge de la carte graphique pour centre de données Radeon™ PRO basée sur Navi 21, pour n'en citer que quelques-unes.
Moteur d'inférence AITemplate
MetaAI a récemment publié un blog annonçant la sortie de son AITemplate open source pour un système d'inférence unifié supportant les accélérateurs GPU AMD Instinct en utilisant la pile AMD ROCm. Ce cadre basé sur Python peut contribuer à améliorer considérablement les performances grâce à une utilisation accrue des cœurs de matrice AMD pour les blocs de transformation. Ceci est réalisé grâce à la bibliothèque AMD Composable Kernel (CK) qui fournit des noyaux essentiels à la performance pour les charges de travail ML AI sur plusieurs architectures, y compris les GPU et les CPU, via HIP et C++.
De plus, l'AITemplate fournit également un support prêt à l'emploi pour des modèles d'IA largement utilisés comme BERT, ResNET, Vision Transformer, Stable Diffusion, etc., simplifiant ainsi le processus de déploiement grâce à ces modèles pré-entraînés.
Qu'est-ce qui est prévu dans les prochaines versions de ROCm ?
Modèles de mémoire unifiés pour CPU + GPU
À mesure que l'architecture des systèmes évolue pour répondre à la complexité des problèmes de grande taille et des ensembles de données, la gestion de la mémoire devient un goulot d'étranglement en matière de performances qui nécessite une stratégie cohésive pour être traitée par des innovations au niveau matériel et logiciel. AMD est particulièrement bien placé pour résoudre ce problème grâce à ses solutions efficaces pour centres de données intégrant les cœurs de CPU AMD EPYC™ avec ses unités de calcul GPU AMD Instinct dans un facteur de forme APU (Accelerated Processing Unit) de centre de données véritablement unifié, dont le lancement est prévu pour le deuxième semestre 2023.
Le travail logiciel pour exploiter la mémoire unifiée CPU + GPU a déjà commencé en collaboration avec l'équipe PyTorch, pour permettre l'utilisation d'un modèle de mémoire rapide, à faible latence et synchronisé qui permet non seulement à AMD mais aussi à d'autres accélérateurs d'IA de résoudre le problème complexe de la gestion de la mémoire d'aujourd'hui.
Sources : AMD, PyTorch
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
AMD et Microsoft poursuivent leur collaboration dans le cloud avec l'adoption des accélérateurs AMD Instinct MI200, pour la formation de l'IA à grande échelle dans Microsoft Azure
PyTorch est l'un des projets logiciels d'apprentissage automatique les plus importants et les plus réussis au monde aujourd'hui, et il devient désormais membre de la Fondation Linux