llama.cpp b9820 版本通过重新引入在拆分计算期间更少的同步操作来引入性能改进,特别针对 CUDA 后端。此更新还为 macOS、Linux、Windows、Android 和 openEuler 提供了预构建的二进制文件,涵盖 CPU、GPU 和专业硬件加速器。

  • 通过减少 token 之间的同步来提升 CUDA 性能。
  • 向 ggml_backend_cuda_cpy_tensor_async() 添加了 CPU 到 CUDA 的复制功能。
  • 放宽了对支持的后端(如 CUDA)上输入副本之间同步的要求。
  • 将同步复制替换为异步复制函数,并为非 CUDA 构建添加了宏保护。
  • 重写了 ggml-backend.cpp 中的后端检测逻辑,以避免链接冲突。
  • 通过在多 GPU 设置中添加单 GPU 同步来修复 hip 后端的流水线并行 bug。
  • 出于预防措施,将 hip/MUSA 从 copy_from_host CPU 拆分到 GPU 拆分的优化中排除。

该版本通过优化的异步操作实现了 CUDA 设备上更快的推理,同时保持了广泛的操作系统和硬件后端的兼容性。