llama.cpp 项目发布了构建版本 b11059,其中针对 Apple Silicon 硬件的 Metal 后端引入了重大更新。主要更改是为快速沃尔什-哈达玛变换(FWHT)内核添加了 F16 输入支持,使其能够直接读取 F16 源数据,而无需进行转换副本。

  • Metal FWHT 内核现在通过使源类型成为模板参数来接受 F16 输入,同时 F32 实例保持不变。
  • FWHT SIMD 组内核中的无分支蝴蝶选择取代了三元运算符,在 M5 Pro 上对大型哈达玛矩阵乘法带来了 3.0% 的性能提升(1285.0 微秒对比 1324.6 微秒)。
  • 分发谓词已移至 ggml-metal-common,以修复 macos-latest-arm64 构建并确保 supports_op 与分发逻辑之间的一致性。
  • 该版本包含适用于 macOS、iOS、Linux、Windows、Android 和 openEuler 的二进制文件,涵盖 CPU、CUDA、ROCm、Vulkan、OpenVINO 和 SYCL 后端。

此更新通过减少 Metal 后端中 F16 操作的内存开销和延迟,提高了 Apple Silicon 上的效率。