AMD dévoile sa carte Instinct MI100 (CDNA) et mise tout sur le calcul haute précision
11,5 TFLOPS en FP64
Le 16 novembre 2020 à 14h00
6 min
Hardware
Hardware
Après bien des périples, AMD fait son retour sur le marché des cartes graphiques professionnelles consacrées au calcul. Comme NVIDIA, le constructeur a désormais fait le choix d'une architecture dédiée : CDNA. La Instinct MI100 (ne dites plus Radeon) en est la première représentante.
Suite au départ de Raja Koduri chez Intel, le Radeon Technology Group (RTG) a été un brin désorganisé. Et cela s'est ressenti dans les gammes de produits. Après plusieurs années à stagner sur des architectures dérivées de GCN, Vega n'a pas su convaincre et s'est focalisée sur l'offre haut de gamme. C'est seulement l'année dernière avec RDNA, puis depuis la rentrée avec RDNA2 qu'AMD est enfin capable de revenir en force sur le terrain du GPU.
Après RDNA pour les joueurs, CDNA pour les serveurs
Mais cela s'est fait au prix d'un choix radical : la conception de produits qui visent avant tout les joueurs. De l'aveu même de la société dès les débuts de la gamme Radeon RX 5000 (Navi), elles n'ont pas été pensées pour le calcul. Les utiliser pour du calcul via OpenCL n'a jamais vraiment été une partie de plaisir (avec des bugs à la clé).
Ainsi, seuls des modèles Radeon Pro visant le rendu 3D ont été mis sur le marché. Les Radeon Insctinct destinées aux serveurs et au calcul haute performance exploitaient encore des puces de génération Vega. L'objectif était à terme de faire comme NVIDIA : produire des puces conçues pour ce marché, avec des unités dédiées.
C'est ainsi que CDNA est née. Elle est aujourd'hui officialisée avec un premier modèle : la MI100. S'opposant à l'A100 de NVIDIA (Ampere), elle fait comme les Radeon sur le marché des GeForce en misant tout sur la puissance de calcul brute. Avec une subtilité néanmoins : si elle n'a aucune unité dédiée au ray tracing, elle en a pour le calcul matriciel.
Plus de 11 TFLOPS en FP64
AMD nous a présenté CDNA la semaine dernière, avec un (court) white paper arrivé pendant le week-end pour éclaircir quelques points. Structurellement, elle ne se base pas sur RDNA ou Vega, mais sur... GCN. Elle en reprend l'organisation globale avec 120 Compute Units (CU) avec 64 unités de calcul chacune, soit 7 680 ( jusqu'à 1,5 GHz).
Leur composition est décrite de la sorte par AMD :
Le but recherché est atteint : la MI100 offre une puissance de calcul brute supérieure à l'A100 de NVIDIA avec 23,1 TFLOPS (FP32) et 11,5 TFLOPS (FP64) contre 19,5 et 9,7 TFLOPS pour sa concurrente. Le tout avec une puissance consommée de 300 watts « seulement ». Elle se destine aux serveurs, Dell, HPE, Gigabyte et Supermicro l'intègreront.
Les 120 CU sont organisées en quatre Compute Engines, chacune étant contrôlée par un ACE (Asynchronous Compute Engines). Comme l'A100 de NVIDIA et le V100 avant lui, aucune unité n'est consacrée au rendu 3D ou à l'affichage. Un moteur de décompression vidéo matériel reste néanmoins en place, gérant HEVC, H.264 et VP9. Il est nécessaire pour ne pas être pénalisé lorsque des données vidéos sont à traiter au sein du GPU.
La puce est gravée en 7 nm. Elle dispose d'un cache L2 partagé de 8 Mo (16-way, set-associative) organisés en 32 portions de 256 ko. Son débit est annoncé à 6 To/s. Côté mémoire, comptez 32 Go de HBM2 (1,2 GHz, 4096 bits) avec ECC pour un débit maximal théorique de 1,23 To/s. Sous les 2 To/s de l'A100 de NVIDIA.
La carte gère le PCIe 4.0, exploitant un format classique (deux emplacements, passive). Un pont de communication peut interconnecter les GPU, comme sur la génération précédente. Il s'agit toujours d'un lien Inifinity Fabric, pouvant gérer jusqu'à 4 GPU annoncé à 23 GT/s (16 bits) pour une bande passante de 276 Go/s (via trois liens à 96 Go/s).
Enfin du calcul matriciel chez AMD
On note une autre nouveauté : la présence d'unités de calcul matriciel ou Matrix Fused MultiplyAdd (MFMA) dans le langage AMD. Elles peuvent effectuer des calculs en précision mixte sur différents formats de données en entrée : INT4/8, FM16/32 et bfloat16. Leur résultat est, selon les cas, un entier ou un flottant sur 32 bits.
Elles sont exploitables à travers ROCm qui passera sous peu en version 4.0 ou des frameworks mis à jour pour l'occasion comme TensorFlow ou PyTorch. Dans ses documents techniques, AMD évoquait uniquement les performances FP16/32 et bfloat16 en matriciel :
Suffisant pour montrer l'intérêt de ces unités dans de nombreux cas, tant elles sont rapides. Cela permet également au constructeur de se mettre en avant face à l'A100 de NVIDIA avec des chiffres qui l'arrangent.
MI100 face à l'A100 : gare aux détails
Comme par exemple dans le graphique ci-dessous où Matrix FP32 et FP32 sont opposés, à l'avantage d'AMD. Pourtant NVIDIA propose lui aussi des unités de calcul matriciel (Tensor Cores) qui ne sont pas utilisées ici.
Pourquoi ? Tout simplement parce qu'il ne gèrent pas le FP32 en entrée, ces unités étant en général utilisées pour des calculs en précision mixte, avec des formats de données moins précis. Mais si l'on compare sur le FP16 par exemple, l'A100 de NVIDIA atteint 312 TFLOPS sur ses Tensor Cores, contre 184,6 TFLOPS chez AMD. Cela peut même atteindre 624 TFLOPS avec l'optimisation des matrices creuses, que ne propose pas AMD.
Pour INT4/8, AMD ne nous a pas fourni de chiffres en amont de son annonce mais en a publié depuis sur son site. On peut ainsi constater que les performances sont de 184,6 TOPS contre 624 et 1 248 TOPS chez NVIDIA. Là aussi, hors des optimisations des matrices creuses qui permettent de doubler ces chiffres.
Ceux ayant besoin d'effectuer des calculs FP32/64 en masse devraient donc apprécier la MI100. Pour d'autres usages, si AMD rattrape peu à peu son retard sur NVIDIA, il semble qu'il y ait encore du chemin à parcourir. Cela tombe bien, CDNA2 est d'ores et déjà en préparation et devrait être dévoilée d'ici quelques mois.
Interrogée, AMD n'a pour le moment pas pu nous confirmer le prix de son Instinct MI100.
AMD dévoile sa carte Instinct MI100 (CDNA) et mise tout sur le calcul haute précision
-
Après RDNA pour les joueurs, CDNA pour les serveurs
-
Plus de 11 TFLOPS en FP64
-
Enfin du calcul matriciel chez AMD
-
MI100 face à l'A100 : gare aux détails
Commentaires (6)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 16/11/2020 à 17h23
Je trouve le format TF32 de nvidia assez bancal au moins ici on a enfin du vrai calcul FP32 sur gpu dédié, déjà qu’il peux y avoir des soucis de précision avec du FP32.
Ca va peut être décider nvidia de proposer aussi du FP32 sur les tensor cores.
Le 16/11/2020 à 18h07
Merci pour l’article.
Pas évident de rattraper le retard. Au delà du matériel, ROCm est encore très loin de cuda, notamment sur certaines libs bien utilisées en gpgpu (LAPACK, FFT).
Donc d’après ce que tu dis, RDNA2 n’apporte rien en calcul par rapport à RDNA ? Il n’y aura donc aucune concurrence sur le segments des cartes calculs pour station de travail, pour petits labo ou gens qui utilisent leur PC à la fois pour jouer et programmer sur GPU. La GeForce 3090 a de beaux jours devant elle !
Le 16/11/2020 à 19h23
Pour ce qui est du FP64 la 3090 n’est vraiment pas terrible, il vaut mieux une Titan ou Radeon VII
Par contre pour du machine learning c’est clair que ça dépote, mais apparemment le meilleur ratio perfs/watts est pour la 3080, à moins d’avoir besoin de beaucoup de mémoire : https://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/
Le 16/11/2020 à 20h18
Oui effectivement, j’ai oublié de préciser FP32.
En FP64, comme le support des fonctions qui ont typiquement besoin de double précision (inversion de matrices, résolutions de systèmes linéaires, EVD..) n’est pas encore complet dans ROCm, ça laisse que la Titan V, et c’est bien dommage !
Le 17/11/2020 à 04h06
J’attends de voir sur RDNA2, mais ça m’étonnerait qu’AMD ait inversé la tendance. Ils communiquent assez peu là-dessus d’ailleurs. Après rien n’empêche de faire du calcul dessus via OpenCL par exemple, mais ce n’est clairement pas le focus d’AMD (excepté pour la crypto, mais c’est une autre histoire).
D’une certaine manière c’est pareil chez NVIDIA avec les A100 qui sont dédiées au calcul alors que les cartes grand public non. Mais ces dernières peuvent tout de même exploiter leur 36 TFLOPS.
Le FP64 chez NV c’est Tesla (le nom n’étant plus utilisé) sinon rien : V100 avant, A100 désormais. Titan n’apporte rien en FP64 (excepté l’ancienne Titan V qui était en ratio 1:2). Les GeForce RTX de série 30 sont à un rapport de 1:64.
Idem pour la Radeon VII, AMD a tenté de réduire la puissance de calcul puis s’est ravisé (mais on est à 1:4 contre 1:2 possible). Elle reste néanmoins assez perf là-dessus si on sait l’exploiter (3,46 TFLOPS).
Le 17/11/2020 à 08h40
Oui je parlais de la vieille titan V, qui d’ailleurs doit avoir un ratio fp64flops/€ meilleur que la a100. Et de toute façon avec son refroidissement passif, la a100 n’est pas faite pour les station de travail.