EN DIRECT 2498 connexion / inscription
Connexion

Surnom/Pseudo
Mot de Passe :

[ Vous avez perdu votre mot de pass ? | Devenir membre ]

×

Démystifions les TFLOPS

Aller à la page : 12  
CowcotLand topic RSS feed Surveiller les réponses de ce sujet
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 11:28:04  Lien permanent
Répondre en citant
(Avant toute choses, si ce topic n'est pas au bon endroit, merci de m'indiquer où je devrais le mettre, pas facile de s'y retrouver sur CCL pour ce genre de sujet)

Salut à tous !

A force de lire quantité d’articles et autres commentaires, je m’aperçois qu’il y a d’énorme confusions sur les Tflops. Une unité de puissance pour les processeurs et les carte graphiques (ou plus globalement, n’importe quelle puce pouvait faire des calculs en FLOPS).

FLOPS veut dire FLoating Operation Per Second. Ou en français, opération en virgule flottante par seconde.

Déjà ce qu’il faut comprendre, c’est que les flops ne représentent qu’un seul type d’opération. Or nos composant informatique ne font pas que des flops, ils font bien d’autre choses, comme par exemple des calculs sur les entiers qu’on appelle IPS (Integer Per Second) à ne pas confondre avec l’acronyme français Image Par Seconde. Mais il y a bien sur quantité d’autre opérations.

Petite liste non exhaustive :

- FP64
- FP32
- FP16
- INT32
- INT8
- INT4
- Rays cast (Giga Rays/Sec)

Dans la majorité des cas, on va parler de Flops. Tout simplement parce qu’il s’agit de l’instruction la plus utilisée dans une majorité de cas. Surtout pour les graphismes. Seules les opérations en virgule flottante ont la précision nécessaire pour servir dans les environnements 3D.

Vous souvenez-vous de la PlayStation première du nom ? Dans les jeux 3D de la PS1, les textures scintillent, les objets 3D ont parfois l’air d’avoir la tremblote et d’autre glitch de ce genre. Ces artefacts graphiques sont liés au fait que la PS1 ne possède pas de FPU. D’unité d’exécution capable de réaliser des opérations en virgule flottante. La PS1 ne gère que des entiers. Si un objet dans le jeu se déplace de la position 1.2 à la position 2.6 et revient à la position 1.5. A l’écran la PS1 va calculer les position 1, 3 et 2 car les nombres à virgules sont arrondis. C’est ce qui cause ces glitchs.

Avec des nombres à virgule flottante, on peut gérer ce genre de cas. La majorité des environnements graphiques aujourd’hui (jeux, logiciels de 3D etc…) utilisent les opérations FP32. Les FP16 ont parfois quelques limitations, les FP32 sont parfaite pour 99% des cas. Les opérations FP64 sont très rares et ne s’utilisent uniquement quand on a besoin d’une précision extrême, par exemple dans le médicale ou des simulations scientifiques (particules, espace, tout ça…).

Bref, pour le commun des mortels ce sera massivement FP32. Nos cartes graphiques sont donc conçues pour avoir le maximum de performances pour ces opérations FP32.

C’est ainsi que les services marketing des différentes marques (Nvidia, ATI/AMD, Intel etc…) ont utilisé la quantité de flops afin de désigner une « puissance » pour leurs cartes. C’est un chiffre qui « parle » au consommateur puisque basiquement : plus le chiffre est élevé, plus la carte graphique est puissante.
Mais ça, c’est dans le monde des bisounours. La réalité est beaucoup plus complexe que ça.

Les Tflops de nos cartes graphiques, ne représente pas la puissance de celle-ci. Cela ne représente que leur capacité dans un cas très précis, à savoir une charge de travail composée à 100% d’opération FP32. Un cas qui n’arrive quasiment jamais.

Ensuite entre les différentes marques, par exemple Nvidia et AMD, les architectures des GPU sont très différente !

C’est pour cela que l’on ne peut pas comparer les cartes entre elle en se basant uniquement sur les Tflops.

Comparons les deux dernières architectures en date. Turing côté Nvidia et RDNA 1.0 côté AMD.

Déjà la conception des deux architectures est totalement différente. Nvidia a fait le choix de plusieurs types d’unités de calcul pour gérer plusieurs types d’opérations. AMD a choisi un seul type d’unité pour gérer n’importe quelle opération.

Côté Nvidia Turing nous avons le découpage suivant : 64 unités FP32 (qui peuvent se splitter pour gérer deux instructions FP16) + 64 unités INT32 (apparemment celle-ci ne peuvent pas se splitter). Donc pendant que les unités FP32 travaillent, les unités INT32 travaillent aussi !

Côté AMD RDNA 1.0 c’est complètement différent. Nous avons des unités dit « SIMD » soit Single Input Multiple Data. Ces unités peuvent à loisir faire des opération FP32, FP16, INT32, INT16, INT8 et INT4. Et peuvent se splitter autant de fois que nécessaire (par 2, par 4 ou par 8 ). Les unités sont communes aux différents types d'opérations.

Donc si 64 opérations FP32 sont balancés dans le GPU, et qu’il y a d’autres opérations INT32 qui sont aussi balancés, il n’y aura pas de place pour tout le monde. Il va falloir faire un choix et traiter les opérations par ordre de priorité.

Donc quand AMD nous dit que sa carte fait 9 Tflops, c’est 9 dans un cas très précis soit uniquement des opérations FP32. Si il y a plusieurs types d’opérations en même temps, les Tflops réel ne seront peut-être que de 6 Tflops ou 4 Tflops etc… Mais dans le même temps si la carte fait 6 Tflops (FP32) à un instant T ça veut dire quelle fait aussi 3 TIPS (INT32).

Chez Nvidia, par exemple une RTX2080 Ti, nous avons techniquement 14 Tflops + 14 TIPS. Cependant les unités Load/Store (qui se chargent d’écrire ou lire dans les registres) sont commune aux deux types d’unités. Du coup il y a un goulot d’étranglement ici. Nvidia a fait le choix de faire en sorte que les opérations FP32 soient prioritaire sur les opérations INT32. (ce qui fait du sens puisque pour les jeux il y aura très souvent plus d’opération FP32 que du reste). Donc sur 100 opérations FP32 calculé, seulement 36 opérations INT32 sont calculés. Ce qui fait en réalité plutôt 5 TIPS et non 14 TIPS.

Bref, les choix d’architecture des concepteurs de cartes graphiques influence directement sur les performances et sur la manière de prendre en charge ces fameux FLOPS. Actuellement pour qu’une carte AMD RDNA soit aussi performante qu’une carte Nvidia Turing, il faut que la carte AMD possède beaucoup plus d’unités de calculs. Donc théoriquement beaucoup plus de TFLOPS. Le ratio actuel est d’environ 1,1 entre RDNA et Turing en termes d’unités de calculs. Si AMD voulait faire une carte graphique à peu près équivalente à une RTX2080 Ti, il lui faudrait une carte avec 4787 unités de calculs. Il faudrait donc environ 18 TFLOPS RDNA pour être équivalent à 14 TFLOPS Turing.


Abordons le cas Console : Tout comme les cartes graphiques, les consoles ne peuvent pas être comparés directement, si elles sont d'architecture différentes. Dans le cas des Xbox One, One S, One X et Playstation 4 et 4 Pro, elles utilisent toute la même architecture ! Du coup, on peut parfaitement les comparer. Ce que les services marketing de Sony et Microsoft ce sont empressé de faire afin de savoir kikalaplusgrosse.

Ce sera toujours le cas des prochaines Scarlett et PS5 vu qu'elles auront une fois de plus une architecture identique.

Les smartphones, eux, sont exactement dans le même cas que nos carte graphiques de PC. Les FLOPS d'une puce Adreno de Qualcomm ne peuvent pas être comparé directement aux puces Imagination Technology ou ARM Mali.

Dans le cas des supercalculateurs, la comparaison en terme de flops est beaucoup plus facile car beaucoup de calcul qui sont fait porte souvent sur un seul type d'opération (d'ailleurs les super calculateurs sont aussi testé en FP32 alors que bien souvent ce sont des opérations FP64 qui sont utilisé).


