Se connecter avec
S'enregistrer | Connectez-vous

Dual Scheduler, unités de texture

GeForce GTX 480 et 470 : révélation ou déception ?
Par , Chris Angelini

Dual Scheduler

Depuis l'apparition du G80 NVIDIA affirme que ses multiprocesseurs sont capables d'exécuter deux instructions par cycle dans certaines circonstances : un MUL et un MAD, cette capacité était impossible à isoler sur les premières versions de l'architecture et même sur le GT200 elle restait particulièrement délicate à mettre en avant. En pratique le fameux dual-issue tant vanté par NVIDIA n'était pas observable et le chip ne pouvait exécuter qu'un MAD par cycle.

Tout ceci n'a plus beaucoup d'importance car aujourd'hui NVIDIA propose avec le GF100 deux schedulers permettant l'exécution de deux instructions par cycle et sans les contraintes qui bridaient ses architectures précédentes. Comme nous l'avons vu, les 32 unités de calcul de chaque multiprocesseur sont en fait arrangées en deux groupes de 16 unités et chacun de ces groupes peut exécuter une instruction indépendante. L'histoire des CPU récents nous a prouvé que l'exécution superscalaire est particulièrement complexe à mettre en oeuvre mais NVIDIA dispose d'un avantage de taille à ce niveau : le GF100 ne tente pas d'extraire du parallélisme d'un seul flux d'instructions, avec tous les aléas que ça implique. Le multiprocesseur sélectionne en fait deux warps et lance l'exécution d'une instruction de chacun d'entre eux sur les unités SIMD. Les warps étant totalement indépendants ils peuvent être exécutés en parallèle sans aucun risque.

La plupart des instructions peuvent être exécutés simultanément qu'il s'agisse d'instructions de calculs FP32, d’entiers ou de chargement/rangement. La seule exception à la règle concerne les instructions de calculs double précision qui réquisitionnent l'ensemble des 32 unités de calculs et ne peuvent être exécutées simultanément avec aucun autre type d'instructions.

Unités de texture

Si le nombre d'unités de textures a diminué, NVIDIA a profité de sa nouvelle architecture pour revoir complètement leur design afin d'améliorer leurs performances. Comme nous l'avons indiqué ces dernières sont désormais intégrées aux multiprocesseurs ce qui évite de devoir les partager entre plusieurs multiprocesseurs avec toutes les pertes d'efficacité que cela implique. Le cache de niveau 1 dédié aux unités de texture a également été revu, même si sa taille reste inchangé par rapport au GT200 (12Ko) NVIDIA annonce que celui-ci est désormais nettement plus efficace. Enfin les unités de texture sont désormais cadencées à la fréquence du GPU alors qu'auparavant elles fonctionnaient dans un domaine de fréquence plus faible.

Résultat : sur ce test qui mesure les performances d’accès aux textures (utile pour le displacement mapping notamment), la GeForce GTX 480 s’avère 75 % plus efficace que la GTX 280.

Évidemment les nouvelles unités supportent les nouveaux formats de compression BC6H et BC7H ainsi que les instructions de Gather requises par Direct3D 11. Au final les performances augmentent bel et bien avec des pixel shaders plus contemporains, même s’il s’agit plus d’un rattrapage à ce niveau…