Qwen3-VL-8B RMSNorm 算子集成

【免费下载链接】pypto-gym PyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库 【免费下载链接】pypto-gym 项目地址: https://gitcode.com/cann/pypto-gym

产品支持情况

  • Ascend 950PR:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持

概述

将 RMSNorm 算子从原始 torch 实现替换为 PyPTO 融合算子,提升 NPU 上的推理性能。

文件结构

pypto_gym/ops/pypto_tile/qwen3_vl_8b_instruct_unredacted_max/
└── rms_norm/
    ├── rms_norm_impl.py           # PyPTO 实现
    └── README.md                  # 本文档

测试验证

cd tests/ops/qwen3_vl_8b_instruct_unredacted_max

python3 test_rms_norm.py

测试用例来源

从 Qwen3-VL-8B 模型打点采集的真实 shape/dtype:

  • prefill 阶段:[1, 11, 2048]
  • decode 阶段:[1, 1, 2048]

技术说明

场景判断

原始实现使用纯 torch 基础算子(pow、mean、rsqrt),属于场景A

  • Golden 直接复制原始代码
  • 无需 torch_npu 验证

实现选择

使用 PyPTO 内置 pypto.rms_norm 融合算子实现。

性能数据

测试环境: Ascend 910B, CANN 8.5.0

测试方法: Swimlane (泳道图) — debug_options={"runtime_debug_mode": 1}, 解析 merged_swimlane.json X 事件 span

算子 输入 shape 输入 dtype kernel 耗时 (μs) 数据来源
rms_norm (prefill 主 norm) [1, 11, 2048] float16 25.4 Swimlane
rms_norm (prefill q_norm) [1, 11, 16, 128] float16 30.9 Swimlane
rms_norm (prefill k_norm) [1, 11, 8, 128] float16 19.9 Swimlane
rms_norm (decode 主 norm) [1, 1, 2048] float16 19.8 Swimlane
rms_norm (decode q_norm) [1, 1, 16, 128] float16 5.3 Swimlane
rms_norm (decode k_norm) [1, 1, 8, 128] float16 4.9 Swimlane

状态

✅ 环境验证 ✅ 网络基线验证 ✅ 打点采集 ✅ Golden 编写 ✅ 单算子精度验证 ✅ 单算子性能采集 ✅ 模型集成 ✅ 端到端验证 ⏳ 性能调优

【免费下载链接】pypto-gym PyPTO-Gym 是基于 PyPTO 编程框架构建的算子与模型样例仓库 【免费下载链接】pypto-gym 项目地址: https://gitcode.com/cann/pypto-gym

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