Voilà, voilà. Déjà, si vous êtes arrivé à la fin de ce pavé félicitations ! Ensuite, j'espère que cela vous aura éclairé un peu plus sur ces fameux FLOPS qui ne sont pas le saint Graal vanté par le marketing.
Voir le profil de l'utilisateur Envoyer un message privé
SuunaZ
Ouvrier agricole
Ouvrier agricole

426pts

Inscrit le: 08 août 2019
Messages: 267

Navigateur : n.c.

Hors ligne
Message Posté le: Mercredi 23 Oct 2019 à 11:45:47  Lien permanent
Répondre en citant
Très intéressant ! Merci de tes lumières !
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur » Album Photos
fatfreddy
Ouvrier agricole
Ouvrier agricole

405pts

Inscrit le: 05 novembre 2018
Messages: 259

Navigateur : n.c.

Hors ligne
Message Posté le: Mercredi 23 Oct 2019 à 11:48:07  Lien permanent
Répondre en citant
Du coup si j'ai bien suivit les Flops maximum théorique sont limités par la compatibilité de l'architectures des unités de calcul avec l'exploitation soft qui en ait fait ?
Voir le profil de l'utilisateur Envoyer un message privé
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 11:55:15  Lien permanent
Répondre en citant
Tout à fait !

