AISpot

llama.cpp 新增回撥,推理時可上報計算圖重新分配

llama.cpp releases版本更新地端推論開源

llama.cpp 建置 b11567 引入可選的 ggml_backend_sched_realloc_callback,使用者程式碼通過 ggml_backend_sched_set_realloc_callback 註冊後,可在為計算圖預留的緩衝區不足、需要重新分配時收到通知。回撥會報告後端分配方案與圖大小相對上次排程是否發生變化。

原標題:b11567
閱讀原文

評分45 / 40(平均 42,門檻 60)
狀態未入選

原文

llama : report compute graph reallocations during inference ( #30329 ) Add an optional ggml_backend_sched_realloc_callback that user code registers with ggml_backend_sched_set_realloc_callback to be notified when the buffers reserved for a graph are not sufficient and have to be reserved again. The callback reports whether the backend assignments and the graph size changed since the previous scheduling. llama_context registers the callback when creating the scheduler (wrapped into the new llama_context::sched_new helper) and treats the reallocations that follow a change of the backend assignments as expected, counting the rest by graph size - unchanged or changed from the previously scheduled graph. Both counters are reported on one line in the perf stats. Assisted-by: pi:llama.cpp/Qwen3.8-Flash-Next Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/55042647 macOS/iOS: macOS Apple Silicon (arm64) macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED macOS Intel (x64) iOS XCFramework Linux: Ubuntu x64 (CPU) Ubuntu arm64 (CPU) Ubuntu s390x (CPU) Ubuntu x64 (Vulkan) Ubuntu arm64 (Vulkan) Ubuntu x64 (CUDA 12) - CUDA 12.8 libraries Ubuntu x64 (CUDA 13) - CUDA 13.4 libraries Ubuntu arm64 (CUDA 13) - CUDA 13.4 libraries Ubuntu x64 (ROCm 10.0) Ubuntu x64 (OpenVINO) Ubuntu x64 (SYCL FP32) Ubuntu x64 (SYCL FP16) Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Android: Android arm64 (CPU) Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Windows: Windows x64 (CPU) Windows arm64 (CPU) Windows arm64 (OpenCL Adreno) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.4 DLLs Windows arm64 (CUDA 13) - CUDA 13.4 DLLs Windows x64 (Vulkan) Windows arm64 (Vulkan) Windows x64 (OpenVINO) Windows x64 (SYCL) Windows x64 (ROCm 10.0) openEuler: DISABLED openEuler x86 (310p) openEuler x86 (910b, ACL Graph) openEuler aarch64 (310p) openEuler aarch64 (910b, ACL Graph) UI: UI

相關報導

llama.cpp releasesAI 評分43

llama.cpp 修復取樣圖:跨 ubatch 保持靜態,避免重分配建置中斷

llama.cpp 建置 b11530 修正了後端取樣圖的拓撲問題:現在每個 sampler 都建置 n_outputs_max_per_seq 條取樣鏈,使取樣圖在不同 ubatch 之間保持靜態。此前 reserve 階段按每個 sampler 建鏈,而 decode 階段按每行輸出建鏈,圖拓撲因此變化,導致 GGML_SCHED_NO_REALLOC 建置在下一次遇到同尺寸圖時中止。

llama.cpp releasesAI 評分48

llama.cpp 修復 k-pool 模型圖重分配導致的解碼中止

llama.cpp 發布 b11412,修復 k-pool 模型(qwen4exp、glm5-next)解碼時意外重新預留計算圖並中止的問題。原因是兩模型按 cache_safe、n_tokens 等 reserve 無法預知的狀態分支,解碼圖與預留圖節點數不一致(如 7564 對 7762),解碼時被迫按當前狀態重預留、丟掉最壞情況尺寸,在 GGML_SCHED_DEBUG_REALLOC=1 下直接 abort。

llama.cpp releasesAI 評分45

llama.cpp 修復 NextN 提取引發的排程器重分配報錯

llama.cpp 發布 b11440,修復投機 MTP 解碼中 NextN 提取標誌變化導致的排程器預留失效報錯。啟用 MTP 後,NextN 提取在目標與草稿上下文的排程器已預留之後才開啟;未掩碼提取時主幹圖保留最後一層的全部 token 而非裁剪到輸出行,首次解碼按該批次形狀重分配,下一批更寬的批次就會觸發 GGML_SCHED_DEBUG_REALLOC。修復方式是在標誌變化時作廢預留,讓下一次計算按新圖形狀重新預留,並隨各平台預編譯包發布。