llama.cpp 项目发布了构建版本 b11375,解决了一个关键问题:非连续 ubatch 单元会强制进行图重新分配,当设置 GGML_SCHED_NO_REALLOC 标志时会导致中止。

  • 修复方案仅收集一次循环状态,使预留空间覆盖每个分割部分,确保最坏情况下的预留大小足够。
  • 单次 get_rows 现在收集 n_rs 个状态,ubatch 和额外状态被视为此单一分配的视图。
  • 自定义获取器(如 mamba ssm_scan)从第二个状态获取数据,以避免为单序列 ubatch 复制状态。
  • 视图按图构建一次,以保持主机开销不变。

此更改通过防止由内存重新分配约束引起的中止,确保在受限调度环境中稳定执行。