llama.cpp 项目发布了版本 b11047,其中包含针对由原地键引起的 CUB argsort 损坏的关键修复。该问题出现的原因是 `argsort_f32_i32_cuda_cub` 调用 `DeviceRadixSort::SortPairs` 时使用了别名化的输入和输出键缓冲区,导致 CUB 的内部双缓冲乒乓机制在传递过程中覆盖了其自身的输入。
此错误导致了排列损坏和间歇性的垃圾索引,特别是在使用 CUDA 12.5 和 CCCL 2.x 的 Maxwell GPU 上,随后触发了下游 `get_rows` 操作中的越界获取。修复确保所有六个调用点(普通和分段、升序和降序、大小查询和执行)使用不同的 keys-out 缓冲区。
该版本为 macOS、Linux、Android、Windows 和 openEuler 提供了适用于 CPU、CUDA、ROCm、Vulkan、OpenVINO、SYCL 和 OpenCL 后端的二进制文件。