Hasty Briefsbeta

双语

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。