Fedora Linux prend déjà en charge l'utilisation de glibcHWCAP, permettant de créer des bibliothèques pour différents niveaux de fonctionnalités de la microarchitecture x86_64 pour le code sensible aux performances afin que des gains de performances puissent être obtenus en exploitant AVX/AVX2 ou d'autres extensions de jeu d'instructions de processeur Intel/AMDC plus récentes. Désormais, Fedora42 propose d'étendre davantage cette fonctionnalité pour permettre aux exécutables binaires d'exploiter également glibcHWCAP pour de meilleures performances.

Fedora42 a soumis une proposition de modification pour autoriser les binaires optimisés pour le niveau de fonctionnalité de la microarchitecture x86_64. Son but est d'étendre le mécanisme glibc-hwcaps aux exécutables complets, pas seulement aux bibliothèques partagées.

"Un seul paquet peut fournir des bibliothèques optimisées via le mécanisme glibc-hwcaps. Cette approche sera étendue aux exécutables. Les paquets fournissent des variantes optimisées des binaires dans différents répertoires. Il s'agit d'un lien symbolique vers un petit programme qui remplace le binaire dans /usr/bin. Une fois exécuté, le programme trouvera la variante la plus appropriée et l'exécutera.

Quels packages fournissent un code optimisé, et à quel niveau, seront déterminés par les responsables de packages individuels en fonction des résultats de référence.

...

Ce changement concerne l'extension du mécanisme glibc-hwcaps aux fichiers exécutables. Nous fournissons un petit binaire d'assistance. Les programmes dans /usr/bin (ou d'autres chemins) sont liés à ce programme d'assistance. Une fois exécuté, le programme d'assistance vérifie les capacités du processeur et recherche dans une hiérarchie de répertoires distincte la variante la plus appropriée du programme cible. Lancez ensuite le binaire optimisé ou le binaire "universel" compilé pour la ligne de base. "

Le changement proposé ajoute ensuite :

"Les développeurs intéressés par un tel travail d'optimisation peuvent l'effectuer dans Fedora sans avoir à créer de sources logicielles distinctes. Les utilisateurs disposant du matériel correspondant bénéficieront d'avantages en termes de performances. Un code plus rapide est également plus économe en énergie. Ce changement sera automatique et transparent pour les utilisateurs.

Notez que d'autres distributions utilisent des niveaux de microarchitecture plus élevés. Par exemple, RHEL9 utilise x86-64-v2 comme base, RHEL10 utilise x86-64-v3 et d'autres distributions proposent des variantes optimisées (OpenSUSE, ArchLinux, Ubuntu). La façon dont nous implémentons les mêmes changements dans Fedora est beaucoup plus étroite et donc nettement inférieure en termes d'effort de développement, de temps de compilation du code, de stockage et de surcharge de publication, mais devrait offrir les mêmes avantages en termes de performances et de consommation d'énergie. "

Il appartiendra toujours aux empaqueteurs/développeurs Fedora d'évaluer eux-mêmes les avantages en termes de performances et de décider s'ils doivent fournir à leurs packages des exécutables optimisés pour différents niveaux de fonctionnalités de la microarchitecture x86_64.