NVIDIA GeForce GTX 680 : la réponse au Radeon HD 7970 ?

Par
Le 22 mars 2012
 0

Kepler : Fermi passe la seconde !


L'architecture Kepler est, et NVIDIA ne s'en cache pas, une évolution de Fermi. Lorsqu'en 2010, NVIDIA lançait l'architecture Fermi, la firme allait dans le sens d'un plus grand parallélisme et ce, y compris pour les tâches géométriques comme la tesselation ou le displacement mapping. Fermi était également l'occasion pour NVIDIA de faire progresser les capacités de sa puce en matière de calcul généraliste, notamment via des changements de contexte plus rapides. Le but numéro un ayant présidé à la conception de Kepler aura été d'optimiser le fameux ratio performance par watt en faisant en sorte que l'architecture délivre le maximum de performances pour une consommation la plus faible possible.

En s'attardant sur l'architecture Kepler à un haut niveau, on observe un découpage similaire à Fermi. On retrouve en effet une puce toujours organisée selon quatre GPC ou Graphics Processing Cluster, chaque GPC contenant diverses unités spécialisées.

01ef000005050986-photo-geforce-gtx-680-block-diagram.jpg

Diagramme de l'architecture Kepler


Si la notion de GPC perdure, chaque GPC étant toujours dotée de son propre moteur de rasterisation, l'agencement évolue. Avec Fermi, on retrouvait dans chaque GPC quatre blocs dits SM ou Streaming Multiprocessors, contenant nos fameux cœurs CUDA. Avec Kepler, la notion de SM évolue pour devenir SMX. Le bloc SMX renferme toujours les cœurs d'exécution CUDA amenés à travailler sur nos instructions de shading et tandis que Fermi comptait quatre SM par GPC, Kepler fait avec deux SMX par GPC.

Il s'agit ici avant tout de réorganiser les ressources de calcul de la puce en vue d'optimiser le rendement de l'architecture puisque s'ils sont moins nombreux, les blocs SMX sont évidemment plus garnis en unités de calcul. Rappelons du reste qu'un bloc SMX (comme un SM en son temps) renferme tout à la fois les cœurs CUDA, mais également le moteur géométrique ou encore nos unités de texture. Un simple bloc SMX peut donc travailler aussi bien sur des pixels, des textures, des calculs génériques ou même des simulations de rendu physique.

010e000005050988-photo-geforce-gtx-680-block-diagram-smx.jpg

Gros plan sur un SMX


Dans sa version la plus évoluée, l'architecture Kepler, qui est dorénavant compatible DirectX 11.1, peut proposer jusqu'à 192 coeurs CUDA par SMX contre 32 pour les SM de Fermi. La contrepartie, car contrepartie il y a bel et bien, c'est que NVIDIA abandonne le système de double cadencement de ses précédentes GeForce. Souvenez-vous avec le GeForce GTX 480 par exemple, l'ensemble des blocs de la puce graphique opérait à une fréquence de base, mais cette fréquence était deux fois supérieure pour les unités de calcul CUDA. Cela avait pu conférer un avantage certain au caméléon à l'époque du G80 et consorts, mais depuis cela s'était peut-être transformé en handicap flagrant notamment en terme de consommation ou d'efficacité énergétique.

01b3000005051034-photo-geforce-gtx-680-clocks.jpg

Changement au niveau des domaines de fréquence de Kepler


Du coup grâce à cet artifice, NVIDIA réussit à proposer plus de cœurs CUDA tout en ne faisant pas exploser la consommation améliorant ainsi mécaniquement le ratio performance par watt. NVIDIA table ici sur un rapport performance par watt deux fois supérieur à Fermi.

Kepler plus en détails


Avec 192 noyaux CUDA par SMX et un total de huit SMX pour la puce, NVIDIA peut se vanter d'aligner la bagatelle de 1 536 noyaux CUDA dans sa GeForce GTX 680. Tout de même. En terme d'efficacité, NVIDIA dit avoir à minima maintenu le débit des opérations mathématiques par cycle d'horloge face au GeForce GTX 580, alors qu'il a été amélioré pour certaines opérations clés (FMA32, opérations prises en charge par les SFU ou Special Function Unit, etc). Pour soutenir nos unités CUDA, la puce propose toujours deux niveaux de mémoire cache. Chaque SMX dispose ainsi de 64 Ko de mémoire partagée, alors que la puce est dotée d'un second niveau de mémoire cache. On retrouve ainsi 512 Ko de mémoire cache L2, avec un débit revu à la hausse par rapport à Fermi.

Pour piloter tout ce petit monde, chaque SMX embarque quatre schedulers, chacun capable d'envoyer deux instructions par cycle d'horloge et par warp. Le concept des schedulers n'est pas nouveau puisqu'il permet de s'assurer de la pleine utilisation des unités de calcul en répartissant la charge de travail au mieux entre celles-ci. En revanche, ce qui est nouveau, c'est l'optimisation apportée par NVIDIA, toujours dans un but de meilleure efficacité énergétique.

01b3000005051006-photo-geforce-gtx-680-scheduling.jpg

Des changements au niveau du scheduling


Concrètement, certaines unités matérielles présentes au cœur de Fermi ont été rationalisées avec Kepler. Elle servaient notamment à identifier les instructions prêtes en fonction de leurs dépendances. C'est maintenant le compilateur qui va déterminer en amont quand les instructions seront effectivement prêtes, ce qui se traduit au niveau de la puce par la suppression de divers blocs matériels complexes et gourmands en énergie. Kepler ne comporte plus qu'un seul bloc matériel en charge d'extraire les informations prédéterminées au niveau des temps de latence pour déterminer l'éligibilité des flux de données à traiter. La conséquence de ce changement, c'est que le compilateur des pilotes NVIDIA pourra probablement faire l'objet d'optimisations dans les semaines et mois à venir avec une incidence directe sur les performances.
Modifié le 01/06/2018 à 15h36

Les dernières actualités Cartes graphiques NVIDIA

scroll top