Prhub

#42456 [Feature] Support compile mode for batch invariance on SM80

原始 PR 作者 yewentao256 合并时间 2026-05-13 23:02 文件变更 2 提交数 1 评论 2 代码增减 +14 / -8

执行摘要

A100 启用 compile 模式 batch invariance 测试

详见 Issue #27433,这是 batch invariance 功能系列工作的一部分。之前 SM80 上强制使用 eager 模式,现需支持 compile 模式并加入 CI 保护。

建议精读 PR#27842 和关联 Issue#27433 以了解 batch invariance 的整体设计。该 PR 本身是功能演进的里程碑,值得关注后续 SM80 上 compile 模式的实际效果。

讨论亮点

gemini-code-assist[bot] 建议在 A100 步骤中也运行 test_rms_norm_batch_invariant.py 以保持一致性,但 yewentao256 回应称该测试对结构不敏感,未采纳。最终 reviewer sfeng33 批准了 PR。

实现拆解

  1. 测试文件调整:在 tests/v1/determinism/test_batch_invariance.py 中移除所有测试函数的 enforce_eager=IS_DEVICE_CAPABILITY_BELOW_90 参数,使 SM80 设备可使用 compile 模式。
  2. CI 配置新增:在 .buildkite/test_areas/misc.yaml 中新增 Batch Invariance (A100) 测试步骤,使用 a100 设备运行 batch invariance 测试。
文件 模块 状态 重要度
tests/v1/determinism/test_batch_invariance.py 测试 modified 4.2
.buildkite/test_areas/misc.yaml CI modified 4.43

关键源码片段

tests/v1/determinism/test_batch_invariance.py test-coverage

移除 enforce_eager 参数,允许 SM80 使用 compile 模式执行 batch invariance 测试。

# 变更前:所有 LLM 初始化都包含 enforce_eager=IS_DEVICE_CAPABILITY_BELOW_90
# 变更后:移除该参数,让 SM80 设备可以使用 compile 模式# 删除了以下导入行和全局变量
# from utils import is_device_capability_below_90
# IS_DEVICE_CAPABILITY_BELOW_90 = is_device_capability_below_90()# 以 test_logprobs_bitwise_batch_invariance_bs1_vs_bsN 为例,移除前:
llm = LLM(
    model=TEST_MODEL,
    tensor_parallel_size=tp_size,
    max_num_seqs=128,
    max_model_len=8192,
    dtype="auto",
    gpu_memory_utilization=0.9,
    enforce_eager=IS_DEVICE_CAPABILITY_BELOW_90, # 已移除
    attention_config={"backend": backend},
)# 类似改动应用于所有测试函数中的 LLM 调用

评论区精华

A100 步骤是否添加 test_rms_norm_batch_invariant.py 测试

gemini-code-assist[bot] 建议在 A100 步骤中添加 test_rms_norm_batch_invariant.py 以保持一致。

结论:作者 yewentao256 认为该测试对结构不敏感,未添加。 · 已解决

风险与影响

移除 enforce_eager 后,SM80 上的 batch invariance 测试默认使用 compile 模式,可能暴露编译相关的非确定性或性能退化。但因变更仅影响测试,且已在 A100 上验证通过,风险可控。

仅影响测试和 CI 配置,无用户侧影响。对开发团队而言,新增了 A100 CI 步骤,确保 batch invariance 在 compile 模式下仍能通过测试。

测试覆盖调整 核心路径变更

关联 Issue

#27433 [Feature]: Batch Invariant Feature and Performance Optimization

完整报告

参与讨论