llama.cpp发布b11163,新增llama_batch_ext批量接口
该版本通过PR #24669 引入llama_batch_ext,支持在同一个batch中混合token、embedding和state,并附带了常见解码流程的演示。
AI解读:新增的批量结构支持在同一个batch里同时放入token、embedding和state。过去这三类输入通常要分开处理,现在可以在一次批处理中混合提交,相关代码还包含了一个常见提示词批量解码的演示。
这次发布同时给出了macOS、Linux、Windows、Android等平台的预编译包。普通用户不需要因此做任何事,真正需要关注的是基于llama.cpp做推理服务或自定义管线的开发者。
llama.cpp发布b11163版本,主要提交为“llama: add llama_batch_ext (#24669)”。
根据该版本的发布说明,这次改动引入了llama_batch_ext批量接口,支持在同一个batch中混合处理token、embedding和state。
提交记录还包含一个common_prompt_batch_decode演示,用于展示常见的提示词批量解码流程。
llama_batch_ext做了什么
该PR的提交记录显示,llama_batch_ext经历了多轮设计修改,包括“updated design”“updated impl”“change signature”等步骤,最终合入主线。
记录中提到它支持“both token + embd + state in batch”,即同一个批处理内可以同时容纳token、embedding和state;相关命名做过调整,例如“rename api --> embd_token”和“llama_embd”。
提交还包含“stub llama_batch_ext_set_embd_state”“llama_batch_ext_add_embd”“handle n_embd_out properly”“no more pos_max”等条目,以及修复位置、兼容性、禁用/恢复test-batch-alloc等测试调整。
- 新增接口名为llama_batch_ext,对应PR #24669。
- 支持在同一个batch中混合token、embedding和state。
- 附带common_prompt_batch_decode演示。
- 提交记录包含位置修复、兼容处理及测试调整。
b11163提供的预编译包
发布页同时列出各平台可下载的预编译产物,包括macOS Apple Silicon(arm64)、macOS Intel(x64)和iOS XCFramework。
KleidiAI的macOS Apple Silicon版本标注为DISABLED;openEuler相关构建也标注为DISABLED。
Linux侧提供Ubuntu x64/arm64/s390x的CPU包,以及Vulkan、CUDA 12、CUDA 13、ROCm 10.0、OpenVINO、SYCL FP32/FP16等后端包。
Windows侧提供CPU、OpenCL Adreno、CUDA、Vulkan、OpenVINO、SYCL、ROCm等包;Android和Snapdragon也有对应CPU、Adreno GPU、Hexagon NPU构建。
- macOS/iOS:Apple Silicon、Intel、iOS XCFramework,KleidiAI版本DISABLED。
- Linux:Ubuntu x64/arm64/s390x及Vulkan、CUDA、ROCm、OpenVINO、SYCL等后端。
- Windows:CPU、CUDA、Vulkan、OpenVINO、SYCL、ROCm、OpenCL Adreno等。
- Android/Snapdragon:CPU、Adreno GPU、Hexagon NPU构建。
- openEuler相关构建状态为DISABLED。