| 迁移 AddRmsNormQuantFusionPass 与 AddRmsNormDynamicQuantFusionPass 两条融合规则 Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !12407 merge arn_quant_pass into master 迁移 AddRmsNormQuantFusionPass 与 AddRmsNormDynamicQuantFusionPass 两条融合规则 Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 迁移 AddRmsNormQuantFusionPass 与 AddRmsNormDynamicQuantFusionPass 两条 GE 自定义量化融合规则至本仓库,将 AddRmsNorm 与下游量化算子的组合融合为 AddRmsNormQuant / AddRmsNormDynamicQuant 算子,消除中间结果的冗余访存与算子调度开销。同步补充 UT 和文档。 ### 改动原因 量化场景中 AddRmsNorm 的输出常随后接量化算子(静态 Quantize,或动态 DynamicQuant),二者独立调度时中间结果需落回 Global Memory 再读出,存在冗余访存与调度开销。两条量化融合规则迁移至本仓库统一维护,匹配后替换为融合算子节点,提升量化场景端到端性能。 ### 改动方法 1. **静态量化规则 AddRmsNormQuantFusionPass**:识别 AddRmsNorm 后接 Quantize(可选中间 Reshape)的组合,融合为 AddRmsNormQuant 算子: - 场景一:AddRmsNorm → Quantize 直接融合; - 场景二:AddRmsNorm → Reshape → Quantize(gamma shape 与 scales/zero_points 维度不一致时使用)。 2. **动态量化规则 AddRmsNormDynamicQuantFusionPass**:识别 AddRmsNorm 后接 DynamicQuant 的组合,融合为 AddRmsNormDynamicQuant 算子,支持单路/双路模式及可选 smooth_scales(dtype 须与 x1 一致)。 3. **准入校验**:融合前 AddRmsNorm 不输出 rstd(被外部消费则拒绝)、输入 dtype 一致性、量化输出类型(int8 等)等条件校验;平台限定。 4. **UT**:AddRmsNormQuantFusionTest 5 个用例(Direct/Reshape × 无/有 offset、bf16、拒绝 rstd 被消费)、AddRmsNormDynamicQuantFusionTest 5 个用例(单路/双路 × 无/有 smooth、bf16、Reshape、拒绝 rstd 被消费)。 5. **文档**:新增 2 篇融合规则文档(融合模式、使用约束、支持型号)及 4 张配图。 6. **构建接入**:两个算子的 op_graph/CMakeLists.txt 更新,通过 _proto_headers 声明模式构造依赖的算子原型头(add_rms_norm + quantize/dynamic_quant proto);新增 UT 构建配置。 两条规则均通过 REG_FUSION_PASS(...).Stage(kAfterBuiltinFusionPass) 注册。除 op_graph/CMakeLists.txt 构建配置接入外,不修改任何既有文件逻辑。 涉及文件(16 个,+1383): - norm/add_rms_norm_quant/op_graph/fusion_pass/add_rms_norm_quant_fusion_pass.cpp/.h - norm/add_rms_norm_quant/docs/AddRmsNormQuantFusionPass.md - norm/add_rms_norm_quant/tests/ut/op_graph/test_add_rms_norm_quant_fusion_pass.cpp、CMakeLists.txt - norm/add_rms_norm_quant/op_graph/CMakeLists.txt(修改,+6) - norm/add_rms_norm_dynamic_quant/op_graph/fusion_pass/add_rms_norm_dynamic_quant_fusion_pass.cpp/.h - norm/add_rms_norm_dynamic_quant/docs/AddRmsNormDynamicQuantFusionPass.md - norm/add_rms_norm_dynamic_quant/tests/ut/op_graph/test_add_rms_norm_dynamic_quant_fusion_pass.cpp、CMakeLists.txt - norm/add_rms_norm_dynamic_quant/op_graph/CMakeLists.txt(修改,+6) - docs/zh/figures/add_rms_norm_quant_fusion_pass_1~2.png、add_rms_norm_dynamic_quant_fusion_pass_1~2.png ## 关联的Issue -https://gitcode.com/cann/ops-nn/issues/7185 ## 测试 - 新增 UT 共 10 个用例:融合命中(静态 Direct/Reshape × offset、动态单/双路 × smooth、bf16)与拒绝(rstd 被外部消费)场景。 ## 文档更新 - 新增 AddRmsNormQuantFusionPass.md:静态量化融合模式(直接/经 Reshape)、使用约束、支持型号 - 新增 AddRmsNormDynamicQuantFusionPass.md:动态量化融合模式(单/双路)、dtype/shape/attr 约束、支持型号 - 新增 4 张融合模式配图 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12407 | 20 days ago |
| fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 3 months ago |
| 修正UT依赖安装与AddExample调测、安装指引 Co-authored-by: yangyang016<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !11986 merge master into master 修正UT依赖安装与AddExample调测、安装指引 Created-by: yangyang016 Commit-by: yangyang016 Merged-by: cann-robot Description: ## 描述 修复安装、UT依赖和AddExample调测指引中的不一致,确保文档与当前代码及依赖配置对应。 - tests/requirements.txt 新增 -r ../requirements.txt,使UT依赖安装统一包含项目根目录的依赖及版本约束。 - 安装文档区分仅编译与执行UT两种场景,明确UT依赖已包含根目录依赖,无需重复安装。 - 更新AddExample的printf示例,移除与当前实现不一致的旧Tiling代码,明确在 Init 中的插入位置,使用 AscendC::printf 和与 int64_t blockLength_ 对应的 %lld。 - 补充自定义算子包安装时报 shared library validation failed 的处理说明:确认CANN版本与构建环境兼容后,可按需使用 --force 跳过共享库依赖检查;同时说明运行时加载失败风险,不建议默认使用。 ## 关联的Issue 关联Issue #6699:https://gitcode.com/cann/ops-nn/issues/6699 ## 测试 - 已执行 git diff --check HEAD^ HEAD,通过。 - 已静态核对UT依赖引用路径,以及printf示例中的变量类型与插入位置。 - 未执行实际依赖安装、CANN环境下的编译、UT及算子包安装验证,相关验证待补充。 ## 文档更新 - docs/QUICKSTART.md:更新printf调测示例,补充安装共享库校验失败时的处理说明。 - docs/zh/install/quick_install.md:区分编译依赖与UT依赖的安装场景。 - docs/zh/install/compile.md:明确UT依赖包含根目录依赖约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11986 | 27 days ago |
| torch资料入口 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !9678 merge torch into master torch资料入口 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 torch资料入口补充 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3384 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 docs/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9678 | 2 months ago |