| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
FIA fulllQuant support <<<>>> doc Co-authored-by: 18371517637<yangbinrong@hisilicon.com> # message auto-generated for no-merge-commit merge: !212 merge master into master FIA fulllQuant support <<<>>> doc Created-by: yang-binrong Commit-by: 18371517637 Merged-by: cann-robot Description: FIA fulllQuant support <<<>>> doc See merge request: cann/cann-samples!212 | 5 个月前 | |
gmm mx量化性能文档增加weightnz,双页表和新特性目录 | 4 个月前 | |
Format:unify mm recipe format via clang-format rule Co-authored-by: wangzitao_leo<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !247 merge mm_recipe_format into master Format:unify mm recipe format via clang-format rule Created-by: wangzitao_leo Commit-by: wangzitao_leo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 通过已配置的 .clang-format 规则(AfterFunction: true + BraceWrapping 系列选项)统一 matmul_recipes 模块下 77 个 C++/AscendC 源文件的代码风格,纯格式化操作,无逻辑或接口变更。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#165](https://gitcode.com/cann/cann-samples/issues/165) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:文件格式调整 See merge request: cann/cann-samples!247 | 4 个月前 | |
修改moe算子安装文件名称 Co-authored-by: git config --global user.name gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !235 merge 20260508 into master 修改moe算子安装文件名称 Created-by: gcw_CRjbEjwl Commit-by: git config --global user.name gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改moe算子安装文件名称 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/cann-samples!235 | 4 个月前 | |
支持通过 NPU_ARCH 配置样例编译架构 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !208 merge codex/npu-arch-simplify into master 支持通过 NPU_ARCH 配置样例编译架构 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 本 PR 简化 NPU_ARCH 配置方式: - 根 CMake 增加 NPU_ARCH 必填和合法性校验,支持 dav-3510、dav-2201。 - 各 sample 入口 CMake 本地声明支持架构,不支持当前 NPU_ARCH 时在配置阶段跳过,不创建 target、不参与编译和安装。 - 将 AscendC 编译参数中的固定 --npu-arch=dav-3510 改为 --npu-arch=${NPU_ARCH}。 - 更新 CI 构建脚本,支持通过参数选择目标 NPU 架构: - 编译 Ascend950 时使用 dav-3510:bash .ci/build.sh dav-3510。 - 编译 Ascend910B/C 时使用 dav-2201:bash .ci/build.sh dav-2201。 - 未传参数时默认使用 dav-3510,即 bash .ci/build.sh 等价于 bash .ci/build.sh dav-3510,兼容现有 CI 平台调用。 - 同步更新 README、CONTRIBUTING 和各样例 README / run.sh 中的构建命令;项目 README 明确说明 Ascend950 对应 dav-3510、Ascend910B/C 对应 dav-2201,并以 Ascend950 为例给出 CMake 配置命令。 ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/133 - https://gitcode.com/cann/cann-samples/issues/125 ## 测试 - 本地静态检查:确认非 third_party 文档中不再存在未带 NPU_ARCH 的根工程 cmake 配置示例,确认 CMake 中不再存在 --npu-arch=dav-3510。 - 本地脚本检查:bash -n .ci/build.sh 及相关 run.sh,git diff --check。 - 远端 Ascend950:/home/zhangzijie/workspace/cann-samples-fork: - cmake -S . -B build:按预期报缺少 NPU_ARCH,并提示示例命令。 - cmake -S . -B build -DNPU_ARCH=invalid:按预期报非法 NPU_ARCH。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build -DNPU_ARCH=dav-3510 && cmake --build build --parallel:通过。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build_dav2201_test -DNPU_ARCH=dav-2201 && cmake --build build_dav2201_test --parallel && cmake --build build_dav2201_test --target help:通过,仅 vector_add 生效。 - ./build/Samples/0_Introduction/vector_add/vector_add:通过,输出 Vector add completed successfully!。 - ./build/Samples/0_Introduction/matmul/matmul 100 50 200:通过,输出 matmul run successfully!。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh:通过,默认 dav-3510,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-3510:通过,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-2201:通过,仅打包 vector_add,生成并校验 build_out_dav-2201_21ae5b4.zip。 ## 文档更新 更新 README.md、CONTRIBUTING.md、相关 Samples README 和调用 .ci/build.sh 的 run.sh。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!208 | 5 个月前 | |
新增RmsNormQuantStory完整性能优化step by step技术文章 Story.md Co-authored-by: xujiachen8<xujiachen8@h-partners.com> # message auto-generated for no-merge-commit merge: !225 merge rms_norm_quant_story into master 新增RmsNormQuantStory完整性能优化step by step技术文章 Story.md Created-by: xujiachen8 Commit-by: xujiachen8 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增RmsNormQuantStory完整性能优化step by step技术文章 Story.md ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> Story.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!225 | 4 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 4 个月前 | |
Performance:mx quant mm support trans scenario & split 2 and 4 stages Co-authored-by: wangzitao_leo<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !231 merge 4buffer_trans into master Performance:mx quant mm support trans scenario & split 2 and 4 stages Created-by: wangzitao_leo Commit-by: wangzitao_leo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. qbmm MX量化场景支持trans场景 2. 2-buffer与4-bufer样例入口拆分 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#139](https://gitcode.com/cann/cann-samples/issues/139) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 1. 样例测试脚本 2. 泛化shape/trans属性批跑 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1. Samples/2_Performance/matmul_story/matmul_recipes/examples/quant_matmul_mxfp4/README.md 2. Samples/2_Performance/matmul_story/matmul_recipes/examples/quant_matmul_mxfp8/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!231 | 4 个月前 | |
新增 grouped_matmul_story grouped MXFP8 量化样例 Co-authored-by: cry<chenruiyu4@huawei.com> # message auto-generated for no-merge-commit merge: !149 merge gmm_mxfp8 into master 新增 grouped_matmul_story grouped MXFP8 量化样例 Created-by: Crrryyyy Commit-by: cry Merged-by: cann-robot Description: ## 描述 新增 Samples/2_Performance/grouped_matmul_story/grouped_matmul_recipes/examples/quant_grouped_matmul_mxfp8 目录及 grouped matmul MXFP8 量化样例。 本 PR 主要包含以下内容: - 新增 grouped MXFP8 <<<>>> 直调样例,覆盖 host 侧拉起、tiling、kernel 执行与结果回写 - 新增 groupList 驱动的 grouped 输入组织方式,支持按组拼接输入、按组独立权重的执行流程 - 补充 gen_data.py和verify_result.py,形成数据生成、结果校验和批量泛化测试闭环 - 补充样例 README.md,说明输入约束、构建运行方式和验证流程 ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/94 ## 测试 支持通过以下方式进行验证: - python3 gen_data.py group_list 128,128,0 384 256 256 - ./quant_grouped_matmul_mxfp8 3 384 256 256 - python3 verify_result.py 3 384 256 256 ## 文档更新 - 新增并更新 grouped_matmul_recipes/examples/quant_grouped_matmul_mxfp8/README.md - 补充 grouped matmul 场景下的样例说明、命令示例与约束说明 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!149 | 5 个月前 |
Performance
最佳实践, 从Baseline到极致性能的调优实践。
grouped_matmul_story
分组矩阵乘性能优化专题,覆盖 grouped matmul 的 tiling、数据搬运与 kernel 实现,并提供 MXFP4/MXFP8 可运行示例及数据校验流程。
matmul_story
矩阵乘性能优化专题,覆盖 MatMul 与量化 MatMul(如 MXFP4)两类实践,包含性能分析文档、分步教程(baseline→SWAT→尾轮负载均衡→UnitFlag)以及可运行的 recipe 示例(A16W16、quant_matmul_mxfp4)。
rms_norm_quant_story
以 Ascend 950PR/950DT 训练/推理系列产品为例,介绍 RmsNormQuant 算子的完整性能优化实践。包括多核并行与数据预加载、内存带宽优化、核内流水线排布、硬件特性适配等优化策略,从理论分析到代码实践的端到端调优指南。
full_quant_fused_infer_attention_score_story
围绕 FIA(Fused Infer Attention Score)算子提供 per-block 全量化实现示例,包含输入数据生成、算子执行与结果校验流程。
moe_init_routing_story
以 Ascend950PR/DT 训练/推理系列产品为例,介绍 MoeInitRoutingV3 算子的完整性能优化实践。包括多核并行、内存带宽优化、核内流水线排布、SIMT编程、硬件特性适配等优化策略,从理论分析到代码实践的端到端调优指南。
moe_dispatch_and_combine_story
围绕 moe dispatch/combine 通信算子给出性能优化实践,包含构建运行命令、测试数据生成与精度校验流程。