GPU Ampere : NVIDIA détaille son architecture

GPU Ampere : NVIDIA détaille son architecture

Bonne lecture !

Avatar de l'auteur

David Legrand

Publié dansHardware

20/05/2020
10
GPU Ampere : NVIDIA détaille son architecture

La semaine dernière, Jen Hsun Huang a levé le voile sur sa nouvelle puce A100 de la génération Ampere, et les produits qui vont l'exploiter, tant dans les serveurs que l'embarqué. Peu à peu, de nouveaux détails sont dévoilés sur cette architecture qui servira de base aux prochaines GeForce.

L'A100 est un monstre de plus de 54 milliards de transistors, gravé en 7 nm et accompagné de 40 Go de HBM 2 à 1,6 To/s. Mais il apporte surtout de nombreuses évolutions techniques.

Amélioration globale des performances, format de données TF32, accélération des matrices creuses, segmentation du GPU pour les environnements  virtualisés, nouveaux Tensor Core, PCIe 4.0 et interconnexion de nouvelle génération. Tant d'éléments qui font de cette puce une bête pour datacenters. 

Si aucun RT Core n'est intégré, c'est que l'A100 se destine principalement aux centres de calcul, à tout ce qui touche à l'IA, au machine learning plus qu'au simple rendu 3D en temps réel. 

Depuis l'annonce de sa puce, NVIDIA avait livré de nouveaux détails sur sa composition, ses caractéristiques ou son organisation interne. Nous avions néanmoins décidé d'attendre avant de nous y pencher, plusieurs présentations et échanges avec leurs équipes étant prévus dans les jours à venir. 

On apprend ce matin que le White paper détaillant Ampere, ses Streaming Multiprocessor et autres unités est désormais disponible à tous. 83 pages de données techniques... qui restent à décortiquer. 

10
Avatar de l'auteur

Écrit par David Legrand

Tiens, en parlant de ça :

Api

La CNIL préconise l’utilisation des API pour le partage de données personnelles entre organismes

I'm API

15:12 SécuSociété 0
Fouet de l’Arcep avec de la fibre

Orange sanctionnée sur la fibre : l’argumentaire de l’opérateur démonté par l’Arcep

Orange rhabillé pour l'hiver

11:39 DroitWeb 6
Bombes

Israël – Hamas : comment l’IA intensifie les attaques contre Gaza

BAO (Bombardement assisté par ordinateur)

10:42 IA 5

Sommaire de l'article

Introduction

Api

La CNIL préconise l’utilisation des API pour le partage de données personnelles entre organismes

SécuSociété 0
Fouet de l’Arcep avec de la fibre

Orange sanctionnée sur la fibre : l’argumentaire de l’opérateur démonté par l’Arcep

DroitWeb 6
Bombes

Israël – Hamas : comment l’IA intensifie les attaques contre Gaza

IA 5

#LeBrief : bande-annonce GTA VI, guerre électronique, Spotify licencie massivement

Poing Dev

Le poing Dev – Round 7

Next 47
Logo de Gaia-X sour la forme d’un arbre, avec la légende : infrastructure de données en forme de réseau

Gaia-X « vit toujours » et « arrive à des étapes très concrètes »

WebSécu 5

Trois consoles portables en quelques semaines

Hard 37
Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

DroitSécu 3

#LeBrief : fuite de tests ADN 23andMe, le milliard pour Android Messages, il y a 30 ans Hubble voyait clair

#Flock a sa propre vision de l’inclusion

Flock 25
Un Sébastien transformé en lapin par Flock pour imiter le Quoi de neuf Docteur des Looney Tunes

Quoi de neuf à la rédac’ #10 : nous contacter et résumé de la semaine

44
Autoportrait Sébastien

[Autoportrait] Sébastien Gavois : tribulations d’un pigiste devenu rédac’ chef

Next 20
Logo de StreetPress

Pourquoi le site du média StreetPress a été momentanément inaccessible

Droit 21
Amazon re:Invent

re:Invent 2023 : Amazon lance son assistant Q et plusieurs services IA, dont la génération d’images

IA 14
Un œil symbolisant l'Union européenne, et les dissensions et problèmes afférents

