| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 | 9 天前 | |
feat: 长尾算子新增ascend350平台支持 Co-authored-by: onanfield<tianshang@huawei.com> # message auto-generated for no-merge-commit merge: !11839 merge ascend350-adapt-batch2 into master feat: 长尾算子新增ascend350平台支持 Created-by: onanfield Commit-by: onanfield Merged-by: cann-robot Description: ## 描述 9个算子新增ascend350平台支持(BNInference/BNInferGrad/Centralization/CosineEmbeddingLoss/DynamicQuantUpdateScatterV2/FakeQuantWithMinMaxArgs/ForeachAcos/ForeachCos/ForeachLerpList) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11839 | 8 天前 | |
index及foreach算子支持ascend960dt Co-authored-by: wang-shilong32<wangshilong23@huawei.com> # message auto-generated for no-merge-commit merge: !12244 merge feat/op960dt-4-index-foreach into master index及foreach算子支持ascend960dt Created-by: wang-shilong32 Commit-by: wang-shilong32 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index及foreach算子支持ascend960dt: embedding/embedding_bag/embedding_dense_grad(_v2)/masked_scatter_with_position/foreach_add_list ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6872 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 冒烟测试,本地编译验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12244 | 5 天前 | |
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 个月前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
feat:算子适配ascend350 Co-authored-by: wuyan<wuyan23@huawei.com> # message auto-generated for no-merge-commit merge: !12101 merge master into master feat:算子适配ascend350 Created-by: rrely11 Commit-by: wuyan Merged-by: cann-robot Description: ## 描述 本 PR 为以下算子适配 ascend350 平台:在 host 侧 *_def.cpp 中新增 ascend350 的 AICore 配置(复用 ascend950 的 RegBase/AICore 配置),并为新增平台补充 binary 配置: - foreach_add_scalar_list - foreach_div_scalar - arg_max_grad - batch_norm3_d_grad - inplace_apply_centered_rms_prop 主要改动: 1. 各算子 op_host/*_def.cpp 增加 this->AICore().AddConfig("ascend350", ...); 2. 各算子 op_host/CMakeLists.txt 与 op_kernel/CMakeLists.txt 的 COMPUTE_UNIT / SUPPORT_COMPUTE_UNIT、SUPPORT_TILING_DIR 增加 ascend350 arch35; 3. 新增 op_host/config/ascend350/*_binary.json(foreach_add_scalar_list、foreach_div_scalar、arg_max_grad、batch_norm3_d_grad); 4. scripts/kernel/binary_config/ascendc_config.json 更新 ForeachAddScalarList 的 compute_units,增加 ascend350; 5. 清理部分文件的尾随空白并补全文件末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12101 | 4 天前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 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 | 9 天前 | |
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 | 9 天前 | |
fix: 修复 MSELossV2/MultilabelMarginLoss arch35 规约精度, 规范化 4 算子 golden Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !11252 merge fix/arch35-4ops-round2 into master fix: 修复 MSELossV2/MultilabelMarginLoss arch35 规约精度, 规范化 4 算子 golden Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11252 | 26 天前 | |
foreach_copy算子支持ascend960dt Co-authored-by: zhang-wenbo-beat<zhangwenbo67@huawei.com> # message auto-generated for no-merge-commit merge: !12351 merge foreach_copy_960dt into master foreach_copy算子支持ascend960dt Created-by: zhang-wenbo-beat Commit-by: zhang-wenbo-beat Merged-by: cann-robot Description: ## 描述 foreach_copy 算子适配 ascend960dt(A6/dav_9201),沿用仓内既有 960dt 适配模式(参考 segment_sum/bucketize_v2、avg_pool 簇等已合入 PR): - op_host/foreach_copy_def.cpp:注册 ascend960dt,复用 ascend950 的 AICore 配置 - op_host/CMakeLists.txt:SUPPORT_COMPUTE_UNIT 增加 ascend960dt,SUPPORT_TILING_DIR 对应增加 arch22(tiling 为纯 host 代码,无架构差异) - op_host/config/ascend960dt/foreach_copy_binary.json:新增二进制配置(16 个 dtype 组合,内容与 ascend950 一致) - op_kernel/CMakeLists.txt:COMPUTE_UNITS 增加 ascend960dt - scripts/kernel/binary_config/ascendc_config.json:ForeachCopy 条目增加 ascend960dt 算子内核(op_kernel/foreach_copy.cpp)与 tiling(op_host/arch22/)均无 SOC 相关分支逻辑,无需代码改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6872 ## 测试 - 新增/修改的 JSON 配置均通过格式校验 - 本地 pre-push 编译门禁因全新 worktree 需近全量构建、耗时过长已跳过(本次改动仅为芯片注册与配置,无代码逻辑变更),由远端 CI 门禁验证 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!12351 | 4 天前 | |
feat: 长尾算子新增ascend350平台支持 Co-authored-by: onanfield<tianshang@huawei.com> # message auto-generated for no-merge-commit merge: !11839 merge ascend350-adapt-batch2 into master feat: 长尾算子新增ascend350平台支持 Created-by: onanfield Commit-by: onanfield Merged-by: cann-robot Description: ## 描述 9个算子新增ascend350平台支持(BNInference/BNInferGrad/Centralization/CosineEmbeddingLoss/DynamicQuantUpdateScatterV2/FakeQuantWithMinMaxArgs/ForeachAcos/ForeachCos/ForeachLerpList) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11839 | 8 天前 | |
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 | 9 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11601 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 1. Modified foreach_copy to support A3. 2. Optimized the description of the x1 parameter in the README.md file of the foreach_div_list_inplace operator. 3. Optimized the parameter description in the *.md file of add_layer_norm_quant. 4. Changed the parameter outputMaskOptional in aclnnAddRmsNormDynamicQuantV2.md to outputMask. 5. Modified aclnnFastBatchNormBackward.md to support A3. 6. Modified the data type constraints of the output parameter y in aclnnRmsNormQuant.md. ## 关联的Issue [#6412](https://gitcode.com/cann/ops-nn/issues/6412) [#6427](https://gitcode.com/cann/ops-nn/issues/6427) [#6416](https://gitcode.com/cann/ops-nn/issues/6416) [#6363](https://gitcode.com/cann/ops-nn/issues/6363) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11601 | 14 天前 | |
feat:算子适配ascend350 Co-authored-by: wuyan<wuyan23@huawei.com> # message auto-generated for no-merge-commit merge: !12101 merge master into master feat:算子适配ascend350 Created-by: rrely11 Commit-by: wuyan Merged-by: cann-robot Description: ## 描述 本 PR 为以下算子适配 ascend350 平台:在 host 侧 *_def.cpp 中新增 ascend350 的 AICore 配置(复用 ascend950 的 RegBase/AICore 配置),并为新增平台补充 binary 配置: - foreach_add_scalar_list - foreach_div_scalar - arg_max_grad - batch_norm3_d_grad - inplace_apply_centered_rms_prop 主要改动: 1. 各算子 op_host/*_def.cpp 增加 this->AICore().AddConfig("ascend350", ...); 2. 各算子 op_host/CMakeLists.txt 与 op_kernel/CMakeLists.txt 的 COMPUTE_UNIT / SUPPORT_COMPUTE_UNIT、SUPPORT_TILING_DIR 增加 ascend350 arch35; 3. 新增 op_host/config/ascend350/*_binary.json(foreach_add_scalar_list、foreach_div_scalar、arg_max_grad、batch_norm3_d_grad); 4. scripts/kernel/binary_config/ascendc_config.json 更新 ForeachAddScalarList 的 compute_units,增加 ascend350; 5. 清理部分文件的尾随空白并补全文件末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12101 | 4 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat: 长尾算子新增ascend350平台支持 Co-authored-by: onanfield<tianshang@huawei.com> # message auto-generated for no-merge-commit merge: !11839 merge ascend350-adapt-batch2 into master feat: 长尾算子新增ascend350平台支持 Created-by: onanfield Commit-by: onanfield Merged-by: cann-robot Description: ## 描述 9个算子新增ascend350平台支持(BNInference/BNInferGrad/Centralization/CosineEmbeddingLoss/DynamicQuantUpdateScatterV2/FakeQuantWithMinMaxArgs/ForeachAcos/ForeachCos/ForeachLerpList) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11839 | 8 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11964 merge feat/foreach-unary-noncontig-3 into master feat(foreach): Erf/Erfc/Exp/Expm1/Log/Log10 6个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 6 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 3 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachErf / Erfc / Exp / Expm1 / Log / Log10 | 自动生成改手写:新建 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:Erf/Erfc/Log/Log10 为 FLOAT16/FLOAT/BF16;Exp/Expm1 支持 FLOAT16/FLOAT/BF16/INT16/INT8/UINT8,且整型输入按 def 定义映射为 FLOAT32 输出(CheckDtypeValid 按映射后的期望输出 dtype 校验,与自动生成版行为一致) - 各算子 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;log/log10 用正值域) - 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!11964 | 9 天前 | |
feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11965 merge feat/foreach-unary-noncontig-4 into master feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 4 批/最后一批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachLog1p / Log2 / Neg / Reciprocal / Sigmoid | 自动生成改手写:新建 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:Log1p/Log2/Reciprocal/Sigmoid 为 FLOAT16/FLOAT/BF16;Neg 为 FLOAT16/FLOAT/BF16/INT32/INT16/INT8/UINT8 - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Closes #6677(一元系列共 4 批共用本 issue,本批为最后一批) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape;log1p/log2 正值域、reciprocal 避开 0) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11965 | 9 天前 | |
feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11965 merge feat/foreach-unary-noncontig-4 into master feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 4 批/最后一批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachLog1p / Log2 / Neg / Reciprocal / Sigmoid | 自动生成改手写:新建 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:Log1p/Log2/Reciprocal/Sigmoid 为 FLOAT16/FLOAT/BF16;Neg 为 FLOAT16/FLOAT/BF16/INT32/INT16/INT8/UINT8 - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Closes #6677(一元系列共 4 批共用本 issue,本批为最后一批) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape;log1p/log2 正值域、reciprocal 避开 0) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11965 | 9 天前 | |
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 个月前 | |
feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11970 merge feat/foreach-df-noncontig into master feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个接口当前为自动生成实现(无手写 aclnn 层):二元 list 类输出非连续时 kernel 按连续布局写入结果错位;两个纯 inplace 算子(def 无 Output,kernel 直接更新输入 GM 地址)不支持非连续输入(详见关联 issue)。 ### 改动方法 **D 类(二元 list×list)** | 接口 | 改造 | |---|---| | aclnnForeachMaximumList / MinimumList / PowList | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE;pow_list 因 op_kernel/ 存在同名头文件,桥接以 _l0op 后缀命名)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:双输入 + 输出均 ForeachMakeContiguousTensorList,计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/INT32/BF16);机型判断用 SocVersion **F 类(无 Output 纯 inplace)** | 接口 | 改造 | |---|---| | aclnnForeachZeroInplace / NonFiniteCheckAndUnscale | 桥接 OP_INPUT 全输入形式(无 OP_OUTPUT,kernel 直接更新输入 GM 地址;zero_inplace 桥接以 _l0op 后缀避开 op_kernel 同名头);手写 aclnn 层 | - 非连续支持:ForeachMakeContiguousTensorList 拷贝当前值 → kernel 原地更新 → ForeachViewCopyToOutputTensorList 按原 stride 回写原 tensor——inplace 语义与 found_inf 读-改-写累积均保序;inv_scale 只读;全空视图短路(workspaceSize=0) - CheckParams 含 CheckTensorListNotNull + 标量出参单元素校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6685 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:全量 UT PASSED / 0 FAILED——F 类含参数化 SoC(910B/910_93)×(转置视图/带偏移 stride/参数融合 buffer 视图/空视图/256 上限/空指针等)96 用例全过;D 类各 1 个非连续输入+非连续输出用例(双输入全非连续,六参 TensorDesc) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11970 | 9 天前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !12498 merge dev-dvlite into master 支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 变更说明 本 PR 为 dvlite(Ascend350)芯片提供算子适配支持,基于已有 ascend950(arch35)tiling 架构扩展 ascend350 计算单元,不改变 ascend910b/ascend910_93/ascend950 等既有平台行为。 ### 1. 新增 10 个算子的 binary 配置文件(共 14 份) | 算子 | 配置文件 | |------|----------| | ForeachMaximumScalarList | foreach/foreach_maximum_scalar_list/op_host/config/ascend350/foreach_maximum_scalar_list_binary.json | | ForeachPowScalar | foreach/foreach_pow_scalar/op_host/config/ascend350/foreach_pow_scalar_binary.json | | ForeachPowScalarAndTensor | foreach/foreach_pow_scalar_and_tensor/op_host/config/ascend350/foreach_pow_scalar_and_tensor_binary.json | | ForeachSinh | foreach/foreach_sinh/op_host/config/ascend350/foreach_sinh_binary.json | | SoftmaxFocalLoss | loss/softmax_focal_loss/op_host/config/ascend350/softmax_focal_loss_binary.json | | GnTrainingReduce | norm/gn_training_reduce/op_host/config/ascend350/gn_training_reduce_binary.json | | MultiAddRmsNormDynamicQuant | norm/multi_add_rms_norm_dynamic_quant/op_host/config/ascend350/multi_add_rms_norm_dynamic_quant_binary.json | | SingleLayerLstm | rnn/single_layer_lstm/op_host/config/ascend350/single_layer_lstm_binary.json | | ScaledMaskedSoftmaxV2 | vfusion/scaled_masked_softmax_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_v2_binary.json(3 份) | | ScaledMaskedSoftmaxGradV2 | vfusion/scaled_masked_softmax_grad_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_grad_v2_binary.json(3 份) | ### 2. CMakeLists / op_host 注册扩展计算单元 上述算子及 ScatterMax、ScatterMaxWithArgmax、LambUpdateWithLr、FusedMulApplyMomentumExtern 共 14 个算子,通过 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR/COMPUTE_UNITS(CMakeLists)与 AICore().AddConfig(...)(def.cpp)注册: - 12 个算子注册 ascend350,tiling 复用 ascend950 的 arch35 目录; - ScaledMaskedSoftmaxV2、ScaledMaskedSoftmaxGradV2 各注册 ascend350、ascend960dt、ascend960pr 三个计算单元; - 公共模块 scatter_reduce_common(index/scatter_reduce_common)注册 ascend350(tiling 复用 arch35),供 ScatterMax/ScatterDiv/ScatterMin/ScatterMul 等 scatter 系列算子复用。 ### 3. op_api / infershape 适配 - aclnn_foreach_sinh:dtype 支持列表增加 SocVersion::ASCEND350 - single_layer_lstm:SoC 校验由仅 ascend950 扩展至 ascend950/ascend350 - softmax_focal_loss、multi_add_rms_norm_dynamic_quant:infershape 平台分支覆盖 short_soc_version == "Ascend350" ## 影响范围 53 files changed, +2712/-65。仅新增 ascend350(及 ScaledMaskedSoftmaxV2/ScaledMaskedSoftmaxGradV2 的 ascend960dt/ascend960pr)计算单元支持,既有平台行为不变。 关联的Issue:#7144 See merge request: cann/ops-nn!12498 | 1 天前 | |
feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11970 merge feat/foreach-df-noncontig into master feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个接口当前为自动生成实现(无手写 aclnn 层):二元 list 类输出非连续时 kernel 按连续布局写入结果错位;两个纯 inplace 算子(def 无 Output,kernel 直接更新输入 GM 地址)不支持非连续输入(详见关联 issue)。 ### 改动方法 **D 类(二元 list×list)** | 接口 | 改造 | |---|---| | aclnnForeachMaximumList / MinimumList / PowList | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE;pow_list 因 op_kernel/ 存在同名头文件,桥接以 _l0op 后缀命名)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:双输入 + 输出均 ForeachMakeContiguousTensorList,计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/INT32/BF16);机型判断用 SocVersion **F 类(无 Output 纯 inplace)** | 接口 | 改造 | |---|---| | aclnnForeachZeroInplace / NonFiniteCheckAndUnscale | 桥接 OP_INPUT 全输入形式(无 OP_OUTPUT,kernel 直接更新输入 GM 地址;zero_inplace 桥接以 _l0op 后缀避开 op_kernel 同名头);手写 aclnn 层 | - 非连续支持:ForeachMakeContiguousTensorList 拷贝当前值 → kernel 原地更新 → ForeachViewCopyToOutputTensorList 按原 stride 回写原 tensor——inplace 语义与 found_inf 读-改-写累积均保序;inv_scale 只读;全空视图短路(workspaceSize=0) - CheckParams 含 CheckTensorListNotNull + 标量出参单元素校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6685 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:全量 UT PASSED / 0 FAILED——F 类含参数化 SoC(910B/910_93)×(转置视图/带偏移 stride/参数融合 buffer 视图/空视图/256 上限/空指针等)96 用例全过;D 类各 1 个非连续输入+非连续输出用例(双输入全非连续,六参 TensorDesc) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11970 | 9 天前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
fix foreach_mul_list example code Co-authored-by: tramp-ll<linglong4@huawei.com> # message auto-generated for no-merge-commit merge: !11960 merge master into master fix foreach_mul_list example code Created-by: tramp-ll Commit-by: tramp-ll Merged-by: cann-robot Description: ## 描述 回退了 foreach_mul_list example 的代码,保持与md文档示例代码一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6684 ## 测试 OK ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11960 | 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 个月前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
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 个月前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11965 merge feat/foreach-unary-noncontig-4 into master feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 4 批/最后一批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachLog1p / Log2 / Neg / Reciprocal / Sigmoid | 自动生成改手写:新建 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:Log1p/Log2/Reciprocal/Sigmoid 为 FLOAT16/FLOAT/BF16;Neg 为 FLOAT16/FLOAT/BF16/INT32/INT16/INT8/UINT8 - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Closes #6677(一元系列共 4 批共用本 issue,本批为最后一批) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape;log1p/log2 正值域、reciprocal 避开 0) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11965 | 9 天前 | |
fix(foreach): ForeachNonFiniteCheckAndUnscale 移除 scaledGrads 空 tensor 拒绝 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !12368 merge fix/nfa-empty-tensor into master fix(foreach): ForeachNonFiniteCheckAndUnscale 移除 scaledGrads 空 tensor 拒绝 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 !11970(ForeachNonFiniteCheckAndUnscale 手写化)在 aclnn CheckParams 中对 GetShapeSize()==0 的 scaledGrads 元素新增了主动拒绝("scaledGrads must not contain empty tensors." → 561002)。此检查在自动生成版中不存在,导致 fuzz 测试的 EmptyTensor 系列用例(期望空 tensor 正常传入 kernel 按 0 元素 no-op 处理并返回输出)从通过变为失败,属行为回归。 ### 改动方法 删除该 4 行检查(if (tensor->GetViewShape().GetShapeSize() == 0) 及其报错返回),恢复空 tensor 传给 kernel 的原有行为。tiling 层既有的空 tensor 校验不变(上游原有逻辑,非本 PR 引入)。纯删除,+0/−4。 ## 关联的Issue Refs #6685 ## 测试 - A2 pre-commit 全钩子通过(clang-format/codespell/OAT),零自动修复 - 纯删除行为检查,不改计算逻辑;空 tensor 用例行为恢复与自动生成版一致(空 tensor 由 kernel 跳过,found_inf 不受影响) - fuzz 工具的 EmptyTensor 系列用例将恢复通过 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12368 | 4 天前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11970 merge feat/foreach-df-noncontig into master feat(foreach): MaximumList/MinimumList/PowList与ZeroInplace/NonFiniteCheckAndUnscale共5个接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个接口当前为自动生成实现(无手写 aclnn 层):二元 list 类输出非连续时 kernel 按连续布局写入结果错位;两个纯 inplace 算子(def 无 Output,kernel 直接更新输入 GM 地址)不支持非连续输入(详见关联 issue)。 ### 改动方法 **D 类(二元 list×list)** | 接口 | 改造 | |---|---| | aclnnForeachMaximumList / MinimumList / PowList | 自动生成改手写:新建 l0op 桥接(OP_TYPE_REGISTER + ADD_TO_LAUNCHER_LIST_AICORE;pow_list 因 op_kernel/ 存在同名头文件,桥接以 _l0op 后缀命名)+ 手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude 并补 foreach_utils include 目录 | - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:双输入 + 输出均 ForeachMakeContiguousTensorList,计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - dtype 校验按各算子 def.cpp(FLOAT16/FLOAT/INT32/BF16);机型判断用 SocVersion **F 类(无 Output 纯 inplace)** | 接口 | 改造 | |---|---| | aclnnForeachZeroInplace / NonFiniteCheckAndUnscale | 桥接 OP_INPUT 全输入形式(无 OP_OUTPUT,kernel 直接更新输入 GM 地址;zero_inplace 桥接以 _l0op 后缀避开 op_kernel 同名头);手写 aclnn 层 | - 非连续支持:ForeachMakeContiguousTensorList 拷贝当前值 → kernel 原地更新 → ForeachViewCopyToOutputTensorList 按原 stride 回写原 tensor——inplace 语义与 found_inf 读-改-写累积均保序;inv_scale 只读;全空视图短路(workspaceSize=0) - CheckParams 含 CheckTensorListNotNull + 标量出参单元素校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6685 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:全量 UT PASSED / 0 FAILED——F 类含参数化 SoC(910B/910_93)×(转置视图/带偏移 stride/参数融合 buffer 视图/空视图/256 上限/空指针等)96 用例全过;D 类各 1 个非连续输入+非连续输出用例(双输入全非连续,六参 TensorDesc) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11970 | 9 天前 | |
支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !12498 merge dev-dvlite into master 支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 变更说明 本 PR 为 dvlite(Ascend350)芯片提供算子适配支持,基于已有 ascend950(arch35)tiling 架构扩展 ascend350 计算单元,不改变 ascend910b/ascend910_93/ascend950 等既有平台行为。 ### 1. 新增 10 个算子的 binary 配置文件(共 14 份) | 算子 | 配置文件 | |------|----------| | ForeachMaximumScalarList | foreach/foreach_maximum_scalar_list/op_host/config/ascend350/foreach_maximum_scalar_list_binary.json | | ForeachPowScalar | foreach/foreach_pow_scalar/op_host/config/ascend350/foreach_pow_scalar_binary.json | | ForeachPowScalarAndTensor | foreach/foreach_pow_scalar_and_tensor/op_host/config/ascend350/foreach_pow_scalar_and_tensor_binary.json | | ForeachSinh | foreach/foreach_sinh/op_host/config/ascend350/foreach_sinh_binary.json | | SoftmaxFocalLoss | loss/softmax_focal_loss/op_host/config/ascend350/softmax_focal_loss_binary.json | | GnTrainingReduce | norm/gn_training_reduce/op_host/config/ascend350/gn_training_reduce_binary.json | | MultiAddRmsNormDynamicQuant | norm/multi_add_rms_norm_dynamic_quant/op_host/config/ascend350/multi_add_rms_norm_dynamic_quant_binary.json | | SingleLayerLstm | rnn/single_layer_lstm/op_host/config/ascend350/single_layer_lstm_binary.json | | ScaledMaskedSoftmaxV2 | vfusion/scaled_masked_softmax_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_v2_binary.json(3 份) | | ScaledMaskedSoftmaxGradV2 | vfusion/scaled_masked_softmax_grad_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_grad_v2_binary.json(3 份) | ### 2. CMakeLists / op_host 注册扩展计算单元 上述算子及 ScatterMax、ScatterMaxWithArgmax、LambUpdateWithLr、FusedMulApplyMomentumExtern 共 14 个算子,通过 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR/COMPUTE_UNITS(CMakeLists)与 AICore().AddConfig(...)(def.cpp)注册: - 12 个算子注册 ascend350,tiling 复用 ascend950 的 arch35 目录; - ScaledMaskedSoftmaxV2、ScaledMaskedSoftmaxGradV2 各注册 ascend350、ascend960dt、ascend960pr 三个计算单元; - 公共模块 scatter_reduce_common(index/scatter_reduce_common)注册 ascend350(tiling 复用 arch35),供 ScatterMax/ScatterDiv/ScatterMin/ScatterMul 等 scatter 系列算子复用。 ### 3. op_api / infershape 适配 - aclnn_foreach_sinh:dtype 支持列表增加 SocVersion::ASCEND350 - single_layer_lstm:SoC 校验由仅 ascend950 扩展至 ascend950/ascend350 - softmax_focal_loss、multi_add_rms_norm_dynamic_quant:infershape 平台分支覆盖 short_soc_version == "Ascend350" ## 影响范围 53 files changed, +2712/-65。仅新增 ascend350(及 ScaledMaskedSoftmaxV2/ScaledMaskedSoftmaxGradV2 的 ascend960dt/ascend960pr)计算单元支持,既有平台行为不变。 关联的Issue:#7144 See merge request: cann/ops-nn!12498 | 1 天前 | |
支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !12498 merge dev-dvlite into master 支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 变更说明 本 PR 为 dvlite(Ascend350)芯片提供算子适配支持,基于已有 ascend950(arch35)tiling 架构扩展 ascend350 计算单元,不改变 ascend910b/ascend910_93/ascend950 等既有平台行为。 ### 1. 新增 10 个算子的 binary 配置文件(共 14 份) | 算子 | 配置文件 | |------|----------| | ForeachMaximumScalarList | foreach/foreach_maximum_scalar_list/op_host/config/ascend350/foreach_maximum_scalar_list_binary.json | | ForeachPowScalar | foreach/foreach_pow_scalar/op_host/config/ascend350/foreach_pow_scalar_binary.json | | ForeachPowScalarAndTensor | foreach/foreach_pow_scalar_and_tensor/op_host/config/ascend350/foreach_pow_scalar_and_tensor_binary.json | | ForeachSinh | foreach/foreach_sinh/op_host/config/ascend350/foreach_sinh_binary.json | | SoftmaxFocalLoss | loss/softmax_focal_loss/op_host/config/ascend350/softmax_focal_loss_binary.json | | GnTrainingReduce | norm/gn_training_reduce/op_host/config/ascend350/gn_training_reduce_binary.json | | MultiAddRmsNormDynamicQuant | norm/multi_add_rms_norm_dynamic_quant/op_host/config/ascend350/multi_add_rms_norm_dynamic_quant_binary.json | | SingleLayerLstm | rnn/single_layer_lstm/op_host/config/ascend350/single_layer_lstm_binary.json | | ScaledMaskedSoftmaxV2 | vfusion/scaled_masked_softmax_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_v2_binary.json(3 份) | | ScaledMaskedSoftmaxGradV2 | vfusion/scaled_masked_softmax_grad_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_grad_v2_binary.json(3 份) | ### 2. CMakeLists / op_host 注册扩展计算单元 上述算子及 ScatterMax、ScatterMaxWithArgmax、LambUpdateWithLr、FusedMulApplyMomentumExtern 共 14 个算子,通过 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR/COMPUTE_UNITS(CMakeLists)与 AICore().AddConfig(...)(def.cpp)注册: - 12 个算子注册 ascend350,tiling 复用 ascend950 的 arch35 目录; - ScaledMaskedSoftmaxV2、ScaledMaskedSoftmaxGradV2 各注册 ascend350、ascend960dt、ascend960pr 三个计算单元; - 公共模块 scatter_reduce_common(index/scatter_reduce_common)注册 ascend350(tiling 复用 arch35),供 ScatterMax/ScatterDiv/ScatterMin/ScatterMul 等 scatter 系列算子复用。 ### 3. op_api / infershape 适配 - aclnn_foreach_sinh:dtype 支持列表增加 SocVersion::ASCEND350 - single_layer_lstm:SoC 校验由仅 ascend950 扩展至 ascend950/ascend350 - softmax_focal_loss、multi_add_rms_norm_dynamic_quant:infershape 平台分支覆盖 short_soc_version == "Ascend350" ## 影响范围 53 files changed, +2712/-65。仅新增 ascend350(及 ScaledMaskedSoftmaxV2/ScaledMaskedSoftmaxGradV2 的 ascend960dt/ascend960pr)计算单元支持,既有平台行为不变。 关联的Issue:#7144 See merge request: cann/ops-nn!12498 | 1 天前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11965 merge feat/foreach-unary-noncontig-4 into master feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 4 批/最后一批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachLog1p / Log2 / Neg / Reciprocal / Sigmoid | 自动生成改手写:新建 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:Log1p/Log2/Reciprocal/Sigmoid 为 FLOAT16/FLOAT/BF16;Neg 为 FLOAT16/FLOAT/BF16/INT32/INT16/INT8/UINT8 - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Closes #6677(一元系列共 4 批共用本 issue,本批为最后一批) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape;log1p/log2 正值域、reciprocal 避开 0) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11965 | 9 天前 | |
修正 ForeachRoundOffNumber README 中 roundMode Tensor 类型说明 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !12126 merge fix/2026-10-14-foreach-round-off-number-roundmode-int8-doc-01 into master 修正 ForeachRoundOffNumber README 中 roundMode Tensor 类型说明 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: 修正 ForeachRoundOffNumber README 中 roundMode Tensor 的类型说明为 INT8。算子 Proto 和经典 ACLNN 文档均只支持 INT8;INT64 适用于 V2 的 aclScalar 参数。 验证:补丁通过 git apply --check;仅修改文档,未运行构建或设备测试。 关联 Issue: https://gitcode.com/cann/ops-nn/issues/6785 See merge request: cann/ops-nn!12126 | 3 天前 | |
feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11965 merge feat/foreach-unary-noncontig-4 into master feat(foreach): Log1p/Log2/Neg/Reciprocal/Sigmoid 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 4 批/最后一批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachLog1p / Log2 / Neg / Reciprocal / Sigmoid | 自动生成改手写:新建 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:Log1p/Log2/Reciprocal/Sigmoid 为 FLOAT16/FLOAT/BF16;Neg 为 FLOAT16/FLOAT/BF16/INT32/INT16/INT8/UINT8 - 各算子 tests/ut/op_host/CMakeLists.txt 补 foreach(SUB_DIR) 子目录遍历(存量缺失,其 op_api UT 从未被构建收集) - kernel/tiling/binary 不变 ## 关联的Issue Closes #6677(一元系列共 4 批共用本 issue,本批为最后一批) ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape;log1p/log2 正值域、reciprocal 避开 0) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11965 | 9 天前 | |
feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11963 merge feat/foreach-unary-noncontig-2 into master feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 2 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachSin / Sinh / Tan / Tanh / Sign | 自动生成改手写:新建 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:Sin/Sinh/Tan/Tanh 为 FLOAT16/FLOAT/BF16;Sign 为 FLOAT16/FLOAT/BF16/INT8/INT32/INT64 - 各算子 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=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11963 | 9 天前 | |
feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11963 merge feat/foreach-unary-noncontig-2 into master feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 2 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachSin / Sinh / Tan / Tanh / Sign | 自动生成改手写:新建 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:Sin/Sinh/Tan/Tanh 为 FLOAT16/FLOAT/BF16;Sign 为 FLOAT16/FLOAT/BF16/INT8/INT32/INT64 - 各算子 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=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11963 | 9 天前 | |
支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !12498 merge dev-dvlite into master 支持dvlite(ascend350):新增10个算子binary配置并扩展14个算子compute unit支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 变更说明 本 PR 为 dvlite(Ascend350)芯片提供算子适配支持,基于已有 ascend950(arch35)tiling 架构扩展 ascend350 计算单元,不改变 ascend910b/ascend910_93/ascend950 等既有平台行为。 ### 1. 新增 10 个算子的 binary 配置文件(共 14 份) | 算子 | 配置文件 | |------|----------| | ForeachMaximumScalarList | foreach/foreach_maximum_scalar_list/op_host/config/ascend350/foreach_maximum_scalar_list_binary.json | | ForeachPowScalar | foreach/foreach_pow_scalar/op_host/config/ascend350/foreach_pow_scalar_binary.json | | ForeachPowScalarAndTensor | foreach/foreach_pow_scalar_and_tensor/op_host/config/ascend350/foreach_pow_scalar_and_tensor_binary.json | | ForeachSinh | foreach/foreach_sinh/op_host/config/ascend350/foreach_sinh_binary.json | | SoftmaxFocalLoss | loss/softmax_focal_loss/op_host/config/ascend350/softmax_focal_loss_binary.json | | GnTrainingReduce | norm/gn_training_reduce/op_host/config/ascend350/gn_training_reduce_binary.json | | MultiAddRmsNormDynamicQuant | norm/multi_add_rms_norm_dynamic_quant/op_host/config/ascend350/multi_add_rms_norm_dynamic_quant_binary.json | | SingleLayerLstm | rnn/single_layer_lstm/op_host/config/ascend350/single_layer_lstm_binary.json | | ScaledMaskedSoftmaxV2 | vfusion/scaled_masked_softmax_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_v2_binary.json(3 份) | | ScaledMaskedSoftmaxGradV2 | vfusion/scaled_masked_softmax_grad_v2/op_host/config/{ascend350,ascend960dt,ascend960pr}/scaled_masked_softmax_grad_v2_binary.json(3 份) | ### 2. CMakeLists / op_host 注册扩展计算单元 上述算子及 ScatterMax、ScatterMaxWithArgmax、LambUpdateWithLr、FusedMulApplyMomentumExtern 共 14 个算子,通过 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR/COMPUTE_UNITS(CMakeLists)与 AICore().AddConfig(...)(def.cpp)注册: - 12 个算子注册 ascend350,tiling 复用 ascend950 的 arch35 目录; - ScaledMaskedSoftmaxV2、ScaledMaskedSoftmaxGradV2 各注册 ascend350、ascend960dt、ascend960pr 三个计算单元; - 公共模块 scatter_reduce_common(index/scatter_reduce_common)注册 ascend350(tiling 复用 arch35),供 ScatterMax/ScatterDiv/ScatterMin/ScatterMul 等 scatter 系列算子复用。 ### 3. op_api / infershape 适配 - aclnn_foreach_sinh:dtype 支持列表增加 SocVersion::ASCEND350 - single_layer_lstm:SoC 校验由仅 ascend950 扩展至 ascend950/ascend350 - softmax_focal_loss、multi_add_rms_norm_dynamic_quant:infershape 平台分支覆盖 short_soc_version == "Ascend350" ## 影响范围 53 files changed, +2712/-65。仅新增 ascend350(及 ScaledMaskedSoftmaxV2/ScaledMaskedSoftmaxGradV2 的 ascend960dt/ascend960pr)计算单元支持,既有平台行为不变。 关联的Issue:#7144 See merge request: cann/ops-nn!12498 | 1 天前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
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 个月前 | |
feat(foreach): 9个非V2接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11956 merge feat/foreach-nonv2-noncontig-output into master feat(foreach): 9个非V2接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 9 个接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue)。其同目录的 V2 接口已在前一批次统一切换公共 helper 并支持非连续输出(!11928),本批补齐非 V2 接口。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachAddScalar / AddcmulScalar / MaximumScalar / MinimumScalar / MulScalar / PowScalar / RoundOffNumber / SubList / SubScalar | 自动生成改手写:复用同目录 V2 l0op 桥接(OP_TYPE_REGISTER 不重复),新建手写 aclnn 层;CMakeLists 由 aclnn 改 aclnn_exclude | - scalar(aclTensor*) 直接透传 V2 桥接,无需 ConvertToTensor - 非连续支持复用 foreach_utils/op_host/foreach_contiguous_helper.h:输入端 ForeachMakeContiguousTensorList,输出端转连续 buffer 计算后 ForeachViewCopyToOutputTensorList 按 stride 回写 - scalar dtype 校验按各算子 def.cpp 的 DtypeScalarToTensor2 映射(FLOAT16→FLOAT16、FLOAT/BFLOAT16→FLOAT32、整型→INT32;RoundOffNumber 的 roundMode 固定 INT8),与自动生成版行为一致 - CheckParams 含 CheckTensorListNotNull + list 长度一致性校验 - kernel/tiling/binary 不变 ## 关联的Issue Closes #6681 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=<9算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast(本批 + 已合入的 V2 批次回归):79 tests PASSED / 0 FAILED,其中本批 9 个新增非连续输入+非连续输出用例全部通过(六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 9 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11956 | 9 天前 | |
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 个月前 | |
modified md files Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !11982 merge master into master modified md files Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Deleted the "Viewing the Source Code" section and the corresponding link at the beginning of the ACLNN MD description of foreach and norm. ## 关联的Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11982 | 10 天前 | |
feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11963 merge feat/foreach-unary-noncontig-2 into master feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 2 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachSin / Sinh / Tan / Tanh / Sign | 自动生成改手写:新建 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:Sin/Sinh/Tan/Tanh 为 FLOAT16/FLOAT/BF16;Sign 为 FLOAT16/FLOAT/BF16/INT8/INT32/INT64 - 各算子 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=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11963 | 9 天前 | |
feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !11963 merge feat/foreach-unary-noncontig-2 into master feat(foreach): Sin/Sinh/Tan/Tanh/Sign 5个一元接口改手写支持非连续输入输出 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 O1 图模式/eager 模式存在非连续输入输出场景,以下 5 个一元接口当前为自动生成实现(无手写 aclnn 层),输出为非连续 tensor 时 kernel 按连续线性布局写入,结果落在错误位置(详见关联 issue,一元系列共 4 批,本 PR 为第 2 批)。 ### 改动方法 | 接口 | 改造 | |---|---| | aclnnForeachSin / Sinh / Tan / Tanh / Sign | 自动生成改手写:新建 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:Sin/Sinh/Tan/Tanh 为 FLOAT16/FLOAT/BF16;Sign 为 FLOAT16/FLOAT/BF16/INT8/INT32/INT64 - 各算子 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=<5算子+foreach_utils> 真机 op 构建:Build binary success - A2 build.sh -u --opapi --soc=ascend910b --ut_mode=fast:5 tests PASSED / 0 FAILED(5 个新增非连续输入+非连续输出用例,六参 TensorDesc 构造 strides/offset/storageShape) - pre-commit 全部 hook 通过(clang-format / cmake-format / codespell / OAT 合规) ## 文档更新 - 5 个接口文档 docs/aclnnForeach<Op>.md:out 的"非连续Tensor"标记由 × 改为 √ ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11963 | 9 天前 | |
feat(foreach): 五个算子支持Ascend960 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !11785 merge cann-out into master feat(foreach): 五个算子支持Ascend960 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 以下五个算子适配Ascend960DT: - ForeachMulScalar - ForeachMulScalarList - ForeachNonFiniteCheckAndUnscale - ForeachNorm - ForeachSqrt ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/6671 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> Ascend960DT编译验证通过。 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20261013_175845883 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11785 | 10 天前 | |
fix(foreach): ForeachZeroInplace/NonFiniteCheckAndUnscale 的 workspaceSize/executor 判空编译失败修复 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !12013 merge fix/foreach-f-opcheck-null into master fix(foreach): ForeachZeroInplace/NonFiniteCheckAndUnscale 的 workspaceSize/executor 判空编译失败修复 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ### 改动原因 !11970(ForeachZeroInplace/NonFiniteCheckAndUnscale 手写化)合入后在 CI 工具链下编译失败:CheckParams 中对 workspaceSize(uint64_t*)与 executor(aclOpExecutor**)使用了 OP_CHECK_NULL 宏,该宏内部的 IsNullptr 仅提供算子类型指针的重载/实例化,非算子指针在 CI 工具链版本下无匹配函数(本地 CANN 9.2.0 的泛型模板版本可编译,故本地验证未暴露)。 ### 改动方法 两个文件的 OP_CHECK_NULL(workspaceSize, ...) / OP_CHECK_NULL(executor, ...) 替换为普通 nullptr 比较(行为不变,错误码与日志保持 ACLNN_ERR_PARAM_NULLPTR);tensor/scalar 的 OP_CHECK_NULL 保留不动。全仓扫描确认仅此两处非算子指针误用。 ## 关联的Issue Refs #6685 ## 测试 - A2(910B3)build.sh --soc=ascend910b --ops=foreach_zero_inplace;foreach_non_finite_check_and_unscale 真机 op 构建:Build binary success - 改动为纯判空形式替换,无行为变化 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12013 | 9 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 9 天前 | ||
| 8 天前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 26 天前 | ||
| 4 天前 | ||
| 8 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 14 天前 | ||
| 4 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 8 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 1 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 4 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 3 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 1 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 10 天前 | ||
| 9 天前 | ||
| 10 个月前 |