| 图融合引用nn仓的若干md Co-authored-by: yuwang-<yuwang11@h-partners.com> # message auto-generated for no-merge-commit merge: !12787 merge master into master 图融合引用nn仓的若干md Created-by: yuwang- Commit-by: yuwang- Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 图融合引用文档的翻译回稿合入: MatmulToGemmOpFusionPass_en.md MatMulToMatmulV3FusionPass_en.md MatMulUnsqueezeSqueezeFusionPass_en.md MaxPoolGradFusionPass_en.md QuantBatchMatmulV3TransposeFusionPass_en.md QuantBatchMatmulV4ToV3FusionPass_en.md QuantBatchMatmulV4TransposeFusionPass_en.md WeightQuantBatchMatmulV2TransposeFusionPass_en.md ZZMatMulTOQBMMV3FusionPass_en.md AntiQuantMatMulFusionPass_en.md BatchMatMul2MulFusionPass_en.md BatchMatMul2TransposeBatchMatMulFusionPass_en.md BatchMatMulTransposeFusionPass_en.md BucketizeFusionPass_en.md GatherToGatherV2FusionPass_en.md GemmToMatmulFusionPass_en.md InplaceAddLayerNormFusionPass_en.md LayerNormRemoveBroadcastFusionPass_en.md MatMulBiasAddOpenFusionPass_en.md MatMulReshapeBiasAddFusionPass_en.md MatmulReshapeTransposeFusionPass_en.md ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/7431 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12787 | 2 天前 |
| feat(gelu_v2): 新增GeluV2ONNXFusionPass融合规则(56模式),将ONNX导出的Gelu公式子图融合为GeluV2算子 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !10765 merge gelu_v2_onnx_fusion_pass into master feat(gelu_v2): 新增GeluV2ONNXFusionPass融合规则(56模式),将ONNX导出的Gelu公式子图融合为GeluV2算子 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 GeluV2ONNXFusionPass 图融合规则,将 ONNX 导出(如 PyTorch 导出 ONNX)产生的 gelu 公式子图融合为单个 GeluV2 算子,减少小算子开销: - **erf 场景**(approximate="none"):gelu(x) = 0.5 * x * (1 + erf(x / √2)),覆盖 RealDiv(0.5 常量在 mul0/mul1 两种位置)与 TrueDiv(Mul 形式)共 3 种拓扑 × Add/Mul 输入顺序 8 个变体 = 24 个模式; - **tanh 场景**(approximate="tanh"):gelu(x) = 0.5 * x * (1 + tanh(√(2/π) * (x + 0.044715 * x³))),匹配与内核一致的完整近似公式,按 κ/β/1.0 常量位置 × 外部乘法顺序展开 32 个变体;内层链 squareMul=Mul(x,x)、cubeMul=Mul(squareMul,x)(左结合)、innerAdd=Add(x, κx³)(读序)与 **0.5 常量先乘形式(mul0 族)** 固定为主导导出形式(所有已知 ONNX 导出器均按 0.5*x*(1+tanh(...)) 书写,无导出器后绑 0.5); - 合计 56 个模式。因 ES 模式匹配器对输入端口严格比较、不提供可交换算子的操作数匹配,各种导出顺序需枚举为显式模式变体; - 常量值不在模式层匹配,统一在 MeetRequirements 中按容差校验:√2 / 1/√2 / β 按 dtype 容差(FP32 0.00001,FP16 0.001),κ 容差 0.0001,Add 常量必须为 1.0,Mul 常量必须为 0.5;**常量值为 NaN 时显式拒绝**(NaN 与任何容差比较均为假,ParseScalarValue 解析阶段 std::isnan 检查); - 校验约束:输入 x 仅支持 FLOAT16/FLOAT32/BFLOAT16;公式常量必须是 FLOAT16/FLOAT32 标量;中间节点输出须被子图内单点消费(被子图外复用则跳过融合);TrueDiv(Mul 形式)场景 x 不能为标量;平台门禁 IsDav3510Arch()(Ascend 950PR&950DT 系列); - 替换:按激活类型设置 approximate(Erf→"none",Tanh→"tanh"),通过 ge::es::GeluV2(inputX, approximate) 构建替换子图,继承原输入/输出 desc 并执行 InferShape; - 注册:REG_FUSION_PASS(GeluV2ONNXFusionPass).Stage(ge::CustomPassStage::kAfterInferShape)。 同时删除 op_graph/fusion_pass/.gitkeep 占位文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> - 关联 Issue #6861 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 新增 test_gelu_v2_onnx_fusion_pass.cpp 共 37 个 UT 用例(纳入 OP_GRAPH_UT 模块构建): - 正向用例:erf 场景 RealDiv/TrueDiv 各拓扑、tanh 完整公式各常量顺序,覆盖 FP32/FP16/BF16 输入及 FP16 常量,验证融合为 GeluV2 且 approximate 设置正确; - 反向用例(不融合):div/β/κ/Add 常量值非法、**常量值为 NaN**、**tanh 场景 0.5 常量后绑形式**(无已知 ONNX 导出器产生该形式,模式集中已剔除)、常量非标量或 dtype 不支持、输入 dtype 不支持、非 950 平台及**架构查询失败**、中间节点被外部多消费者复用、**0.5 常量被子图外节点共享消费**(匹配器对模式内节点含常量强制精确 fan-out,外部消费者保留有效常量输入)、TrueDiv 场景输入为标量、边界输入为 Const 节点时的常量识别等。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 activation/gelu_v2/docs/GeluV2ONNXFusionPass.md:融合模式(erf 3 种拓扑 + tanh 场景 32 变体共 56 模式)、计算公式、数据类型/常量取值(含 NaN 拒绝)/拓扑约束、支持型号(Ascend 950PR&950DT 系列); - 新增 4 张拓扑示意图 docs/zh/figures/gelu_v2_onnx_fusion_pass_*.png。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10765 | 1 天前 |
| 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 | 2 个月前 |
| 修改大模型扫描的文档问题 Co-authored-by: liujing987913<liujing407@h-partners.com> # message auto-generated for no-merge-commit merge: !12989 merge master into master 修改大模型扫描的文档问题 Created-by: liujing987913 Commit-by: liujing987913 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->修改大模型扫描的文档问题 nn 仓快速入门低错修改总结 1. 标点全半角(4 处):半角冒号×2(<算子名>:add_example、<包模式>:cust)、半角括号「(可选)」、英文句号「custom.」→ 删除 2. 表述统一与指代澄清(2 处):「请参考」→「请参见」(全文 3+2 处混用取主流);「若源码已存在」指代不明 →「若本地已克隆过该分支源码」 3. 路径基准统一(1 处):同一测试文件带/不带 ops-nn/ 前缀并存 → 统一写法 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->更新QUICKSTART.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x]文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12989 | 2 天前 |
| 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 | 1 个月前 |