GLIBC hwcapsを用いた高性能な動的ディスパッチ

2025-07-16

この記事では、GLIBC 2.33以降のhwcaps機能を利用して、amd64およびPOWERアーキテクチャの共有ライブラリにシンプルな動的ディスパッチを実装する方法を示します。`/usr/lib/glibc-hwcaps/`下に、さまざまなCPU命令セットバージョンのライブラリファイル(例:x86-64-v4、x86-64-v3など)を作成することで、動的リンカーはCPUがサポートする最高の命令セットに基づいて対応するライブラリを自動的にロードし、パフォーマンスを最適化します。これは、llama.cppやwhisper.cppで使用されるggmlライブラリのDebianパッケージ作成において実証されているように、さまざまなCPUアーキテクチャでライブラリの性能を一定に保つという課題を解決します。

開発