COMPTOIR
register

Les optimisations de Zen 2 adoptées par GCC... Mais pas encore chez LLVM

Lorsqu’un nouveau CPU sort, il permet certes d’exécuter les binaires x86, donc déjà compilés, mais ce n’est pas forcément le plus optimal. En effet, les nouveaux processeurs sont parfois porteurs de nouvelles extensions de l’ISA, et il faut alors passer par la case recompilation pour ajouter le support desdites nouvelles instructions. Cependant, ce n’est pas l’optimisation la plus courante : du fait des paramètres micro-architecturaux modifiés, certaines séquences d’instructions sont connues pour être spécifiquement plus véloces ou, au contraire, à éviter absolument d’un point de vue des performances.

 

C’est pourquoi chaque famille d’architecture possède son propre modèle de coût, accompagné d’un ordonnanceur d’instructions dans les compilateurs, activable via l’option -march= lors du build de votre projet... sous réserve de support, bien sûr.

 

Et à l’heure actuelle, la dernière architecture en date, c’est zen 2. Si le support des optimisations a bien été ajouté dans le code de GCC en juillet (pour une mise en release pour la 10e mouture, prévue vers Avril-Mai 2020), ce n’est malheureusement pas le cas de LLVM (un projet concurrent bien connu de par son utilisation par Apple sur ses OS). La raison ? Bêtement une question de revue de code, le patch devant respecter des conventions et être un minimum relu par la communauté avant d’être accepté... ce qui n’a pas encore été le cas, AMD tardant à corriger ses patches. Élément d’autant plus dommageable que ce scheduleur concerne également EPYC Rome, qui a fort à gagner dans une utilisation typée serveur de calcul - et avec 64 cœurs, inutile de vous dire que ce doit être le cas. Un oubli des rouges, ou le reflet d’un manque de personnel sur le projet ? (Source : Phoronix)

 

compilation disco

La meilleure des compilations passe tous les jours, 24h/24 et 7j/7 dans les têtes des rédacteurs de votre comptoir préféré !

Un poil avant ?

Test • Corsair Crystal iCUE 465X

Un peu plus tard ...

Live Twitch • Les loups de Ghost Recon Breakpoint

Les 9 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Arobase40, le Jeudi 31 Octobre 2019 à 19h01  
par SeBL4RD le Jeudi 31 Octobre 2019 à 18h21
J'ai beau relire ton comm, je n'arrive pas à en comprendre le sens, l'utilité. Ne le prend pas mal hein.
C'est en rapport avec la citation évoquant Apple et ses OS, donc pas plus compliqué que cela !
par SeBL4RD, le Jeudi 31 Octobre 2019 à 18h21  
par Arobase40 le Jeudi 31 Octobre 2019 à 17h12
"le cas de LLVM (un projet concurrent bien connu de par son utilisation par Apple sur ses OS)"

Je ne vois pas trop bien le rapport entre AMD, Linux et Apple puisque d'une part Apple utilise du BSD et à ma connaissance il n'y a aucune machine Apple à base d'AMD ???

Donc, en toute hypothèse il n'y a aucune urgence.
J'ai beau relire ton comm, je n'arrive pas à en comprendre le sens, l'utilité. Ne le prend pas mal hein.
par Arobase40, le Jeudi 31 Octobre 2019 à 17h12  
"le cas de LLVM (un projet concurrent bien connu de par son utilisation par Apple sur ses OS)"

Je ne vois pas trop bien le rapport entre AMD, Linux et Apple puisque d'une part Apple utilise du BSD et à ma connaissance il n'y a aucune machine Apple à base d'AMD ???

Donc, en toute hypothèse il n'y a aucune urgence.
par SeBL4RD, le Lundi 28 Octobre 2019 à 09h45  
"le cas de LLVM (un projet concurrent bien connu de par son utilisation par Apple sur ses OS)"

