Prhub

#49909 [ROCm] Use backend-default dot precision for ReplaySSM

原始 PR 作者 AndreasKaratzas 合并时间 2026-07-27 18:11 文件变更 2 提交数 3 评论 0 代码增减 +33 / -21

执行摘要

修复 ROCm Triton dot 精度参数不兼容

ROCm Triton 不支持 CUDA-only 的 tf32x3 精度参数。PR body 中说明“Let ROCm Triton select its native dot precision instead of passing the unsupported CUDA-only tf32x3 value”。需修复以在 ROCm 上正常运行 Mamba 模型。

值得集成的低风险修复。PR 展示了一种通过平台 API 处理 CUDA/ROCm 差异的良好实践,可推广到其他 Triton 内核。

讨论亮点

无 review 评论。仅 claude[bot] 自动注释说明 fork PR 跳过自动审查,tjtanaa 直接批准。

实现拆解

  1. 引入平台抽象:在 selective_state_update_replayssm_output_only.py 中导入 vllm.platforms.current_platform,通过平台 API 判断当前是否为 ROCm,动态设置 dot_input_precision 为 None(ROCm 默认)或 "tf32x3"(CUDA)。
  2. 修改内核调用:将硬编码的 input_precision="tf32x3" 替换为内核参数 DOT_INPUT_PRECISION,并在 selective_state_update_replayssm_output_only 函数中根据平台传入该参数。
  3. 调整 CI 配置:在 .buildkite/test-amd.yaml 中将 Mamba 测试从 MI250(amdgfx90anightly, amdmi250)迁移到 MI300(amdgfx942nightly, amdmi300),确保 ROCm 默认路径被覆盖;同时更新注释明确解释精度选择逻辑。
  4. 格式化改进:对 HAS_STATE_BATCH_INDICES 启发式函数进行了格式化调整(括号换行),无逻辑变更。
文件 模块 状态 重要度
vllm/model_executor/layers/mamba/ops/selective_state_update_replayssm_output_only.py Mamba 内核 modified 5.05
.buildkite/test-amd.yaml CI 配置 modified 4.27

关键符号

selective_state_update_replayssm_output_only _replayssm_output_only_kernel

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

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

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

风险与影响

低风险。变更仅影响 ROCm 平台的 Triton dot 精度,CUDA 侧无功能变化。CI 配置将 Mamba 测试从 MI250 迁移至 MI300,可能覆盖现有测试依赖;但测试仍保持可选(optional: true),不影响主干 CI。

直接修复 ROCm Triton dot 精度不兼容问题,使 ReplaySSM 内核在 ROCm 上可正常运行。对 CUDA 用户无感。CI 配置调整后,Mamba 测试在 MI300 上运行,MI250 不再执行此测试,可能减少测试覆盖范围但符合硬件分组优化。

CI 测试迁移可能覆盖丢失

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论