| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: add MX BlockMmad L0C ping-pong sample Co-authored-by: Hu1L1<chenshujian5@huawei.com> Co-authored-by: zhanghua145<zhanghua145@users.noreply.gitcode.com> # message auto-generated for no-merge-commit merge: !335 merge codex/sync-mx-l0c-pingpong-blockmmad into master feat: add MX BlockMmad L0C ping-pong sample Created-by: Hu1L1 Commit-by: Hu1L1;zhanghua145 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为 matmul_story 新增 MXFP8 L0C Ping-Pong 样例,用于演示通过 MMAD 的 N 向拆分延长 L0C 地址复用间隔,减少 FIXPIPE 读取与下一 Tile MMAD 写入之间的冲突。 主要改动: - 新增 quant_matmul_mxfp8_l0cdb 样例及 CMake 构建目标。 - 新增 QuantMatmulMxL0cPingpong DispatchPolicy 和对应 BlockMmad 实现。 - 样例使用 MXFP8 E4M3FN 输入、FP8 E8M0 Scale、BF16 输出。 - 输出 Tile 小于半个 L0C 时,连续 Tile 在两片 L0C 地址间 Ping-Pong。 - 输出 Tile 无法放入半个 L0C 时,在首轮和尾轮 KL1 沿 N 方向近似对半拆分。 - MMAD 循环采用 KL1 -> N Split -> KL0,使一个 N 子块先完成全部 KL0 累加,再切换到另一个子块。 - 最终累加通过 UnitFlag 触发 FIXPIPE,将结果直接从 L0C 搬出到 GM,不引入 UB 中转或 AIV Epilogue。 - 保留原有 L1/L0 Ping-Pong 和事件同步关系。 - 新增 qbmmv3_mx_mmad_split.md,说明问题背景、理论分析、适用 Shape、流水结构及 Profiling 结果。 - 新增 MMAD/FIXPIPE 冲突、循环顺序对比和 MAC 阻塞趋势三张分析图。 典型 Profiling Case: - Shape:m=4096, k=1024, n=8960, transA=false, transB=true - 原 MX SWAT:Kernel 95.412 us,MAC 89.948 us - MX L0C Ping-Pong:Kernel 92.359 us,MAC 87.459 us - 该 Case Kernel 耗时降低约 3.20% - 实际 MAC 与理论值的差距由 2.955 us 降至 0.466 us 上述收益为特定环境和 Shape 下的结果,不代表所有 Shape 的固定收益。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/cann-samples/issues/247 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增: - Samples/2_Performance/matmul_story/docs/qbmmv3_mx_mmad_split.md - docs/images/qbmmv3-mx-mad-conflict.png - docs/images/qbmmv3-mx-iter-diff.png - docs/images/qbmmv3-mx-mac-gap-vs-rounds.png ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!335 | 15 小时前 | |
新增 matmul_a32w32 swat 与 streamk 模板 Co-authored-by: wuyufei<wuyufei13@huawei.com> # message auto-generated for no-merge-commit merge: !295 merge master into master 新增 matmul_a32w32 swat 与 streamk 模板 Created-by: wuyufei Commit-by: wuyufei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 为 matmul_recipes 示例库新增 matmul_a32w32(float32 全精度)的 SWAT 与 StreamK 两种矩阵乘法调度模板,同时将原有的 matmul_a16w16 基础设施(类名、头文件、调度标签)泛化为通用 matmul 框架,消除 A16W16 精度前缀,使同一套模板可同时服务于 FP16 和 FP32 场景;并新增 HF32 混合精度计算支持。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!295 | 2 个月前 | |
feat: add MX BlockMmad L0C ping-pong sample Co-authored-by: Hu1L1<chenshujian5@huawei.com> Co-authored-by: zhanghua145<zhanghua145@users.noreply.gitcode.com> # message auto-generated for no-merge-commit merge: !335 merge codex/sync-mx-l0c-pingpong-blockmmad into master feat: add MX BlockMmad L0C ping-pong sample Created-by: Hu1L1 Commit-by: Hu1L1;zhanghua145 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为 matmul_story 新增 MXFP8 L0C Ping-Pong 样例,用于演示通过 MMAD 的 N 向拆分延长 L0C 地址复用间隔,减少 FIXPIPE 读取与下一 Tile MMAD 写入之间的冲突。 主要改动: - 新增 quant_matmul_mxfp8_l0cdb 样例及 CMake 构建目标。 - 新增 QuantMatmulMxL0cPingpong DispatchPolicy 和对应 BlockMmad 实现。 - 样例使用 MXFP8 E4M3FN 输入、FP8 E8M0 Scale、BF16 输出。 - 输出 Tile 小于半个 L0C 时,连续 Tile 在两片 L0C 地址间 Ping-Pong。 - 输出 Tile 无法放入半个 L0C 时,在首轮和尾轮 KL1 沿 N 方向近似对半拆分。 - MMAD 循环采用 KL1 -> N Split -> KL0,使一个 N 子块先完成全部 KL0 累加,再切换到另一个子块。 - 最终累加通过 UnitFlag 触发 FIXPIPE,将结果直接从 L0C 搬出到 GM,不引入 UB 中转或 AIV Epilogue。 - 保留原有 L1/L0 Ping-Pong 和事件同步关系。 - 新增 qbmmv3_mx_mmad_split.md,说明问题背景、理论分析、适用 Shape、流水结构及 Profiling 结果。 - 新增 MMAD/FIXPIPE 冲突、循环顺序对比和 MAC 阻塞趋势三张分析图。 典型 Profiling Case: - Shape:m=4096, k=1024, n=8960, transA=false, transB=true - 原 MX SWAT:Kernel 95.412 us,MAC 89.948 us - MX L0C Ping-Pong:Kernel 92.359 us,MAC 87.459 us - 该 Case Kernel 耗时降低约 3.20% - 实际 MAC 与理论值的差距由 2.955 us 降至 0.466 us 上述收益为特定环境和 Shape 下的结果,不代表所有 Shape 的固定收益。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/cann-samples/issues/247 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增: - Samples/2_Performance/matmul_story/docs/qbmmv3_mx_mmad_split.md - docs/images/qbmmv3-mx-mad-conflict.png - docs/images/qbmmv3-mx-iter-diff.png - docs/images/qbmmv3-mx-mac-gap-vs-rounds.png ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!335 | 15 小时前 | |
docs: 修复文档链接、拼写错误并补充目录入口与Perf Story索引 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !366 merge master into master docs: 修复文档链接、拼写错误并补充目录入口与Perf Story索引 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 修复 cann-samples 文档中的链接错误、拼写问题,并补充 README 中缺失的目录入口和 Perf Story 条目。 ### 改动详情 - **README.md**:补充 3_Utilities 目录入口(快速入门表与文件结构)、更新 Perf Stories 徽章计数 9→13 - **Samples/0_Introduction/npu_execution/README.md**:修复 3 处拼写/描述错误(参数v→参数、piblic→public、静态kernel→动态kernel) - **Samples/2_Performance/README.md**:新增 flash_attn_lite_story、scalar_story、simd_vf_story 三个 Perf Story 索引条目 - **Samples/2_Performance/matmul_story/docs/quant_matmul_mxfp4_tutorials.md**:修复损坏的相对链接 ## 关联的Issue - fix #238 - fix #239 - fix #240 - fix #241 - fix #242 ## 测试 文档修改,无需测试。 ## 文档更新 - [x] README.md - [x] Samples/0_Introduction/npu_execution/README.md - [x] Samples/2_Performance/README.md - [x] Samples/2_Performance/matmul_story/docs/quant_matmul_mxfp4_tutorials.md ## 类型标签 - [x] 文档更新 See merge request: cann/cann-samples!366 | 11 天前 | |
add docs of weight_qunat mm/gmm Co-authored-by: xubinglin<xubinglin@huawei.com> # message auto-generated for no-merge-commit merge: !184 merge feat_add_docs_of_gmm_wq_recipe into master add docs of weight_qunat mm/gmm Created-by: xubinglin Commit-by: xubinglin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为 Weight Quant Matmul / GroupedMatmul MXFP8FP4 示例补充性能优化文档,覆盖单组矩阵乘和 M 轴分组矩阵乘两类场景。 主要内容包括: - 新增 weight_quant_matmul_mxfp8fp4_performance.md,说明 MXFP8FP4 权重量化矩阵乘的算子语义、数据搬运路径、性能建模公式和优化方法。 - 新增 weight_quant_grouped_matmul_mxfp8fp4_performance.md,说明 grouped weight quant MXFP8FP4 场景下的分组语义、性能瓶颈、组间负载均衡和 split-m + n-resplit 模板。 - 补充相关性能优化示意图,包括 4-buffer、UnitFlag、L1 Bank 冲突优化、VF 优化、N 方向 resplit、group 间负载均衡等。 - 对 MTE2、MTE1、VF、FIXPIPE 等流水耗时进行建模说明,明确 TB/s、BPC、KiB 等单位口径,降低读者理解成本。 - 补充初学者阅读所需的 Shape、Layout、scale 打包、MTE3 非主瓶颈等说明,帮助开发者理解 Weight Quant MXFP8FP4 算子的性能调优路径。 该 PR 仅涉及文档和图片资源更新,不涉及算子代码逻辑变更。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#169](https://gitcode.com/cann/cann-samples/issues/169) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增 weight_quant_matmul_mxfp8fp4_performance.md 新增 weight_quant_grouped_matmul_mxfp8fp4_performance.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!184 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 15 小时前 | ||
| 2 个月前 | ||
| 15 小时前 | ||
| 11 天前 | ||
| 2 个月前 |