Graphics Core Next (GCN) est le nom d'une série de microarchitectures et d'un jeu d'instructions, développés par AMD pour leurs GPU. GCN succède à TeraScale (en).

GCN est une microarchitecture RISC SIMD, contrastant avec l'architecture VLIW SIMD de TeraScale[1]. GCN nécessite beaucoup plus de transistors que TeraScale, mais offre des avantages pour les calculs sur GPU à usage général (GPGPU) grâce à un compilateur plus simple.

Les puces graphiques GCN ont été fabriquées en CMOS à 28 nm et en FinFET à 14 nm (par Samsung Electronics et GlobalFoundries) et en 7 nm (par TSMC), disponibles sur certains modèles de cartes graphiques AMD Radeon HD 7000, HD 8000 (en), 200, 300, 400 (en), 500 (en) et Vega (en), y compris la Radeon VII sortie séparément. GCN a également été utilisé dans la partie graphique des unités de traitement accéléré (APU), y compris celles de la PlayStation 4 et de la Xbox One.

Générations modifier

Graphics Core Next 1 modifier

 
Die shot du GPU Tahiti utilisé dans les cartes graphiques Radeon HD 7950 GHz Edition

La microarchitecture GCN 1 a été utilisée dans plusieurs cartes graphiques de la famille Radeon HD 7000.

  • prise en charge de l’adressage 64 bits (espace d’adressage x86-64) avec espace d’adressage unifié pour le CPU et le GPU[2]
  • prise en charge de PCIe 3.0[3]
  • prise en charge des textures partiellement résidentes[4], qui permettent la prise en charge de la mémoire virtuelle via les extensions DirectX et OpenGL
  • Prise en charge d’AMD PowerTune (en), qui ajuste dynamiquement les performances pour rester dans les limites d’un TDP spécifique[5]
  • prise en charge de Mantle (API) (en)

Des moteurs de calcul asynchrones contrôlent le calcul et la répartition de la charge[6],[7].

ZeroCore Power modifier

ZeroCore Power est une technologie d’économie d’énergie à long terme, qui éteint les unités fonctionnelles du GPU lorsqu’elles ne sont pas utilisées[8]. La technologie AMD ZeroCore Power complète AMD PowerTune (en).

Puces modifier

GPU discrets (famille Southern Islands) :

  • Hainan
  • Oland
  • Cap-Vert
  • Pitcairn
  • Tahiti

Graphics Core Next 2 modifier

 
Principe de fonctionnement de AMD PowerTune (en) sur "Bonaire"
 
Die shot du GPU Hawaii utilisé dans les cartes graphiques Radeon R9 290

La 2e génération de GCN a été introduite avec la Radeon HD 7790 et se trouve également dans les Radeon HD 8770, R7 260/260X, R9 290/290X, R9 295X2, R7 360 et R9 390/390X, ainsi que dans les APU pour PC de bureau « Kaveri » et pour PC portables « Kaveri » basés sur Steamroller ainsi que dans les APU « Beema » et « Mullins » basés sur Puma (en). Elle présente plusieurs améliorations par rapport au GCN d’origine, notamment la prise en charge de FreeSync, AMD TrueAudio (en) et une version révisée de la technologie AMD PowerTune (en).

La 2e génération de GCN a introduit une entité appelée « Shader Engine » (SE, moteur de shader). Un moteur de shader comprend un processeur de géométrie, jusqu’à 44 « Compute Units » (CU, unités de calcul) (puce Hawaï), des rastériseurs, des ROP et un cache L1. Le processeur de commandes graphiques, les 8 ACE, les contrôleurs de cache et de mémoire L2 ainsi que les accélérateurs audio et vidéo, les contrôleurs d’affichage, les 2 contrôleurs DMA et l’interface PCIe ne font pas partie d’un moteur de shader.

L’A10-7850K « Kaveri » contient 8 CU (unités de calcul) et 8 moteurs de calcul asynchrones pour une planification indépendante et une répartition des éléments de travail[9].

Lors de l’AMD Developer Summit (APU) en novembre 2013, Michael Mantor a présenté la Radeon R9 290X[10] .

Puces modifier

GPU discrets (famille Sea Islands) :

  • Bonaire
  • Hawaï

