Easy dynamic dispatch using GLIBC Hardware Capabilities
TL;DR With GLIBC 2.33+, you can build a shared library multiple times targeting various optimization levels, and the dynamic linker/loader will pick the highest version supported by the current CPU. For example, with the layout below, on a Ryzen 9 5900X, x86-64-v3/libfoo0.so would be loaded: In the meantime, ggml has extended its support for its own dynamic dispatch to arm64 and ppc64el , the lack of which originally motivated this work. The Debian package will soon switch to this. However, an