AMD lève le voile sur les RX Vega

Publié le 31/07/2017 à 04:30 par
Imprimer

Après un lancement un peu particulier d'une édition « Frontier » au second trimestre, AMD profite du Siggraph pour annoncer le « vrai » lancement de son nouveau GPU haut de gamme, Vega, en version destinée aux joueurs et portant le nom de RX Vega. Si un grand nombre de détails avaient été dévoilés précédemment par AMD, particulièrement sur l'architecture, de nouveaux détails ont été donnés, vous trouverez donc certains rappels au milieu des nouvelles informations.

Un très gros, et très dense GPU

Il aura fallu beaucoup de patience, mais AMD va enfin lancer son premier gros GPU 14nm, connu sous le nom de code Vega 10. Il s'agit effectivement d'un très gros GPU puisqu'il compte 12.5 milliards de transistors.

  • GP100 : 15.3 milliards de transistors pour 610 mm²
  • Vega : 12.5 milliards de transistors pour 486 mm²
  • GP102 : 12.0 milliards de transistors pour 471 mm²
  • Fiji : 8.9 milliards de transistors pour 598 mm²
  • GM200 : 8.0 milliards de transistors pour 601 mm²
  • GP104 : 7.2 milliards de transistors pour 314 mm²
  • GK110 : 7.1 milliards de transistors pour 561 mm²
  • Hawaii : 6.2 milliards de transistors pour 438 mm²
  • Polaris 10 : 5.7 milliards de transistors pour 232 mm²
  • GM204 : 5.2 milliards de transistors pour 398 mm²
  • Tonga : 5.0 milliards de transistors pour 368 mm²
  • GP106 : 4.4 milliards de transistors pour 200 mm²
  • GK104 : 3.5 milliards de transistors pour 294 mm²
  • GM206 : 2.9 milliards de transistors pour 228 mm²
  • Pitcairn : 2.8 milliards de transistors pour 212 mm²
  • GK106 : 2.5 milliards de transistors pour 214 mm²
  • Bonaire : 2.1 milliards de transistors pour 158 mm²

Vega est donc légèrement plus gros que le GP102, utilisé chez Nvidia sur les GTX 1080 Ti (les GTX 1080 "classiques" utilisent le GP104, plus petit pour rappel).

  • Vega : 25.7 millions de transistors par mm²
  • GP102 : 25.4 millions de transistors par mm²
  • GP100 : 25.1 millions de transistors par mm²
  • Polaris 10 : 24.6 millions de transistors par mm²
  • Tonga : 13.6 millions de transistors par mm²
  • Pitcairn : 13.2 millions de transistors par mm²
  • GP104 : 22.9 millions de transistors par mm²
  • GM204 : 13.1 millions de transistors par mm²
  • GM206 : 12.7 millions de transistors par mm²

Si l'on calcule la densité, on peut voir que Vega se place légèrement en tête du classement, ce qui n'est en soit pas très important. La densité est un peu meilleure que sur Polaris 10, mais l'écart est plutôt léger. Comme Polaris, Vega est fabriqué par GlobalFoundries sur leur process 14 LPP.

Mémoire HBM2

Sans surprise, c'est de la mémoire HBM2 qui accompagne Vega, deux puces de 4 Go sont placées à côté du die sur un interposer. La mémoire est interfacée en 2048 bits, ce qui permet d'obtenir une bande passante de 484 Go/s, soit exactement la même bande passante que l'on peut trouver sur une 1080 Ti (qui utilise de la GDDR5X).


A gauche Fiji, à droite Vega, les puces HBM2 sont significativement plus grosses

Contrairement à Fiji qui utilisait quatre puces pour un bus mémoire 4096 bits, on se limite à deux puces pour RX Vega.

64 CU et 4096 Stream processors

Si AMD n'a pas prononcé une fois l'acronyme GCN durant sa présentation, en pratique on retrouve bien une architecture similaire aux GPU précédents du constructeurs. On retrouve donc 64 Compute Unit, affublées d'un très marketing « Next Gen » pour 4096 unités de calculs (ce qu'AMD appelle Stream processors). C'est deux fois plus d'unités qu'une Radeon 470, mais autant que Fiji. De la même manière on retrouvera aussi 256 unités de textures et 64 ROPs.

A l'intérieur des CU AMD a procédé a de petites améliorations par rapport à Polaris avec de nouvelles instructions de texturing capables de stocker deux données 16 bits dans un registre 32 bits.

 
 

AMD illustrait cela avec une version spécifique de la démo Time Spy de 3D Mark ou l'application d'instructions 16 bits (AMD regroupe cela derrière le nom Rapid Packed Math) permet de voir des gains assez intéressants, dans le cas de la génération de bruit, le passage d'instructions INT32 à des INT16 permet un gain pratique de 25% de performances sur cet algorithme, et le passage en FP16 des FFT utilisées pour les effets de bloom permet un gain de 20% de performance sur cette partie du rendu. Reste à voir si les développeurs suivront, ce n'est pas la première fois qu'AMD met en avant le FP16 avec des résultats pratiques limités.

