llama.cpp b11982为Hexagon NPU加入UPSCALE算子支持
该版本在Hexagon后端新增UPSCALE缩放算子,优化最近邻 2x/4x与双线性 4x路径,并新增一组置换输入测试,用于覆盖qwen3-vl的图像转文本场景。
AI解读:llama.cpp发布b11982版本,核心变更是Hexagon后端支持UPSCALE算子,对应PR #31331。
提交说明列出:基础upscale算子尚未完全向量化;对最近邻 2x、4x与双线性 4x做了优化;支持非连续行与维度折叠;用vgather替代标量暂存;核选择逻辑移至主机侧。
测试部分新增置换(permuted)UPSCALE测试,提交说明称其覆盖qwen3-vl的图像到文本场景。
版本同时提供macOS/iOS、Linux、Android、Windows等多平台预编译包,其中包含Snapdragon的CPU、Adreno GPU、Hexagon NPU组合包。
提交说明未给出该算子的性能数据或端到端精度结果,因此现有信息只能说明功能与测试覆盖范围,不能推断加速幅度。
llama.cpp发布b11982版本,主要变更是Hexagon后端加入对UPSCALE算子的支持(PR #31331),并附带一组面向qwen3-vl图像转文本场景的置换UPSCALE测试。
Hexagon后端的UPSCALE实现细节
提交说明将基础upscale算子标注为“尚未完全向量化”,同时对最近邻 2x、4x和双线性 4x三条路径做了优化。实现上还增加了对非连续行与维度折叠的支持,并改用vgather替代标量暂存。
按提交说明,所有核选择逻辑被移到主机侧,并做了评审意见的清理。这些描述来自版本提交信息,未附带宽基准数据。
- 基础upscale算子:已加入,但未完全向量化
- 优化路径:最近邻 2x、最近邻 4x、双线性 4x
- 内存访问:支持非连续行,支持维度折叠
- 数据搬运:以vgather替代标量暂存
- 核选择:逻辑移至主机侧
测试覆盖指向qwen3-vl图像输入
版本新增了一个置换(permuted)UPSCALE测试,提交说明称其用于覆盖qwen3-vl的图像到文本场景。这说明该算子与视觉模型预处理中的缩放步骤相关,但提交说明没有给出该场景下的精度或速度结果。
发布包覆盖平台
b11982提供多平台预编译包:macOS Apple Silicon与Intel、iOS XCFramework;Ubuntu的x64/arm64/s390x CPU包,以及Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16变体;Android arm64含Snapdragon的CPU、Adreno GPU、Hexagon NPU组合包;Windows覆盖CPU、OpenCL Adreno、CUDA、Vulkan、OpenVINO、SYCL、ROCm。
发布页中macOS Apple Silicon的KleidiAI启用包与openEuler相关包标注为DISABLED。
- Snapdragon组合包同时列出CPU、Adreno GPU、Hexagon NPU
- Linux与Android的Snapdragon包各自附带setup guide链接
- UI以独立tar.gz形式发布