开源llama.cpp Releases·原文 2026年10月29日

llama.cpp b11977修复ggml-openvino的SCALE视图输入越界问题

该版本让SCALE接受带任意行跨度的src0视图,并拒绝在非连续视图上做原地SCALE;发布说明称此前的缺陷会导致结果缓冲区被越界写入并使test-backend-ops崩溃。

AI解读:llama.cpp发布b11977版本,核心改动位于ggml-openvino后端,修复SCALE算子处理视图输入的方式。发布说明由github-actions[bot] 提交,属于项目方对自身缺陷的描述。

问题成因:SCALE现在接受带任意行跨度的src0视图;translate_scale此前直接使用原始输入,而在动态路径上VIEW会被翻译成整个源张量,因此传入带跨度的视图时会对整个源张量做缩放。

后果是模型输出的尺寸变成源张量的尺寸,写回结果时越界覆盖结果缓冲区,导致test-backend-ops在SCALE视图相关用例上崩溃。

修复方式是像其他翻译器一样,用process_view_input_new对输入做切片;同时拒绝在非连续视图上执行原地SCALE,因为其结果按稠密方式写回,会落到错误的元素上。

该版本同时提供macOS、iOS、Linux、Android、Windows等多平台预编译包,包括CUDA 12/13、Vulkan、ROCm 10.0、OpenVINO、SYCL等后端;openEuler与macOS KleidiAI构建标注为DISABLED。

llama.cpp发布b11977,改动集中在ggml-openvino后端对SCALE算子视图输入的处理。发布说明称,此前带跨度的视图输入会让整个源张量被缩放,结果缓冲区随后被越界写入,test-backend-ops的SCALE视图用例因此崩溃。

缺陷的触发路径

发布说明称,SCALE现在接受带任意行跨度的src0视图。translate_scale直接使用了原始输入,而在动态路径上,VIEW会被翻译成它的整个源张量,因此一个带跨度的视图输入会缩放整个源张量。

这使模型输出带上源张量的尺寸;把结果复制回去时越过了结果缓冲区边界,test-backend-ops在SCALE视图相关用例上崩溃。

修复与限制

修复方式是调用process_view_input_new对输入做切片,与其他翻译器的做法一致。

同时,对非连续视图上的原地SCALE予以拒绝:其结果是按稠密方式复制回去的,会落到错误的元素上。

同版本的其他构建状态

b11977发布页列出多个平台的预编译包,涵盖macOS(arm64、x64)、iOS XCFramework、Ubuntu(CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL)、Android、Windows以及Snapdragon的CPU/GPU/NPU组合。

发布页中macOS Apple Silicon的KleidiAI构建与openEuler相关构建标注为DISABLED。

信息来源

llama.cpp Releases原始来源

更多

新闻专题
外观