Prhub

#51905 [XPU][CI]Change to use global VLLM_DISABLE_COMPILE_CACHE=1 in Intel GPU CI

原始 PR 作者 zxd1997066 合并时间 2026-08-12 12:30 文件变更 9 提交数 1 评论 2 代码增减 +13 / -17

执行摘要

Intel GPU CI 全局改用 VLLM_DISABLE_COMPILE_CACHE=1

PR body 明确提出 "Change to use global VLLM_DISABLE_COMPILE_CACHE=1 in Intel GPU CI"。此前需要禁用编译缓存的测试任务都要在 pytest 命令前手动加 VLLM_DISABLE_COMPILE_CACHE=1,并在多个 YAML 中反复维护 "# Remove VLLM_DISABLE_COMPILE_CACHE=1 once intel/intel-xpu-backend-for-triton#7682 is fixed" 注释,容易遗漏且难以维护;统一为脚本级全局导出后,新增测试任务不再需要关心该变量。

可作为 CI 配置收口的小型示例快速浏览,无需精读源码。值得关注的设计决策是:将跨多个 YAML 重复的环境变量前置改为基础脚本全局导出,并用 docker run -e 透传保证容器内外一致,这种模式适用于同类硬件 CI 的批量配置收敛。

讨论亮点

review 中无实质技术争论:claude[bot] 提示该 PR 来自 fork,默认禁用自动 review,维护者可评论 @claude review 手动触发;维护者 jikunshang 直接发出 /ci run 触发 Buildkite CI #83499 后批准合并。整个过程符合纯 CI 配置收口的预期。

实现拆解

  1. 脚本层收口:在 .buildkite/scripts/hardware_ci/run-intel-test.sh 中,于导出 PYTHONPATH 之后新增 export VLLM_DISABLE_COMPILE_CACHE=1,并将 VLLM_DISABLE_COMPILE_CACHE 追加到待转发环境变量列表(HF_TOKEN、ZE_AFFINITY_MASK 等)中,同时在 docker run 命令行补充 -e VLLM_DISABLE_COMPILE_CACHE 参数,保证容器内外测试环境一致。
  2. 配置层清理:.buildkite/intel_jobs 下的 7 个 YAML 文件(model_executor_intel.yaml、model_runner_v2_intel.yaml、models_distributed_intel.yaml、basic_correctness.yaml、benchmarks_intel.yaml、samplers_intel.yaml、test-intel.yaml)统一删除 commands 中的 VLLM_DISABLE_COMPILE_CACHE=1 前缀以及对应的上游修复注释;.buildkite/scripts/hardware_ci/run-intel-ci-test.sh 也同步清理了 v1 分支命令中的同类前缀与注释。
  3. 验证方式:维护者通过 /ci run 触发 Buildkite CI(#83499,commit ab58708a9190)做全量 Intel GPU 验证;本次变更无源码或测试配套改动。
文件 模块 状态 重要度
.buildkite/scripts/hardware_ci/run-intel-test.sh CI 脚本 modified 3.42
.buildkite/scripts/hardware_ci/run-intel-ci-test.sh CI 脚本 modified 3.13
.buildkite/intel_jobs/test-intel.yaml CI 任务 modified 3.17
.buildkite/intel_jobs/model_executor_intel.yaml CI 任务 modified 3.38
.buildkite/intel_jobs/model_runner_v2_intel.yaml CI 任务 modified 2.98
.buildkite/intel_jobs/models_distributed_intel.yaml CI 任务 modified 2.98
.buildkite/intel_jobs/basic_correctness.yaml CI 任务 modified 2.77
.buildkite/intel_jobs/benchmarks_intel.yaml CI 任务 modified 2.77
.buildkite/intel_jobs/samplers_intel.yaml CI 任务 modified 2.77

关键源码片段

.buildkite/intel_jobs/model_executor_intel.yaml configuration

Model Executor Intel 测试任务的代表样例,清理后展示配置收口效果。

# 整理后关键片段:VLLM_DISABLE_COMPILE_CACHE=1 已由 run-intel-test.sh 全局导出,
# 这里不再需要逐条前置变量,也不再保留修复注释。
commands:
  - >-
    bash .buildkite/scripts/hardware_ci/run-intel-test.sh
    'apt-get update && apt-get install -y curl libsodium23 &&
    pip3 install tensorizer==2.10.1 &&
    pip3 install runai-model-streamer[s3,gcs,azure]\>=0.15.7 &&
    export VLLM_WORKER_MULTIPROC_METHOD=spawn &&
    export PYTHONFAULTHANDLER=1 &&
    cd tests &&
    pytest -v -s model_executor -m "not slow_test" --ignore="model_executor/layers/test_rocm_unquantized_gemm.py" --deselect="tests/model_executor/model_loader/test_reload.py::test_kv_scale_reload"'

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 全局导出会让所有走 run-intel-test.sh 的 Intel GPU 测试任务继承 VLLM_DISABLE_COMPILE_CACHE=1,当前是预期行为,但若未来某个任务需要启用编译缓存,必须把全局变量改为更细粒度的任务级控制,否则删除全局导出会影响所有任务。
  2. 该变量本质是绕过上游 intel/intel-xpu-backend-for-triton#7682 的已知问题,脚本内仍保留修复注释;上游修复后需人工跟进清理,长期带着 workaround 存在被遗忘的风险。
  3. 影响面明确限定在 .buildkite/ 下的 Intel GPU CI 配置与脚本,不涉及 vLLM 运行时、模型逻辑或用户路径,回归风险很低。

对 CI 维护者影响最大:新增或调整 Intel GPU 测试任务时不再需要记住是否要加 VLLM_DISABLE_COMPILE_CACHE=1,配置更简洁一致;对 CI 实际行为无变化,因为所有命令之前已经显式设置了该变量,本次只是把分散设置改为脚本级统一设置;对 vLLM 用户和运行时无影响。

环境变量全局生效 依赖上游 #7682 修复 CI 配置集中化

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论