llama.cpp为CUDA SSM_SCAN内核补上d_state=64 快速路径,Zamba2吞吐提升约35%
llama.cpp发布b12207,在ggml-cuda的SSM_SCAN内核中新增d_state=64 模板实例,使Zamba2类架构的扫描步骤不再全部回退到CPU;提交说明称在Zamba2-7B-Instruct上实测吞吐从 11 tok/s升至 15.1 tok/s。
AI解读:这次改动的适用对象是状态维度d_state为 64 的架构,典型代表是Zamba2;此前该内核只覆盖 96、128、256 三种快路径,64 维扫描只能回退到CPU。
提交说明给出的效果数据是在Zamba2-7B-Instruct上约 35% 的吞吐提升(11 → 15.1 tok/s),同时称同类硬件上其他架构的区间为 50-70 tok/s,说明本次仍未追平。
正确性方面,提交称沿用现有CPU参考校验框架,用Zamba2真实超参数新增 3 个测试用例,28/28 全部通过;底层数学没有改动。
限制同样明确:提交者称仍有约 28% 的scan调用因尚未定位的原因回退到CPU,与本次改动无关,因此与其他架构的完全对齐尚未实现。
llama.cpp发布b12207版本,其中ggml-cuda的SSM_SCAN内核新增d_state=64 的快速路径(PR #31818)。提交说明称,Zamba2及类似架构在循环扫描步骤中使用 64 的状态维度,落在GPU内核原有快路径(96、128、256)之外,导致每一步扫描都回退到CPU,生成速度被限制在 6-7 tok/s,而同一硬件上其他架构可达 50-70 tok/s区间。
该提交按既有模式增加了第 4 个模板实例,底层数学不变。提交称已用现有CPU参考正确性校验框架验证,并基于Zamba2真实超参数新增 3 个测试用例,28/28 通过;在Zamba2-7B-Instruct上测得吞吐约提升 35%(11 → 15.1 tok/s)。
提交同时说明尚未完全对齐:约 28% 的scan调用仍因一个尚未诊断的原因回退到CPU,与本次改动无关。提交信息标注Assisted-by: Claude Sonnet 5,Co-authored-by: Sargentmajord。该版本同时提供macOS、Linux、Windows、Android等多平台预编译包下载。