Et surtout connus pour leur folle optimisation des drivers OpenGL sous Linux (le grand pingouin cosmique), les Mesa drivers !
par Nicolas D., le Mercredi 23 Octobre 2019 à 08h23  
par Hamster1er le Mardi 22 Octobre 2019 à 18h20
Désolé si ça fait un peu tâche, mais quid de Visual Studio ?
En l'état actuel, puisque c'est en sources fermés, je ne vois pas de notes à ce sujet sur Phoronix :P. Je ne pense pas que ça soit prévu de suite pour Mr Tout-le-monde, mais j'ose espérer que certaines versions soient disponibles pour les studios de dev !
par Un ragoteur des lumières en Île-de-France, le Mercredi 23 Octobre 2019 à 00h36  
par Un ragoteur sans nom de Bretagne le Mardi 22 Octobre 2019 à 13h00
Vous avez regardé la source, et les commentaires ?

On peut vérifier directement à la source il c'est passé 2 mois sans réponse de AMD aux commentaires des devs.
AMD ne c'est pas occupé du sujet, et on peut expliquer ça facilement: Ce qui importe en premier c'est GCC car c'est avec GCC qu'on compile le Kernel Linux. Mais bon c'est dommage de la part d'AMD de faire attendre 2 mois l'équipe de LLVM (qui a par ailleurs bien d'autre choses à faire) alors que c'est juste une histoire de commentaire et d'indentation.
Me semble que la source précise aussi, ou peut-être est-ce dans les commentaires que je l'aurai lu, que AMD aura annoncé fournir sa propre version du compilateur incluant les derniers patches qui n'auront pas été intégrés upstream. Donc l'utilisateur final n'est en rien laissé sans alternative et n'a pas à attendre la sortie de la prochaine version.

Depuis septembre, et la version 9.0, on peut compiler le noyau Linux avec LLVM. Il y a un test sur le site. "The Clang-built kernel of Linux 5.3 was working out very well on the Ryzen 9 3900X system," commente même Phoronix, l'écart avec GCC laissant présager de meilleures performances encore avec les optimisations zen2.
par Hamster1er, le Mardi 22 Octobre 2019 à 18h20  
Désolé si ça fait un peu tâche, mais quid de Visual Studio ?
par Nicolas D., le Mardi 22 Octobre 2019 à 13h16  
par Un ragoteur sans nom de Bretagne le Mardi 22 Octobre 2019 à 13h00
Vous avez regardé la source, et les commentaires ?

On peut vérifier directement à la source il c'est passé 2 mois sans réponse de AMD aux commentaires des devs.
AMD ne c'est pas occupé du sujet, et on peut expliquer ça facilement: Ce qui importe en premier c'est GCC car c'est avec GCC qu'on compile le Kernel Linux. Mais bon c'est dommage de la part d'AMD de faire attendre 2 mois l'équipe de LLVM (qui a par ailleurs bien d'autre choses à faire) alors que c'est juste une histoire de commentaire et d'indentation.
Ah pardon, ce n'était pas clair, mais la dernière phrase était destinée à AMD et non LLVM, puisque c'est AMD qui doit développer le driver, tout à fait
par Un ragoteur sans nom de Bretagne, le Mardi 22 Octobre 2019 à 13h00  
Vous avez regardé la source, et les commentaires ?

 
This is not a problem of LLVM code review process, rather a failure of AMD's developer.
He sent the patch in Aug 18, he got some review comments. Then he updated patch after 2 months (!) in Oct 19.
So, blame AMD.


On peut vérifier directement à la source il c'est passé 2 mois sans réponse de AMD aux commentaires des devs.
AMD ne c'est pas occupé du sujet, et on peut expliquer ça facilement: Ce qui importe en premier c'est GCC car c'est avec GCC qu'on compile le Kernel Linux. Mais bon c'est dommage de la part d'AMD de faire attendre 2 mois l'équipe de LLVM (qui a par ailleurs bien d'autre choses à faire) alors que c'est juste une histoire de commentaire et d'indentation.