Quelle est la différence entre les cœurs CUDA et les cœurs de tenseur (expliqué) - Toutes les différences

 Quelle est la différence entre les cœurs CUDA et les cœurs de tenseur (expliqué) - Toutes les différences

Mary Davis

Les cœurs CUDA et Tensor sont des produits développés par une société appelée Nvidia. Que sont donc les cœurs CUDA et les cœurs Tensor ? CUDA signifie Compute Unified Device Architecture. Les cœurs CUDA sont présents dans vos GPU, vos smartphones et même vos voitures, comme l'affirment les développeurs de Nvidia.

Les cœurs CUDA sont une plateforme de calcul parallèle et une interface de programmation d'applications (API) qui permet aux logiciels d'utiliser des types spécifiques de processeurs graphiques (GPU) pour le traitement général.

Les cœurs de tenseur, également développés par Nvidia, sont également utilisés dans les GPU. Les cœurs de tenseur permettent un calcul de précision mixte, adaptant les calculs de manière dynamique afin d'augmenter le débit tout en maintenant la précision.

En d'autres termes, ces cœurs sont une partie importante des GPU de votre PC pour effectuer certains calculs. Les cœurs CUDA sont utilisés pour multiplier deux nombres et les ajouter à un autre nombre.

Tandis que le Tensor core est le même mais avec des matrices 4×4. Ces calculs rendent les graphiques plus rapidement pour vous.

Qu'est-ce que CUDA ?

L'architecture CUDA (Compute Unified Device Architecture), développée par Nvidia et publiée le 23 juin 2007, est une plateforme de calcul parallèle et une interface de programmation d'applications (API).

Cela permet aux logiciels d'utiliser des types spécifiques d'unités de traitement graphique (GPU) pour le traitement général, une méthode connue sous le nom de calcul général sur GPU (GPU).

CUDA est une couche logicielle qui fournit un accès direct au jeu d'instructions virtuelles du GPU et aux éléments de calcul parallèles pour l'exécution des noyaux de calcul. CUDA a été développé pour fonctionner avec différents langages de programmation, notamment C, C++ et Fortran.

La possibilité de travailler avec différents langages de programmation permet aux spécialistes de la programmation parallèle d'utiliser plus facilement les ressources des GPU si on les différencie des API antérieures telles que Direct3D ou OpenGL, qui requièrent des compétences plus avancées en programmation graphique.

Les GPU équipés de CUDA prennent également en charge des cadres de programmation tels que OpenMP, OpenACC, OpenCL et HIP, qui peuvent compiler le code en CUDA. Le premier nom utilisé pour CUDA était un acronyme pour Compute Unified Device Architecture, mais Nvidia a ensuite abandonné l'acronyme couramment utilisé.

Une puissante carte graphique Nvidia GTX 1080 Ti

En savoir plus sur CUDA

En tant que processeur informatique spécialisé, l'unité de traitement graphique (GPU) répond aux besoins des charges de travail graphiques 3D en temps réel et à forte intensité de calcul.

Vers 2012, les GPU ont évolué et sont devenus des systèmes multicœurs hautement parallèles permettant un traitement efficace des données pour les grands blocs.

Lorsqu'il s'agit de traiter d'énormes blocs de données en parallèle, cette conception est supérieure aux unités centrales de traitement (CPU) à usage général pour les algorithmes, tels que :

  • fonctions de hachage cryptographique
  • apprentissage automatique
  • les simulations de dynamique moléculaire
  • moteurs physiques
  • algorithmes de tri

