Prhub

#43695 Fix test_aot_compile for torch 2.12

原始 PR 作者 angelayi 合并时间 2026-05-27 11:12 文件变更 1 提交数 1 评论 2 代码增减 +4 / -1

执行摘要

修复 PyTorch 2.12 下 AOT 编译测试失败

PyTorch 2.12 引入回归:VLLM_USE_MEGA_AOT_ARTIFACT=1 需要 VLLM_USE_STANDALONE_COMPILE=1,但测试中 env2 仅设置 VLLM_USE_STANDALONE_COMPILE=0,未设置 VLLM_USE_MEGA_AOT_ARTIFACT,导致断言失败。关联 Issue #184550 详细描述了该错误。

此 PR 是适配 PyTorch 2.12 的必要修复,变更简单直接,值得合并。建议后续统一检查其他使用 VLLM_USE_MEGA_AOT_ARTIFACT 的测试点,确保 torch 版本升级后的兼容性。

讨论亮点

讨论中,Harry-Chen 询问谁实际设置了 VLLM_USE_MEGA_AOT_ARTIFACT;zou3519 回应不确定,但如果 PyTorch 2.12 默认开启,可以使用关闭选项。最终补丁选择了显式关闭该变量。

实现拆解

  1. 修改 tests/compile/test_aot_compile.py 中的 test_standalone_compile_correctness 函数。
  2. env2 字典从单键 {"VLLM_USE_STANDALONE_COMPILE": "0"} 扩展为双键 {"VLLM_USE_STANDALONE_COMPILE": "0", "VLLM_USE_MEGA_AOT_ARTIFACT": "0"}
  3. 这样,当 PyTorch 2.12 默认启用 VLLM_USE_MEGA_AOT_ARTIFACT 时,测试会显式关闭它,避免因缺少 VLLM_USE_STANDALONE_COMPILE 而触发断言。
  4. 无其他文件修改,变更极小且聚焦。
文件 模块 状态 重要度
tests/compile/test_aot_compile.py AOT 编译 modified 4.06

关键符号

test_standalone_compile_correctness

关键源码片段

tests/compile/test_aot_compile.py test-coverage

唯一修改文件,修复了 PyTorch 2.12 下 AOT 编译测试的失败。

# tests/compile/test_aot_compile.py 中 test_standalone_compile_correctness 的变更
# 原 env2 字典:env2={"VLLM_USE_STANDALONE_COMPILE": "0"}
# 新 env2 字典:
compare_two_settings(
    "facebook/opt-125m",
    common_args,
    common_args,
    env1={"VLLM_USE_STANDALONE_COMPILE": "1"},
    env2={
        "VLLM_USE_STANDALONE_COMPILE": "0",
        "VLLM_USE_MEGA_AOT_ARTIFACT": "0", # 显式关闭 mega artifact,兼容 torch 2.12 默认开启的行为
    },
)

评论区精华

VLLM_USE_MEGA_AOT_ARTIFACT 默认值问题 question

Harry-Chen 询问谁在实际设置 VLLM_USE_MEGA_AOT_ARTIFACT;zou3519 表示不确定,但提出了关闭选项。

结论:PR 通过显式设置 VLLM_USE_MEGA_AOT_ARTIFACT=0 来解决 torch 2.12 的默认行为变化。 · 已解决

风险与影响

风险极低。变更仅涉及测试配置,不改变产品代码。测试覆盖了 OPT-125m 模型的 standalone compile 与非 standalone compile 的正确性对比,添加的环境变量显式关闭了可能因 torch 版本变化而引入的默认行为,确保测试稳定性。

直接影响:修复 tests/compile/test_aot_compile.py::test_standalone_compile_correctness 在 PyTorch 2.12 下的失败。间接影响:其他依赖于相同环境变量默认值的测试可能也会受益于类似的显式设置,但本 PR 未对其余测试修改。不影响用户或系统。

依赖 PyTorch 版本行为

关联 Issue

#184550 [vllm] [2.12 regression][compile] test_standalone_compile_correctness: VLLM_USE_MEGA_AOT_ARTIFACT=1 without VLLM_USE_STANDALONE_COMPILE=1 + Inductor standalone_compile artifact save failures

完整报告

参与讨论