| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11951 merge feat/foreach-unary-noncontig-1 into master feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAbs / Acos / Asin / Atan / Cos / Cosh | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE,复用现有 kernel)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写(已连续输出直接写入) - CheckParams 含 CheckTensorListNotNull(foreach_null_check_helper.h) - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/BF16) - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Refs #6677(一元系列共 4 批共用本 issue,最后一批合入时关闭) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<6算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:6 tests PASSED / 0 FAILED(6 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 6 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11951 | 16 天前 | |
foreach 示例代码增加aclrtMemcpy返回值校验 Co-authored-by: tramp-ll<linglong4@huawei.com> # message auto-generated for no-merge-commit merge: !7791 merge master into master foreach 示例代码增加aclrtMemcpy返回值校验 Created-by: tramp-ll Commit-by: tramp-ll Merged-by: cann-robot Description: ## 描述 foreach 示例代码增加aclrtMemcpy返回值校验 ## 关联的Issue Issue: https://gitcode.com/cann/ops-nn/issues/4219 ## 测试 NA ## 文档更新 更新foreach系列算子md资料 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7791 | 3 个月前 | |
代码同步 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !450 merge master into master 代码同步 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!450 | 10 个月前 | |
feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11951 merge feat/foreach-unary-noncontig-1 into master feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAbs / Acos / Asin / Atan / Cos / Cosh | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE,复用现有 kernel)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写(已连续输出直接写入) - CheckParams 含 CheckTensorListNotNull(foreach_null_check_helper.h) - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/BF16) - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Refs #6677(一元系列共 4 批共用本 issue,最后一批合入时关闭) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<6算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:6 tests PASSED / 0 FAILED(6 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 6 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11951 | 16 天前 | |
修复ForeachAbs,ForeachAddcdivScalarList性能问题 Co-authored-by: u010470851<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !9780 merge add_noftzmode into master 修复ForeachAbs,ForeachAddcdivScalarList性能问题 Created-by: u010470851 Commit-by: u010470851 Merged-by: cann-robot Description: ## 描述 修复ForeachAbs,ForeachAddcdivScalarList性能问题,修复ForeachPowList,ForeachTan精度问题,开启高精度计算 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联的Issue https://gitcode.com/cann/ops-nn/issues/5790 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已测试ForeachAbs,ForeachAddcdivScalarList,ForeachPowList,ForeachTan的算子用例,性能精度达标 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9780 | 1 个月前 | |
feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11951 merge feat/foreach-unary-noncontig-1 into master feat(foreach): Abs/Acos/Asin/Atan/Cos/Cosh 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAbs / Acos / Asin / Atan / Cos / Cosh | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE,复用现有 kernel)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写(已连续输出直接写入) - CheckParams 含 CheckTensorListNotNull(foreach_null_check_helper.h) - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/BF16) - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Refs #6677(一元系列共 4 批共用本 issue,最后一批合入时关闭) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<6算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:6 tests PASSED / 0 FAILED(6 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 6 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11951 | 16 天前 | |
License Change Split2 Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge spilitLicense3 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!372 | 10 个月前 | |
modified md files (modified the product name and link path) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11029 merge master into master modified md files (modified the product name and link path) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changed the product name and link path ## 关联的Issue [#6092](https://gitcode.com/cann/ops-nn/issues/6092) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!11029 | 1 个月前 |
ForeachAtan
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
| Kirin X90处理器系列产品 | √ |
| Kirin 9030处理器系列产品 | √ |
功能说明
-
算子功能:按元素进行反正切函数运算。
-
计算公式:
x=[x0,x1,...xn−1]y=[y0,y1,...yn−1]x = [{x_0}, {x_1}, ... {x_{n-1}}]\\ y = [{y_0}, {y_1}, ... {y_{n-1}}]\\ x=[x0,x1,...xn−1]y=[y0,y1,...yn−1]
yi=tan−1(xi)(i=0,1,...n−1){\rm y}_i = \tan^{-1}(x_i) (i=0,1,...n-1) yi=tan−1(xi)(i=0,1,...n−1)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示进行反正切运算的输入张量列表,对应公式中的`x`。该参数中所有Tensor的数据类型保持一致。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| y | 输出 | 表示进行反正切运算的输出张量列表,对应公式中的`y`。数据类型和数据格式与入参`x`的数据类型和数据格式一致,shape size大于等于入参`x`的shape size。该参数中所有Tensor的数据类型保持一致。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
- Kirin X90处理器系列产品、Kirin 9030处理器系列产品:不支持BFLOAT16。
约束说明
- 输出不支持非连续Tensor。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_foreach_atan | 通过aclnnForeachAtan接口方式调用ForeachAtan算子。 |
| 图模式 | - | 通过算子IR构图方式调用ForeachAtan算子。 |