COMPTOIR
register

×

Diagramme logique de la Gen11

Processeur graphique Intel Gen11 : le point architectural
Diagramme logique de la Gen11

Pour continuer dans notre série de dissections des entrailles de bouzins à base de transistors, voici venue la version GPU (n'espérez pas en avoir régulièrement, ces analyses sont conditionnées au bon vouloir des whitepapers des firmes), avec une sympathique communication de la part d'Intel sur sa future Gen11. Pour rappel, cet iGPU est prévu pour seconder les CPU Ice Lake, au moins dans certaines gammes. Certes, cela ressemble davantage à un pré-paper launch du fait d'une production en 10 nm incertaine, mais a au moins le mérite de clarifier le contenu du futur produit.

 

Commençons par les bases : un GPU et, comme un CPU, composé de cœurs généralistes, c'est-à-dire capables d'effectuer les opérations arithmétiques de base (addition, multiplication, etc, sur des entiers et des flottants) et de la logique booléenne (branchement, ou logique, et logique). Si vous n'avez rien bité, pas de souci : en un mot, un GPU peut théoriquement lancer n'importe quel programme. Mais, au contraire des CPU, les cœurs GPU sont optimisés pour prendre le moins d'espace possible : ils sont ainsi de type in-order (ils exécutent exactement le code qu'on leur donne, dans l'ordre, instruction par instruction), ce qui permet d'en caser un nombre faramineux (4352 pour une RTX 2080 Ti, 3840 pour une Radeon VII et... 64 dans notre Gen11, nous verrons pourquoi juste après. Avec une telle optimisation de place, la parallélisation est totalement différente : tous les cœurs d'un même groupe logique (dépendant de l'architecture) exécutent en règle générale peu ou prou la même séquence d'instructions : il faut donc des calculs très homogènes pour obtenir des performances décentes. Comment cela se concrétise-t-il ? Hé bien, si vous devez calculer une déformation de texture, c'est très rapide, car chaque pixel de l'image finale correspond à un morceau de l'image original, mais tous sont transformés de la même manière. À l'inverse, pour du Ray Tracing, il est plus difficile d'exprimer du parallélisme lorsqu'il s'agit de déterminer quel rayon frappe quel objet : en fonction du rayon, celui-ci peut s'arrêter très tôt, rebondir directement ou, au contraire, se perdre à l'infini. Donc, pour deux rayons, la suite de calculs est très variable, c'est pourquoi il est difficile de trouver une formulation efficace du problème sur GPU.

 

Retour maintenant à notre Gen11. Ce dernier est réparti en plusieurs niveaux : les 64 Execution Units sont rassemblées en 8 SubSlices (disons, "sous-tranches" en français), elles-mêmes formant une Slice (tranche) complète. Le tout est relié à la partie CPU par un anneau (Ring), qui se charge aussi de la communication entre les cœurs et la liaison avec le cache L3 du CPU (qui peut être utilisé par le GPU, bien que ce dernier possède son propre L3 privé. Ce design n'est pas optimal pour un grand nombre de cœurs - d'où le mesh sur le Scalable Platform - mais offre des performances satisfaisantes sur des "petites" puces à 8 cœurs physiques ou moins. On notera par ailleurs le changement de dénomination d'Intel, qui passe de "CPU" à "SoC" (System-on-Chip) : si cela est parfaitement correct techniquement, voilà une belle manière de mettre l'emphase sur le fait qu'Ice Lake ne sert pas qu'aux calculs génériques.

 

Diagramme logique de la Gen11 [cliquer pour agrandir]

Le diagramme complet de la Gen11

 

Commençons notre dissection par le plus général : ce qui est commun à toute la slice. On retrouve le contrôleur d'affichage (mis à jour pour l'occasion avec le support des écrans HDR), qui est physiquement proche du contrôleur mémoire pour des raisons de bande passante ; mais aussi un L3 réservé aux données de 3 Mo. Ce n'est pas tout : du silicium dédié à la rastérisation (le fait de convertir les polygones à afficher en pixels), au choix de l'affichage ou non d'une texture en fonction de sa position physique selon une coordonnée (on parle de Z Buffer) et ce qui se rapproche le plus d'un ordonnanceur assignant aux threads une subslice, nommé Pixel Dispatch, sont également de la partie. Si chacun de ces petits bidules a évolué, il ne s'agit pas de changements structurels et pour cause : leur tâche est bien définie et bien plus simple que les autres étapes du rendu.

 

Au sein d'une subslice, les choses s'emmêlent un peu : un ordonnanceur est aussi de la partie pour répartir les instructions sur les EU et une petite zone mémoire de 64Ko nommée Shared Local Memory (SLM), partagée entre toutes les unités, est présente. Dans la pratique, celle-ci est utilisée principalement comme cache pour des données statiques, i.e. qui restent inchangées au cours de l'exécution du programme. C'est également à cette échelle que sont gérés les chargements de textures par le Texture Sampler, et l'unité de chargement mémoire, nommé Dataport, qui interagit directement avec le L3. Avec une unité pour 8 EU, on comprend qu'il vaut mieux que les cœurs travaillent tous sur des données proches en mémoire ! Quant au media sampler, il s'agit de fonctions prédéfinies servant essentiellement à intégrer des routines bas niveau pour du décodage matériel de flux vidéos comme du VP9, utilisé sur YouTube, ou du HEVC.

 

intel gen11 slm

Pour la mémoire comme l'écologie, privilégiez le local !

 

Et enfin, le plus croustillant : ces fameuses Execution Units. Surprises : elles ne sont pas si simples qu'attendues ! En effet chaque cœur comprend deux unités vectorielles étrangement nommées ALU (dans la terminologie CPU, cela correspond davantage au calcul entier...) capable de calculer sur 4 flottants 32-bit en parallèle, ou 8 valeurs en FP16. Sachant qu'il leur est aussi possible de faire des multiplications avec accumulation (plus et fois à la suite, aussi appelées FMA) en un cycle, cela donne 16 opérations flottantes par cycle par unité en FP32, et 32 en FP16. Instant matheux : 16 opérations x 64 cœurs x 1,1 GHz = 1126,4 GFLOPS soit un chouille plus du sacro-saint TFLOPS annoncé, youpi ! Pour maximiser l'utilisation de ces unités, les EU sont hyperthreadées - un moyen très probable pour Intel d'étaler son savoir-faire à ce niveau. Point de faille de sécurité, mais une gestion très simple des deux ALUs afin de maximiser leur utilisation en fonction de la charge de travail demandée par plusieurs threads simultanément. Et attention : il ne s'agit pas de deux threads par cœur comme un CPU, mais  de sept threads en même temps par EU !

 

intel gen11 eu

 

Terminons sur une note d'avenir : si cette Gen11 n'est pas de la famille Xe, il existe bien des blocs logiques qui seront commun, et cette architecture peu bien se prendre comme un avant-goût des solutions graphiques dédiées, dixit Raja Koduri lui-même. Quelles évolutions seront alors au programme ? Bien informé est celui qui pourra le déduire, mais nous voyons mal Intel rentrer en demi-teinte sur un nouveau segment comme celui-là. Encore faut-il que le processus de gravure soit, lui aussi, prêt... (Source des schémas et informations : Intel)

 

cdh raja koduri and jim keller hugs

Un poil avant ?

Les cartes mères X570 ne seront pas données !

Un peu plus tard ...

Et un benchmark PCIe 4.0 chez UL !

Les 16 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par radada, le Lundi 17 Juin 2019 à 18h18  
Ils jouent gros chez Intel.
Ils ont pas le droit a la ramasse.
Le jeu est finement calculer;la prochaine gen de cpu sera un cpu/gpu qui trou le cul a AMD/NVIDIA .
Il faut se méfier de l'eau qui dort ; surtout si cette dernière était un fleuve!!
J'imagine que c'est leur projet et que dans deux ans nous sommes tous a fond là-dessus
par Ideal, le Jeudi 13 Juin 2019 à 14h16  
Cool merci pour le retour, ça envie de voir la suite après tout une nouvelle archi c'est toujours cool dans un marché où il n'y a pu que 2 acteurs depuis 15 bientôt 20 ans.

Ils ont ptet un truc novateur carrément efficace qui demandera qu'à monter en puissance sur une ou deux générations... wait and see.
par Nicolas D. le Jeudi 13 Juin 2019 à 14h04
Je ne connaissais pas non plus (et d'une manière générale je connais peu les archi GPU, 'fin moins bien que les CPU) ; mais ça reste très proche : ils ont rajouté du cache et des unitée, mais je n'ai pas vu / ils n'ont pas vendu dans le whitepaper une évolution très en profondeur.
Justement, j'ai bien insisté auprès de Raja pour avoir plus d'information sur les similitudes à l'Arch Day ; et les seules réponses que j'ai eues étaient qu'il y aurait du commun, surtout au niveau du front-end (histoire de pas avoir à rechanger la base des drivers) ; mais pour le reste, motus et bouche cousus. J'imagine que les Fixed-Functions seront aussi très proches (comme dit dans la news, je ne crois pas que ça évolue massivement de ce côté !) ; par contre sur l'agencement interne tout est libre. Ils peuvent bien faire des coeurs plus gros avec un multithreading à 15 voies ou revenir à du plus standard, développer des unités matricielles, faire l'int en séparé du float, ... beaucoup de possibilités !
par Nicolas D., le Jeudi 13 Juin 2019 à 14h04  
par Ideal le Jeudi 13 Juin 2019 à 13h57
Tu penses que Xe sera totalement différent de ce genre d'archi? Ou il y aura des grosses similitudes?
Moi je dois dire qu'en voyant l'article je pensais que ça annonçait grosso modo la couleur de l'archi de Xe. Bon je connaissais pas du tout les IGP d'intel avant, qui eux doivent ressembler comme une goutte d'eau (en moins costaud) à ce GEN11 si je comprend bien ta mise en garde?
Je ne connaissais pas non plus (et d'une manière générale je connais peu les archi GPU, 'fin moins bien que les CPU) ; mais ça reste très proche : ils ont rajouté du cache et des unitée, mais je n'ai pas vu / ils n'ont pas vendu dans le whitepaper une évolution très en profondeur.
Justement, j'ai bien insisté auprès de Raja pour avoir plus d'information sur les similitudes à l'Arch Day ; et les seules réponses que j'ai eues étaient qu'il y aurait du commun, surtout au niveau du front-end (histoire de pas avoir à rechanger la base des drivers) ; mais pour le reste, motus et bouche cousus. J'imagine que les Fixed-Functions seront aussi très proches (comme dit dans la news, je ne crois pas que ça évolue massivement de ce côté !) ; par contre sur l'agencement interne tout est libre. Ils peuvent bien faire des coeurs plus gros avec un multithreading à 15 voies ou revenir à du plus standard, développer des unités matricielles, faire l'int en séparé du float, ... beaucoup de possibilités !
par Ideal, le Jeudi 13 Juin 2019 à 13h57  
Tu penses que Xe sera totalement différent de ce genre d'archi? Ou il y aura des grosses similitudes?
Moi je dois dire qu'en voyant l'article je pensais que ça annonçait grosso modo la couleur de l'archi de Xe. Bon je connaissais pas du tout les IGP d'intel avant, qui eux doivent ressembler comme une goutte d'eau (en moins costaud) à ce GEN11 si je comprend bien ta mise en garde?
par Nicolas D. le Mercredi 12 Juin 2019 à 21h20
Attention c'est Gen11 donc l'IGPU Ice Lake ici, pas Xe en carte dédiée, n'est-ce pas ? Il y aura très surement plus de 64 EU sur une carte PCIe, ou alors ils auront franchement soit inventés un truc révolutionnaire, soit bien bien biiieeenn merdé .
par Nicolas D., le Mercredi 12 Juin 2019 à 21h20  
Attention c'est Gen11 donc l'IGPU Ice Lake ici, pas Xe en carte dédiée, n'est-ce pas ? Il y aura très surement plus de 64 EU sur une carte PCIe, ou alors ils auront franchement soit inventés un truc révolutionnaire, soit bien bien biiieeenn merdé .
par Ideal, le Mercredi 12 Juin 2019 à 20h28  
Le truc c'est que quand les constructeurs leakent leurs futures archis ils le font avec l'archi complète tous cores actifs.
Du coup quand Nvidia leak turing, ils mettent le tu102 avec les 4608 cuda cores et non pas une 1650 hyper castrée.

Ici Intel aligne que 64 EUs ... a voir si sur un GPU carte fille ils pourront en aligner 4 fois + pour entrer dans la danse.

Pour info une GTX 1050 c'est genre 1,8 TFLOPS en FP32 du coup ce GEN11 pourra peut-être faire un peu illusion dans des labtops.
Sachant qu'un 1050 M est surement loin d'égaler un vrai 1050 desktop en situation d'utilisation réelle genre sur batterie.
par Un ragoteur RGB du Grand Est le Mercredi 12 Juin 2019 à 19h43
A voir en réel, par exemple la Geforce 1650, c'est 1830mhz, 896 units, 3279 gflops
Faudrait voir les APU Ryzen en Vega 8 et 11.
Mais si Intel arrive vraiment à tirer (& exploiter) 1 tflops de 64 units, c'est vraiment pas mal.
par Un ragoteur RGB du Grand Est, le Mercredi 12 Juin 2019 à 19h43  
par Ideal le Mercredi 12 Juin 2019 à 11h43
Merci pour l'article très intéressant
Une petite question le 1,1 GHz annoncé pour arriver au 1126,4 GFLOPS c'est une vraie spec ou c'est juste un exemple?

Si oui c'est très très léger pour ce GEN11 si ils peuvent pas mettre + de 64 EUs pour le moment..
A voir en réel, par exemple la Geforce 1650, c'est 1830mhz, 896 units, 3279 gflops
Faudrait voir les APU Ryzen en Vega 8 et 11.
Mais si Intel arrive vraiment à tirer (& exploiter) 1 tflops de 64 units, c'est vraiment pas mal.
par Nicolas D., le Mercredi 12 Juin 2019 à 12h15  
par Ideal le Mercredi 12 Juin 2019 à 11h43
Merci pour l'article très intéressant
Une petite question le 1,1 GHz annoncé pour arriver au 1126,4 GFLOPS c'est une vraie spec ou c'est juste un exemple?

Si oui c'est très très léger pour ce GEN11 si ils peuvent pas mettre + de 64 EUs pour le moment..
Plus l'unité est complexe, plus la montée en fréquence est difficile. Un EU hyperthreadé (7 threads par EU, je viens de retrouver !) ça doit pomper un max, la solution pour y remédier c'est de faire un pipeline mais on a vu avec les pentium 4 que trop d'étages, ça marche pas des masses non plus.

Comme ils sont très fiers du TFLOPS, je suis parti en quête de la fréquence et je l'ai trouvée [url=http://www.comptoir-hardware.com/images/popup.php/?intel_computex_2019/stories/_cpu/10nm_intel/intel-computex-2019-10th-gen-intel-u-y.jpg]ici[/ur l] (et j'étais très soulagé de voir que le calcul marche ). Comme c'est un "Up To" ça rassure pas des masses par contre, je te l'accorde volontiers.
par Ideal, le Mercredi 12 Juin 2019 à 11h43  
Merci pour l'article très intéressant
Une petite question le 1,1 GHz annoncé pour arriver au 1126,4 GFLOPS c'est une vraie spec ou c'est juste un exemple?