On notera que le jeu d'instruction interne gagne 40 nouvelles instructions, qui incluent aussi de nouvelles instructions pour les crypto-monnaies.

Une gestion mémoire « façon CPU »

Un des changements les plus originaux apporté par Vega concerne la gestion de la mémoire. De manière historique, la mémoire embarquée par les GPU doit être gérée manuellement par les développeurs (avec plus ou moins de facilité en fonction des API utilisées) qui doivent remplir (et faire de la place si nécessaire) eux même la mémoire graphique. Un système de fonctionnement très basique, et très différent de ce que l'on connaît sur les CPU.

Sans rentrer trop dans les détails, les CPU et les systèmes d'exploitation comme Windows utilisent ce que l'on appelle un système dit de pagination mémoire. Un programme n'accède jamais vraiment à la mémoire système de manière directe, il alloue de la mémoire sous la forme de blocs (des pages mémoires) qui utilisent un système d'adressage virtuel. En pratique, le programme ne sait pas à quel endroit exact ses données sont stockées, une possibilité exploitée par les systèmes d'exploitation avec la gestion de mémoire virtuelle qui permet d'étendre la quantité mémoire disponible en stockant des pages mémoires dans un fichier (sous Windows, le fameux pagefile.sys). Le système s'occupe alors lui même de stocker les pages les moins utilisées sur disque, et les pages les plus utilisées sont gardées en mémoire centrale.

Avec Vega, AMD s'est inspiré de cela en proposant un mode de fonctionnement alternatif baptisé HBCC (High Bandwidth Cache Controller). Pour s'en servir, on activera ce mode dans le driver d'AMD où l'on définira la taille de l'espace virtuel (par exemple, 32 Go).

Par la suite, un jeu qui se lancera se verra rapporté par le driver le fait que (dans notre exemple) 32 Go de mémoire sont disponible (au lieu de 8). Il pourra allouer comme à l'habitude sa mémoire, mais de manière transparente, le GPU va paginer la mémoire. Les pages pourront ainsi être placées au choix en HBM2, ou en mémoire système.

 
 

C'est le GPU (et son driver) qui gèrera ainsi la mémoire, la HBM2 étant vue comme un cache exclusif par rapport à l'espace virtuel. En pratique, cela permet de faire tourner des applications qui ont besoin de plus de mémoire que ce dont dispose la carte graphique, on est alors uniquement limité par la bande passante PCI Express lorsqu'il faut transférer des pages d'un endroit à l'autre (l'équivalent du swap).

Sur le papier, l'idée d'amener les GPU dans la modernité pour la gestion mémoire peut sembler intéressante. Le fait que les jeux doivent gérer eux même leur mémoire fait qu'en pratique, cette gestion est rarement fine, pour ne pas dire grossière. La majorité des données allouées sont rarement nécessaires en simultanée pour le rendu d'une frame et disposer d'un mécanisme de swap de ce type pourrait permettre, dans un temps long, de faire tourner des jeux avec des niveaux de textures plus élevés qui ne rentreraient pas dans les 8 Go présents sur la carte.

Cela reste cependant un avantage très théorique qui dépendra de la qualité de l'implémentation du système. Car le cout d'un échange de données entre la mémoire centrale et celle du GPU n'est pas nul et l'on risque de se retrouver, au delà de démonstrations savamment choisies avec des lags dues à ces transferts. Quelque chose de tout à fait acceptable dans un cas d'utilisation d'applications professionnelles ou un ralentissement vaut mieux qu'une impossibilité de fonctionner.

Si l'idée sur le fond nous semble bonne, nous resterons donc prudent sur ce qu'elle pourrait apporter en pratique pour la déclinaison « jeu » de Vega.

Un support DirectX 12 plus complet

Avec Vega, AMD améliore son support de DirectX 12 par rapport à Polaris :

Le premier sur lequel AMD n'a pas vraiment communiqué dans sa présentation est la gestion du standard swizzle, un mode spécifique d'alignement des données pour les textures  qui permet d'améliorer la rapidité de certains algorithmes . La fonctionnalité n'est gérée que par Vega aujourd'hui.

L'autre changement concerne la rasterization, la transformation d'un triangle en pixels. DX12 ajoute le concept de conservative rasterization  qui permet d'améliorer la manière dont cette transformation s'opère en ajoutant des règles plus claires sur les algorithmes utilisés pour éviter les incertitudes dans le rendu.

 
 

Pascal chez Nvidia supportait déjà les deux premiers tiers de cette fonctionnalité, le premier est surtout utile au tiled rendering, la génération de light maps et des shadow maps. Le second réduit un peu plus l'incertitude ce qui est surtout utile pour les rendus types voxel. Le troisième niveau que supporte Vega ajoute une variable dans le langage des shaders de DirectX (HLSL) qui permet de régler finement le niveau de sous estimation que l'on désire, une fonctionnalité qui permet d'optimiser l'occlusion.

