文件最后提交记录最后更新时间
Math仓算子新增Golden文件,方便算子质量看护和精度测试。 Co-authored-by: moonw0lf<duanlian11@h-partners.com> # message auto-generated for no-merge-commit merge: !1782 merge dl_ttk_to_math into master Math仓算子新增Golden文件,方便算子质量看护和精度测试。 Created-by: moonw0lf Commit-by: moonw0lf Merged-by: cann-robot Description: ## 描述 Math仓算子新增Golden文件,方便算子质量看护和精度测试。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1040 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!17822 个月前
整改st目录下的atk用例统一目录格式 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !2579 merge master into master 整改st目录下的atk用例统一目录格式 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 整改st目录下的atk用例统一目录格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1538 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:st用例目录整改 See merge request: cann/ops-math!257921 天前
optimize the performance of aicpu cumsum operator Co-authored-by: ZhaiPeiChao<zhaipeichao@huawei.com> # message auto-generated for no-merge-commit merge: !2262 merge master into master optimize the performance of aicpu cumsum operator Created-by: ZhaiPeiChao Commit-by: ZhaiPeiChao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 对Cumsum(累积和)算子的AI CPU内核实现进行了大规模重构与性能优化,旨在解决原实现中计算逻辑复杂、并行策略单一、内存访问模式不佳以及复数类型处理效率低下的问题。同时,对内核头文件进行了代码风格统一和接口规范化重构,并新增了全面的单元测试用例以覆盖不同数据类型、输入形状和并行路径,确保优化后算子的功能正确性与稳定性。 性能瓶颈及优化点: 1. 并行化维度错误 - 原始代码只在 outer 维度上并行。当 axis = -1(最后一个轴)时,outer = 1,导致即使数据量超过 512KB 阈值,也只能用单核计算。 2. 内层循环分支开销 - 原始代码在 depth 循环的每次迭代内检查 if (exclusive) 和 if (reverse)。 3. reverse 方向的冗余索引计算 - reverse 模式下,每次迭代都做条件索引调整: 4. Complex 类型冗余内存分配 - CumsumCompute2 对 complex 类型分配两个完整 vector<double>(real 和 imag),然后逐元素拆分/合并。 5. 不连续内存访问模式(tride-outer 跳跃访问)- 原始代码逐序列处理:对一个 (inner_idx, outer_idx) 的序列,depth 方向的访问地址跳跃 outer * sizeof(T) 字节。 6. 无法向量化 - 原始代码每个序列独立计算,depth 循环内是标量累加 acc += input[index]。 7. 指针别名影响编译器优化 - 编译器无法证明 input_data 和 output_data 指向不重叠的内存区域,它必须保守地假设写入 out_row[o] 可能改变 in_row[o+1] 的值。 8. 下溢风险 - GetCPUNum() 返回 uint32_t,直接减去 kResvCpuNum(=2) 可能导致无符号整数下溢翻转为极大值。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> issue [#1290](https://gitcode.com/cann/ops-math/issues/1290) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 使用性能优化后代码中,在典型shape下基于Ascend910B环境进行测试,测试结果如下: | 序号 | shape | 优化前/us | 优化后/us | 性能提升 | | -- | -- | -- | -- | -- | |1| [65536] | 270 | 113 | 2.39x | |2| [10485760] | 22696 | 19295 | 1.18x | |3| [8192,1024] | 16518 | 3120 | 4.18x | |4| [1,1000000] | 2027 | 1723 | 1.18x | |5| [2,256,32768] | 36496 | 11100 | 3.29x | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!22621 个月前
update aicpu files copyright and fix opkernel ut cov Co-authored-by: “qiang_zq”<qiang.zhangqiang@huawei.com> # message auto-generated for no-merge-commit merge: !655 merge master into master update aicpu files copyright and fix opkernel ut cov Created-by: qiang_zq Commit-by: “qiang_zq” Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复opkernel ut 覆盖率功能异常, ting_tmp增加 链接 intf_llt_pub_asan_cxx17 更新aicpu files copyright ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:更新aicpu files copyright See merge request: cann/ops-math!6554 个月前