Prhub

#41993 [Refactor] Cleanup batch invariant dead code

原始 PR 作者 yewentao256 合并时间 2026-05-11 22:48 文件变更 2 提交数 3 评论 0 代码增减 +4 / -35

执行摘要

清理 batch_invariant 模块的死代码与无用导入

作者 yewentao256 在 PR Body 中明确表示目的为“Cleanup batch invariant dead code”。通过移除死代码和未使用的导入/头文件,提高代码可维护性和可读性,减少混淆。

该 PR 属于纯粹的代码清理,无功能性变更,不值得深入阅读。但作为代码维护的正面例子,可启发团队成员主动清理死代码。

讨论亮点

Review 过程无实质性讨论。gemini-code-assist[bot] 自动评论确认了清理内容,无反馈。sfeng33LucasWilkinson 均 approve,作者本人最后评论“Land it as all CI pass”后合入。

实现拆解

  1. 清理 Python 导入和日志:在 vllm/model_executor/layers/batch_invariant.py 中,移除未使用的导入(init_loggerCallableAny)和对应的日志初始化代码。
  2. 简化 _matmul_launch_metadata 函数:移除对 tiles_per_updateFP8_OUTPUT 的兼容逻辑,直接假定 c_ptr 始终存在并获取其 element_size,简化元数据处理。
  3. 移除全局状态缓存变量:删除 enable_batch_invariant_mode 中用于保存原始状态(_original_torch_bmm_original_fp16_reduction_precision 等)的全局变量和对应保存逻辑,因为该模式不再需要回滚这些状态。
  4. 清理 C++ 头文件:在 csrc/core/batch_invariant.hpp 中移除未使用的 <cctype> 包含。
  5. 补全 log_softmax 文档字符串:增加缺失的 Returns 说明字段,提高代码文档完整性。
文件 模块 状态 重要度
vllm/model_executor/layers/batch_invariant.py 模型执行器 modified 7.07
csrc/core/batch_invariant.hpp 核心库 modified 4.93

关键源码片段

vllm/model_executor/layers/batch_invariant.py cleanup

核心清理文件,移除大量死代码、未使用导入、全局变量和注释

# --- 清理后的 _matmul_launch_metadata ---
def _matmul_launch_metadata(
    grid: Callable[..., Any], kernel: Any, args: dict[str, Any]
) -> dict[str, Any]:
    ret = {}
    m, n, k = args["M"], args["N"], args["K"]
    ret["name"] = f"{kernel.name} [M={m}, N={n}, K={k}]"
    # 直接使用 c_ptr.element_size(),不再处理 tiles_per_update 或 FP8_OUTPUT
    bytes_per_elem = args["c_ptr"].element_size()
    ret[f"flops{bytes_per_elem * 8}"] = 2.0 * m * n * k
    ret["bytes"] = bytes_per_elem * (m * k + n * k + m * n)
    return ret# --- 清理后的 enable_batch_invariant_mode(移除全局状态缓存)---
def enable_batch_invariant_mode():
    global _batch_invariant_MODE, _batch_invariant_LIB
    global _fp16_block_size_n
    if _batch_invariant_MODE:
        return
    # ... 省略环境变量设置部分 ...
    # 注意:不再保存和恢复 _original_torch_bmm 等状态

评论区精华

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

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

风险与影响

风险极低。变更仅移除死代码、未使用的导入和注释,不影响任何运行时逻辑。可能的风险在于:若未来需要恢复 enable_batch_invariant_mode 的回滚逻辑,可能需要重新实现,但当前该逻辑已不再需要。

影响范围仅限于 batch_invariant.pybatch_invariant.hpp 两个文件,对用户和系统无功能影响,仅减少代码体积和编译依赖。

无功能变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论