| Files | Last commit | Last update |
|---|---|---|
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 17 days ago | |
Rsqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4745 merge raii-rsqrt into master Rsqrt示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/rsqrt/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 验证文件:math/rsqrt/examples/test_aclnn_rsqrt.cpp。 C++11 编译、链接通过。 输入为 [1,2,3,4],期望输出约为 [1,0.707107,0.577350,0.5],实际输出与期望一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4745 | 14 days ago | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 3 months ago | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 1 month ago | |
feat: Infershape整改,25个math算子InferDataType注册迁移至op_graph目录(IMPL_OP独立链)及UT看护 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !6392 merge infershape-dtype into master feat: Infershape整改,25个math算子InferDataType注册迁移至op_graph目录(IMPL_OP独立链)及UT看护 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 作为 Infershape 整改的一部分,为 25 个 math 算子在 op_graph/ 目录新增 InferDataType(输出数据类型推导)独立注册及 UT 看护,共 50 个文件(+1757 -0,纯新增),对齐 ops-nn 仓方案(参考 PR#9839 样板): **注册方案(IMPL_OP 独立链):** - 每个算子新增 op_graph/<op>_graph_infer.cpp,通过 IMPL_OP(X).InferDataType(InferDataTypeX) 独立注册链注册,与 op_host 的 IMPL_OP_INFERSHAPE(InferShape)链解耦; - 涉及 25 个算子:abs_grad、add_n、assign_add、assign_sub、cast、cos、erf、exp、expm1、floor、log1p、logical_not、masked_scale、nan_to_num、neg、reciprocal、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc; - 原 35 个算子中的另外 10 个(atan、ceil、is_finite、is_inf、is_nan、is_neg_inf、is_pos_inf、log、right_shift、round)的 op_graph 迁移已单独合入 master,不在本 PR 范围; **实现分类:** - 24 个算子输出 dtype 与第一个输入一致(SetOutputDataType(0, GetInputDataType(0))); - Cast 按属性推导并**新增枚举范围校验**:从 gert::RuntimeAttrs 读取 dst_type 属性,校验合法值域为 [0, DT_MAX) 且排除 DT_UNDEFINED(=28),非法值在推导处直接报错返回 GRAPH_FAILED(与 arch31 tiling 的 TransAclToGeDataType 白名单校验同款防御,防止非法值静默写入输出 desc)。 **UT 看护(25 个测试文件,26 个用例):** - 每算子新增 tests/ut/op_graph/test_<op>_graph_infer_pass.cpp,直接调用导出的 ops::InferDataTypeX 函数,通过 OpInferDataTypeContextBuilder 构造上下文,参数化断言推导返回 GRAPH_SUCCESS 且输出 dtype 符合预期; - Cast 参数化覆盖 dst_type 集合(含 FP16/FLOAT/BF16/INT 系列等),并新增非法值专项用例:dst_type 为 -1/DT_UNDEFINED/DT_MAX/999 时断言推导返回 GRAPH_FAILED。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - 关联 Issue #3792 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 25 个算子各新增 InferDataTypeTest 参数化 UT 用例(直接函数调用),全部通过; - Cast 额外新增非法 dst_type 专项用例(-1/DT_UNDEFINED/DT_MAX/999 断言 GRAPH_FAILED),覆盖枚举校验防御路径。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 无需文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6392 | 11 days ago | |
feat: vector算子批量适配ascend960pr(DV122)平台 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !6663 merge feat/dv122-ascend960pr-adaptation into master feat: vector算子批量适配ascend960pr(DV122)平台 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 DV122(Ascend960PR / dav_9202 / Ascend960PR_969A1)vector 算子批量适配。参照 ascend960dt(DAV_9201) 既有适配模式,为 vector 算子清单内 66 个算子补齐 ascend960pr 支持,适配原则:9201 支持的能力 9202 均支持。 **注册级适配(66 算子):** - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 "ascend960pr",SUPPORT_TILING_DIR 按位插入对应 arch35 - op_host/*_def.cpp:AICore().AddConfig("ascend960pr", <960dt 同款配置>) - op_host/config/ascend960pr/:二进制配置(*_binary.json / *_simplified_key.ini,复制自 ascend960dt,与 960dt 内容一致) - op_kernel*/CMakeLists.txt:COMPUTE_UNITS 追加 ascend960pr(arch92 kernel 入口同步生效) - scripts/kernel/binary_config/ascendc_config.json:compute_units 与 compile_options 补齐 **代码级补齐(9201 → 9201||9202):** - tiling/aclnn/infershape/fusion_pass/kernel 中 NpuArch::DAV_9201、__NPU_ARCH__ == 9201、"Ascend960DT" 等 960 平台门禁补齐 DAV_9202 / 9202 / "Ascend960PR" - 覆盖 concat/tanh_grad/slice/strided_slice/expand/tensor_equal/lin_space/range 等的 tiling/aclnn/graph_infer/fusion_pass 平台门禁(家族特性判定依据:gather_v2 适配提交中 isAscend96_ = DAV_9201||DAV_9202、unsorted_segment_sum 注释"ascend960dt/ascend960pr(DAV_9201/DAV_9202) 平台判定,用于 960 专属特性(ScatterDataCopy 等)的运行时开关") ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4682 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟、ut、st已通过 <!--描述进行了哪些测试来验证你的改动。--> - CANN 9.3.0 工具链 --soc=ascend960pr 构建 19 个抽样算子(覆盖全部修改类型):宿主侧(def/tiling/infershape/aclnn)100% 编译通过,0 错误 - 构建日志确认正确消费新增的 config/ascend960pr/*_binary.json - --soc=ascend960dt 同算子集构建行为一致,无回归 - 一致性审计:范围内 960dt-without-960pr 注册缺口 0;修改过的 CMakeLists SUPPORT_COMPUTE_UNIT/TILING_DIR 位置对齐 0 问题;ascendc_config.json 语法有效 - 注:opc 二进制生成阶段因当前工具链缺 Ascend960PR_969A1 平台数据无法本地执行,需在 CI(含 960PR 平台数据的工具链)完成二进制编译与上板验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!6663 | 3 days ago | |
批量修改ws=0 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !6212 merge master into master 批量修改ws=0 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改算子workspace=0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3013 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6212 | 1 month ago | |
fix(aicpu): 补齐手写json缺失的opInfo字段 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !6519 merge fix/aicpu-opinfo-metadata into master fix(aicpu): 补齐手写json缺失的opInfo字段 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因、所采取的方法。--> 对齐 AICPU 整包生成侧与 CANN 9.2.0 安装版 aicpu_kernel.json 的 opInfo 元数据,补齐 6 个算子的字段缺失: - conversion/identity/op_kernel_aicpu/identity.json - 补齐 formatAgnostic=True、opsFlag=OPS_FLAG_OPEN(对齐安装版) - kernelSo 指向修正(libnn → libmath)已由 master db84400e2 率先合入,本 PR rebase 后不再重复改动 - math/rsqrt/op_kernel_aicpu/rsqrt.json、math/sqrt/op_kernel_aicpu/sqrt.json:补齐 formatAgnostic=True(对齐安装版) - math/tile/op_kernel_aicpu/tile.json:补齐 opsFlag=OPS_FLAG_OPEN(对齐安装版及同族 TileWithAxis 注册写法) - math/pow/op_kernel_aicpu/pow.json:补齐 opsFlag=OPS_FLAG_CLOSE(对齐安装版) - math/greater_equal/op_kernel_aicpu/greater_equal_aicpu_def.cpp:补齐 TRUE_FORMAT_AGNOSTIC 覆盖(安装版比较家族 GreaterEqual/Less/NotEqual 均为 True、Equal 为 False,本仓 Less/NotEqual 已覆盖,唯独 GreaterEqual 漏了 formatAgnostic) 背景:三仓 AICPU 整包 json 与安装版逐算子逐字段比对([cann/ops-cv#1276](https://gitcode.com/cann/ops-cv/issues/1276))定位到上述差异。76 个 AICPU 算子中 5 个为手写 json(identity/rsqrt/sqrt/tile/pow),不走 ApplyMathAicpuDefaultCfg+ExtendCfgInfo 注册机制,迁移/手写时字段易漏,本 PR 逐一补齐;后续建议将手写 json 逐步迁移为 def 注册,从根本上规避。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [cann/ops-cv#1276](https://gitcode.com/cann/ops-cv/issues/1276)(AICPU整包json与安装版json 算子定义差异梳理) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 5 个手写 json 语法校验通过 - 76 个 AICPU 算子源码推导值与本机 CANN 9.2.0 安装版全量比对:修复后 6 个目标算子的 formatAgnostic/opsFlag 与安装版完全对齐,其余 3 项差异(Coordinates1DTo2D/OnesLike/TileWithAxis,整包侧演进项)保持不变 - trans_soc / find_value_by_key 等既有机制无行为影响(GreaterEqual 仅新增一行 ExtendCfgInfo 覆盖) - pre-commit 全钩子通过(json 校验 / clang-format / codespell / OAT 合规) - 重建验证:重新 configure(重编 71 个 opdef 生成 aicpu_kernel.ini)并构建 gen_aicpu_json_from_opdef,再生成 aicpu_math.json——76 算子齐全,6 个目标算子的 kernelSo/formatAgnostic/opsFlag 全部落盘正确(Identity kernelSo 由 libnn 修正为 libmath,三处 True/OPEN 补齐,GreaterEqual 经 def→ini→json 链路生效),全量比对无回归 - 符号核验:构建 libmath_aicpu_kernels.so(aarch64),RunCpuKernel 动态符号导出、"Identity" 注册名字符串在 so 内,非本仓 AICPU 算子名(Conv2D/ROIAlign 等)反证 0 命中 - 未执行 NPU 上板运行与完整打包封测(无硬件环境;CUST 注册加载行为需端到端图编译验证) - rebase 至 master f597aafa 后复核:剩余字段补齐改动与原 PR 逐行一致,master db84400e2 已含 kernelSo 修正(本 PR 该项变为无差异),pre-commit 全钩子通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6519 | 17 days ago | |
feat: Infershape整改,25个math算子InferDataType注册迁移至op_graph目录(IMPL_OP独立链)及UT看护 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !6392 merge infershape-dtype into master feat: Infershape整改,25个math算子InferDataType注册迁移至op_graph目录(IMPL_OP独立链)及UT看护 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 作为 Infershape 整改的一部分,为 25 个 math 算子在 op_graph/ 目录新增 InferDataType(输出数据类型推导)独立注册及 UT 看护,共 50 个文件(+1757 -0,纯新增),对齐 ops-nn 仓方案(参考 PR#9839 样板): **注册方案(IMPL_OP 独立链):** - 每个算子新增 op_graph/<op>_graph_infer.cpp,通过 IMPL_OP(X).InferDataType(InferDataTypeX) 独立注册链注册,与 op_host 的 IMPL_OP_INFERSHAPE(InferShape)链解耦; - 涉及 25 个算子:abs_grad、add_n、assign_add、assign_sub、cast、cos、erf、exp、expm1、floor、log1p、logical_not、masked_scale、nan_to_num、neg、reciprocal、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc; - 原 35 个算子中的另外 10 个(atan、ceil、is_finite、is_inf、is_nan、is_neg_inf、is_pos_inf、log、right_shift、round)的 op_graph 迁移已单独合入 master,不在本 PR 范围; **实现分类:** - 24 个算子输出 dtype 与第一个输入一致(SetOutputDataType(0, GetInputDataType(0))); - Cast 按属性推导并**新增枚举范围校验**:从 gert::RuntimeAttrs 读取 dst_type 属性,校验合法值域为 [0, DT_MAX) 且排除 DT_UNDEFINED(=28),非法值在推导处直接报错返回 GRAPH_FAILED(与 arch31 tiling 的 TransAclToGeDataType 白名单校验同款防御,防止非法值静默写入输出 desc)。 **UT 看护(25 个测试文件,26 个用例):** - 每算子新增 tests/ut/op_graph/test_<op>_graph_infer_pass.cpp,直接调用导出的 ops::InferDataTypeX 函数,通过 OpInferDataTypeContextBuilder 构造上下文,参数化断言推导返回 GRAPH_SUCCESS 且输出 dtype 符合预期; - Cast 参数化覆盖 dst_type 集合(含 FP16/FLOAT/BF16/INT 系列等),并新增非法值专项用例:dst_type 为 -1/DT_UNDEFINED/DT_MAX/999 时断言推导返回 GRAPH_FAILED。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - 关联 Issue #3792 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 25 个算子各新增 InferDataTypeTest 参数化 UT 用例(直接函数调用),全部通过; - Cast 额外新增非法 dst_type 专项用例(-1/DT_UNDEFINED/DT_MAX/999 断言 GRAPH_FAILED),覆盖枚举校验防御路径。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 无需文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6392 | 11 days ago | |
feat: vector算子批量适配ascend960pr(DV122)平台 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !6663 merge feat/dv122-ascend960pr-adaptation into master feat: vector算子批量适配ascend960pr(DV122)平台 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 DV122(Ascend960PR / dav_9202 / Ascend960PR_969A1)vector 算子批量适配。参照 ascend960dt(DAV_9201) 既有适配模式,为 vector 算子清单内 66 个算子补齐 ascend960pr 支持,适配原则:9201 支持的能力 9202 均支持。 **注册级适配(66 算子):** - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 "ascend960pr",SUPPORT_TILING_DIR 按位插入对应 arch35 - op_host/*_def.cpp:AICore().AddConfig("ascend960pr", <960dt 同款配置>) - op_host/config/ascend960pr/:二进制配置(*_binary.json / *_simplified_key.ini,复制自 ascend960dt,与 960dt 内容一致) - op_kernel*/CMakeLists.txt:COMPUTE_UNITS 追加 ascend960pr(arch92 kernel 入口同步生效) - scripts/kernel/binary_config/ascendc_config.json:compute_units 与 compile_options 补齐 **代码级补齐(9201 → 9201||9202):** - tiling/aclnn/infershape/fusion_pass/kernel 中 NpuArch::DAV_9201、__NPU_ARCH__ == 9201、"Ascend960DT" 等 960 平台门禁补齐 DAV_9202 / 9202 / "Ascend960PR" - 覆盖 concat/tanh_grad/slice/strided_slice/expand/tensor_equal/lin_space/range 等的 tiling/aclnn/graph_infer/fusion_pass 平台门禁(家族特性判定依据:gather_v2 适配提交中 isAscend96_ = DAV_9201||DAV_9202、unsorted_segment_sum 注释"ascend960dt/ascend960pr(DAV_9201/DAV_9202) 平台判定,用于 960 专属特性(ScatterDataCopy 等)的运行时开关") ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4682 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟、ut、st已通过 <!--描述进行了哪些测试来验证你的改动。--> - CANN 9.3.0 工具链 --soc=ascend960pr 构建 19 个抽样算子(覆盖全部修改类型):宿主侧(def/tiling/infershape/aclnn)100% 编译通过,0 错误 - 构建日志确认正确消费新增的 config/ascend960pr/*_binary.json - --soc=ascend960dt 同算子集构建行为一致,无回归 - 一致性审计:范围内 960dt-without-960pr 注册缺口 0;修改过的 CMakeLists SUPPORT_COMPUTE_UNIT/TILING_DIR 位置对齐 0 问题;ascendc_config.json 语法有效 - 注:opc 二进制生成阶段因当前工具链缺 Ascend960PR_969A1 平台数据无法本地执行,需在 CI(含 960PR 平台数据的工具链)完成二进制编译与上板验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!6663 | 3 days ago | |
docs: 重写Log1p/Rsqrt/Sin/MaskedScale/RsqrtGrad算子README为算子级文档,去除与aclnn API文档重复内容;修正RsqrtGrad复制自SqrtGrad未改名问题,fix#3606 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !6402 merge doc-readme-dedup-fix into master docs: 重写Log1p/Rsqrt/Sin/MaskedScale/RsqrtGrad算子README为算子级文档,去除与aclnn API文档重复内容;修正RsqrtGrad复制自SqrtGrad未改名问题,fix#3606 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 5 个算子的 README 重写为算子级文档(功能说明/参数说明/约束说明/调用说明),去除与 docs/ 下 aclnn API 文档重复的函数原型、两段式接口参数说明、返回值与错误码内容(fix #3606);并修正 RsqrtGrad README 复制自 SqrtGrad 未改名的问题。 ### 1. README 重写为算子级文档(去除与 aclnn API 文档重复内容) - **math/log1p/README.md**(+44 -85):标题 aclnnLog1p&aclnnInplaceLog1p → Log1p;删除函数原型与 aclnnLog1p/aclnnInplaceLog1p 两段式接口详细说明;新增参数说明表(x/y:FLOAT、FLOAT16、BFLOAT16,与 log1p_def.cpp 一致);调用说明指向 examples 与 docs/aclnnLog1p&aclnnInplaceLog1p.md。 - **math/rsqrt/README.md**(+43 -85):同上模式重写,计算公式 y = 1/√x,参数 x/y:FLOAT、FLOAT16、BFLOAT16。 - **math/sin/README.md**(+4 -75):参数名规范化(self→x、out→y);删除 aclnnSin/aclnnInplaceSin 两段式接口详细说明;保留 BFLOAT16 支持范围备注。 - **math/masked_scale/README.md**(+56 -50):新增参数说明表(x/y:FLOAT16、BFLOAT16、FLOAT;mask:INT8、UINT8、FLOAT16、FLOAT;scale 属性:FLOAT);公式变量名与参数表对齐(self→x、out→y)。 - **math/rsqrt_grad/README.md**(+15 -13):重写为算子级文档并修正复制错误(见下)。 ### 2. 修正 RsqrtGrad 复制自 SqrtGrad 未改名问题 - **README.md**: - 标题 SqrtGrad → RsqrtGrad;算子功能「完成梯度平方根计算」→「Rsqrt算子的反向梯度计算」 - 计算公式 z = dy * 0.5 / y → z = -0.5 × dy × y³(y 为 Rsqrt 前向输出) - 参数数据类型由 SqrtGrad 的 DT_FLOAT/DT_FLOAT_16/DT_COMPLEX128/DT_COMPLEX64/DT_DOUBLE 修正为 BFLOAT16、FLOAT16、FLOAT、INT8、INT32(与 rsqrt_grad_def.cpp 的 DataType 声明一致) - 产品支持修正为 Ascend 950PR&950DT √ / Atlas A3 × / Atlas A2 ×(rsqrt_grad_def.cpp 仅 AddConfig ascend950/ascend350) - 算子 IR 链接由 ../sqrt_grad/op_graph/sqrt_grad_proto.h 修正为 ../op_graph/rsqrt_grad_proto.h - **examples/test_geir_sqrt_grad.cpp → test_geir_rsqrt_grad.cpp**(重命名,R095):include 的 proto 头文件、宏内变量名 sqrtGrad→rsqrtGrad 等同步修正。 ## 关联的Issue - #3606 ## 测试 - 纯文档与示例代码改名变更,无算子逻辑修改,不涉及编译与功能测试 - 已核对 log1p_def.cpp / rsqrt_grad_def.cpp 的 DataType 与 AICore AddConfig 声明,确认 README 中数据类型与产品支持情况与代码一致 ## 文档更新 - math/log1p/README.md - math/rsqrt/README.md - math/sin/README.md - math/masked_scale/README.md - math/rsqrt_grad/README.md - math/rsqrt_grad/examples/test_geir_sqrt_grad.cpp → test_geir_rsqrt_grad.cpp(重命名) ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6402 | 29 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 9 days ago |
Rsqrt
English | 简体中文
Product Support Status
| Product | Supported |
|---|---|
| Ascend 950PR&950DT products | √ |
| Atlas A3 products | √ |
| Atlas A2 products | √ |
| Atlas 200I/500 A2 inference products | √ |
| Atlas inference products | √ |
| Atlas training products | √ |
Function Description
-
Operator function: computes the reciprocal of the square root of each element in the input tensor x, and stores the result in the output tensor y.
-
Computation formula:
y=1xy = \frac{1}{\sqrt{x}} y=x1
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | Input tensor, which is x in the formula. | FLOAT, FLOAT16, BFLOAT16 | ND |
| y | Output | Output tensor, which is y in the formula. Its shape is the same as that of x. | FLOAT, FLOAT16, BFLOAT16 | ND |
- Atlas 200I/500 A2 inference products, Atlas inference products, and Atlas training products: BFLOAT16 is not supported.
Constraint Description
None
Invocation Description
| Invocation Method | Invocation Sample | Description |
|---|---|---|
| aclnn invocation | test_aclnn_rsqrt | Invokes the Rsqrt operator through the aclnnRsqrt or aclnnInplaceRsqrt API. |
| Graph-mode invocation | test_geir_rsqrt | Invokes the Rsqrt operator by building a graph through the operator IR. |