COMPTOIR
  
register

×

intel tiger lake tb4 presentation t

Optimiser son code pour Tiger Lake, oui, c'est intéressant !
intel tiger lake tb4 presentation t

Si, avec l’avènement des systèmes d’exploitation grand public, en particulier Windows, et les efforts bienvenus des géants des semiconducteurs, nous avons désormais l’habitude d’avoir du matériel (presque toujours) fonctionnel et performant peu après leur sortie officielle, cela n’est en rien une règle générale. En effet, les nouvelles fonctionnalités des CPU next-gen nécessitent parfois des modifications logicielles, la plus simple d’entre elles étant la recompilation du projet, assortie d’une option indiquant la famille de processeur pour laquelle optimiser, si tant est qu’Intel ou AMD ait préalablement effectué l’ingénierie nécessaire sur ledit compilateur.

 

Fort heureusement, tel est souvent le cas, un fait confirmé chez Phoronix, notre confrère spécialiste de Linux, qui s’est attelé à la tâche dans un sympathique dossier étudiant les variations de performances selon l’architecture spécifiée au compilateur pour l’optimisation. Les expériences sont réalisées avec un ordinateur portable — forcément, il n’y a que cela de disponible pour du 10 nm — de marque Dell, plus précisément un XPS 9310 Intel EVO qui intègre un Core i7 1165G7, Tiger Lake bien entendu, le tout sous Ubuntu 20.10 et GCC 11.0.

 

intel tiger lake tb4 presentation t [cliquer pour agrandir]

Tiger Lake, finalement plus qu’une simple mise à jour des contrôleurs intégrés ?

 

Et, globalement, plus on optimise pour une architecture récente, mieux c’est : l’architecture par défaut, X84-64 (générique) se retrouve tout derrière, suivi par Sandy Bridge, puis Haswell, Skylake, et, juste avant notre compétiteur, nous trouvons, à une certaine distance... Icelake. Étrange, puisque la microarchitecture Sunny Cove, à l’œuvre dans les cœurs de ces processeurs, est censée être extrêmement proche du Willow Cove de Tiger Lake. Pourtant, les tests révèlent 4 % de performances supplémentaire en moyenne géométrique, un score loin d’être anodin. Y aurait-il d’autres améliorations non divulguées dans Tiger Lake ? Des correctifs pour des nouvelles failles intégrées en hardware pour gagner du temps ? Ou, tout simplement, Intel aurait-il stoppé son optimisation de GCC pour Ice Lake, étant donné la faible présence de ce dernier sur le marché ? Impossible de trancher dans les conditions actuelles. Par rapport à un binaire sans optimisation, les gains sont alors de 9 % : pas si mal ! Pour plus de détails, notamment les tâches les mieux optimisées par GCC, il va falloir passer sur le site originel, en anglais !

 

 
gcc logo
Un poil avant ?

ASRock lance 2 barebones basés sur des Ryzen V2000

Un peu plus tard ...

Gamotron • Petit papa Noël, t'es en avance !

