Prhub

#47157 [CI][Bugfix] Fix `Hybrid SSM NixlConnector PD prefix cache test (2 GPUs)`

原始 PR 作者 NickLucche 合并时间 2026-06-30 23:14 文件变更 1 提交数 1 评论 0 代码增减 +2 / -0

执行摘要

指定 FLASHINFER 后端消除前缀缓存测试不稳定

CI 中的 Hybrid SSM NixlConnector PD 前缀缓存测试(2 GPUs)存在 flaky 失败,作者在 PR body 中指出了 Buildkite 失败链接,并怀疑是最近 FlashAttention 相关更改(PR #36701)导致的。由于此更改在 Hopper 架构上仍是默认后端,两个相同请求的输出可能略有不同,从而触发断言。

值得快速合并,修复 CI 不稳定性。关注 FLASHINFER 后端在相关 CI 环境中的可用性,并在未来考虑长效解决方案(如修复默认后端确定性)。

讨论亮点

无实际讨论。CLaude bot 自动评论因 fork 禁用审查,jikunshang 直接 approving 并致谢。

实现拆解

在测试脚本 tests/v1/kv_connector/nixl_integration/run_mamba_prefix_cache_test.sh 的 prefill 和 decode 两个实例的启动命令中,增加 --attention-backend FLASHINFER 参数。

  1. 确定根因:分析发现默认的 FlashAttention 后端(因近期变更)可能导致相同输入产生微小数值差异,破坏前缀缓存测试的确定性。
  2. 指定稳定后端:在两个 vllm serve 调用中添加 --attention-backend FLASHINFER,确保注意力计算完全确定。
  3. 测试配套:仅修改了 shell 测试脚本,无其他源码改动。
文件 模块 状态 重要度
tests/v1/kv_connector/nixl_integration/run_mamba_prefix_cache_test.sh 测试脚本 modified 3.25

关键源码片段

tests/v1/kv_connector/nixl_integration/run_mamba_prefix_cache_test.sh test-coverage

核心变更文件,通过添加 --attention-backend FLASHINFER 显式指定注意力后端,避免因默认后端(FlashAttention)的微小数值差异导致断言失败。

# 测试脚本中 prefill 实例启动部分(关键改动)
wait_for_server() {
  local port=$1
  timeout 600 bash -c "
    until curl -s localhost:${port}/v1/completions > /dev/null; do
      sleep 1
    done" && return 0 || return 1
}# 强制使用 FLASHINFER 后端以避免默认 FA 的数值不稳定性
CUDA_VISIBLE_DEVICES=$PREFILL_GPU_ID \
VLLM_SSM_CONV_STATE_LAYOUT=DS \
VLLM_KV_CACHE_LAYOUT=HND \
VLLM_NIXL_SIDE_CHANNEL_PORT=5559 \
vllm serve $MODEL \
  --port $PREFILL_PORT \
  --enforce-eager \
  --gpu-memory-utilization $GPU_MEMORY_UTILIZATION \
  --max-model-len 16384 \
  --block-size 128 \
  --trust-remote-code \
  --enable-prefix-caching \
  --mamba-cache-mode all \
  --attention-backend FLASHINFER \
  --kv-transfer-config "$KV_CONFIG" &# decode 实例同理,省略

评论区精华

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

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

风险与影响

风险极低。变更仅限测试脚本,强制指定 FLASHINFER 后端不会影响生产路径。开发者应注意 FLASHINFER 是否在所有 CI 环境(如 Blackwell)可用,但 PR body 已指出作者在 Blackwell 无法复现,说明该后端应存在。

直接影响:消除 CI 中 Hybrid SSM NixlConnector PD 前缀缓存测试的 flaky 失败。间接影响:保证前缀缓存回归测试的稳定性。由于仅改测试脚本,无用户影响。

测试稳定性修复

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论