llama.cpp b11567发布:推理中可报告计算图缓冲区重分配
llama.cpp新版本新增可选回调ggml_backend_sched_realloc_callback,用于在图缓冲区不足需重新预留时通知用户代码;llama_context已注册该回调,并在性能统计中输出两类重分配计数。
AI解读:llama.cpp发布b11567版本,主要变更是在推理过程中报告计算图重分配(reallocation)。
新增可选的ggml_backend_sched_realloc_callback,用户代码通过ggml_backend_sched_set_realloc_callback注册,当为某个图预留的缓冲区不足、需要重新预留时收到通知。
回调会报告自上次调度以来后端的分配(backend assignments)和图大小是否发生变化。
llama_context在创建调度器时注册该回调(封装进新的llama_context::sched_new辅助函数),并将后端分配变化后的重分配视为预期行为,其余按图大小计数——图大小不变或相对上次调度的图发生变化。
两个计数器在同一行的性能统计中输出。
该版本同时提供macOS/iOS、Linux、Android、Windows等平台的预编译二进制包,openEuler构建被标记为DISABLED。提交说明标注Assisted-by: pi:llama.cpp/Qwen3.8-Flash-Next。
llama.cpp发布b11567版本,核心变更是让推理过程能够报告计算图重分配情况。
该版本新增可选的ggml_backend_sched_realloc_callback,用户代码可通过ggml_backend_sched_set_realloc_callback注册,当为图预留的缓冲区不足、需要重新预留时收到通知。回调会报告自上次调度以来后端分配(backend assignments)和图大小是否发生变化。
llama_context如何注册与分类重分配
根据提交说明,llama_context在创建调度器时注册该回调,封装进新的llama_context::sched_new辅助函数。
llama_context将后端分配变化后跟随的重分配视为预期行为,其余重分配按图大小计数——分为图大小不变、图大小相对上次调度的图发生变化两类。两个计数器在同一行的性能统计中输出。
- 新增回调:ggml_backend_sched_realloc_callback(可选)
- 注册接口:ggml_backend_sched_set_realloc_callback
- 触发条件:为图预留的缓冲区不足、需要重新预留
- 回调报告内容:后端分配是否变化、图大小是否变化
- llama_context封装:llama_context::sched_new
- 计数方式:后端分配变化后的重分配视为预期;其余按图大小不变/变化分别计数
- 输出位置:性能统计中的一行
发布物与平台
b11567提供多平台预编译包,涵盖macOS/iOS、Linux、Android、Windows及UI。openEuler条目标记为DISABLED。
- macOS Apple Silicon (arm64)、macOS Intel (x64)、iOS XCFramework;其中KleidiAI enabled的macOS Apple Silicon标记为DISABLED
- Linux:Ubuntu x64/arm64/s390x CPU、Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16,以及Linux arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU)
- Android:arm64 CPU与arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU)
- Windows:x64/arm64 CPU、arm64 OpenCL Adreno、CUDA 12.4、CUDA 13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0
- openEuler:x86 310p、x86 910b(ACL Graph)、aarch64 310p、aarch64 910b(ACL Graph),标记为DISABLED
- UI:提供独立tar.gz