Intégrées dans les APU :

  • Temash
  • Kabini
  • Liverpool (l’APU que l’on trouve dans la PlayStation 4)
  • Durango (l’APU que l’on trouve dans la Xbox One et la Xbox One S)
  • Kaveri
  • Godavari
  • Mullins
  • Beema
  • Carrizo-L

Graphics Core Next 3 modifier

 
Die shot du GPU Fidji utilisé dans les cartes graphiques Radeon R9 Nano.

La 3e génération GCN[11] a été introduite en 2014 avec les Radeon R9 285 et R9 M295X, équipés du GPU « Tonga ». Elle offre des performances de tessellation améliorées, une compression des couleurs delta sans perte pour réduire l’utilisation de la bande passante mémoire, un jeu d’instructions mis à jour et plus efficace, un nouveau scaler de haute qualité pour la vidéo, l’encodage HEVC (VCE 3.0) et le décodage HEVC (UVD 6.0), ainsi qu’un nouveau moteur multimédia (encodeur/décodeur vidéo). La compression des couleurs delta est prise en charge dans Mesa[12]. Cependant, ses performances en double précision sont moins bonnes que celles de la génération précédente[13].

Puces modifier

GPU discrets :

intégrées dans les APU :

Graphics Core Next 4 modifier

 
Die shot du GPU Polaris 11 utilisé dans les cartes graphiques Radeon RX 460.
 
Die shot du GPU Polaris 10 utilisé dans les cartes graphiques Radeon RX 470.

Les GPU de la famille Arctic Islands ont été introduits au deuxième trimestre 2016 avec la série Radeon Rx 400 (en). Le moteur 3D (c’est-à-dire le GCA (Graphics and Compute array) ou GFX) est identique à celui que l’on trouve dans les puces Tonga[15], mais Polaris dispose d’un moteur de contrôleur d’affichage plus récent, UVD version 6.3, etc.

Toutes les puces basées sur Polaris autres que la Polaris 30 sont produites selon le procédé FinFET 14 nm, développé par Samsung Electronics et concédé sous licence à GlobalFoundries[16]. Le Polaris 30, légèrement plus récent, est construit sur le nœud de procédé FinFET LP 12 nm, développé par Samsung et GlobalFoundries. L’architecture du jeu d’instructions GCN de quatrième génération est compatible avec la troisième génération. Il s’agit d’une optimisation pour le procédé FinFET 14 nm permettant des fréquences d’horloge GPU plus élevées qu’avec la 3e génération GCN[17]. Les améliorations architecturales comprennent de nouveaux planificateurs matériels, un nouvel accélérateur de rejet de primitive, un nouveau contrôleur d’affichage et un UVD mis à jour qui peut décoder HEVC à des résolutions 4K à 60 images par seconde avec 10 bits par canal de couleur.

Puces modifier

GPU discrets[18] :

  • Polaris 10 (également nom de code Ellesmere) que l’on trouve sur les cartes graphiques de marque « Radeon RX 470 » et « Radeon RX 480 »
  • Polaris 11 (également nom de code Baffin) que l’on trouve sur les cartes graphiques de marque « Radeon RX 460 » (également Radeon RX 560D)
  • Polaris 12 (également nom de code Lexa) que l’on trouve sur les cartes graphiques de marque « Radeon RX 550 » et « Radeon RX 540 »
  • Polaris 20, qui est un Polaris 10 rafraîchi (procédé FinFET 14 nm LPP Samsung/GloFo) avec des fréquences d'horloge plus élevées, utilisé pour les cartes graphiques de marque « Radeon RX 570 » et « Radeon RX 580 »[19].
  • Polaris 21, qui est un Polaris 11 rafraîchi (procédé FinFET 14 nm LPP Samsung/GloFo), utilisé pour les cartes graphiques de marque « Radeon RX 560 »
  • Polaris 22, que l’on trouve sur les cartes graphiques de marque « Radeon RX Vega M GH » et « Radeon RX Vega M GL » (dans le cadre de Kaby Lake-G)
  • Polaris 23, qui est un Polaris 12 rafraîchi (procédé FinFET 14 nm LPP Samsung/GloFo), utilisé pour les cartes graphiques de marque « Radeon Pro WX 3200 » et « Radeon RX 540X » (également Radeon RX 640)
  • Polaris 30, qui est un Polaris 20 rafraîchi (procédé FinFET 12 nm LP GloFo ) avec des fréquences d'horloge plus élevées, utilisé pour les cartes graphiques de marque « Radeon RX 590 ».