Le Conseil de l’UE tire un bilan du RGPD, les États membres réclament des « outils pratiques »

Droit 6

19 associations européennes de consommateurs portent plainte contre Meta

DroitSocials 16

#LeBrief : Ariane 6 l’été prochain, Nextcloud rachète Roundcube, désinformation via la pub

Chiffre et formules mathématiques sur un tableau

CVSS 4.0 : dur, dur, d’être un expert !

Sécu 16
Une tête de fusée siglée Starlink.

Starlink accessible à Gaza sous contrôle de l’administration israélienne

Web 35
Fibre optique

G-PON, XGS-PON et 50G-PON : jusqu’à 50 Gb/s en fibre optique

HardWeb 53
Photo d'un immeuble troué de part en part

Règlement sur la cyber-résilience : les instances européennes en passe de conclure un accord

DroitSécu 10
lexique IA parodie

AGI, GPAI, modèles de fondation… de quoi on parle ?

IA 11

#LeBrief : logiciels libres scientifiques, fermeture de compte Google, « fabriquer » des femmes pour l’inclusion

livre dématérialisé

Des chercheurs ont élaboré une technique d’extraction des données d’entrainement de ChatGPT

IAScience 3
Un chien avec des lunettes apprend sur une tablette

Devenir expert en sécurité informatique en 3 clics

Sécu 11
Logo ownCloud

ownCloud : faille béante dans les déploiements conteneurisés utilisant graphapi

Sécu 16
Le SoC Graviton4 d’Amazon AWS posé sur une table

Amazon re:invent : SoC Graviton4 (Arm), instance R8g et Trainium2 pour l’IA

Hard 12
Logo Comcybergend

Guéguerre des polices dans le cyber (OFAC et ComCyberMi)

Sécu 10

#LeBrief : faille 0-day dans Chrome, smartphones à Hong Kong, 25 ans de la Dreamcast

Des billets volent dans les airs.

Mistral AI s’apprête à lever 450 millions d’euros auprès de NVIDIA et a16z

ÉcoIA 0

GTA VI

Rockstar met en ligne le trailer de GTA VI

Soft 30

Russian drone shot by the State Border Guard Service of Ukraine

La guerre électronique serait la plus grande faiblesse de l’Ukraine, et la principale force de la Russie

HardSécu 7

Debout, une femme en pull bleu montre à une autre, assise, quelque chose à son écran d'ordinateur.

Futur de l’IA : les femmes manquent dangereusement à l’appel

IASociété 11

Logo Spotify avec notes de musique

Spotify licencie 1 500 personnes de plus

ÉcoSociété 13

Wikipedia sombre

Wikipedia aura son thème sombre

Web 16

Commentaires (10)


tazvld Abonné
Il y a 4 ans

Je viens de voir que les tensor core de l’A100 permettent de faire un produit matriciel en 8*4*8 (un produit entre une matrice 8*8 et une matrice 4*8, pour un résultat dans une matrice 4*8) en FP16 là où les V100 ne faisait que du 4*4*4.



Pour l’utilisation des TF32, d’après ce que je lis, ça serait utilisait par défaut (j’imagine que c’est géré au niveau de cuDNN et que la modification d’une variable système modifie ce comportement). C’est à voir, ça devrait normalement être bien dans la plupart des cas.



J’avoue cependant que ce format est vachement tordu, ça fait un truc sur 19bit (8 d’exposant, 10 mantice, 1 de signe) ça ne ressemble à rien, je ne vois même pas comment ça peut fonctionner matériellement (ça fait entre 2 et 3 octet), 19, c’est un nombre premier, il faut donc en coller 8 ensemble pour que ça rentre dans un truc en octet (152bit).


ferreol
Il y a 4 ans

tazvld a dit:


Je viens de voir que les tensor core de l’A100 permettent de faire un produit matriciel en 8_4_8 (un produit entre une matrice 8_8 et une matrice 4_8, pour un résultat dans une matrice 4_8) en FP16 là où les V100 ne faisait que du 4_4*4.Pour l’utilisation des TF32, d’après ce que je lis, ça serait utilisait par défaut (j’imagine que c’est géré au niveau de cuDNN et que la modification d’une variable système modifie ce comportement). C’est à voir, ça devrait normalement être bien dans la plupart des cas.J’avoue cependant que ce format est vachement tordu, ça fait un truc sur 19bit (8 d’exposant, 10 mantice, 1 de signe) ça ne ressemble à rien, je ne vois même pas comment ça peut fonctionner matériellement (ça fait entre 2 et 3 octet), 19, c’est un nombre premier, il faut donc en coller 8 ensemble pour que ça rentre dans un truc en octet (152bit).




Bonjour @tazvld,
Je ne suis pas sûre d’avoir compris la moitié de ce que tu décrit. Mais cela m’interpelle; une tel scientificité d’architecture, pourrait-elle permettre la génération d’algorithme spécifiques, très performants, mais quasiment inexploitables sur les autres architectures ?


Salamandar Abonné
Il y a 4 ans

@tazvld il y a pas mal d’infos ici : https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/
mon petit doigt me dit qu’ils le stockeront sur 20 bits, ce qui est beaucoup plus simple à gérer.


tazvld Abonné
Il y a 4 ans

ferreol a dit:


Bonjour @tazvld, Je ne suis pas sûre d’avoir compris la moitié de ce que tu décrit. Mais cela m’interpelle; une tel scientificité d’architecture, pourrait-elle permettre la génération d’algorithme spécifiques, très performants, mais quasiment inexploitables sur les autres architectures ?




TL:DR



Pas plus que ça en général. Mais si tu veux faire du réseau de neurone, la question du matos aujourd’hui ne se pose pas : utilise du matos NVidia, C’est ce qu’il y a de plus performant et accessible (une carte grand publique fait déjà l’affaire).



Detail :



Alors, tout d’abord, les tensor core et tout ce qui y ressemblent ne sont destinés qu’aux réseaus de neurone (deep learning). En effet, l’opération de base qui est faite tout le temps est le produit de matrice matriciel. De plus il a été démontré que dans la grande majorité des cas, la précision du calcule n’est pas très important, on peut donc trifouillé avec des valeurs encoder sur très peut de bit.



L’unité de base d’un réseau de neurones sont les “couches de neurones” : c’est une opération qui transforme un table (tenseur) de nombres en une nouvelle table de nombre (de taille pas forcément identique). Le type d’opération, les (hyper-)paramètres pour les opérations, la taille de la table de sortie, la façon de combiner ces couches… tout ça fait le cœurs du réseau de neurone, son architecture.



L’apprentissage permet de trouver des valeurs de paramètres internes au couche que sont les poids et les biais.



Si tu as l”architecture plus les poids, tu peut recréer avec n’importe quelle solution le réseau de neurone fonctionnel (si tu veux le refaire en C sur CPU avec les instruction AVX2, tu peux le faire).



Il n’y a donc pas forcément de spécificité algorithmique plus que ça.



Cependant, si tu as l’architecture et la base de donnée, tu peux appliquer des modifications (type utilisé) pour optimiser et adapté le réseau pour certain matériel. Mais ça demande un certain travaille et parfois même un retravaille de l’architecture. C’est assez typique comme phase dès lors que tu veux adapté une réseau de neurone pour un téléphone portable. Mais si t’es encore un phase de Proof Of Concept, tu ne t’amuse pas trop avec ça, tout au plus tu optimises pour le matos que tu utilises (NVidia).



Toutes les opérations nécessaire pour un réseau de neurones sont possible sur CPU (mais ça c’est lent) et sur GPU (plus intéressant).



Il existe pour l’instant plusieurs solution matérielle spécialisé pour les réseau de neurones dont le but est vraiment d’être utltra spécifique à certaine opération :




  • tensor core (V1 dans les V100, V2 dans les RTX 20XX et V3 pour les A100) de NVidia

  • Tensor Process Unit (TPU) de Google/Alphabet

  • Neural Process Unit (NPU) de Qualcomm (Snapdragon) -> c’est le genre de truc qui sont utilisé par les appli constructeur de smartphone pour améliorer les photos.

  • Neural Process Unit (NPU) de Kirin (pareil pour des smarphone chinois)

  • Apple Neural Engine de Apple (pareil pour les appareil Apple)

  • ….



