Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Compilation] AOCC (abandonné)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Skwal
Apprentice
Apprentice


Joined: 07 Jun 2019
Posts: 150

PostPosted: Mon Apr 03, 2023 4:55 am    Post subject: [Compilation] AOCC (abandonné) Reply with quote

Bonjour :)

Je me suis mit à utiliser clang de manière globale, ce fût un succès et les performances s'en ressentent grandement.
Toujours dans l'idée d'optimiser Gentoo au maximum, mes recherches m'ont menées à AOCC (https://www.amd.com/en/developer/aocc.html), qui permet d'optimiser son matériel AMD, ça tombe bien j'ai ma carte graphique (RX 6700 XT CLD et ryzen 3700X).
Naturellement ça m'a mené au wiki Gentoo mais malheureusement ce dernier est un peu vieux. https://wiki.gentoo.org/wiki/AOCC
À la compilation de llvm-libunwind j'obtiens ce message:

CC=/opt/aocc/bin/clang produced invalid --version: AMD clang version 14.0.6 (CLANG: AOCC_4.0.0-Build#434 2022_10_28) (based on LLVM Mirror.Version.14.0.6)

J'ai presque réussi à le mettre en place mais malheureusement je n'arrive pas à appliquer les liens symboliques du wiki de la partie "Usage".
AOCC semble être très apprécié des gamers qui compilent leur système surtout le noyau, avec.
Apparemment les performances en serait grandement accrues.
Je viens donc vers vous tenter de trouver un coup de main et si possible avoir des témoignages de personnes l'ayant installé à l''échelle du système s'il vous plaît.
Je sais que les chances sont minces, mais qui ne tente rien... (modifié)


Last edited by Skwal on Wed Apr 12, 2023 4:49 am; edited 1 time in total
Back to top
View user's profile Send private message
admnd
n00b
n00b


Joined: 07 Apr 2021
Posts: 11

PostPosted: Sat Apr 08, 2023 5:03 pm    Post subject: Re: [Compilation] AOCC (en cours) Reply with quote

Skwal wrote:

AOCC semble être très apprécié des gamers qui compilent leur système surtout le noyau, avec.
Apparemment les performances en serait grandement accrues.


C'est très relatif tout celà :) Il y a mythe tenace qui veut qu'un compilateur fasse des miracles avec un « mauvais code » alors que ce n'est qu'un bête traducteur en langage machine qui va somme toute tenter quelques optimisations dans le code qu'il génère. Au final, on parle généralement pour le commun des mortels de quelques points de pourcentage au mieux et encore... ce n'est jamais un gain absolu à 100% car, il y a des pertes et il y a des gains selon les logiciels compilés. Et encore... bien joli de gagner 1ms sur une boucle mais si vous en perdez 2 sur une latence stockage/réseau le gain de performance n'apporte strictement rien. Par contre vous pouvez avoir des gains intéressants au niveau de tout ce qui s'appelle calcul pur => un environnement R / Python et autres langages (Fortran, C, etc) avec toutes les bibliothèques (libC/libM, OpenBLAS, Numpy, etc) bien optimisées peut faire gagner un temps considérable. J'ai personnellement vu des gains de 15-20% voir plus dans des environnements de calcul de pointe.

Voici d'ailleurs quelques benchmarks qui pourraient vous intéresser à ce sujet => https://www.phoronix.com/review/aocc4-gcc-clang
(AOCC 4 est basé sur LLVM 14)

Le principal avantage d'AOCC est de tirer partie des processeurs AMD encore non-supportés dans LLVM... L'exemple du moment est la microarchitecture Zen 4 (CPU Ryzen 7000, EPYC Genoa, etc) qui, d'ailleurs, commence à être supporté avec LLVM 16 avec utilisation des instructions AVX-512 notamment et le sera encore mieux encore plus avec LLVM 17 avec l'utilisation des modèles de coûts instructions machines spécifiques à Zen 4 (ref. https://www.phoronix.com/news/AMD-Zen-4-Znver4-LLVM-Added ).

Bref, à moins que vous n'ayez des besoins hyper-spécifiques nécessitant impérativement AOCC, je vous suggère de rester avec GCC ou CLANG/LLVM si vous avez le coeur à l'aventure, ce faisant vous allez vous éviter pas mal de soucis pour des gains qui seront vraisemblablement à peine tangibles dans le meilleurs des cas.


PS: Si la page d'AOCC date de très longtemps c'est que son usage est probablement au mieux très marginal.
Back to top
View user's profile Send private message
Skwal
Apprentice
Apprentice


Joined: 07 Jun 2019
Posts: 150

PostPosted: Sun Apr 09, 2023 5:53 am    Post subject: Reply with quote

Bonjour admnd; ça c'est intéressant ! :)

Je voulais tenter cette aventure à titre expérimental, Je n'ai pas de besoins spécifique... :)

J'ai déjà passé mes gentoo sur clang, hormis un problème de compilation avec blender et luminance-hdr tout se passe bien.
Je suis même étonné car, sur le profile 9 (default/linux/amd64/17.1/desktop/plasma (stable)), sur un système assez complet je n'ai que ces paquets à compier forcément avec gcc:
Quote:
dev-lang/luajit compiler-gcc
media-libs/x264 compiler-gcc
media-libs/openh264 compiler-gcc
media-libs/xvid compiler-gcc
dev-lang/mono compiler-gcc
dev-util/colm compiler-gcc
app-cdr/cdrtools compiler-gcc
media-libs/x265 compiler-gcc
app-emulation/wine-proton compiler-gcc
app-emulation/wine-vanilla compiler-gcc
x11-misc/virtualgl compiler-gcc
dev-util/hip compiler-gcc
sci-libs/aocl-sparse compiler-gcc
media-video/ffmpeg compiler-gcc
media-libs/lcms compiler-gcc
dev-lang/ruby compiler-gcc
dev-ruby/rbs compiler-gcc
dev-ruby/json compiler-gcc
dev-ruby/racc compiler-gcc
media-plugins/calf compiler-gcc
media-plugins/caps-plugins compiler-gcc
#media-gfx/blender compiler-gcc
kde-apps/kleopatra compiler-gcc
kde-misc/kdeconnect compiler-gcc


Ça semble bien que ce à quoi je m'attendais, et encore je n'ai pas tout trié pour voir l'origine des erreurs de compilation.
Malheureusement oui le tuto est un peu vieux, du coup je peine au niveau des liens symboliques.
D'après certaines discutions la compilation avec OACC ferait des miracles.
Je suis très curieux sur l'optimisation. :D

Cordialement, Skwal :wink:


Last edited by Skwal on Mon Apr 10, 2023 7:07 am; edited 1 time in total
Back to top
View user's profile Send private message
admnd
n00b
n00b


Joined: 07 Apr 2021
Posts: 11

PostPosted: Sun Apr 09, 2023 12:26 pm    Post subject: Reply with quote

Skwal wrote:


Ça semble bien que ce à quoi je m'attendais, et encore je n'ai pas tout trié pour voir l'origine des erreurs de compilation.
Malheureusement oui le tuto est un peu vieux, du coup je peine au niveau des liens symboliques.
D'après certaines discutions la compilation avec OACC ferait des miracles.
Je suis très curieux sur l'optimisation. :D

Cordialement, SKwal :wink:


Le but de Gentoo est d'expérimenter et d'apprendre aussi :)
Comme je l'ai mentionné ci-avant, vous aurez des gains avec certains binaires et des pertes avec d'autres (qui se mesureront en point de pourcentage), ce n'est jamais tout noir ou tout blanc. Même avec les différentes versions d'un même compilateur vous aurez ce phénomène. La haute-performance est un sujet délicat: plus complexe que de mettre un simple -O3 sur une ligne de commande car le code doit être écrit en conséquence, le matériel doit suivre aussi. Ce n'est pas pour rien que même en 2023 du code assembleur s'écrit encore à la main ;)
Il est normal que certains packages demandent impérativement GCC, on ne peut pas encore avoir 100% LLVM encore avec un stage 4. Il y a beaucoup de « GCC-ismes » dans la nature, c'est normal vu l'historique. Aussi les compilateurs évoluent et supportent mieux et de manière de plus en plus stricte les standards, ce qui fait que le package ABC qui passait nickel avec la version N ne passe plus avec la version N+1.

