| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: vector_add 样例补充 CANN 版本要求说明 Co-authored-by: qianzhihao<1912503497@qq.com> # message auto-generated for no-merge-commit merge: !403 merge fix/vector-add-cann-version-requirement into master fix: vector_add 样例补充 CANN 版本要求说明 Created-by: qq_51867290 Commit-by: qianzhihao Merged-by: cann-robot Description: ## 描述 vector_add 样例使用了 aclprofTensor 等 profiling 元信息上报 API,这些 API 需要 CANN 9.1.0 weekly(20260708)及以上版本。CANN 9.1.0 正式版(20260513)尚未暴露这些接口,会导致编译失败。 本 PR 在 README.md 和 main.asc 文件头补充了 CANN 版本要求说明。 ## 关联的Issue Closes #270 ## 测试 在 Ascend 950(dav-3510)环境下验证: - CANN 版本:9.1.0,innerversion V100R001C25B114,timestamp 20260720 - 编译通过 - 运行输出 Vector add completed successfully! - msprof 生成的 op_summary CSV 中包含输入输出 shape/dtype/format 信息 ## 文档更新 在 vector_add README.md 新增「环境要求」章节,在 main.asc 文件头新增版本要求注释。 ## 类型标签 - [ ] 🌟 新特性 - [ ] ✨ 特性增强 - [x] 🐛 Bug 修复 - [ ] ⚡ 性能优化 - [ ] 🧪 测试用例 - [ ] 📦 构建 / CI - [x] 📝 文档更新 - [ ] 🔧 配置变更 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] ♻️ 代码重构 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/cann-samples!403 | 1 个月前 | |
[agent] [Requirement|需求建议]: n_buffer 样例 SetFlag/WaitFlag → Mutex 改造提示词 Co-authored-by: huang-qiang<huangqiang3@huawei.com> # message auto-generated for no-merge-commit merge: !413 merge agent/issue-25 into master [agent] [Requirement|需求建议]: n_buffer 样例 SetFlag/WaitFlag → Mutex 改造提示词 Created-by: huang-qiang Commit-by: huang-qiang Merged-by: cann-robot Description: 算子:Samples/1_Features/instruction_optimization/n_buffer,MatmulKernel(AIC-only,C=A×B),L1/L0 双缓冲。 改造的 API:核内流水同步 AscendC::SetFlag<HardEvent::X_Y> / AscendC::WaitFlag<HardEvent::X_Y> → AscendC::Mutex::Lock<PIPE_X> / AscendC::Mutex:: Unlock<PIPE_X>(ISASI),AllocMutexID/ReleaseMutexID 管理锁 ID。 优化方法: 1. 每个 buffer 分配一把锁:L1 双缓冲用 l1Mutex[2],L0 双缓冲用 l0Mutex[2],L0C 单 buffer 用 l0cMutex。按原 l1BufId/l0BufId 选锁,与原 flag 选 eventID 逻辑一致。 2. 每个 WaitFlag → Mutex::Lock(加在等的流水上),每个"干完发令牌"的 SetFlag → Mutex::Unlock。Lock/Unlock 同 pipe 同 ID 成对。 3. 顶置区 SetFlag → AllocMutexID(mutex 初始未锁,无需预发令牌)。4. 排干区 WaitFlag → PipeBarrier<PIPE_ALL>() + ReleaseMutexID(全流水屏障兜底后回收 ID)。 5. L0A/L0B 共享一把锁(原样例同 l0BufId 控制,绑定生命周期)。 LSP 6. 锁持有范围:L1 锁包住 MTE2 写 + MTE1 读整段;L0 锁包住 MTE1 写 + M 读;L0C 锁包住整个 K 循环的 Mmad。 LSPs are disabled 7. 死代码清理:改完删除 tool::ZERO_FLAG、tool::FIRST_FLAG(改造后无引用)。 8. 不动:host 代码、tiling、tensor、Mmad、Copy、ping-pong 自增逻辑。 9. 参考:unit_flag 样例(已合入 master)的双缓冲锁数组写法。 See merge request: cann/cann-samples!413 | 1 个月前 | |
feat: gelu_eltwise_regbase_story SetFlag/WaitFlag 改造为 Mutex 同步 Co-authored-by: qq_51867290<1912503497@qq.com> # message auto-generated for no-merge-commit merge: !410 merge feat/gelu-eltwise-mutex-sync into master feat: gelu_eltwise_regbase_story SetFlag/WaitFlag 改造为 Mutex 同步 Created-by: qq_51867290 Commit-by: qq_51867290 Merged-by: cann-robot Description: ## 描述 将 gelu_eltwise_regbase_story 5 个 Case(0_membase ~ 4_scalar_tuning)的核内流水同步从 SetFlag/WaitFlag 等价替换为 Mutex::Lock/Unlock,不影响精度和性能。 ## 关联的Issue 无 ## 测试 按 README 流程编译运行: - 精度:5 个 Case 全部 PASSED,precision 100%,max diff 1.90735e-06(容差 1e-3) - 性能(msprof):5 个 Case Task Duration 全部下降(-2.0% ~ -2.7%) ## 文档更新 不涉及 ## 类型标签 - [x] ♻️ 代码重构 See merge request: cann/cann-samples!410 | 30 天前 | |
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 | 2 个月前 | |
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 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 2 个月前 | ||
| 1 个月前 |