Découvrez Polaris 10
Il y a six mois, AMD a commencé à taquiner les fonctionnalités que ses GPU de nouvelle génération offriraient, en commençant par un contrôleur d’affichage remanié pour prendre en charge HDMI 2.0b et DisplayPort 1.3 HBR3, FreeSync sur HDMI et un pipeline compatible HDR. D’autres éléments sont apparus dans les semaines qui ont suivi, indiquant un lancement qui inclurait deux GPU distincts délibérément construits pour récupérer des parts de marché sur le marché des ordinateurs de bureau grand public et présenter une solution mobile offrant des performances de classe console dans des facteurs de forme minces et légers.
Cette dernière conception comprend 16 des unités de calcul d’AMD associées à un bus mémoire 128 bits et à une accélération d’encodage/décodage vidéo 4K. C’est encore à venir. La Radeon RX 480 que nous avons aujourd’hui est basée sur la conception plus grande de Polaris 10. Mais ce n’est pas grand dans le sens où le processeur GP100 à 15,3 milliards de transistors de Nvidia est grand. Au contraire, le GPU est juste assez complexe pour piloter les casques de réalité virtuelle les plus haut de gamme d’aujourd’hui, le plaçant au moins dans la ligue des Radeon R9 290 d’AMD et GeForce GTX 970 de Nvidia.
Les performances de milieu de gamme ne vont pas faire tomber les chaussettes de qui que ce soit, surtout un mois après que le GP104 a redéfini le haut de gamme. Mais en fixant le prix de la Radeon RX 480 bien en dessous de cartes aussi rapides et en limitant la consommation d’énergie à 150 W, AMD espère rendre la réalité virtuelle accessible à davantage de joueurs (si seulement les sociétés vendant des HMD à 600 et 800 dollars pouvaient jouer le jeu).
Nous attendons deux versions de la Radeon RX 480 : un modèle à 200 $ avec 4 Go de GDDR5 embarqué fonctionnant à 7 Gb/s et une version à 240 $ avec 8 Go de GDDR5 à 8 Gb/s. Naturellement, nous avons celui de 8 Go sous la main.
Intérieur de Polaris 10
Polaris 10 est composé de 5,7 milliards de transistors sur un die de 230 mm². Comparez cela aux 6,2 milliards de transistors d’Hawaï sur une matrice de 438 mm². Comme vous le verrez sur nos pages de référence, le RX 480 se situe généralement entre R9 290 et 390… avec moins de transistors et environ 55 % du budget de puissance. Une grande partie de cela est naturellement attribuable au processus FinFET 14 nm de GlobalFoundries, auquel AMD attribue des performances fondamentales et des avantages en termes de puissance par rapport aux transistors planaires du nœud 28 nm. À n’importe quel niveau de puissance donné, FinFET permet des horloges plus élevées. À une fréquence choisie, un appareil de 14 nm consomme moins d’énergie. Pour Polaris, AMD s’empare des deux bacs pour augmenter les fréquences d’horloge et réduire la consommation. C’est ainsi qu’il est capable de surpasser les GPU plus riches en ressources comme Hawaï à un plafond de 150 W (bien que nos mesures montrent que le RX 480 fudge un peu sur son TDP).
Malgré le nouveau nom de code, Polaris 10 est basé sur une implémentation de quatrième génération de l’architecture Graphics Core Next d’AMD. Dans cet esprit, la plupart des passionnés déjà familiers avec GCN vont reconnaître les éléments constitutifs de la conception Polaris, ce qui rend notre approche de la conception assez simple.
Caractéristiques
AMD Radeon RX 480
AMD Radeon R9 390
AMD Radeon R9 290
Un seul processeur de commande graphique à l’avant est toujours responsable de la répartition des files d’attente graphiques vers les moteurs Shader. Les moteurs de calcul asynchrones sont également chargés de gérer les files d’attente de calcul. Ce n’est que maintenant qu’AMD affirme que sa logique de traitement des commandes se compose de quatre ACE au lieu de huit, avec deux unités Hardware Scheduler en place pour les files d’attente prioritaires, la gestion des ressources temporelles/spatiales et le déchargement des tâches de planification du pilote en mode noyau CPU. Ce ne sont pas des blocs séparés ou nouveaux en soi, mais plutôt un mode facultatif dans lequel les pipelines existants peuvent fonctionner. Dave Nalasco, responsable principal de la technologie pour les graphiques chez AMD, aide à clarifier leur objectif :
« Les HWS (Hardware Workgroup/Wavefront Schedulers) sont essentiellement des pipelines ACE qui sont configurés sans contrôleurs de répartition. Leur travail consiste à décharger le processeur en gérant la planification des files d’attente utilisateur/pilote sur les emplacements de file d’attente matériels disponibles. Ce sont des processeurs programmables par microcode. qui peuvent implémenter une variété de politiques de planification. Nous les avons utilisées pour implémenter les fonctionnalités de file d’attente de réponse rapide et de réservation CU dans Polaris, et nous avons pu porter ces modifications sur les produits GCN de troisième génération avec des mises à jour de pilotes.
Les files d’attente de réponse rapide permettent aux développeurs de hiérarchiser certaines tâches exécutées de manière asynchrone sans préempter entièrement d’autres processus. Au cas où vous auriez manqué le billet de blog de Dave sur cette fonctionnalité, vous pouvez le consulter ici. En bref, cependant, la flexibilité est le point qu’AMD veut ramener à la maison. Son architecture permet de multiples approches pour améliorer l’utilisation et minimiser la latence, deux éléments extrêmement importants dans des applications telles que la réalité virtuelle.
Les unités de calcul que nous connaissons si bien se composent de 64 shaders conformes à la norme IEEE 754-2008 répartis entre quatre unités vectorielles, une unité scalaire et 16 unités de chargement/stockage de récupération de texture. Chaque CU héberge également quatre unités de texture, 16 Ko de cache L1, un partage de données local de 64 Ko et un espace de registre pour les unités vectorielles et scalaires. AMD affirme avoir apporté un certain nombre de modifications pour améliorer l’efficacité de la CU, notamment l’ajout de la prise en charge native de FP16 (et Int16), un accès au cache optimisé et une meilleure prélecture des instructions. Au total, les changements sont censés produire jusqu’à 15 % de performances en plus par CU que le GPU Hawaï de la Radeon R9 290, qui est basé sur une architecture GCN de deuxième génération.
Neuf CU sont organisées en un Shader Engine, et Polaris 10 dispose de quatre de ces SE, conformément à ce que nous savons être le maximum de l’architecture. Le calcul (64 shaders * neuf CU * quatre SE) ajoute jusqu’à 2304 processeurs de flux et 144 unités de texture.
Chaque moteur de shader est associé à un moteur de géométrie, qu’AMD affirme améliorer en ajoutant un accélérateur de suppression de primitives pour lancer toute primitive qui ne sera pas rastérisée en un pixel avant la conversion de numérisation, augmentant ainsi le débit. Il s’agit d’une fonction automatique de l’étape de pré-rastérisation du pipeline graphique et qui est entièrement nouvelle pour Polaris. Il existe également un cache d’index pour la géométrie instanciée, bien que nous ne soyons pas sûrs de sa taille ou de l’importance de son impact lorsque l’instanciation est utilisée.
Semblable à Hawaï, Polaris 10 est capable de gérer jusqu’à quatre primitives par cycle d’horloge. Mais alors que les GPU basés à Hawaï/Grenade les plus rapides fonctionnent jusqu’à 1050 MHz (dans le cas du R9 390X), AMD pousse Radeon RX 480 à une fréquence d’horloge de base de 1120 MHz et une note « boost » de 1266 MHz, compensant une partie de ce il perd des ressources sur puce en utilisant des fréquences plus élevées. Alors que la Radeon R9 290X offrait 5,6 TFLOPS de performances en virgule flottante simple précision, la RX 480 atteint jusqu’à 5,8 TFLOPS en utilisant cette spécification « boost ».
À quel point le nombre de 1266 MHz est-il réaliste ? Hawaï avait un très gros problème pour maintenir les spécifications de fréquence d’horloge d’AMD alors qu’il faisait chaud, et nous voulions nous assurer que le même comportement n’affecte pas Polaris. En utilisant Metro: le benchmark intégré de Last Light Redux bouclé 10 fois, nous avons enregistré les fréquences à l’aide de GPU-Z et avons obtenu le graphique suivant :
Il y a exactement 148 MHz entre les points les plus bas et les plus élevés de ce graphique linéaire. Le plancher est de 1118 MHz et le plafond est de 1265 MHz. Nous dirions qu’AMD cloue sa base et améliore ses notes presque exactement, même si ce qui se passe entre les deux est soumis à un ajustement constant. Au moins une moyenne de 1208 MHz est plus proche du haut que du bas.
Les SE d’Hawaï et de Fidji ont chacun quatre back-ends de rendu, capables de 16 pixels par horloge (ou 64 sur le GPU). Polaris 10 réduit ce chiffre de moitié. Deux back-ends de rendu par SE, chacun avec quatre ROP, totalisent 32 pixels par horloge. Il s’agit d’une réduction significative par rapport à la Radeon R9 290 basée à Hawaï qu’AMD doit battre avec son RX 480. Pour compliquer les choses, Polaris 10 utilise un bus mémoire de 256 bits, beaucoup plus étroit que le chemin global de 512 bits d’Hawaï. Une version 4 Go de Radeon RX 480 comprendra 7 Gb/s GDDR5, permettant 224 Go/s de bande passante, tandis que le modèle 8 Go que nous testons aujourd’hui utilise une mémoire de 8 Gb/s, augmentant le débit à 256 Go/s. Pourtant, c’est beaucoup moins que les 320 Go/s du R9 290.
Une partie du déficit est compensée par une meilleure compression delta des couleurs, qui réduit la quantité d’informations transférées sur le bus. AMD prend désormais en charge les rapports sans perte 2/4/8:1, similaires à l’architecture Pascal de Nvidia. Polaris 10 bénéficie également du plus grand cache L2 de 2 Mo vu pour la première fois aux Fidji. Cela peut aider à rappeler les déplacements vers GDDR5, réduisant encore la dépendance du GPU à un bus large et à des débits de données élevés.
Pourtant, l’inclinaison du back-end du GPU doit avoir un impact sur les performances à mesure que la résolution et l’utilisation de l’anti-aliasing augmentent. Curieux de savoir comment Polaris se compare à Hawaï alors que la charge de travail s’intensifie, nous avons lancé Grand Theft Auto V à un modeste 1920×1080 avec des paramètres de détail très élevés, puis avons commencé à augmenter l’anti-aliasing.
Effectivement, vous pouvez voir la Radeon RX 480 saigner de la fréquence d’images moyenne beaucoup plus rapidement que la R9 390 car MSAA est basculé de Off à 2x à 4x. Avec AA désactivé, le 480 atteint 97,3 FPS contre 90,4 pour le 390. Mais à la fin, la Radeon RX 480 d’AMD est tombée à 57,5 images par seconde tandis que la 390 affiche une moyenne de 62,9.