D'ailleurs il faut savoir que les jeux eux-mêmes ne demandent en moyenne que 4 a 6 TOPS (là je parle d'opérations de tout type pas seulement des FLOPS)
Voir le profil de l'utilisateur Envoyer un message privé
funkydata
Agriculteur
Agriculteur

2091pts

Inscrit le: 12 septembre 2014
Age: 40
Messages: 1328

Navigateur : Chrome

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 11:56:44  Lien permanent
Répondre en citant
Bon résumé mais tu oublies le retour en grâce des FP16 qui ont été ré-introduit par tout les constructeurs (Turing, Vega, Intel Gen-8 ) après leur pseudos abandon (hors plateformes mobiles où il a toujours été massivement utilisé). Il y a des avantages réels à utiliser cette précision, le FP32 n'étant pas forcément adapté ou optimisé pour toutes les tâches.
Voir le profil de l'utilisateur Envoyer un message privé
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 12:01:02  Lien permanent
Répondre en citant
Oui tu as raison. D'ailleurs le FP16 est ce qui va être de plus en plus utilisée pour le Ray tracing (puisque de toute façon le RT génère une image bruité on a pas besoin d'être super précis).

Mais le marketing parle systématiquement de Flops en FP32. Que ce soit pour les CG, les consoles, les supercalculateurs etc...

Donc c'est pour ça que j'ai orienté mon mini dossier la dessus.
Voir le profil de l'utilisateur Envoyer un message privé
gautierS
Métayer
Métayer

2659pts

Inscrit le: 16 juillet 2018
Age: 25
Messages: 1114

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 12:03:09  Lien permanent
Répondre en citant
Du coup pour une carte AMD, le gas qui envoie les instruction doit les prioriser et optimiser cette priorisation, intéressant !

Cela explique aussi pourquoi les carte AMD envoie plus fort en calcule pure et dure puisque plus de "Tflop" et un seul type de calcule à faire.
Voir le profil de l'utilisateur Envoyer un message privé
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 12:11:23  Lien permanent
Répondre en citant
C'est exactement ça. C'est pour ça que les cartes AMD sont très prisé pour la cryptomonnaie.

Moins il y a de type d'opération plus la carte sera performante et inversement.

C'est le contrecoup du choix d'AMD. Faire des cartes aussi performante en gpgpu qu'en jeux.
Voir le profil de l'utilisateur Envoyer un message privé
funkydata
Agriculteur
Agriculteur

2091pts

Inscrit le: 12 septembre 2014
Age: 40
Messages: 1328

Navigateur : Chrome

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 12:40:26  Lien permanent
Répondre en citant
Je pense pas qu'ils aient réellement eu le choix en fait.

Faire une archi full modulaire est peut-être leur seule option pour lutter avec NV. S'ils avaient sorti une archi plus singulière trop peu de devs l'auraient prise en compte. Ils n'ont pas le poids nécessaire pour l'imposer et les devs auraient continué à se calquer sur celle de NV.

Finalement le full modulaire à mon sens était un choix presque imposé compte tenu du rapport de force même si évidemment ce n'est pas l'idéal.
Voir le profil de l'utilisateur Envoyer un message privé
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 12:53:58  Lien permanent
Répondre en citant
Ça peut aussi être une très bonne chose. Mais ça demande de multiplier en masse la quantité d'unité pour concurrencer Nvidia. Et là, la conso de la carte va repartir à la hausse...
Voir le profil de l'utilisateur Envoyer un message privé
Ideal
Saisonnier
Saisonnier

121pts

