| 产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 7 天前 |
| aclnnMinDim、aclnnIsNegInf.md、test_aclnn_atan2.cpp、test_aclnn_inplace_lt_tensor.cpp等文档&exmaple存在问题,需要整改 Co-authored-by: jiangjiawei<jiangjiawei10@huawei.com> # message auto-generated for no-merge-commit merge: !5294 merge fix_example into master aclnnMinDim、aclnnIsNegInf.md、test_aclnn_atan2.cpp、test_aclnn_inplace_lt_tensor.cpp等文档&exmaple存在问题,需要整改 Created-by: jiangjiawei Commit-by: jiangjiawei Merged-by: cann-robot Description: ## 描述 修改aclnn文档&example ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3002 ## 测试 资料问题,不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5294 | 26 天前 |
| [CANNBOT]scale适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> Co-authored-by: gcw_YBIAEfqJ<dev@local> # message auto-generated for no-merge-commit merge: !3322 merge 0612 into master [CANNBOT]scale适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Scale 算子用于对输入 Tensor 执行逐元素缩放(可选加偏置)。其核心计算公式为: - 无 bias:$y = x \times scale$ - 有 bias:$y = x \times scale + bias$ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1970 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3322 | 3 个月前 |
| legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 19 天前 |
| legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 19 天前 |
| fix(scale): arch35 kernel NDDMA 维度按 run 合并,消除大 shape 下 tiny DataCopy 性能瓶颈 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !5888 merge fix/scale-arch35-nddma-run-coalesce into master fix(scale): arch35 kernel NDDMA 维度按 run 合并,消除大 shape 下 tiny DataCopy 性能瓶颈 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 问题 Scale 算子在大 shape(如 x=(82545,2,2,2,2,2)、(102678,2,2,2,2,2,2,2) 等 rank6~8、外侧大维度 + 内侧小维度场景)性能极差:实测带宽仅 8~16 GB/s(对照单维大 shape 约 1070 GB/s)。 ## 根因 1. FindSplitAxis 只按 UB 容量从内向外选切分轴,未考虑 NDDMA 5 维上限。当最内 5 维连乘很小(如全 2,仅 32 元素)时,切分轴被迫落在最外层(RANK−k > 5),落入 CopyInBrc 的 outer loop 区。 2. 旧 CopyInBrc outer loop 每个外层迭代发一次 NDDMA DataCopy,每次仅搬最内 5 维(32 元素/64B),大 shape 下 DataCopy 次数达 10^5~10^6 次。 3. 加重因素:nddmaOuterIters_ 按整段 a_i 而非尾段 a_i_tail 计算,尾 tile 多搬约 3 倍废数据。 ## 修复(仅 kernel 侧,Host/TilingData 无改动) 将 tile 维度区间 [k, RANK) 按**可仿射合并**条件 strides[e] == dstShape[e+1] * strides[e+1] 划分为 run(broadcast 段 stride=0 自然可并,稠密连续段同理),每个 run 填一个 NDDMA 维: - x 恒为稠密输入 → 6~8 维合并为 1 个 run → 每 tile 单次 DataCopy 整块搬运; - scale/bias 合并为少量 run,单次 DataCopy 完成随路广播; - run 数超 5 维的病态输入保留 outer loop 兜底,外层次数按 a_i_seg 修正(顺带修复尾段多搬); - 寻址按 NDDMA 线性模型推导,与旧逐维模型**逐元素等价**,UB 内数据排布不变,compute/CopyOut 零改动。 ## 验证 1. **寻址交叉验证**:Python 逐元素比对合并后 NDDMA 寻址与参考寻址,210 例(含 200 随机 fuzz、9 个目标样例结构、run 溢出兜底)全部一致; 2. **UT**(dav_3510 仿真):新增 2 个 rank8 回归用例(切分轴在 NDDMA 窗口外含尾段 / run 溢出兜底),4/4 通过;Host tiling UT 16/16 通过; 3. **实卡性能**(Ascend950PR,30 次迭代均值,精度全量比对 PASS): | 样例 | 修复前 | 修复后 | 加速比 | 带宽 |---|---|---|---|---| | L0_067/461 fp16 | 1.314 ms | 0.030 ms | 43.8× | 8.3→358 GB/s | | L1_137 fp32 | 10.829 ms | 0.185 ms | 58.5× | 15→895 GB/s | | L1_186 fp32 | 5.190 ms | 0.075 ms | 69.2× | 15→1058 GB/s | | L1_200 bf16 | 6.504 ms | 0.108 ms | 60.2× | 8→500 GB/s | | L1_390 fp32 | 9.531 ms | 0.148 ms | 64.4× | 16→1057 GB/s | | L1_406 fp16 | 8.087 ms | 0.127 ms | 63.7× | 12→755 GB/s | | L1_491 fp32 | 3.039 ms | 0.052 ms | 58.4× | 16→959 GB/s | | rangebound rb_748 bf16 | 5.206 ms | 0.073 ms | 71.3× | 8→578 GB/s | | 对照组(单维大 shape) | 0.589 ms | 0.590 ms | 1.0×(无回退) | — | See merge request: cann/ops-math!5888 | 4 天前 |
| fix(scale): arch35 kernel NDDMA 维度按 run 合并,消除大 shape 下 tiny DataCopy 性能瓶颈 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !5888 merge fix/scale-arch35-nddma-run-coalesce into master fix(scale): arch35 kernel NDDMA 维度按 run 合并,消除大 shape 下 tiny DataCopy 性能瓶颈 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 问题 Scale 算子在大 shape(如 x=(82545,2,2,2,2,2)、(102678,2,2,2,2,2,2,2) 等 rank6~8、外侧大维度 + 内侧小维度场景)性能极差:实测带宽仅 8~16 GB/s(对照单维大 shape 约 1070 GB/s)。 ## 根因 1. FindSplitAxis 只按 UB 容量从内向外选切分轴,未考虑 NDDMA 5 维上限。当最内 5 维连乘很小(如全 2,仅 32 元素)时,切分轴被迫落在最外层(RANK−k > 5),落入 CopyInBrc 的 outer loop 区。 2. 旧 CopyInBrc outer loop 每个外层迭代发一次 NDDMA DataCopy,每次仅搬最内 5 维(32 元素/64B),大 shape 下 DataCopy 次数达 10^5~10^6 次。 3. 加重因素:nddmaOuterIters_ 按整段 a_i 而非尾段 a_i_tail 计算,尾 tile 多搬约 3 倍废数据。 ## 修复(仅 kernel 侧,Host/TilingData 无改动) 将 tile 维度区间 [k, RANK) 按**可仿射合并**条件 strides[e] == dstShape[e+1] * strides[e+1] 划分为 run(broadcast 段 stride=0 自然可并,稠密连续段同理),每个 run 填一个 NDDMA 维: - x 恒为稠密输入 → 6~8 维合并为 1 个 run → 每 tile 单次 DataCopy 整块搬运; - scale/bias 合并为少量 run,单次 DataCopy 完成随路广播; - run 数超 5 维的病态输入保留 outer loop 兜底,外层次数按 a_i_seg 修正(顺带修复尾段多搬); - 寻址按 NDDMA 线性模型推导,与旧逐维模型**逐元素等价**,UB 内数据排布不变,compute/CopyOut 零改动。 ## 验证 1. **寻址交叉验证**:Python 逐元素比对合并后 NDDMA 寻址与参考寻址,210 例(含 200 随机 fuzz、9 个目标样例结构、run 溢出兜底)全部一致; 2. **UT**(dav_3510 仿真):新增 2 个 rank8 回归用例(切分轴在 NDDMA 窗口外含尾段 / run 溢出兜底),4/4 通过;Host tiling UT 16/16 通过; 3. **实卡性能**(Ascend950PR,30 次迭代均值,精度全量比对 PASS): | 样例 | 修复前 | 修复后 | 加速比 | 带宽 |---|---|---|---|---| | L0_067/461 fp16 | 1.314 ms | 0.030 ms | 43.8× | 8.3→358 GB/s | | L1_137 fp32 | 10.829 ms | 0.185 ms | 58.5× | 15→895 GB/s | | L1_186 fp32 | 5.190 ms | 0.075 ms | 69.2× | 15→1058 GB/s | | L1_200 bf16 | 6.504 ms | 0.108 ms | 60.2× | 8→500 GB/s | | L1_390 fp32 | 9.531 ms | 0.148 ms | 64.4× | 16→1057 GB/s | | L1_406 fp16 | 8.087 ms | 0.127 ms | 63.7× | 12→755 GB/s | | L1_491 fp32 | 3.039 ms | 0.052 ms | 58.4× | 16→959 GB/s | | rangebound rb_748 bf16 | 5.206 ms | 0.073 ms | 71.3× | 8→578 GB/s | | 对照组(单维大 shape) | 0.589 ms | 0.590 ms | 1.0×(无回退) | — | See merge request: cann/ops-math!5888 | 4 天前 |
| [CANNBOT]scale适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> Co-authored-by: gcw_YBIAEfqJ<dev@local> # message auto-generated for no-merge-commit merge: !3322 merge 0612 into master [CANNBOT]scale适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Scale 算子用于对输入 Tensor 执行逐元素缩放(可选加偏置)。其核心计算公式为: - 无 bias:$y = x \times scale$ - 有 bias:$y = x \times scale + bias$ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1970 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3322 | 3 个月前 |
| 产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 7 天前 |