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 操作中的内存效率问题。