Inscrit le: 04 juillet 2019
Messages: 34

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 13:21:56  Lien permanent
Répondre en citant
Eykxas a écrit:
(Avant toute choses, si ce topic n'est pas au bon endroit, merci de m'indiquer où je devrais le mettre, pas facile de s'y retrouver sur CCL pour ce genre de sujet)
Salut à tous !
Côté Nvidia Turing nous avons le découpage suivant : 64 unités FP32 (qui peuvent se splitter pour gérer deux instructions FP16) + 64 unités INT32 (apparemment celle-ci ne peuvent pas se splitter). Donc pendant que les unités FP32 travaillent, les unités INT32 travaillent aussi !

Côté AMD RDNA 1.0 c’est complètement différent. Nous avons des unités dit « SIMD » soit Single Input Multiple Data. Ces unités peuvent à loisir faire des opération FP32, FP16, INT32, INT16, INT8 et INT4. Et peuvent se splitter autant de fois que nécessaire (par 2, par 4 ou par 8 ). Les unités sont communes aux différents types d'opérations.

Donc si 64 opérations FP32 sont balancés dans le GPU, et qu’il y a d’autres opérations INT32 qui sont aussi balancés, il n’y aura pas de place pour tout le monde. Il va falloir faire un choix et traiter les opérations par ordre de priorité.

Chez Nvidia, par exemple une RTX2080 Ti, nous avons techniquement 14 Tflops + 14 TIPS. Cependant les unités Load/Store (qui se chargent d’écrire ou lire dans les registres) sont commune aux deux types d’unités. Du coup il y a un goulot d’étranglement ici. Nvidia a fait le choix de faire en sorte que les opérations FP32 soient prioritaire sur les opérations INT32. (ce qui fait du sens puisque pour les jeux il y aura très souvent plus d’opération FP32 que du reste). Donc sur 100 opérations FP32 calculé, seulement 36 opérations INT32 sont calculés. Ce qui fait en réalité plutôt 5 TIPS et non 14 TIPS.

Bref, les choix d’architecture des concepteurs de cartes graphiques influence directement sur les performances et sur la manière de prendre en charge ces fameux FLOPS. Actuellement pour qu’une carte AMD RDNA soit aussi performante qu’une carte Nvidia Turing, il faut que la carte AMD possède beaucoup plus d’unités de calculs. Donc théoriquement beaucoup plus de TFLOPS. Le ratio actuel est d’environ 1,1 entre RDNA et Turing en termes d’unités de calculs. Si AMD voulait faire une carte graphique à peu près équivalente à une RTX2080 Ti, il lui faudrait une carte avec 4787 unités de calculs. Il faudrait donc environ 18 TFLOPS RDNA pour être équivalent à 14 TFLOPS Turing.

Déjà merci et bravo pour ce récapitulatif vachement instructif. Et merci a Noim d' en avoir lancé à son insu la petite graine.
Juste pour revenir à la comparaison AMD / NVidia niveau Tflops et Tips comme quoi:
Citation:
Il faudrait donc environ 18 TFLOPS RDNA pour être équivalent à 14 TFLOPS Turing.
Si je suis la logique et que j'ai a peu près compris pour vraiment bien comparé AMD/Nvidia et dans un cas + réaliste que le full FP32, il faudrait plutôt dire
Citation:
Il faudrait donc environ 18 TFLOPS RDNA pour être équivalent à 14 TFLOPS + 5TIPS Turing.
Non?
Voir le profil de l'utilisateur Envoyer un message privé
Eykxas
Ouvrier agricole
Ouvrier agricole

387pts

Inscrit le: 23 juillet 2019
Messages: 121

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 13:26:42  Lien permanent
Répondre en citant
Oui effectivement j'aurais du préciser ça.
Voir le profil de l'utilisateur Envoyer un message privé
Aogryns
Ouvrier agricole
Ouvrier agricole

298pts

Inscrit le: 24 janvier 2019
Age: 27
Messages: 149
Localisation: Grenoble
Navigateur : Firefox

Hors ligne
Message Posté le: Mercredi 23 Oct 2019 à 13:35:57  Lien permanent
Répondre en citant
Super intéressant ton "pavé" Très content . J'y vois plus clair maintenant.
Du coup, ça veut dire que les différentes API (DX11-12 et vulkan) n'utilisent pas de la même manière les instructions ? (si ce n'est pas hors sujet)
Voir le profil de l'utilisateur Envoyer un message privé
Ideal
Saisonnier
Saisonnier

121pts

Inscrit le: 04 juillet 2019
Messages: 34

Navigateur : n.c.

En ligne
Message Posté le: Mercredi 23 Oct 2019 à 13:41:57  Lien permanent
Répondre en citant
Eykxas a écrit:
Oui effectivement j'aurais du préciser ça.
Du coup ça rend l'archi d'AMD moins faiblarde en apparence, moins polyvalente certes mais loin d'être stupide comme un 18 TFLOPS AMD = 14 TFLOPS Nvidia le laisserait présager.
Vraiment intéressant leurs deux approches.

Sinon toi qui a l'air de toucher ta bille dans le domaine, je voulais te demander si ptet tu pouvais m'expliquer au niveau des TFLOPS/TIPS ou ptet niveau de l'archi le revirement d'AMD avec RDNA par rapport à GCN polaris et previous.

Qui expliquerait pourquoi RDNA à en même temps gagné en efficacité gaming tout en sacrifiant de leur efficacité en compute (selon les retours que j'ai pu voir mais que j'ai pas expérimenté). Concrètement c'est dû à quoi si t'es au parfum . Question
Voir le profil de l'utilisateur Envoyer un message privé
konarovic
Ouvrier agricole
Ouvrier agricole

311pts

Inscrit le: 16 juin 2012
Age: 33
Messages: 140
Localisation: issy les moulineaux
Navigateur : Chrome

Hors ligne
Message Posté le: Mercredi 23 Oct 2019 à 13:57:37  Lien permanent
Répondre en citant
très intéressant
Voir le profil de l'utilisateur Envoyer un message privé
Aller à la page : 12  
Sauter vers: 
Surveiller les réponses de ce sujet CowcotLand topic RSS feed  

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum