Prhub

#45011 [Refactor] Rename rocm_moe.py to rocm_moe_rdna.py

原始 PR 作者 JartX 合并时间 2026-06-10 17:02 文件变更 3 提交数 5 评论 1 代码增减 +19 / -19

执行摘要

重命名 ROCm MoE 模块,明确 RDNA3 目标

应评审人 @tjtanaa 要求重命名,解决原有 rocm_moe.py 名称过于通用,与仅支持 RDNA3 的实际情况不符的问题。新名称 rocm_moe_rdna.py 明确标识了目标架构,提升了代码可读性,并避免未来添加新架构实现时产生命名冲突。

本 PR 是一次安全的重命名操作,值得快速合并。它虽然没有功能改进,但提升了代码可维护性,并解决了潜在的命名隐患。对于关注 ROCm 量化路线图的工程师,建议留意后续可能新增的 rocm_moe_rdna4.py 等文件。

讨论亮点

无 review 评论。PR 由 @yewentao256 和 @tjtanaa 审批通过,@tjtanaa 是重命名的原始请求者,@yewentao256 表示“LGTM, thanks for the work!”。

实现拆解

  1. 重命名模块文件:将 rocm_moe.py 重命名为 rocm_moe_rdna.py,文件内容不变。
  2. 更新导入语句:在 compressed_tensors_moe.py 中,将 from . import rocm_moe 改为 from . import rocm_moe_rdna,同时更新后续引用到 rocm_moe 的两处调用(is_supportedmake_method)。
  3. 更新测试引用:在 test_rdna3_compile_guards.py 中,将所有测试函数和类中的 import rocm_moe 替换为 import rocm_moe_rdna,并更新 docstring 和断言消息中的模块名。涉及 10 处引用,包括 test_rocm_moe_not_supported_on_non_gfx1100TestMoEDispatchMocked 类中的所有方法。
文件 模块 状态 重要度
vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe/compressed_tensors_moe.py 量化调度 modified 5.96
vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe/rocm_moe_rdna.py 量化调度 renamed 4.96
tests/kernels/quantization/test_rdna3_compile_guards.py 编译守卫 modified 4.49

关键符号

get_moe_method is_supported make_method

关键源码片段

vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe/rocm_moe_rdna.py rename-or-move

实际被重命名的模块,内容不变,但文件名明确表明针对 RDNA3。

# 模块原本名为 rocm_moe.py,现改为 rocm_moe_rdna.py
# 以下为完整文件内容(未改动)
"""ROCm MoE kernel dispatcher.Selects architecture-specific native HIP MoE kernels in priority order.
Falls back to the Triton WNA16 path when no native kernel is available.
"""import torch
from vllm.logger import init_loggerlogger = init_logger(__name__)def is_supported(weight_quant) -> bool:
    """Check if a native ROCm MoE kernel is available for this config."""
    if weight_quant.num_bits != 4:
        return False
    from vllm.platforms.rocm import on_gfx1100
    # RDNA3 (gfx1100). Future: add RDNA4 (gfx12x), CDNA (gfx94x), etc.
    return (
        on_gfx1100()
        and hasattr(torch.ops, "_rocm_C")
        and hasattr(torch.ops._rocm_C, "moe_gptq_gemm_rdna3")
    )def make_method(weight_quant, input_quant, moe_config):
    """Create the native ROCm MoE method. Call only after is_supported()."""
    from vllm.platforms.rocm import on_gfx1100
    if on_gfx1100():
        from .compressed_tensors_moe_wna16_rdna3 import CompressedTensorsWNA16RDNA3MoEMethod
        logger.info_once(
            "Using CompressedTensorsWNA16RDNA3MoEMethod (native RDNA3 HIP kernel)"
        )
        return CompressedTensorsWNA16RDNA3MoEMethod(
            weight_quant, input_quant, moe_config
        )
    # Future: RDNA4, CDNA, etc.
    raise RuntimeError("is_supported() returned True but no kernel matched")

评论区精华

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

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

风险与影响

风险极低。本 PR 仅涉及模块重命名与引用更新,补丁完全对称(19+ / 19-),无功能语义变化。主要风险在于外部依赖如 __init__.py 或未跟踪的导入可能遗漏更新,但已通过测试文件验证了所有内部引用。

影响范围仅限于 compressed_tensors_moe 包内部和对应的测试文件。对外部用户完全透明,不影响任何 API、模型加载或推理行为。未来引入 RDNA4/CDNA MoE 实现时,命名空间更加清晰,可避免歧义。

极低风险 纯重命名

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论