Arm KleidiAI架构安装Llama.cpp

KleidiAI 是Arm处理器设计的优化AI工作负载的微架构软件库,可以增强使用Arm处理器后端的性能。llama.cpp支持编译 KleidiAI 优化:

使用 Arm CPU优化 -DGGML_CPU_KLEIDIAI=ON
cmake -B build -DGGML_CPU_KLEIDIAI=ON
cmake --build build --config Release

然后运行时验证是否支持了 KleidiAI:

验证 Arm CPU优化
./build/bin/llama-cli -m PATH_TO_MODEL -p "What is a car?"

KleidiAI微内核使用Arm CPU功能,如dotprod, int8mm 和 SME来优化tensor操作,此时llama.cpp会在检测到运行时CPU功能时选择更为高效的内核。不过,对于支持 SME 的平台,必须手工激活 SME 微内核,也就是设置环境变量 GGML_KLEIDIAI_SME=1

需要注意,如果有更为高优先级的后端,则更高优先级的后端会默认激活。比如METAL后端,需要使用 -DGGML_METAL=OFF 来编译才能确保使用CPU后端,或者在运行时使用 --device none 选项来使用Arm CPU。

备注

我不太确定Arm处理器需要在哪个架构硬件能够支持 KleidiAI ,先挖坑待后续调研和实践

树莓派Raspberry Pi 5 ?

参考