| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 25 天前 | |
新增基于 CANNSim 的 VF 性能分析样例文档 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !275 merge feat/sim-based-vf-profiling into master 新增基于 CANNSim 的 VF 性能分析样例文档 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 simulation-based-vf-profiling 样例,用于介绍如何通过 CANNSim 对 VF 进行 cycle 级仿真分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已本地验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!275 | 2 个月前 | |
新增基于 CANNSim 的 VF 性能分析样例文档 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !275 merge feat/sim-based-vf-profiling into master 新增基于 CANNSim 的 VF 性能分析样例文档 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 simulation-based-vf-profiling 样例,用于介绍如何通过 CANNSim 对 VF 进行 cycle 级仿真分析。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已本地验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!275 | 2 个月前 |
Utilities
面向 CANN 算子开发、调试与分析流程的工具类样例,帮助开发者借助仿真、Profiling 与辅助工具定位问题、理解性能瓶颈并指导优化。
simulation-based-vf-profiling
基于 cannsim 的 VF 性能分析样例。通过最小化 VF kernel、关闭 VF 自动融合并结合 Trace,演示如何观察 VF 执行周期、load / exec / store pipe 分布,定位瓶颈并推断优化方向。支持架构:dav-3510。