En plus des GPU dédiés, Polaris est utilisé dans les APU de la PlayStation 4 Pro et de la Xbox One X, intitulés respectivement « Neo » et « Scorpio ».

Graphics Core Next 5 modifier

Radeon RX Vega (en)

 
Die shot du GPU Vega 10 utilisé dans les cartes graphiques Radeon RX Vega 64.

AMD a commencé à publier les détails de sa prochaine génération d’architecture GCN, appelée « unité de calcul de nouvelle génération », en janvier 2017[17],[20],[21]. On s’attendait à ce que la nouvelle conception augmente le nombre d’instructions par cycle (IPC), des fréquences d’horloge plus élevées, la prise en charge de HBM2 (en), un espace d'adressage mémoire plus grand. Les chipsets graphiques discrets incluent également « HBCC (High Bandwidth Cache Controller) », mais pas lorsqu’ils sont intégrés dans des APU. De plus, les nouvelles puces devaient inclure des améliorations dans les unités de sortie de rastérisation et de rendu. Les processeurs de flux sont fortement modifiés par rapport aux générations précédentes pour prendre en charge la technologie mathématique Rapid Pack Math pour les nombres 8 bits, 16 bits et 32 bits. Cela permet d’obtenir un avantage significatif en termes de performances lorsqu’une précision inférieure est acceptable (par exemple, le traitement de deux nombres en demi-précision à la même vitesse qu’un seul nombre en simple précision).

Nvidia a introduit la rastérisation basée sur les tuiles et le binning avec Maxwell, et c'est une importante raison de l’augmentation de l’efficacité de Maxwell. En janvier, AnandTech a supposé que Vega rattraperait enfin Nvidia en ce qui concerne les optimisations de l’efficacité énergétique grâce au nouveau « DSBR (Draw Stream Binning Rasterizer) » qui sera introduit avec Vega[22].

Il a également ajouté la prise en charge d’une nouvel étage de shader - les shaders de primitive[23],[24]. Les shaders de primitive offrent un traitement de géométrie plus flexible et remplacent les shaders de vertex et de géométrie dans un pipeline de rendu. En décembre 2018, les shaders de primitive ne pouvaient pas être utilisés, car les modifications d’API requises n’avaient pas encore été effectuées[25].

Vega 10 et Vega 12 utilisent le procédé FinFET 14 nm, développé par Samsung Electronics et concédé sous licence à GlobalFoundries. Vega 20 utilise le procédé FinFET 7 nm développé par TSMC.

Puces modifier

GPU discrets :

  • Vega 10 (procédé FinFET 14 nm Samsung/GloFo) (également nom de code Groenland[26]) trouvé sur les cartes graphiques « Radeon RX Vega 64 », « Radeon RX Vega 56 », « Radeon Vega Frontier Edition », « Radeon Pro V340 », Radeon Pro WX 9100 et Radeon Pro WX 8200,
  • Vega 12 (procédé FinFET 14 nm Samsung/GloFo) que l’on trouve sur les cartes graphiques pour PC portables de marque « Radeon Pro Vega 20 » et « Radeon Pro Vega 16 »[27]
  • Vega 20 (procédé FinFET 7 nm TSMC) que l’on trouve sur les cartes d’accélération de marque « Radeon Instinct MI50 » et « Radeon Instinct MI60 »[28], « Radeon Pro Vega II » et les cartes graphiques de marque « Radeon VII »[29].

intégrées dans les APU :

  • Raven Ridge[30] est livré avec VCN 1 qui remplace VCE et UVD et permet un décodage à fonction fixe complet de VP9.

Performances de calcul en fonction de la précision modifier

Les performances en virgule flottante double précision (FP64) de tous les GPU GCN de 5e génération, à l’exception de Vega 20, représentent un seizième des performances en FP32. Pour Vega 20 avec Radeon Instinct, c’est la moitié des performances en FP32. Pour Vega 20 avec Radeon VII, c’est un quart des performances en FP32[31]. Tous les GPU GCN de 5e génération prennent en charge les calculs en virgule flottante demi-précision (FP16), avec deux fois plus de performances qu'en FP32.

