llama.cpp b10951调整llama_n_rs_seq调用位置以跳过不必要的llama_decode
该提交把llama_n_rs_seq的检查提前到llama_decode之前,命中时直接返回,去掉res赋值和goto语句,发布页同时给出b10951的多平台预编译包。
AI解读:llama.cpp发布b10951版本,核心改动是把common模块里llama_n_rs_seq的调用移到llama_decode之前。检查命中就直接返回,不再走后面的解码流程,顺带删掉了为配合goto而设置的res变量。
这属于内部调用顺序的调整,表面看只是挪一行代码,实际想解决的问题是避免在没有必要时仍然执行llama_decode。对使用llama.cpp推理的开发者来说,收益不在功能增减,而在少一次多余的解码调用。
发布页同时列出b10951在macOS、Linux、Windows、Android等平台的预编译包,包括CUDA、Vulkan、ROCm、SYCL、OpenVINO等后端,部分平台标注为DISABLED。具体提速幅度发布页没有给出数据,需要以自己的负载验证。
llama.cpp发布b10951,其中一条提交(#28749)把common模块中的llama_n_rs_seq调用从llama_decode之后移到之前,检查命中时直接返回,去掉了原先设置res和goto的写法。提交说明给出的动机是:在不需要的情况下避免执行llama_decode。
提交 #28749 改了什么
该提交标题为“common : move llama_n_rs_seq to before llama_decode”,仓库为ggml-org/llama.cpp,随b10951发布。改动把llama_n_rs_seq的调用挪到llama_decode之前;若该检查为真,函数直接返回,不再继续往下走。
构建产物覆盖范围与限制
b10951发布页按平台列出预编译包,macOS/iOS提供Apple Silicon(arm64)和Intel(x64)以及iOS XCFramework;Linux提供Ubuntu x64、arm64、s390x的CPU包,以及x64/arm64的Vulkan、x64的ROCm 10.0、OpenVINO 2026.3.1、SYCL FP32和SYCL FP16;Android提供arm64 CPU包。
- Windows侧提供x64与arm64的CPU包,arm64的OpenCL Adreno包,x64的CUDA 12.4、CUDA 13.3以及arm64的CUDA 13.4包(附对应DLL),另有Vulkan、OpenVINO 2026.3.1、SYCL、ROCm 10.0包。
- 发布页注明macOS Apple Silicon(arm64, KleidiAI enabled)和openEuler相关构建为DISABLED。
- 提交作者为github-actions[bot],提交说明未给出性能数据或适用条件;检查命中时跳过的是一次llama_decode调用,具体收益需要按实际使用场景判断。