web-dev-qa-db-fra.com

Quelle est la difference entre cuda vs tensor core?

Je connais complètement les termes liés à l'informatique HPC, mais je viens de voir qu'EC2 a publié son nouveau type d'instance sur AWS, optimisée par le nouveau Nvidia Tesla V100, qui comporte les deux types de "cœurs": Cuda Cores (5.120), et Noyaux de tenseurs (640). Quelle est la différence entre les deux?

Maintenant, seuls Tesla V100 et Titan V ont des noyaux de tenseurs. Les deux GPU ont 5120 cuda cœurs où chaque cœur peut effectuer jusqu'à 1 opération de multiplication-accumulation simple précision (par exemple dans fp32: x + = y * z) pour 1 horloge GPU (par exemple, la fréquence PCIe Tesla V100 est de 1,38 Gz).

Chaque tenseur effectue des opérations sur de petites matrices de taille 4x4. Chaque noyau de tenseur peut effectuer 1 opération de multiplication/accumulation de matrice par 1 horloge GPU. Il multiplie deux matrices fp16 4x4 et ajoute la matrice fp32 du produit de multiplication (taille: 4x4) à l'accumulateur (c'est-à-dire également la matrice fp32 4x4).

C'est ce qu'on appelle la précision mixte car les matrices d'entrée sont fp16 mais le résultat de la multiplication et l'accumulateur sont des matrices fp32.

Probablement, le nom approprié serait juste des cœurs de matrice 4x4, mais l'équipe marketing de NVIDIA a décidé d'utiliser des "cœurs de tenseurs".

48
Artur

Les GPU ont toujours été bons pour l’apprentissage automatique. Les cœurs GPU ont été conçus à l’origine pour la physique et le calcul graphique, ce qui implique des opérations matricielles. Les tâches informatiques générales n’exigent pas beaucoup d’opérations sur la matrice, les CPU sont donc beaucoup plus lentes. La physique et les graphiques sont également beaucoup plus faciles à mettre en parallèle que les tâches informatiques générales, ce qui entraîne un nombre de cœurs élevé.

En raison de la nature lourde de l’apprentissage automatique (réseaux de neurones), les GPU étaient très bien adaptés. Les cœurs de tenseurs sont juste plus spécialisés dans les types de calcul impliqués dans les logiciels d’apprentissage automatique (tels que Tensorflow).

Nvidia a écrit un blog détaillé ici , qui décrit plus en détail le fonctionnement des cœurs Tensor et les améliorations de la préformance par rapport aux cœurs CUDA.

17
MikeS159

Les cœurs de tenseurs utilisent beaucoup moins de puissance de calcul aux dépens de la précision que les cœurs de Cuda, mais cette perte de précision n'a pas beaucoup d'effet sur la sortie finale.

C'est pourquoi, pour les modèles d'apprentissage automatique, les cœurs de tenseurs sont plus efficaces en termes de réduction des coûts sans modifier autant le rendement.

Google utilise lui-même les unités de traitement Tensor pour Google Translate.

5
pranshu vinayak