llama.cpp b11366修复qkx3 imatrix尺度搜索的非法舍入
该版本在舍入前把量化级别钳制到 [0, nmax],避免无效尺度搜索结果进入nearest_int触发Debug构建断言,并为q2_K、q4_K、q5_K、q4_1、q5_1的退化imatrix分组补上回归测试。
AI解读:这次改动针对ggml量化中的qkx3 imatrix尺度搜索:当拟合出的最小值塌缩到最大值、或使区间变得极小时,会算出无穷大、NaN或越界数值。
发布说明称,合法区间内的数值行为与之前一致,无效的尺度搜索结果不再进入nearest_int。
新增回归测试覆盖q2_K、q4_K、q5_K、q4_1、q5_1的退化imatrix分组,改动标记为修复 #29804,并注明Assisted-by: Claude Opus 5.5。
llama.cpp发布b11366版本,修复项为ggml-quants在qkx3尺度搜索中避免非法舍入(PR #29817)。
按发布说明描述,imatrix尺度搜索在拟合最小值塌缩到最大值或使区间极小时,可能产生无穷大、NaN或其他越界数值,该数值被传入nearest_int后在Debug构建下可能触发断言。
修复方式是在舍入前将量化级别钳制到 [0, nmax]。
改动范围与新增测试
发布说明称,钳制后区间内的合法数值行为与之前相同,无效的尺度搜索结果不再到达nearest_int。
该改动标记为修复 #29804,并注明Assisted-by: Claude Opus 5.5。
新增回归测试覆盖退化imatrix分组,涉及量化类型q2_K、q4_K、q5_K、q4_1和q5_1;测试部分会打印退化imatrix的量化类型。