llama.cpp发布b12368,改进Hexagon缓冲区分配与mmap堆叠
该版本合并PR #32144,针对高通Hexagon NPU后端调整队列与fence缓冲区、按线程数设置队列大小,并在主机侧优化mmap堆叠以缓解iova碎片。
AI解读:PR描述的四项调整包括:合并队列缓冲区与fence缓冲区;使用n_threads决定队列大小;在主机侧优化缓冲区堆叠以避免iova碎片;为偶发的mmap失败增加简单重试,并在扩展重试时使用eager模式。
这些改动写在版本发布说明的变更列表中,未附带性能数据、适用芯片型号范围或基准测试结果。
该版本同时提供macOS/iOS、Linux、Windows、Android等多平台预编译包,其中Linux与Android有标注Snapdragon(CPU、Adreno GPU、Hexagon NPU)的构建,Android与Linux的Snapdragon包各自附有setup guide链接。
发布说明中若干条目标注为DISABLED:macOS Apple Silicon的KleidiAI启用版本、openEuler全部构建。
发布说明未说明Hexagon改动对推理速度或内存占用的实际影响,也未给出回归测试范围。
llama.cpp发布b12368版本,变更列表中的主要条目是合并PR #32144:hexagon后端改进缓冲区分配与映射(mmap堆叠)。
PR #32144 的具体改动
发布说明按PR描述列出五项内容:hex-bufs合并队列缓冲区与fence缓冲区;hex-bufs使用n_threads进行队列大小设置;hex-mmap在主机侧优化缓冲区堆叠,以避免iova碎片;hex-mmap为偶发的mmap失败增加简单重试;hex-mmap在扩展mmap重试时使用eager模式。
- 合并队列缓冲区与fence缓冲区
- 使用n_threads决定队列大小
- 主机侧优化缓冲区堆叠,避免iova碎片
- 为偶发mmap失败增加简单重试
- 扩展mmap重试时使用eager模式
随版本提供的构建与限制
该版本发布页面列出macOS/iOS、Linux、Windows、Android等平台预编译包,以及单独的UI包。Linux与Android均有标注Snapdragon(CPU、Adreno GPU、Hexagon NPU)的arm64构建,并各自链接到setup guide。
发布说明中两项被标注为DISABLED:macOS Apple Silicon(arm64,启用KleidiAI)构建,以及openEuler构建。macOS Apple Silicon的常规arm64包仍在列表中。
- Linux arm64 Snapdragon包含CPU、Adreno GPU、Hexagon NPU,附Linux版setup guide
- Android arm64 Snapdragon构建附Android版setup guide
- macOS Apple Silicon KleidiAI启用版与openEuler构建标注DISABLED
- 未给出Hexagon改动的性能数据、芯片型号范围或测试结果