Si oui c'est très très léger pour ce GEN11 si ils peuvent pas mettre + de 64 EUs pour le moment..
par Nicolas D. le Mardi 11 Juin 2019 à 20h44
: 16 opérations x 64 cœurs x 1,1 GHz = 1126,4 GFLOPS soit un chouille plus du sacro-saint TFLOPS annoncé, youpi ! Pour maximumsier l'utilisation de ces unités, les EU sont hyperthreadées
par seb4771, le Mercredi 12 Juin 2019 à 10h34  
par Un rat dit noir en Nouvelle-Aquitaine le Mardi 11 Juin 2019 à 20h15
mais nous voyons mal Intel rentrer en demi-teinte sur un nouveau segment comment celui-là.
Tûtûtût! et l'épisode i740 alors?
C'était pas la meilleure affaire que j'ai fais d'acheter ça pour associer avec mon cyrix P150+ de chez sharkMicro .
A propos? cette gen11 sera réservée au core i9 j'imagine...ou il y en aura dans le pain t'y hume?
Le "i740" fut TRES utile pour les i810/i815 intégrés et il était "fonctionnel".

Par contre, Larrabee, un cpu/gpu gouffre a presque 1 milliard de $... qui pourtant a dérivé sur les xeon Phi (avec la trappe pour la partie GPU).

Bref, autant RIEn attendre de chez Intel sur les GPU pour le moment, entre les "bonnes intentions", les annonces délirantes et la réalité, on a le temps de voir venir qqes années.
par Un champion du monde embusqué, le Mercredi 12 Juin 2019 à 07h32  
par Un champion du monde embusqué le Mercredi 12 Juin 2019 à 07h32
?? Jim & Raja ?? ..sont les deux meilleurs amiiis ??
ok le site prend pas les ascii codes "note de musique"
par Un champion du monde embusqué, le Mercredi 12 Juin 2019 à 07h32  
par Thibaut G. le Mercredi 12 Juin 2019 à 03h04
Oui l année dernière aux intel tech days. Et en dessous c'est celle de jim keller
?? Jim & Raja ?? ..sont les deux meilleurs amiiis ??