Plus ca va, moins je comprend leur architecture. Se cacher derrière des mots techniques pur marketing qui veulent souvent rien dire, c'est vraiment petit! Enfin, le commun des mortels dira, ouahou, ils savent de quoi ils parlent...
Bref...
Donc si je comprend bien, on a 16 multiprocesseurs (appellés SM). Chaque SM possède 4 unités
Tex (j'invente le mot que je veux!

) et 32 cores (appelés aussi SP ou core CUDA si j'ai tout suivi). Chaque unité Tex est composé d'une unité de texturing et une unité de filtering. Et d'après le schéma, NV aurait apparemment trouvé comment on fait une unité en virgule flottante (noté FP) et une arthmétique et logique (noté INT, très grossier à mon gout). Ces unités semblent donc génériques. Donc NV ferait bien du 1 way.
Jusque la pas de problème, on retrouve nos petits :
16 SM * 32 cores = 512 unités Shaders 1 way
4 Tex * 16 SM = 64 unités Texturing et autant de filtering.
Chaque SM est composé d'un polymorph engine soit un total de 16.
C'est la que ca se complique :
Toute la partie qui concerne le traitement des vertices/triangles prend place dans le Polymorph Engine qui prend place lui-même dans chaque SM. Globalement cela revient à placer une multitude de petites unités au lieu d’une plus grosse. Au niveau des débits théoriques du Polymorph Engine, nous ne savons pas s’il y a un gain par rapport à la solution précédente. Par contre cela permet de paralléliser ces tâches et plus particulièrement la tessellation qui fait son apparition dans ce Polymorph Engine. A ce sujet, Nvidia nous a précisé qu’elle était effectuée dans un bloc d’unités dédiées et non dans les unités d’exécutions globales du SM. Notez cependant que la tessellation en elle-même est une tâche très simple.
Magré les explications suivantes d'HFR sur ce sujet, j'avoue ne pas comprendre à quoi peut bien servir le polymorph engine. Pour moi il s'agirait en fait d'un vulgaire controleur permettant de paralléliser les taches à effectuer. Cependant, NV précise que la tessellation est effectuée dans des unités dédiées, alors que le GPU possède des unités shaders génériques. Si le polymorph engine est un controleur, alors je pense que c'est une erreur d'architecture que d'intégrer des unités spécifiques dedans.
Pour moi, la question, c'est qu'est ce que NV cache dans son "core CUDA" ?est ce qu'un core CUDA est réellement générique ? Si ca l'est, qu'est ce qui justifie l'intégration d'unités dédiées à la tessellation (calcul mathématique pur) ? Dans le cas ou la réponse est parallélisation de taches, les cores CUDA sont ils suffisament parallélisés pour effectuer plusieurs calculs à la fois (autre que la Tessellation) ?
Bref, y'a tellement de question que je ne suis pas d'accord quant à dire :
Nvidia emprunte le chemin d'ATI en réduisant le nombre d'unités mais en améliorant l'efficacité