Utilisations actuelles et futures de l'architecture CUDA

  • Rendu accéléré des graphiques 3D
  • Conversion accélérée des formats de fichiers vidéo
  • Cryptage, décryptage et compression accélérés
  • Bioinformatique, par exemple, NGS Séquençage de l'ADN BarraCUDA
  • Calculs distribués, tels que la prédiction de la conformation native des protéines
  • Simulations d'analyses médicales, par exemple, réalité virtuelle basée sur des images de tomodensitométrie et d'IRM
  • Simulations physiques, en particulier dans le domaine de la dynamique des fluides
  • Formation des réseaux neuronaux aux problèmes d'apprentissage automatique
  • Reconnaissance des visages
  • Projets de calcul distribué, tels que [email protected] et autres projets utilisant BOINC
  • Dynamique moléculaire
  • Extraction de crypto-monnaies
  • Logiciel Structure from motion (SfM)

Qu'est-ce qu'un Tensor Core ?

Des cœurs spécialisés appelés Tensor Cores permettent l'apprentissage en précision mixte. La génération initiale de ces cœurs spécialisés le fait avec un algorithme de multiplication-addition fusionné, ce qui permet de multiplier et d'ajouter deux matrices 4 x 4 FP16 à une matrice 4 x 4 FP16 ou FP32.

Le résultat final sera FP32 avec seulement une légère perte de précision, le calcul de précision mixte est désigné comme tel même si les matrices d'entrée peuvent être FP16 de faible précision.

Dans la pratique, cela accélère considérablement les calculs, sans grande influence sur l'efficacité finale du modèle. Cette capacité a été étendue par les microarchitectures ultérieures à des représentations informatiques des nombres encore moins précises.

La première génération a été introduite avec la microarchitecture Volta à partir de V100, et plus de formats de précision des nombres ont été mis à disposition pour le calcul avec les nouvelles microarchitectures GPU au fil des générations.

Dans la section suivante, nous verrons comment la capacité et les fonctionnalités des Tensor Cores ont évolué et se sont améliorées avec chaque génération de microarchitecture.

Une image rendue graphiquement par un Titan V

Comment fonctionnent les Tensor Cores ?

Première génération :

La microarchitecture GPU Volta a été incluse dans la première génération de Tensor Cores, ce qui a permis de s'entraîner avec une précision mixte et le format de nombres FP16.

Les 640 cœurs du V100 de haut niveau permettent d'augmenter la vitesse de performance jusqu'à 5 fois par rapport aux GPU Pascal de la génération précédente.

Deuxième génération :

Avec l'introduction des GPU Turing, la deuxième génération de Tensor Cores a été introduite. Int8, Int4 et Int1 ont été ajoutés à la liste des précisions supportées par les Tensor Cores, qui étaient auparavant limités à FP16.

Grâce aux procédures d'entraînement à précision mixte, les performances du GPU ont été multipliées par 32 par rapport aux GPU Pascal.

Troisième génération :

L'architecture d'un GPU Ampere développe les avancées antérieures des microarchitectures Volta et Turing en ajoutant la prise en charge des précisions FP64, TF32 et bfloat16.

Les activités de formation et d'inférence de l'apprentissage profond sont beaucoup plus accélérées par ces formats de précision supplémentaire. Par exemple, le format TF32 fonctionne de manière similaire à FP32 tout en garantissant des accélérations jusqu'à 20 fois plus rapides sans modifier le code.

Ensuite, avec seulement quelques lignes de code, la mise en œuvre automatique de la précision mixte accélérera la formation d'un facteur 2 supplémentaire.

Voir également: Quelle est la différence entre une taille de soutien-gorge 36 A et une taille 36 AA ? - Toutes les différences

La troisième génération de NVLink pour permettre des interactions multi-GPU extrêmement rapides, la troisième génération de cœurs Ray Tracing et la spécialisation dans les mathématiques des matrices rares sont d'autres aspects de la microarchitecture Ampere. .

Quatrième génération :

La quatrième génération de cœurs tensoriels basée sur la microarchitecture Hopper est prévue dans la prochaine version du H100.

qui devrait être disponible en mars 2022, sera capable de gérer les formats de précision FP8 et, selon NVIDIA, d'accélérer les énormes modèles de langage "d'un facteur étonnant de 30 par rapport à la génération précédente".

