llama.cpp b11375:统一收集循环状态修复图重分配中止
原标题:b11375
AI 摘要
llama.cpp 发布 b11375 版本,修复了图调度中循环状态收集的问题。此前 build_rs 用单独的 get_rows 收集额外状态,导致最坏情况下预留节点被设为 0 行,当 ubatch 单元不连续时会触发图重分配,在 GGML_SCHED_NO_REALLOC 下直接中止。现在改为单个 get_rows 统一收集 n_rs 状态,ubatch 状态与额外状态作为其视图,并新增自定义 getter(mamba ssm_scan)从第二个状态收集,使单序列 ubatch 不再复制状态。
正文节选
<details open> graph: gather the recurrent states once so the reserve covers every split (#29856) build_rs gathered the extra states (n_rs - n_seqs rows) with their own get_rows. The worst-case reserve has n_rs == n_seqs, so that node was sized at zero rows, and any ubatch whose cells are not contiguous forced a graph reallocation at an unchanged node count, which aborts under GGML_SCHED_NO_REALLOC. A single get_rows now gathers the n_rs states: the ubatch states and the extra states are view