Prhub

#43186 [CI] Lower granite-4.0-h-tiny gsm8k threshold for Hybrid SSM NixlConnector PD accuracy tests (4 GPUs)

原始 PR 作者 haosdent 合并时间 2026-05-21 01:00 文件变更 1 提交数 3 评论 9 代码增减 +5 / -2

执行摘要

降低 hybrid SSM PD 精度测试阈值以容忍内核变更导致的抖动

修复因 #42430 引入的 kernel divergence 导致 Hybrid SSM NIXL PD 精度测试持续失败,同时记录根本原因并解锁 CI。PR body 中详细说明了 chunk_scan 与 SSU 内核在 bf16 ULP 级别产生不同输出的事实。

I 建议合入以解锁 CI,但同时需要创建 issue 跟踪 chunk_scanselective_state_update 内核的数值差异修复,并在修复后及时回调精度阈值。

讨论亮点
  1. 数值差异合理性: 评论者 tdoublep 质疑“why a large accuracy drop for algebraically equivalent kernels”,haosdent 解释了两者在 bf16 ULP 边界产生不同舍入路径,但 maintainers 同意先解锁 CI。
  2. Eager vs CUDA Graph 一致性: NickLucche 最初担心 gating 会导致 eager 与 CG 模式不一致,但后续接受放宽阈值方案。
  3. 精度波动范围: 观察到 4 次运行结果为 0.7498, 0.7415, 0.7559, 0.78,波动达 ~0.04,确认需放宽。

实现拆解

  1. 调整期望值: 在 tests/v1/kv_connector/nixl_integration/test_accuracy.py 中将 ibm-granite/granite-4.0-h-tinyexpected0.80 改为 0.77
  2. 放宽容差: 将 RTOL0.03 改为 0.05,并添加详细注释解释放宽原因,引用此 PR 编号及根本原因(SSU vs chunk_scan 数值差异)。
  3. 记录 TODO: 在代码中添加 TODO 注释,指向此 PR 并建议在内核差异修复后收紧参数。
文件 模块 状态 重要度
tests/v1/kv_connector/nixl_integration/test_accuracy.py 精度测试 modified 4.16

关键源码片段

tests/v1/kv_connector/nixl_integration/test_accuracy.py test-coverage

唯一修改的文件,调整 granite-4.0-h-tiny 的期望精度值和容差,并添加注释解释背景。

# 文件 : tests/v1/kv_connector/nixl_integration/test_accuracy.py
# 关键常数变更 :# 之前 : RTOL = 0.03 # 在 granite 模型上因 SSU vs chunk_scan 内核差异导致抖动过大
# 之后 :
# TODO(#43186): 从 0.03 放宽以吸收 chunk_scan/SSU 数值抖动
# 待内核差异修复后可收紧此值
RTOL = 0.05# 模型特定期望值字典中的变更项 :
EXPECTED_VALUES = {
    # ... 其他模型保持不变 ...
    # 之前 : "ibm-granite/granite-4.0-h-tiny": 0.80,
    # 之后 : 调低至 0.77 以匹配 #42430 后 SSU 内核下的实际分布
    "ibm-granite/granite-4.0-h-tiny": 0.77,
    # ...
}

评论区精华

精度下降的数值根源 正确性

tdoublep 质疑为何代数等价的内核导致 ~0.05 的精度下降。haosdent 解释两个内核在 bf16 ULP 边界产生不同舍入,但 maintainers 认为可接受以解锁 CI。

结论:接受暂时放宽阈值,但需后续单独调查内核数值差异。 · 已解决

Eager vs CUDA Graph 一致性 设计

NickLucche 最初担心仅在 CUDA graph 模式下 gate 会导致 eager 与 CG 模式间的精度不一致,但最终同意直接放宽阈值。

结论:放弃 gating 方案,统一放宽测试阈值。 · 已解决

风险与影响

低风险。仅调整精度测试的期望值和容差,不影响任何生产逻辑。但需注意:宽松的阈值可能掩盖真正的精度回归,因此代码中已添加 TODO 提醒后续必须跟踪内核差异修复并收紧参数。

仅影响 Hybrid SSM NIXL PD 精度测试(4 GPU 配置),解锁了因 #42430 持续失败的 CI 流水线。对用户无影响,对开发者是临时解决方案。

测试阈值放宽可能掩盖回归

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论