Une carte graphique RTX est utilisée pour un rendu graphique très rapide car elle contient des cœurs tenseurs.

La différence entre les cœurs CUDA et les cœurs de tenseur

Les 5120 cœurs CUDA des deux GPU ont une capacité maximale d'une opération de multiplication-accumulation en simple précision (par exemple, en fp32 : x += y * z) par horloge du GPU (par exemple, la fréquence PCIe du Tesla V100 est de 1,38Gz).

Chaque noyau tensoriel opère sur 4×4 petites matrices pour de petites matrices. Pour une horloge du GPU, chaque noyau tensoriel peut effectuer une opération de multiplication-accumulation de matrice.

Il multiplie deux matrices 4×4 FP16 et ajoute la matrice 4×4 FP32 qui en résulte dans l'accumulateur (qui est également une matrice 4×4 FP32).

Voir également: Quelle est la différence entre "In" et "On" (expliqué) - Toutes les différences

Comme les matrices d'entrée sont fp16 alors que les résultats de la multiplication et l'accumulateur sont fp32, l'algorithme est connu sous le nom de précision mixte.

Le terme correct serait probablement "4×4 matrix cores", mais l'équipe marketing de NVIDIA a choisi d'utiliser "tensor cores".

Les cœurs tensoriels : explication complète en quelques mots

Carte GPU Cœurs CUDA VRAM
GeForce GTX 1660 Ti 1536 6GB
GeForce GTX 1660 Super 1408 6GB
GeForce GTX 1660 1408 6GB
GeForce GTX 1650 Super 1408 4GB
GeForce GTX 1650 1024 et 896 4GB
GeForce GTX 1060 3GB 1280 4GB
GeForce GTX 1650 1280 3GB
GeForce GTX 1060 6GB 768 6GB
GeForce GTX 1050 Ti (3GB) 768 4GB
GeForce GTX 1050 (2GB) 640 3GB
GeForce GTX 960 1024 2GB
GeForce GTX 950 786 2GB
GeForce GTX 780 Ti 2880 2GB
GeForce GTX 780 2304 3GB
GeForce GTX 750 Ti 640 2 GB
GeForce GTX 750 512 1GB ou 2 GB

GPU contenant des cœurs CUDA

Conclusion

  • Les cœurs CUDA et Tensor sont des produits développés par la société Nvidia. CUDA signifie Compute Unified Device Architecture. Ces cœurs CUDA sont présents dans vos GPU, vos smartphones et même vos voitures.
  • Les cœurs de tenseur, également développés par Nvidia, sont également utilisés dans les GPU. Les cœurs spécialisés appelés "cœurs de tenseur" permettent l'entraînement en précision mixte. La première génération de cœurs de tenseur permettait l'entraînement en précision mixte et au format de nombre FP16.
  • Cela pourrait multiplier par 12 le débit en téraFLOP pour certains GPU. Int8, Int4 et Int1 ont été ajoutés à la liste des précisions Tensor Core prises en charge.
  • Grâce aux procédures d'entraînement à précision mixte, les performances du GPU ont été multipliées par 32. Une prochaine version de la quatrième génération de Tensor Cores basée sur la microarchitecture Hopper est prévue.

Autres articles

    Mary Davis

    Mary Davis est une écrivaine, une créatrice de contenu et une chercheuse passionnée spécialisée dans l'analyse comparative sur divers sujets. Avec un diplôme en journalisme et plus de cinq ans d'expérience dans le domaine, Mary a la passion de fournir des informations impartiales et directes à ses lecteurs. Son amour pour l'écriture a commencé quand elle était jeune et a été une force motrice derrière sa carrière réussie dans l'écriture. La capacité de Mary à rechercher et à présenter les résultats dans un format facile à comprendre et engageant l'a fait aimer des lecteurs du monde entier. Lorsqu'elle n'écrit pas, Mary aime voyager, lire et passer du temps avec sa famille et ses amis.