| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 新增 RegBase/VF 编程模型入门样例 vector_function_add Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !369 merge master into master feat: 新增 RegBase/VF 编程模型入门样例 vector_function_add Created-by: songkai111 Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 新增 RegBase / Vector Function(VF)编程模型入门样例 vector_function_add,作为 RegBase 编程模型的 Hello World 可运行样例,与 [vector_add](../vector_add)(TQue / MemBase 模型)对照学习两种编程模型的差异。同时简化 vector_add kernel,合并主循环与尾块处理。 - **vector_function_add**:计算在 __simd_vf__ 函数中通过 AscendC::Reg::* API 在 Vector 寄存器上完成(Load -> Add -> Store,中间结果不往返 UB);UpdateMask 自动处理尾块;block / tile 两级切分支持多 Vector Core 并行;内置 CPU 精度对比。 - **vector_add/main.asc**:简化 kernel,合并主循环与尾块分支,用 tileElementNum 统一处理每轮 tile 元素数。 - **CMakeLists.txt / README.md**:注册并介绍新样例。 ## 关联的Issue - #244: 新增 RegBase / MemBase 编程模型的可运行样例 ## 测试 - 仅 Ascend 950(dav-3510)编译运行,dav-2201 自动跳过(cann_sample_check_arch(dav-3510))。 - 测试长度 409603(非寄存器宽度整数倍)验证 Mask 对尾块的自适应处理;样例内置 CPU 精度对比,成功时打印 Vector function add completed successfully!。 ## 文档更新 - Samples/0_Introduction/README.md:新增 vector_function_add 样例介绍 - Samples/0_Introduction/vector_function_add/README.md:新增样例使用说明 ## 类型标签 - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!369 | 1 个月前 | |
feat: l1_bank_conflict/scale_cache/swat/streamk/tail_rebalance 样例 SetFlag/WaitFlag 改造为 Mutex 同步 Co-authored-by: qq_51867290<1912503497@qq.com> # message auto-generated for no-merge-commit merge: !394 merge feat/system-mem-mutex-sync into master feat: l1_bank_conflict/scale_cache/swat/streamk/tail_rebalance 样例 SetFlag/WaitFlag 改造为 Mutex 同步 Created-by: qq_51867290 Commit-by: qq_51867290 Merged-by: cann-robot Description: ## 描述 将 l1_bank_conflict、scale_cache、slide_window_adaptive_template、streamk、tail_rebalance 五个样例中核内流水 SetFlag/WaitFlag 同步原语改造为 Mutex::Lock/Unlock(ISASI),不改变流水逻辑与同步语义。 改造范围: - l1_bank_conflict/main.asc:L1/L0 双缓冲 + L0C,替换为 5 把锁 - scale_cache/main.asc:L1/L0 双缓冲 + L0C + Scale buffer 双缓冲,替换为 7 把锁(l1Mutex[2] + scaleMutex[2] + l0Mutex[2] + l0cMutex) - slide_window_adaptive_template/main.asc:L1/L0 双缓冲 + L0C,替换为 5 把锁 - streamk/main.asc:AIC 侧 L1/L0 双缓冲(unitFlag)替换为 4 把锁,AIV 侧 MTE2→V→MTE3 替换为 1 把锁 - tail_rebalance/main.asc:L1/L0 双缓冲 + L0C,替换为 5 把锁 - 删除改造后残留死代码 ZERO_FLAG/FIRST_FLAG/SCALE_BUFFER_FLAG 等 - 补文件末尾换行符 不改内容: - L1 Bank 冲突避免逻辑、Scale 缓存逻辑、滑窗切分逻辑 - StreamK/DP 场景切分逻辑、尾块负载均衡逻辑 - CrossCoreSetFlag/CrossCoreWaitFlag、SyncAll - unitFlag 参数、流水逻辑、buffer 分配、Copy/Mmad/Fixpipe 指令 ## 关联的Issue 不涉及 ## 测试 在 Ascend 950PR(dav-3510)/ CANN 9.1.0 环境下验证: - 精度:5 个样例全部 PASS - 性能:kernel 时间持平 ## 文档更新 不涉及 ## 类型标签 - [ ] 🌟 新特性 - [ ] ✨ 特性增强 - [ ] 🐛 Bug 修复 - [ ] ⚡ 性能优化 - [ ] 🧪 测试用例 - [ ] 📦 构建 / CI - [ ] 📝 文档更新 - [ ] 🔧 配置变更 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] ♻️ 代码重构 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/cann-samples!394 | 22 天前 | |
refactor(matmul_recipes): rename QuantMatmulTilingData to QuantMatmulMxTilingData Co-authored-by: tangweiwei<tangweiwei2@huawei.com> # message auto-generated for no-merge-commit merge: !393 merge fix/rename-quantmatmultilingdata into master refactor(matmul_recipes): rename QuantMatmulTilingData to QuantMatmulMxTilingData Created-by: tangweiwei2 Commit-by: tangweiwei Merged-by: cann-robot Description: ## 描述 将 matmul_recipes 目录下 MX 量化矩阵乘算子使用的 QuantMatmulTilingData 重命名为 QuantMatmulMxTilingData。 该 TilingData 结构体仅用于 MX 量化格式(MXFP8/MXFP4)的矩阵乘算子,原命名 QuantMatmulTilingData 过于宽泛,容易与 INT8、HiFP8 等其他量化类型的 TilingData 混淆。新命名 QuantMatmulMxTilingData 与现有文件命名 quant_matmul_mx_tiling_*.h 保持一致。 涉及 14 个文件共 28 处引用,均为纯文本替换,不涉及逻辑变更。 ## 关联的Issue 关联Issue #264 ## 测试 使用 CANN 9.1.0 toolkit(dav-3510 架构)编译验证通过: - quant_matmul_mxfp8_swat ✅ - quant_matmul_mxfp8_swat_4_buffer ✅ - quant_matmul_mxfp8_swat_weight_nz ✅ - quant_matmul_mxfp8_a_full_load ✅ 全仓库搜索确认 QuantMatmulTilingData 无残留。 ## 文档更新 不涉及文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(命名优化) --- > 此 PR 由 AI Agent 辅助生成。 See merge request: cann/cann-samples!393 | 22 天前 | |
refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !352 merge master into master refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 29 个 sample CMakeLists.txt 中重复的架构校验样板(SUPPORTED_NPU_ARCHS + skip message)提取到 cmake/sample_common.cmake 的 cann_sample_check_arch() 宏中。 每个 leaf sample 的 CMakeLists.txt 从原来的 5 行 boilerplate 缩减为 1 行宏调用: cmake # Before (5 行) set(SUPPORTED_NPU_ARCHS dav-3510) file(RELATIVE_PATH SAMPLE_PATH ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) if(NOT "${NPU_ARCH}" IN_LIST SUPPORTED_NPU_ARCHS) message(STATUS "Skip sample ${SAMPLE_PATH}: NPU_ARCH=${NPU_ARCH} is not supported") return() endif() # After (1 行) cann_sample_check_arch(dav-3510) 变更涉及 30 个文件,净减少 144 行(185 删除,41 新增)。 ### 改动原因 49 个 sample CMakeLists.txt 中每个都独立实现了完全相同的架构校验逻辑,存在维护成本高和一致性衰减问题。这是 Issue #226 中提到的 CMake 样板代码重复问题的务实第一步。 ### 改动方法 - 新增 cmake/sample_common.cmake:定义 cann_sample_check_arch() 宏,封装架构校验逻辑 - 根 CMakeLists.txt 添加 include(cmake/sample_common.cmake) - 逐个迁移 29 个 leaf sample CMakeLists.txt(保留了三种架构配置:dav-3510、dav-2201、dav-2201 dav-3510) - 未修改中间 dispatcher CMakeLists.txt 和继承父级架构检查的子目录(如 matmul_tutorials) ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/226 ## 测试 - 远程 Git Hook 检查通过(推送前) - 代码逻辑等价替换,架构校验行为无变化 - 宏变量使用下划线前缀(_cann_sample_expected_archs、_cann_sample_path)避免与 sample 本地变量冲突 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:CMake 构建系统重构(消除重复样板代码) See merge request: cann/cann-samples!352 | 1 个月前 | |
add histogram story sample Co-authored-by: gavinhhr<2803677117@qq.com> # message auto-generated for no-merge-commit merge: !350 merge simt_histogram_story into master add histogram story sample Created-by: gavinhhr Commit-by: gavinhhr Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加 Histogram A5 Sample ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/cann-samples/issues/227 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 4 cases 均通过 cmake 构建(dav-3510)并在 Ascend950 NPU 真机运行,精度校验 PASS。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了本 Story 的 README 文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!350 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 22 天前 | ||
| 22 天前 | ||
| 1 个月前 | ||
| 1 个月前 |