Vega gère également de nouveaux types de shaders, baptisés primitive shaders qui peuvent remplacer les vertex/geometry shaders pour réaliser de nouveaux types de rendus plus efficaces avec la possibilité d'éliminer beaucoup plus efficacement des primitives. Là encore cela demandera un travail important aux développeurs ce qui fait qu'on peut douter qu'elle soit exploitée, mais AMD disposerait d'un path alternatif dans ses pilotes qui permettrait au cas par cas d'obtenir des gains.

Sorties vidéo améliorées

Au delà de l'architecture, la gestion des sorties vidéos a été améliorée, par rapport à Polaris on peut désormais piloter deux écrans 4K 120 Hz en simultanée. Pour les modes HDR, on passe de un à trois écrans 4K 60 Hz, et le support d'un écran 4K 120 Hz ou 5K 60 Hz.

D'autres petits détails ont aussi été améliorés, le décodage hardware H.264 par exemple fonctionne désormais pour les vidéo 4K 60 Hz (cette résolution n'était gérée que pour H.265 par Polaris). Du côté de la virtualisation, VCE (les fonctionnalités de décodage/encodage vidéo) sont désormais également disponibles dans les machines virtuelles.

RX Vega en pratique : trois cartes

Avec son GPU Vega 10, AMD va lancer trois versions destinées aux joueurs :

Le haut de gamme est représenté par les RX Vega 64, disponibles à la fois en version classique et watercoolée. Cette dernière dispose d'un TDP plus élevé, de 345W là où la version classique se contente d'un déjà bien elevé TDP de 295 watts. La différence entre les deux modèles tient dans les fréquences, les derniers MHz se payant très chers en matière de consommation.

En dessous on retrouvera les RX Vega 56 qui, comme leur nom l'indique, ne disposent que de 56 CU actifs et d'un TDP bien plus contenu de 210 watts. Il faut noter que les cartes disposent de deux bios et que les caractéristiques indiquées dans ce tableau sont, sauf erreurs, celles du mode le plus performant. Le second BIOS réduit le TDP de 15% ce qui ramènerait la version watercoolée à un beaucoup plus normal 300W.

Et les performances ?

Côté performance, nous n'avons pas encore pu tester les cartes mais les premiers chiffres montrés par AMD laissent penser que l'on se situe autour (voir un peu en dessous) d'une GTX 1080. Un niveau de performance qui, compte tenu du TDP annoncé et du nombre de transistors semble montrer un rendement qui ne progresse pas vraiment vis à vis de la concurrence.

Une stratégie tarifaire à base de bundles

Côté prix, AMD tente une stratégie un peu originale pour essayer de contrer le problème du mining mais qui ne satisfera pas forcément tout le monde. Il y aura deux types de cartes disponibles, d'abord les modèles « classiques » vendus nus, dont la disponibilité risque d'être limitée, et de l'autre, un système de « packs ».

Les prix annoncés par AMD sont donc pour les versions nues :

  • Radeon RX Vega 64 : 499$
  • Radeon RX Vega 56 : 399$

En parallèle on trouvera plusieurs packs :

  • Radeon RX Vega 64 Aqua Pack (version watercooling) : 699$
  • Radeon RX Vega 64 Black Pack : 599$
  • Radeon RX Vega 56 Red Pack : 499$

Par rapport à la version nue, les versions « Pack » sont vendues 100$ plus cher. En contrepartie, elles incluront deux jeux (vraisemblablement Wolfenstein II et Prey) d'une valeur annoncée de 120$. L'achat d'une version Pack inclura également une réduction de 200$ dans le cas d'un achat simultanée avec un écran Samsung CF791 34 pouces, et de 100$ sur l'achat simultanée avec un Ryzen 7 et une carte mère X370.

Ces packs promotionnels seront disponibles, sous une forme ou sous une autre, chez certains revendeurs. Les modalités exactes restent à préciser et devraient varier selon les pays pour des raisons légales.

AMD voit dans ces packs une solution pour rendre disponibles plus de cartes pour les joueurs, même si nous sommes relativement circonspects sur cette raison. L'autre mesure prise par AMD - limiter l'achat à une carte par client chez les revendeurs - semble plus efficace pour contrer le problème.

AMD nous a indiqué qu'il s'attend à ce que et les packs, et les cartes nues soient disponibles simultanément au lancement, ce que l'on peut espérer. En pratique on notera que la version watercooling n'est disponible qu'en pack, et que le radiateur édition limité dont nous vous montrions les photos hier sera lui aussi réservé au Black Pack. Les modèles nus utiliseront un carter plus classique, noir, rappelant celui utilisé sur les 390X.

Notez que si les différents partenaires d'AMD devraient vendre ces cartes de référence sous leur marque, il faudra attendre au mieux la fin du troisième trimestre, ou le quatrième trimestre pour voir débarquer les modèles à refroidissement custom.

En ce qui concerne la date de lancement, AMD nous a indiqué que ces les Vega RX seraient disponibles pour le 14 août.

Vos réactions

Top articles