Bon dimanche ! :)

PS: Le wiki est collaboratif, si vous arrivez à quelque chose de fonctionnel, n'hésitez-pas à mettre la page à jour. Si votre anglais est rouillé, le wiki est multilingue.
Back to top
View user's profile Send private message
Skwal
Apprentice
Apprentice


Joined: 07 Jun 2019
Posts: 150

PostPosted: Mon Apr 10, 2023 7:00 am    Post subject: Reply with quote

Bonjour admnd,

Quote:
Le but de Gentoo est d'expérimenter et d'apprendre aussi :)

Oh que oui, c'est pour ça que je l'ai adopté, je compte bien pousser les limites... :wink:
Votre analyse est très pertinente (je lis vos nombreux messages) et j'en suis conscient... :P

Ben là j'ai encore du mal avec le peaufinage de clang, je suis passé par ce tuto:
https://forum.xda-developers.com/t/using-gentoo-why-using-gcc-use-clang-compiler-instead-fast-and-less-ram-eater.4510915/

Mais je compte bien me remettre sur AOCC quand je serais stable avec clang sur mon système.
Pour écrire des tutos je veux bien, mais faudrat-il que je sois sûr de ne pas écrire de bêtises...

Bonne journée à vous également, merci. :wink:

Cordialement, Skwal
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum