Prhub

#38152 Disable dual stream execution of input projection for Qwen3

vllm-project/vllm · 作者 xyang16 · 合并时间 2026-03-26 09:20

分析状态 已生成
文件变更 2提交数 1 · 评论 1
代码增减 +5 / -67
refactor performance qwen torch.compile

执行摘要

为 Qwen3 模型禁用输入投影的双流执行,修复冷编译时间约 4 倍的回归。

根据 PR body,当前双流执行需要自定义操作传递层名作为字符串,导致冷编译时间回归约 4 倍,因此暂时禁用此优化以恢复编译性能。

建议技术管理者关注此 PR,因为它展示了性能优化与编译时间的权衡,以及临时回退的策略。工程师可学习如何安全地移除自定义操作以避免编译回归。

讨论亮点

review 讨论有限,主要来自自动化工具;zou3519 批准并道歉,表示理解临时回退的麻烦。没有深入的技术争议或未解决疑虑。

实现拆解

修改了两个模型文件:qwen3_5.py 和 qwen3_next.py。移除了对 torch.ops.vllm.gdn_in_proj 的调用,代之以直接调用 self.in_proj_qkvz 和 self.in_proj_ba 方法。同时删除了辅助函数 _forward_in_proj、maybe_execute_in_parallel 的使用以及相关事件和流对象。

文件 模块 状态 重要度
vllm/model_executor/models/qwen3_5.py model_executor/models modified 6.0
vllm/model_executor/models/qwen3_next.py model_executor/models modified 6.0

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

关键符号

forward (in qwen3_next.py) gdn_in_proj (removed) _forward_in_proj (removed)

评论区精华

临时回退双流优化 设计

zou3519 批准并道歉,表示理解麻烦,但未深入讨论技术细节。

结论:PR 被批准合并,作为临时解决方案。 · 已解决

风险与影响

风险包括:1) 性能下降:移除双流优化可能降低推理时的并行执行效率;2) 兼容性:代码修改可能影响其他依赖自定义操作的组件;3) 临时解决方案:回退是暂时的,未来需重新启用,可能引入维护复杂性。具体到文件,修改了模型核心逻辑,需确保正确性。

影响范围局限于 Qwen3 和 Qwen3.5 模型。用户可能注意到冷编译时间改善,但推理性能可能略有下降。对系统来说,减少了自定义操作依赖,简化了代码路径。团队需关注后续 #38123 的进展以重新启用优化。

性能回归风险 临时解决方案 核心路径变更

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

  • 一句话:为 Qwen3 模型禁用输入投影的双流执行,修复冷编译时间约 4 倍的回归。
  • 推荐动作:建议技术管理者关注此 PR,因为它展示了性能优化与编译时间的权衡,以及临时回退的策略。工程师可学习如何安全地移除自定义操作以避免编译回归。

功能与动机

根据 PR body,当前双流执行需要自定义操作传递层名作为字符串,导致冷编译时间回归约 4 倍,因此暂时禁用此优化以恢复编译性能。

实现拆解

修改了两个模型文件:qwen3_5.py 和 qwen3_next.py。移除了对 torch.ops.vllm.gdn_in_proj 的调用,代之以直接调用 self.in_proj_qkvz 和 self.in_proj_ba 方法。同时删除了辅助函数 _forward_in_proj、maybe_execute_in_parallel 的使用以及相关事件和流对象。

关键文件:

  • vllm/model_executor/models/qwen3_5.py(模块 model_executor/models): 修改 Qwen3.5 模型的输入投影逻辑,移除双流执行代码,直接调用 in_proj_qkvz 和 in_proj_ba。
  • vllm/model_executor/models/qwen3_next.py(模块 model_executor/models): 修改 Qwen3 Next 模型的输入投影逻辑,移除自定义操作 gdn_in_proj、并行执行辅助函数和相关事件对象。

关键符号:forward (in qwen3_next.py), gdn_in_proj (removed), _forward_in_proj (removed)

评论区精华

review 讨论有限,主要来自自动化工具;zou3519 批准并道歉,表示理解临时回退的麻烦。没有深入的技术争议或未解决疑虑。

  • 临时回退双流优化 (design): PR 被批准合并,作为临时解决方案。

风险与影响

  • 风险:风险包括:1) 性能下降:移除双流优化可能降低推理时的并行执行效率;2) 兼容性:代码修改可能影响其他依赖自定义操作的组件;3) 临时解决方案:回退是暂时的,未来需重新启用,可能引入维护复杂性。具体到文件,修改了模型核心逻辑,需确保正确性。
  • 影响:影响范围局限于 Qwen3 和 Qwen3.5 模型。用户可能注意到冷编译时间改善,但推理性能可能略有下降。对系统来说,减少了自定义操作依赖,简化了代码路径。团队需关注后续 #38123 的进展以重新启用优化。
  • 风险标记:性能回归风险, 临时解决方案, 核心路径变更

关联脉络

  • PR #38046 [compile] Add some more startup tests for top models: 与此 PR 相关,因为都涉及 torch.compile 和编译时间优化测试。

参与讨论