Fedora Linux はすでに glibcHWCAP の使用をサポートしており、パフォーマンス重視のコード用にさまざまな x86_64 マイクロアーキテクチャ機能レベルに合わせてライブラリを構築できるため、AVX/AVX2 またはその他の新しい Intel/AMDC CPU 命令セット拡張機能を活用するときにパフォーマンスの見返りを達成できます。現在、Fedora42 では、この機能をさらに拡張して、バイナリ実行可能ファイルでも glibcHWCAP を利用してパフォーマンスを向上できるようにすることを提案しています。

Fedora42 は、x86_64 マイクロアーキテクチャ機能レベルに最適化されたバイナリを許可する変更提案を提出しました。その目的は、glibc-hwcaps メカニズムを共有ライブラリだけでなく完全な実行可能ファイルに拡張することです。

「単一のパッケージで、glibc-hwcaps メカニズムを介して最適化されたライブラリを提供できます。このアプローチは実行可能ファイルにも拡張されます。パッケージは、さまざまなディレクトリにあるバイナリの最適化されたバリアントを提供します。これは、/usr/bin 内のバイナリを置き換える小さなプログラムへのシンボリック リンクです。実行すると、プログラムは最適なバリアントを見つけて実行します。

どのパッケージが最適化されたコードをどのレベルで提供するかは、ベンチマーク結果に基づいて個々のパッケージ管理者によって決定されます。

...

この変更は、glibc-hwcaps メカニズムを実行可能ファイルに拡張することに関するものです。小さなヘルパーバイナリを提供します。 /usr/bin (または他のパス) 内のプログラムは、このヘルパー プログラムにリンクされています。実行されると、ヘルパー プログラムは CPU の機能をチェックし、ターゲット プログラムの最適なバリアントを別のディレクトリ階層で検索します。次に、最適化されたバイナリ、またはベースライン用にコンパイルされた「ユニバーサル」バイナリを起動します。 」

提案された変更にはさらに次のものが追加されます。

「そのような最適化作業に興味のある開発者は、別個のソフトウェア ソースを構築することなく、Fedora でそれを実行できます。対応するハードウェアを使用するユーザーは、パフォーマンス上の利点を得ることができます。コードが高速になると、エネルギー効率も向上します。この変更は自動的に行われ、ユーザーに対して透過的になります。」

他のディストリビューションではより高いレベルのマイクロアーキテクチャが使用されていることに注意してください。たとえば、RHEL9 はベースラインとして x86-64-v2 を使用し、RHEL10 は x86-64-v3 を使用し、その他のディストリビューションは最適化されたバリアント (OpenSUSE、ArchLinux、Ubuntu) を提供します。 Fedora で同じ変更を実装する方法ははるかに狭いため、開発労力、コードのコンパイル時間、ストレージとリリースのオーバーヘッドが大幅に削減されますが、パフォーマンスとエネルギー消費量は同等のメリットが得られます。 」

パフォーマンスの利点を自ら評価し、さまざまな x86_64 マイクロアーキテクチャ機能レベルに合わせて最適化された実行可能ファイルをパッケージに提供するかどうかを決定するのは、依然として Fedora パッケージ作成者/開発者次第です。