主要观点:
- GLIBC 2.33+可针对不同优化级别多次构建共享库,动态链接器/加载器会选择当前 CPU 支持的最高版本。
- GLIBC 硬件功能(hwcaps)是为 amd64 或 POWER 构建添加动态调度的简单方式,从 GLIBC 2.33 开始引入。
- 面对为[ggml]创建高性能 Debian 包的挑战,利用 hwcaps 实现动态调度,不同 CPU 支持不同级别库的加载。
- 最低级别库安装在常规路径,使用
RUNPATH
或LD_LIBRARY_PATH
时该机制也有效,Debian 的 ggml 包即将切换到GGML_CPU_ALL_VARIANTS=ON
。
关键信息:
- 不同 CPU 支持的 hwcaps 级别:如 amd64 的 x86-64-v1 到 x86-64-v4 等。
- ggml 构建和安装的库布局:如
/usr/lib/x86_64-linux-gnu/ggml/glibc-hwcaps/x86-64-v4/libggml.so
等。 - 在不同 CPU 上的加载情况:支持 AVX512 加载 x86-64-v4 库等。
重要细节:
- GLIBC 2.37 移除了 Legacy Hardware Capabilities。
- 对于不使用 GLIBC 的系统,仍可安装可加载库但性能最差。
- Debian 的 ggml 包即将切换到
GGML_CPU_ALL_VARIANTS=ON
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。