Et rien n’est vraiment standardisé niveau matériel, capacité…. Cependant chacun des constructeur fournissent une bibliothèque qui offre des opérations de base généraliste qui permet d’utiliser simplement les solutions matériels. Pour NVidia par exemple, par dessus CUDA (la bibliothèque de calcul sur GPU de NVidia), il propose la bibliothèque cuDNN (cuda Deep Neural Network) offrant une interface pour les opération essentielle des réseau de neurones. Derrière la bibliothèque se démerde avec le matos (il faut quand même avoir une CG NVidia compatible) pour faire tourner ça. J’ai cru par exemple lire que l’on peut demander d’utiliser prioritairement une solution plutôt qu’une autre (tu peux forcer l’utilisation des Cuda Core à la place des Tensor Core même si l’opération été compatible)



Mais généralement, tu n’utilise pas ce type de bibliothèque à la main, tu utilise une autre bibliothèque qui va elle gérer tout ça et offrir un ensemble d’outils plus simple à manipuler. Tu vas trouver 2-3 grandes bibliothèque :




  • Tensorflow : le mastodonte de google/Aphabet


    • Keras : un peu à part, c’était une bibliothèque qui permettait d’écrire en une poigné de ligne un réseau de neurone et de l’entrainé. Elle pouvait utiliser plusieurs bibliothèque plus bas niveau dont Tensorflow comme “moteur”. Elle a été racheté par Google et depuis l’année dernière est totalement intégré à Tensorflow (plus de possibilité d’utiliser autre chose que TF, ce qui en soit ne se faisait déjà plus trop)


  • PyTorch : la bibliothèque de Facebook, populaire pendant longtemps car elle était en quelque sorte plus simple à appréhender que Tensorflow, jusqu’à que cette derniere propose elle aussi l’eager exécution (exécution en direct) l’année dernière. Caffe/Caffe2 a fusionné avec PyTorch.



Tout ça t’abstrait pas mal des problèmes matériels. Sur tensorflow, le même code tournera aussi bien sur un GPU NVIdia (si tout est bien installé) que sur le CPU à défaut.



Cependant, comme dit plus haut,pour pouvoir utiliser le matériel spécialisé, tu va devoir un peu bidouiller, faire attention à certain point (type utilisé, dimension…) voir demander explicitement à la bibliothèque d’utiliser ce matériel (typiquement pour les TPU dans le Cloud de Google).



Maintenant tu as remarqué que je n’ai parlé que de NVidia, mais jamais d’AMD. Tout simplement car AMD est totalement inexistant dans le domaine. Il n’ont pratiquement rien investie dans le calcul sur GPU là où NVidia sont les pionners et leader du domaine. Depuis 2008 avec les 8800GTX et la sortie des Cuda Core, la seul solution viable pour faire du calcul sur GPU est NVidia. OpenCL peine à convaincre face à Cuda. Et comme tu peux le voir, NVIdia est toujours super agressive la dessus. En fouillant sur le net, il existe bien des solutions pour utiliser AMD, mais ça reste assez pauvre.


Nozalys Abonné
Il y a 4 ans

Une seconde génération de GPU totalement orienté IA et ML, et qui ne propose qu’un maigrichon gain de 25% par rapport à la génération précédente en terme de performances de calcul flottant en FP64.



Il y a tout un tas de domaines de la recherche scientifique, et beaucoup de R&D industrielles qui n’ont pas besoin de Tensor core, mais de CUDA cores, c’est-à-dire de la puissance de calcul flottante double-précision : du FP64.



Je comprends la hype autour de l’IA, mais si NVIDIA délaisse le FP64, qui va bien pouvoir les remplacer sur ce créneau ?


horrus
Il y a 4 ans

bonsoir,




Nozalys a dit:


Une seconde génération de GPU totalement orienté IA et ML, et qui ne propose qu’un maigrichon gain de 25% par rapport à la génération précédente en terme de performances de calcul flottant en FP64.Il y a tout un tas de domaines de la recherche scientifique, et beaucoup de R&D industrielles qui n’ont pas besoin de Tensor core, mais de CUDA cores, c’est-à-dire de la puissance de calcul flottante double-précision : du FP64.Je comprends la hype autour de l’IA, mais si NVIDIA délaisse le FP64, qui va bien pouvoir les remplacer sur ce créneau ?




Et il y a eu quelques news (que j ai lu dans le premier trimestre 2020) qui indiquent que pour certains domaines les IA sont plus un frein qu’un progrès.



Je ne dis pas qu’il faut pas utiliser les IA, je me demande seulement si c’est bien utile des les utilisées pour tout et n’importe quoi ??????


Nozalys Abonné
Il y a 4 ans

Pour tout est n’importe quoi, non c’est certain. Il faut considérer le machine learning comme un outil supplémentaire pour résoudre certains problèmes. Et comme tout outil, il fonctionne bien dans certains cas, et mal dans d’autres.



Seulement, ces quelques dernières années, il y a un énorme intérêt porté autour de la découverte des nouvelles possibilités de cet outil, et pour être efficace, on peut faire mieux que les CPU et les GPU “d’avant”, donc NVIDIA sort ses Tensor cores.



Problème : les enjeux économiques qui découlent de la fabrication d’un GPU de ce genre sont tels, que NVIDIA se focalise sur ce qui est ultra demandé en ce moment. Et par conséquent, ils ne peuvent pas assurer la montée en puissance de calcul “traditionnel” en FP64.



Ils proposent bien un mode FP64 tensor core qui multiplie la puissance de calcul par 2,5, mais je n’ai pas vu d’explication dans leur whitepaper à ce sujet, ce qui laisse penser que pour exploiter ça il ne suffira pas de remplacer une V100 par une A100, mais qu’il faudra (lourdement?) adapter le code existant. peut-être même que ça ne concerne que certains types de calcul..


tazvld Abonné
Il y a 4 ans

Nozalys a dit:


Ils proposent bien un mode FP64 tensor core qui multiplie la puissance de calcul par 2,5, mais je n’ai pas vu d’explication dans leur whitepaper à ce sujet, ce qui laisse penser que pour exploiter ça il ne suffira pas de remplacer une V100 par une A100, mais qu’il faudra (lourdement?) adapter le code existant. peut-être même que ça ne concerne que certains types de calcul..




Pour les tensor core, de ce que j’ai lu, ça ne permet que de réaliser des produits matriciels.
(si tu veux des détail technique, j’ai trouvé ce lien qui explique plus son fonctionnement)



Sans dire que l’algèbre linéaire est inutile, mais ça ne correspond généralement qu’à des problèmes très mathématiques (ou que des mathématiciens se soient penchés dessus).


Nozalys Abonné
Il y a 4 ans

C’est aussi ce que je comprends à la lecture de l’article.



Autant dire que les FFT n’en tireront aucun bénéfice, et continueront d’être exécutées sur les CUDA cores. Donc pas de “gain” avec cette génération pour ce besoin. En revanche, si ça peut faire passer les V100 sous le seuil des 10 K€, ça sera au moins ça de pris (aujourd’hui il faut compter 12 K€).


tazvld Abonné
Il y a 4 ans

Nozalys a dit:


C’est aussi ce que je comprends à la lecture de l’article.Autant dire que les FFT n’en tireront aucun bénéfice, et continueront d’être exécutées sur les CUDA cores. Donc pas de “gain” avec cette génération pour ce besoin. En revanche, si ça peut faire passer les V100 sous le seuil des 10 K€, ça sera au moins ça de pris (aujourd’hui il faut compter 12 K€).




Je viens de faire une recherche rapide, je suis tombé sur cette article qui décrit comment utiliser les tensor core pour faire une FFT en mixte precision (input en 16bit, output en 32bit, c’est un calcul qui est justement permit par les tensor core). Même si ce n’est pas exactement ce que tu cherches à faire, il y a a priori une possibilité d’utiliser les tensor core pour faire du FFT, mais ça sera à implémenter à la main.