| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
FusedPatchMlp 算子AscendC实现贡献 Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !7672 merge master into master FusedPatchMlp 算子AscendC实现贡献 Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> FusedPatchMlp 算子AscendC实现贡献 来自移动终端方向国家人工智能应用中试基地 Co-authored-by: 联通(广东)产业互联网有限公司 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4142](https://gitcode.com/cann/ops-nn/issues/4142) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ### 1. Ops-NN UT 构建 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental 测试结果:  ### 2. Ops-NN op_host UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --ophost 测试结果:  ### 3. Ops-NN op_kernel UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --opkernel 测试结果:  ### 4. Ops-NN op_api UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --opapi 测试结果:  ## 算子级性能对比 对 ChatTS 中的 TimeSeriesEmbedding.mlp 进行融合替换测试,比较对象包括: 1. **原始 PyTorch 实现**:nn.Sequential 包含 Linear + GELU + Linear + GELU + Linear 的逐层调用 2. **本 PR 融合算子**:aclnn_fused_patch_mlp,将多层 Linear+GELU 合并为单次 API 调用 测试在 NPU 上进行,覆盖多种实际运行 shape,使用相同的权重、偏置、dtype、预热次数和迭代次数。测试前校验输出误差,然后统计同步后的端到端前向延迟。 | Shape | 参数规模 | 原始 MLP Median | 融合算子 Median | 加速比 | 时延下降 | | ---: | ---: | ---: | ---: | ---: | ---: | | [1, 4096, 16] | hidden=256, 3层 | 0.3236 ms | 0.0931 ms | 3.48× | 71.23% | | [1, 4096, 64] | hidden=256, 3层 | 0.4591 ms | 0.0942 ms | 4.87× | 79.47% | | [1, 4096, 16] | hidden=256, 5层 | 0.5349 ms | 0.1210 ms | 4.42× | 77.39% | | [2, 4096, 16] | hidden=256, 3层 | 0.3094 ms | 0.1120 ms | 2.76× | 63.80% | ## 正确性结果 性能测试同时校验了融合算子的输出正确性: - fused_vs_original_allclose:✅ 通过(所有测试 case) - 最大绝对误差:< 6.11e-5 ~ 3.05e-4(远小于 1e-3 阈值) - 所有性能测试 case 均为 **0 allclose failures** ## 整模型端到端收益 将 ChatTS-14B 中的 TimeSeriesEmbedding.mlp 替换为 FusedPatchMlp 后,整模型 forward 端到端性能对比: | 模型 | 序列长度 | Patch 数 | 原始模型 Median | 融合模型 Median | 加速比 | 时延下降 | | :--- | ---: | ---: | ---: | ---: | ---: | ---: | | ChatTS-14B | 1024 | 128 | 338.657 ms | 314.316 ms | **1.077×** | **7.2%** | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!7672 | 4 天前 | |
FusedPatchMlp 算子AscendC实现贡献 Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !7672 merge master into master FusedPatchMlp 算子AscendC实现贡献 Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> FusedPatchMlp 算子AscendC实现贡献 来自移动终端方向国家人工智能应用中试基地 Co-authored-by: 联通(广东)产业互联网有限公司 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4142](https://gitcode.com/cann/ops-nn/issues/4142) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ### 1. Ops-NN UT 构建 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental 测试结果:  ### 2. Ops-NN op_host UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --ophost 测试结果:  ### 3. Ops-NN op_kernel UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --opkernel 测试结果:  ### 4. Ops-NN op_api UT 测试指令: bash build.sh -u --ops=fused_patch_mlp --experimental --opapi 测试结果:  ## 算子级性能对比 对 ChatTS 中的 TimeSeriesEmbedding.mlp 进行融合替换测试,比较对象包括: 1. **原始 PyTorch 实现**:nn.Sequential 包含 Linear + GELU + Linear + GELU + Linear 的逐层调用 2. **本 PR 融合算子**:aclnn_fused_patch_mlp,将多层 Linear+GELU 合并为单次 API 调用 测试在 NPU 上进行,覆盖多种实际运行 shape,使用相同的权重、偏置、dtype、预热次数和迭代次数。测试前校验输出误差,然后统计同步后的端到端前向延迟。 | Shape | 参数规模 | 原始 MLP Median | 融合算子 Median | 加速比 | 时延下降 | | ---: | ---: | ---: | ---: | ---: | ---: | | [1, 4096, 16] | hidden=256, 3层 | 0.3236 ms | 0.0931 ms | 3.48× | 71.23% | | [1, 4096, 64] | hidden=256, 3层 | 0.4591 ms | 0.0942 ms | 4.87× | 79.47% | | [1, 4096, 16] | hidden=256, 5层 | 0.5349 ms | 0.1210 ms | 4.42× | 77.39% | | [2, 4096, 16] | hidden=256, 3层 | 0.3094 ms | 0.1120 ms | 2.76× | 63.80% | ## 正确性结果 性能测试同时校验了融合算子的输出正确性: - fused_vs_original_allclose:✅ 通过(所有测试 case) - 最大绝对误差:< 6.11e-5 ~ 3.05e-4(远小于 1e-3 阈值) - 所有性能测试 case 均为 **0 allclose failures** ## 整模型端到端收益 将 ChatTS-14B 中的 TimeSeriesEmbedding.mlp 替换为 FusedPatchMlp 后,整模型 forward 端到端性能对比: | 模型 | 序列长度 | Patch 数 | 原始模型 Median | 融合模型 Median | 加速比 | 时延下降 | | :--- | ---: | ---: | ---: | ---: | ---: | ---: | | ChatTS-14B | 1024 | 128 | 338.657 ms | 314.316 ms | **1.077×** | **7.2%** | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!7672 | 4 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
| 4 天前 |