llama.cpp b11228 版本在 Metal 后端的 GGML_OP_PAD 操作中引入了对左侧和循环填充的支持,使其与 CPU、CUDA 和 Vulkan 实现保持一致。此更改修复了置换源上的右侧填充问题,并确保在不同硬件后端之间行为一致。

  • 实现方式将源坐标向左偏移,并在循环填充模式下进行环绕处理。
  • 添加了覆盖新功能的测试用例。
  • 移除了 f32_4 内核,因为它速度较慢且在启用时无法通过两个填充测试用例。
  • 代码使用函数常量来处理循环填充变体,从而只编译一次内核并按管道进行特化。

该版本为 macOS、iOS、Linux、Windows、Android 和 openEuler 提供了二进制文件,涵盖各种架构以及包括 CUDA、Vulkan、ROCm 和 OpenVINO 在内的后端配置。