Les 32 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Jemporte, le Lundi 16 Novembre 2020 à 21h26  
A voir ce que ça va donner sur Rocket Lake. On ne sait pas en effet si Rocket Lake est plus proche de Ice Lake ou Tiger Lake. Le tout en 14nm. Donc IPC de Ice Lake, voire un peu plus de Tiger Lake, et 5.5Ghz (c'est la vitesse qui serait testée en ce moment). En toute logique, ça devrait dépasser Zen 3, par coeur... mais avec 8 coeurs maximum et un TDP inconnu. Du LGA 1200 poussé dans ses derniers retranchements (ça rappelle le temps de Pentium IV qui cravachaient à coups de Watts pour coller aux Athlon 64 (pénards en vitesse de croisière) moyennant des "optimisations" Intel dans ses compilateurs qui ralentissaient les CPU AMD, et les ténors comme Adobe qui utilisaient ces compilateurs Intel.
par Un ragoteur bio d'Occitanie, le Lundi 16 Novembre 2020 à 17h14  
par Baba the Dw@rf le Lundi 16 Novembre 2020 à 16h22
@Ragoteur bio des Hauts-de-France
J'irais même plus loin que Scrabble en ajoutant qu'il existe beaucoup de problème d'optimisation d'apparence très simple qui pourtant n'ont toujours pas de solution connue... ?
Je suis entièrement d'accord avec ce que tu dis, je travaille dans l'optimisation d'étanchéité au quotidien, avec nos critères, coef etc. (rien a voir avec le jeux vidéo, plus dans la métallurgie, et analyse par éléments finis) et on si nos analyse tombent dans la fourchette on arrête sinon on passerai notre vie a peaufiner quelque chose d'useless puisque les données d'entrés et sorties sont bonne et convenable pour l'usage final.

J'en conclu que je me suis très mal exprimé!

Cependant, nous pouvons quand même être critique quand on peut remarquer une mauvaise optimisation a l'instant T bien sur! qui est bien souvent reglé a coups de maj. Pour les autres paramètres nous ne sommes pas dans les petits papiers d'Ubisoft (ou autre) mais il y a une certaine "attente" de la part de nous consommateurs. Ce qui ne m'empêchera pas d'acheter le titre

Imaginez la frustration du mec qui a réussi a pécho une 3090, qui se dit "je vais avoir full dps en ultra sur AS" et puis... NON

par Baba the Dw@rf, le Lundi 16 Novembre 2020 à 16h22  
@Ragoteur bio des Hauts-de-France
J'irais même plus loin que Scrabble en ajoutant qu'il existe beaucoup de problème d'optimisation d'apparence très simple qui pourtant n'ont toujours pas de solution connue.

Par ailleurs je pense qu'il faut remettre les choses à plat. Dans un système complexe, il n'existe pas d'optimum absolu. Il n'existe que des optimum "contraints". Un système est optimisé selon un ensemble de critères d'évaluation, de paramètres et de contraintes.
L'optimisation est l'action d'ajuster les paramètres dans le respects des contraintes afin d'obtenir la meilleur évaluation possible. Je ne pousserai pas le vice en ajoutant que le processus d'évaluation a lui aussi un impact car ce processus peut être ranger dans la catégorie des contraintes pour garder les choses un poil plus simple.

Quand tu dis "ce jeu n'est pas optimisés" cette déclaration n'a aucun sens, à moins que tu sous-entendent qu'aucune optimisation n'a eu lieu. Car les ressources, le budget et les délais font partie des contraintes elles aussi.

Et malheureusement je n'ai pas la compta d'ubisoft pour juger de leur budgétisation ni le détails de ce qui a été fait pour améliorer le visuel, la stabilité et les performances de leurs titres. Je préfère donc rester sur une opinion plus nuancée type "le jeu n'a pas (bien) été optimisés pour tel usage".
Ca peut sembler con mais parfois le problème est structurel et tellement enraciné que la restructuration complète du pipeline serait requise pour changer les choses parfois au coup de la créativité des devs et à grand frais pour la boite donc qui on est pour juger ?
par m du Grand Est, le Lundi 16 Novembre 2020 à 15h47  
par Un ragoteur qui pipotronn en Île-de-France le Lundi 16 Novembre 2020 à 13h05
Entre ton code de haut niveau et ton CPU, tu as un compilateur, qui, en fonction de sa connaissance de l'architecture (ses instructions supportées, ces points forts et faiblesses connus sur certaines séquences etc...) sera capable de traduire ton code plus ou moins efficacement en langage machine.
Et c'est de ça dont traite le sujet d'aujourd'hui (CDH fait d'ailleurs régulièrement de bon articles la-dessus: AMD patchant gcc pour Zen3, Intel patch LLVM, etc...)
Et tout ça, c'est gratuit .
Enfin, pas tout à fait, puisque ça nui à la portabilité de ton exécutable. C'est pour ça que c'est très rarement employé sur les .exe windows qu'on peut télécharger à tout vent.
Mais c'est là le principal avantage des distro telle que Gentoo et autres Linux from scratch...

Phoronix n'est pas allé s'embêter à modifier le code source de tout ces programmes pour y mettre de l'AVX à toute les sauces.
Il s'est juste contenté de spécifier l'archi au compilateur et POUF: 9% gratuit.

Par contre ça tournera beaucoup moins bien sur la machine du voisin.

