llama.cpp 项目发布了版本 b9948,其中包含对 ggml 库针对 CUDA 的关键优化。该更新修改了 `ggml_top_k()` 和 `ggml_argsort()`,以较小的块处理数据,从而减少临时缓冲区的内存使用。

  • 在 CUDA CUB 的 top-k 和 argsort 实现中均实现了分块处理。
  • 在循环前仅分配一次 `tmp_dst`,以进一步优化内存。
  • 用 min/max 函数替换三元运算符以提高代码清晰度。
  • 发布了适用于 macOS(Apple Silicon 和 Intel)、Linux、Windows、Android 和 openEuler 的二进制文件,支持 CPU、CUDA、Vulkan、ROCm、OpenVINO、SYCL 和 HIP 后端。

此版本为各种平台提供了更新后的构建,同时解决了特定 CUDA 操作中的内存效率问题。