| C++ clean Code规范 Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !6666 merge cherry-pick-clean-code-to-910 into 9.1.0 C++ clean Code规范 Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 解决如下Clean code问题: 静态扫描出现编译告警: comparison between signed and unsigned integer expressions [-Wsign-compare] type qualifiers ignored on function return type [-Wignored-qualifiers] unused variable narrowing conversion of '(int64_t)bp_groups' from 'int64_t {aka long int}' to 'int' inside { } [-Wnarrowing] C++代码规范: G.FUN.02-CPP 函数的所有声明必须与定义具有一致的参数名 G.FUN.03-CPP 禁止函数有未被使用的参数 G.FMT.17-CPP 合理安排空行 G.EXP.22-CPP 确保除法和余数运算不会导致除零错误(被零除) G.CNS.02-CPP 不要使用难以理解的字面常量 G.CNS.04-CPP 对于指针和引用类型的参数,如果不需要修改其引用的对象,应使用const修饰 G.FMT.14-CPP 指针类型"*"和引用类型"&"只跟随类型或变量名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3309 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!6666 | 1 个月前 |
| A5增加scatter_add_with_sorted算子 Co-authored-by: wkkk0528<wangkai578@huawei.com> # message auto-generated for no-merge-commit merge: !4175 merge scatter_add_with_sorted_backup_0423 into master A5增加scatter_add_with_sorted算子 Created-by: wkkk0528 Commit-by: wkkk0528 Merged-by: cann-robot Description: ## 描述 背景一:scatter类算子在索引重复的时候会涉及到同一个gm地址写数据,而david芯片同地址写性能远低于竞品(相差100倍),因此为了性能考虑要尽可能规避同地址写问题。对于scatter这类算子一个解决方法就是在将相同索引对应的计算(累加、替换等)在核内完成。在核内完成同索引的处理,就希望同索引尽可能的挨在一次,因此期望索引是有序的。 背景二:scatter类算子当多核切分在scatter轴时,为了保证确定性计算,需要每个核之间搬出的数据是有序的,一种做法是每个核顺序搬出,这样会有较大的等待开销,相当于开单核,为了提升性能,另外一种做法是对索引做全局排序,然后按索引序搬出。 从性能的角度,希望在部分场景将 scatter_add替换位 sort(索引) + scatter_add_with_sorted两个算子,因此开发了 scatter_add_with_sorted算子,以增强scatter_add在确定性场景的性能。 ## 代码结构 index/scatter_add_with_sorted/ ├── op_host/ # Tiling 层 │ ├── scatter_add_with_sorted_def.cpp # [修改] 新增算子定义 │ ├── scatter_add_with_sorted_tiling.cpp # [修改] 注册 ASCENDC 模板化 tiling │ ├── scatter_add_with_sorted_tiling_base.h # [新增] 基础 Tiling 类,提取公共逻辑 │ ├── scatter_add_with_sorted_tiling_base.cpp # [新增] 基础 Tiling 实现(shape 解析、平台信息获取等) │ ├── scatter_add_with_sorted_simd_tiling.h # [新增] SIMD Tiling 类声明 │ ├── scatter_add_with_sorted_simd_tiling.cpp # [新增] SIMD Tiling 实现(多核切分、UB 切分、Buffer 规划) │ ├── scatter_add_with_sorted_simt_tiling.h # [新增] SIMT Tiling 类声明 │ ├── scatter_add_with_sorted_simt_tiling.cpp # [新增] SIMT Tiling 实现 │ ├── scatter_add_with_sorted_tiling.h # [原有] 旧版 Tiling 数据结构 │ ├── config/ascend950/ │ │ ├── scatter_add_with_sorted_binary.json # [新增] 二进制配置(8 组 dtype) │ │ └── scatter_add_with_sorted_simplified_key.ini # [新增] simplified_key_mode=0 │ └── op_api/ │ └── scatter_add_with_sorted.cpp # [修改] aclnn 接口适配 │ ├── op_kernel/ # Kernel 层 │ ├── scatter_add_with_sorted_apt.cpp # [新增] kernel 入口,ASCENDC 模板化分发 │ ├── scatter_add_with_sorted.cpp # [原有] kernel(保持不变) │ └── arch35/ # [新增] arch35 kernel 实现 │ ├── scatter_add_with_sorted_struct.h # 模板参数声明 & Tiling 数据结构定义 │ ├── scatter_add_with_sorted_simd_common.h # SIMD 公共工具函数 │ ├── scatter_add_with_sorted_simd.h # SIMD 模式 kernel │ ├── scatter_add_with_sorted_simd_determ.h # SIMD 确定性模式 kernel │ ├── scatter_add_with_sorted_determ_workspace.h # 确定性模式 workspace 处理 │ ├── scatter_add_with_sorted_simt.h # SIMT 模式 kernel │ └── scatter_add_with_sorted_simt_determ.h # SIMT 确定性模式 kernel │ └── tests/ut/ ├── op_host/ │ └── test_scatter_add_with_sorted_tiling.cpp # [修改] 新增tiling UT 用例 └── op_kernel/ ├── CMakeLists.txt # [修改] 新增编译目标 ├── scatter_add_with_sorted_tiling_def.h # [新增] UT tiling 定义 ├── test_scatter_add_with_sorted_apt.cpp # [新增]kernel UT └── test_scatter_add_with_sorted.cpp # [修改] 引用新的 tiling_def.h ## 关联的Issue 关联Issue [#2351](https://gitcode.com/cann/ops-nn/issues/2351) ## 测试 出包测试200条泛化用例,精度均pass,aclnn接口的的性能较之前调用scatteradd的方式提升3.9倍;通过冒烟测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4175 | 3 个月前 |
| index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5250 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 kernel ut 逐步迁移 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT 运行通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5250 | 2 个月前 |
| License Change Split2 Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !371 merge spilit2License3 into master License Change Split2 Created-by: huohuo_wangyan Commit-by: huohuo_wy Merged-by: cann-robot Description: ## 描述 批量整改文件copyright注释 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/177 ## 测试 COPYRIGHT注释头按新要求刷新 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!371 | 8 个月前 |
| 批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 2 个月前 |