C'est pour ça que dissocier algorithme "Haut niveau" et "Bas niveau" est primordiale, si l'on veut que son appli puisse tourner sur un maximum de machines et toucher un publique le plus large possible.
Il n'y a que lorsqu'on développe pour une plateforme unique bien identifié (type embarqué ou HPC, comme tu l'évoquais), qu'on peut se permettre d'optimiser ses algos une archi ciblé.
par Un ragoteur qui pipotronn en Île-de-France, le Lundi 16 Novembre 2020 à 13h05  
par fofo le Lundi 16 Novembre 2020 à 08h07
Mélanger optimisation d'algo (où il faut investir dans une version optimisée + éventuellement une version std pour les CPU ne supportant pas ce type d'instruction) et de compilateur (c'est du temps machine quasiment gratuit) n'est pas tout à fait la même chose.
Ton algo sauce AVX sera fait si les fonctionnalités standard sont terminées ET qu'il y' un pb de performance à cet endroit.
Si, c'est la même chose : un CPU ne fait qu'exécuter un algorithme, une suite d'instructions. Dans le cas de la vectorisation que j'évoquais, c'est quelque chose qui doit être pensé d'entrée de jeu puisque ça va agir directement sur la conception de l'algorithme, mais aussi les structures de données, la gestion de la mémoire, etc.

Dissocier artificiellement l'algorithme en « haut-niveau » et « bas-niveau » en pensant que le « haut-niveau » n'est jamais influencé par l'architecture physique de la machine, c'est à mon sens faire de la mauvaise programmation, et c'est l'une des différences à mon avis entre un bon dev' et un simple hacker. Évidemment, il y en a d'autres , mais il y a une tendance aujourd'hui à banaliser la compétence en programmation, avec des langages simples comme Python qui donnent l'illusion de savoir programmer, alors que c'est un vrai métier. Ça se retrouve aussi en électronique, où on voit des gens utiliser des microcontrôleurs de partout alors que de simples composants passifs ou discrets suffiraient... La faute aux Arduino et autres RBPi, plateformes au demeurant très utiles et qui ont beaucoup fait pour la diffusion de la pratique de l'électronique.
par Ragoteur bio des Hauts-de-France, le Lundi 16 Novembre 2020 à 12h46  
par Scrabble le Lundi 16 Novembre 2020 à 12h18
@Ragoteur bio des Hauts-de-France :
- Si c'est pas optimisé, ça fonctionne; mais dix, cent ou mille fois plus lentement
- L'optimisation, ça ne sera jamais binaire : Bien sûr, qu'il existe un fonctionnement théorique optimal, mais pour l'atteindre, il faudrait un temps de développement quasi-infini, vu la complexité des jeux vidéo modernes. Optimisé, ça n'a jamais voulu dire optimal
- La phase d'optimisation n'arrive pas en fin de chaîne, elle est présente tout au long du développement du jeu
- Quand tu dis "C'est pas optimisé", ça veut dire que l'équipe de développement a codé un truc qui marche, et puis l'a immédiatement commercialisé sans y toucher entre temps
Dans mon ignorance optimisé est un état, optimisation une action. Un état (ici on ajoute toutes ses contraintes, limites, cahier des charge) est valide ou invalide. Bon... on peut nuancer, ce que j'ai du mal a faire!

Je suis dac pour le temps nécessaire a tendre vers l'optimal quasi impossible a rejoindre dans un délais / couts raisonnable.

Par contre je pensais que la phase finale du développement d'un jeu était essentiellement de l'optimisation. Mais c'est vrai qu'elle est présente tout au long du process, autant en faire le maximum le plus tôt possible effectivement. Pardon
par Scrabble, le Lundi 16 Novembre 2020 à 12h18  
@Ragoteur bio des Hauts-de-France :
- Si c'est pas optimisé, ça fonctionne; mais dix, cent ou mille fois plus lentement
- L'optimisation, ça ne sera jamais binaire : Bien sûr, qu'il existe un fonctionnement théorique optimal, mais pour l'atteindre, il faudrait un temps de développement quasi-infini, vu la complexité des jeux vidéo modernes. Optimisé, ça n'a jamais voulu dire optimal
- La phase d'optimisation n'arrive pas en fin de chaîne, elle est présente tout au long du développement du jeu
- Quand tu dis "C'est pas optimisé", ça veut dire que l'équipe de développement a codé un truc qui marche, et puis l'a immédiatement commercialisé sans y toucher entre temps
par Ragoteur bio des Hauts-de-France, le Lundi 16 Novembre 2020 à 11h51  
par Baba the Dw@rf le Lundi 16 Novembre 2020 à 07h12
J'ai très bien lu et il était très directe : soit c'est optimisé, soit ça l'est pas et il n'y a pas de nuance.
Et pour moi c'est dénigrer le travail des devs. Si j'ai mal compris explique moi et on tombera peut-être même d'accords. Mais si c'est pour prendre un ton insultant sous couvert de l'humour la prochaine fois, abstiens toi.
Je n'ai jamais dénigré le dur labeur des devs. Le deuxième paragraphe de mon premier message indique quand même un profond respect pour eux. Cependant je maintiens mon propos sur le mot optimisé. Qu'il ne faut pas confondre avec la phase d'optimisation.

J'ai surement une vision étriqué de la chose. Mais quelque chose d'optimisé, optimal donc, ca reste binaire. Il y a des commentaires qui le disent, si ce n'est pas optimisé ca ne fonctionne pas. Je veux faire fonctionner de l'AVX, sans les bons outils, ca ne fonctionnera pas... En disant ca, je ne manque pas de respect aux devs. Par contre, la phase d'optimisation, qui te fais croire que je manque de respect envers les devs. Peut accoucher d'un logiciel / jeu optimisé ou pas (on en revient au binaire). La aussi je ne leur balance pas la pierre, tout le monde ici sait qu'ils ont sur le cul des dirigeants qui veulent tout, tout de suite avec le moins de personnel etc... Et comme cette phase arrive a la fin de la chaine, il faut faire vite, prendre le crunch en pleine tronche! (mauvaise gestion du personnel de la part des studio?!) Même quand un jeux ne fonctionne pas de manière optimal je ne leur chie pas a la tronche, j'attends la prochaine maj

Sauf dans le cas du PUBG...

l'optimisation débouche ou non sur quelque chose d'optimisé. Pour moi c'est fortement lié mais diffèrent.
par fofo, le Lundi 16 Novembre 2020 à 08h07  
par Un ragoteur qui pipotronn en Île-de-France le Dimanche 15 Novembre 2020 à 11h04
Si, c'est aux devs de faire leur part du boulot. Bête exemple, activer les instructions AVX sur un code pas pensé pour ne fait pas gagner pas en performances, alors qu'une version optimisée pourra voir sa vitesse largement augmentée.
J'avais mis un smiley trollesque
Bon après dans le cadre de cet article optimisation du compilateur (-march=tigerlake) gentoo fait ça parfaitement depuis son origine.
Mélanger optimisation d'algo (où il faut investir dans une version optimisée + éventuellement une version std pour les CPU ne supportant pas ce type d'instruction) et de compilateur (c'est du temps machine quasiment gratuit) n'est pas tout à fait la même chose.
Ton algo sauce AVX sera fait si les fonctionnalités standard sont terminées ET qu'il y' un pb de performance à cet endroit.
par Baba the Dw@rf, le Lundi 16 Novembre 2020 à 07h12  
par Un ragoteur bio d'Occitanie le Dimanche 15 Novembre 2020 à 22h48
Et ben mon p'tit pépère, il a pas lu tout mon post? tu en occultes une grande partie et C'est dommage! il faut se détendre!! Je suis sur que tu es mieux que l'espèce d'andouille pour laquelle tu passes Allé gros bisoux, n'oublie pas ta pastille et calme toi!
J'ai très bien lu et il était très directe : soit c'est optimisé, soit ça l'est pas et il n'y a pas de nuance.
Et pour moi c'est dénigrer le travail des devs. Si j'ai mal compris explique moi et on tombera peut-être même d'accords. Mais si c'est pour prendre un ton insultant sous couvert de l'humour la prochaine fois, abstiens toi.
par Un ragoteur bio d'Occitanie, le Dimanche 15 Novembre 2020 à 22h48  
par Baba the Dw@rf le Dimanche 15 Novembre 2020 à 00h19
Heu t'es sérieux la. L'optimisation est un processus continu qui demande énormément de ressources, parfois plus que les devs eux même. Que les développeurs ait pas choisit les bons pour ton usage ne signifie pas qu'ils n'ont pas essayer de faire les bons choix pour une majorité (te voile pas la face dans le monde actuel, cette majorité ce sont les consoles et ceux qui joue sur une "petite CG" sachant qu'avec le matos console d'aujourd'hui une petite CG c'est une 1060/1070...).
Alors arrête de cracher sur leur travail en disant si c'est pas parfait c'est que rien n'est fait et va développer des jeux avec eux dans leur conditions de travail très souvent merdiques..
Et ben mon p'tit pépère, il a pas lu tout mon post? tu en occultes une grande partie et C'est dommage! il faut se détendre!! Je suis sur que tu es mieux que l'espèce d'andouille pour laquelle tu passes Allé gros bisoux, n'oublie pas ta pastille et calme toi!
par Codeur, le Dimanche 15 Novembre 2020 à 14h17  
par Un ragoteur qui pipotronn en Île-de-France le Dimanche 15 Novembre 2020 à 11h15
Il ne me paraît pas évident que les programmes actuels soient beaucoup plus riches en fonctionnalités. Qu'on s'entende bien : je parle des fonctionnalités directement utiles à l'utilisateur final (au sein desquelles on peut encore distinguer l'utile du futile). Encore une fois, comparez les versions successives de la suite Office sur un même usage...
Je vous l'accorde. Cela dit il y a aussi des tendances et des modes. Aujourd'hui on n'aime plus les logiciels qui ont 12 menus et 250 sous-menus avec chacun 10 fonctionnalités. On cherche à fournir des opérations de base assez génériques et laisser l'utilisateur faire sa sauce. L'exemple le plus flagrant c'est SketchUp, racheté par Google, qui a vraiment détonné par rapport aux autres logiciels du genre. Est-ce une bonne chose ? Je ne pense pas, surtout que certaines personnes, dont le métier est quand même de traiter des données et qui sont très bien rémunérés ont du mal à faire plus que cliquer sur un unique bouton...