llama.cpp b12030 修复 Hexagon DMA 大 stride 截断问题
原标题:b12030
AI 摘要
llama.cpp 发布 b12030 版本,修复了 Hexagon 后端在 v75+ 硬件上 DMA 传输的缺陷:2D DMA 描述符仅用 24 位存储 row_size 和 stride,导致 16MB 及以上的 stride 被截断、地址错误。修复方式是在该情况下回退为逐行传输,并重构了回退路径以消除重复代码,同时新增两个 stride 超过 16MB 的 CONT 测试。该版本同时提供 macOS、Linux、Windows、Android 等多平台及 CUDA、Vulkan、ROCm、SYCL、OpenVINO 等后端构建包。
正文节选
<details open> hexagon : fix DMA transfers with strides > 24 bits (#31442) * hexagon : fix DMA transfers with strides > 24 bits On v75+ the 2D DMA descriptor stores row_size and strides in 24 bits. dma_queue_push sent oversized strides to fallback_2d, which only splits nrows, so strides of 16 MB or more were truncated - wrong addresses. Fix will fall back to one transfer per row in that case. Also added two CONT tests with source strides over 16 MB. * hex-dma: refactor the fallback paths to