# PR #36100 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[ROCm] Fix fused_moe_fake signature mismatch and other AITER bugs
- 合并时间：2026-03-23 15:48
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/36100

---

## 执行摘要
修复 ROCm AITER ops 中 fused_moe_fake 签名不匹配和其他错误，确保 torch.compile 在 MXFP4 MoE 代码路径下正常工作，避免崩溃，并清理多个错误消息和 typos 以提高代码质量。

## 功能与动机
主 bugfix 是由于 `_rocm_aiter_fused_moe_fake` 函数缺少 hidden_pad、intermediate_pad、bias1、bias2 四个参数，导致在 torch.compile/FakeTensor 模式下调用时出现 TypeError 崩溃。根据 PR body，此问题在 MXFP4 CK 后端代码路径（如 mxfp4.py 第 1162-1177 行）中被主动触发，需修复以支持正常编译和运行。其他 fix 包括修正错误消息、注释和 typos，以减少代码混淆。

## 实现拆解
关键改动按文件拆解如下：

- **vllm/_aiter_ops.py**：
 - 在 `_rocm_aiter_fused_moe_fake` 函数中添加四个参数：`hidden_pad`、`intermediate_pad`、`bias1`、`bias2`，匹配真实实现签名。
 - 修正方法名 typo：`triton_fp4_gemm_dynamic_qaunt` 改为 `triton_fp4_gemm_dynamic_quant`。

- **vllm/model_executor/layers/quantization/quark/schemes/quark_ocp_mx.py**：
 - 移除本地 `is_rocm_aiter_fp4_asm_gemm_enabled` 函数，改用 `rocm_aiter_ops.is_asm_fp4_gemm_dynamic_quant_enabled`，实现代码集中化。

- **vllm/v1/attention/backends/rocm_aiter_fa.py**：
 - 修正错误消息引用：将 "FlashAttentionImpl" 改为 "AiterFlashAttentionImpl"。
 - 修正 KV 缓存布局注释：从 `[num_blocks, num_heads, page_size, head_dim]` 改为 `[num_blocks, page_size, num_heads, head_dim]` 以匹配实际索引。
 - 修正语法错误："only support" 改为 "only supports"。

- **其他文件**：如 quark_moe.py 修正变量标签 typo。

## 评论区精华
review 讨论中仅有一条有价值的技术建议：

> tjtanaa："can you also perform a small clean up to use the `is_asm_fp4_gemm_dynamic_quant_enabled` from rocm_aiter_ops"

此建议被 PR 作者采纳，在第二个 commit 中实现，无其他争议或深度讨论。

## 风险与影响
**风险分析**：
- 签名修复风险低，但需确保 fake 函数参数与 impl 完全一致，避免未来类似崩溃。
- 方法名更改可能影响调用者，但基于 PR 描述为 typo 修正，应无兼容性问题。
- 测试覆盖不完全，PR 提到 CI 应通过，但未完全验证，潜在未覆盖路径可能导致回归。

**影响分析**：
- 用户：修复 ROCm 后端在使用 torch.compile 和 MXFP4 量化时的崩溃，提高稳定性和可靠性。
- 系统：确保 AITER ops 正确工作，支持量化 MoE 路径。
- 团队：清理错误消息和注释，减少代码维护中的混淆，改进可读性。

## 关联脉络
从历史 PR 看，本 PR 与以下相关：
- **PR #37784**：涉及 XPU MXFP4 MoE 重构，都聚焦于量化 MoE 支持，表明仓库在持续优化多后端量化实现。
- **PR #32929**：涉及 FP8 量化内核抽象，共享代码组织思路，可能为 AITER ops 提供参考。
整体脉络显示仓库在推进量化技术和多后端支持，本 PR 是 ROCm 方向的关键 bugfix。