LLaMA Now Goes Faster on CPUs
13 hours ago
- Justine 为 llamafile 编写了84个新的矩阵乘法内核,将 CPU 上的提示评估速度比 llama.cpp 提升了30%到500%。
- 这些内核针对 ARMv8.2(树莓派5)、Intel Alderlake 和 AVX512(Zen4)CPU 进行了优化,对于L2缓存中的矩阵,实现了比MKL快2倍的速度。
- Llamafile 使用 Cosmopolitan Libc 将 llama.cpp 打包成一个单文件跨平台二进制文件,可在六种操作系统上运行。
- 对于少于1000个token的提示,性能提升最为显著,因此这些内核仍在改进中。
- 新的内核专注于 q8_0、f16、q4_1、q4_0 和 f32 数据类型;随着这些改进,量化可能成为瓶颈。
- 基准测试显示,在树莓派5、Intel i9-14900K、Mac Studio M2 Ultra 和 AMD Threadripper 7995WX 上有显著的加速。
- 一个实际例子:通过 shell 脚本使用 TinyLLaMA 作为垃圾邮件过滤器,在 RPI5 上秒级运行,在 Intel 上毫秒级运行。
- 技术方法包括外循环展开和向量化外积,在 Alderlake i9-14900K 上实现高达 810 gigaflops。
- 内核是用 C++ 实现的,采用自定义线程模型,与 llama.cpp 的自旋锁屏障无缝集成。
- 这些改进已在 MIT 许可下上游贡献给 llama.cpp。