Notes et références modifier

  1. (en) Abheek Gulati, « An Architectural Deep-Dive into AMD's TeraScale, GCN & RDNA GPU Architectures », sur Medium, (consulté le )
  2. (en) « Not Just A New Architecture, But New Features Too », AnandTech, (consulté le )
  3. (en) « AMD Radeon HD 7000 Series to be PCI-Express 3.0 Compliant », TechPowerUp (consulté le )
  4. (en) « AMD Details Next Gen. GPU Architecture » (consulté le )
  5. (en) Tony Chen et Jason Greaves, « AMD's Graphics Core Next (GCN) Architecture », AMD (consulté le )
  6. (en) Michael Mantor et Mike Houston, « AMD Graphics Core Next », AMD, (consulté le ) : « Asynchronous Compute Engine (ACE) », p. 40
  7. (en) « AMD's Graphics Core Next Preview: AMD's New GPU, Architected For Compute », AnandTech, (consulté le ) : « AMD's new Asynchronous Compute Engines serve as the command processors for compute operations on GCN. The principal purpose of ACEs will be to accept work and to dispatch it off to the CUs for processing. »
  8. (en) « Managing Idle Power: Introducing ZeroCore Power », sur AnandTech.com, (consulté le )
  9. (en) « AMD's Kaveri A10-7850K tested », sur AnandTech, (consulté le )
  10. (en) « AMD Radeon R9-290X »,
  11. « Carrizo Overview » [PNG], sur Images.anandtech.com (consulté le )
  12. (en) « Add DCC Support », sur Freedesktop.org,
  13. (en) Ryan Smith, « AMD Radeon R9 285 Review », sur Anandtech.com, (consulté le )
  14. a et b (en) Ian Cutress, « AMD Announces 7th Generation APU », sur Anandtech.com, (consulté le )
  15. (en) « RadeonFeature », sur www.x.org
  16. (en) « Radeon Technologies Group – January 2016 – AMD Polaris Architecture », sur Guru3d.com
  17. a et b (en) Ryan Smith, « The AMD Vega Architecture Teaser: Higher IPC, Tiling, & More, coming in H1'2017 », sur Anandtech.com, (consulté le )
  18. (en) WhyCry, « AMD confirms Polaris 10 is Ellesmere and Polaris 11 is Baffin », sur VideoCardz, (consulté le )
  19. (en) « Fast vollständige Hardware-Daten zu AMDs Radeon RX 500 Serie geleakt », sur www.3dcenter.org
  20. (en) Jeff Kampman, « The curtain comes up on AMD's Vega architecture », sur TechReport.com, (consulté le )
  21. (en) Ryan Shrout, « AMD Vega GPU Architecture Preview: Redesigned Memory Architecture », PC Perspective, (consulté le )
  22. (en) « Vega Teaser: Draw Stream Binning Rasterizer », sur Anandtech.com
  23. (en) « Radeon RX Vega Revealed: AMD promises 4K gaming performance for $499 – Trusted Reviews », sur Trustedreviews.com, (consulté le )
  24. (en) « The curtain comes up on AMD's Vega architecture », sur Techreport.com (consulté le )
  25. (en) Jeff Kampman, « Radeon RX Vega primitive shaders will need API support », sur Techreport.com, (consulté le )
  26. (en) « ROCm-OpenCL-Runtime/libUtils.cpp at master · RadeonOpenCompute/ROCm-OpenCL-Runtime », sur github.com, (consulté le )
  27. (en) « AMD's Vega Mobile Lives: Vega Pro 20 & 16 in Updated MacBook Pros In November », sur Anandtech.com, (consulté le )
  28. (en) « AMD Announces Radeon Instinct MI60 & MI50 Accelerators: Powered By 7nm Vega », sur Anandtech.com, (consulté le )
  29. (en) « AMD Unveils World's First 7nm Gaming GPU – Delivering Exceptional Performance and Incredible Experiences for Gamers, Creators and Enthusiasts », Las Vegas, Nevada, AMD, (consulté le )
  30. (en) Bruno Ferreira, « Ryzen Mobile APUs are coming to a laptop near you », Tech Report, (consulté le )
  31. (en) « AMD Unveils World's First 7nm Datacenter GPUs – Powering the Next Era of Artificial Intelligence, Cloud Computing and High Performance Computing (HPC) », sur AMD.com, AMD, (consulté le )