| 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 | 13 days ago | |
aclnnMinDim、aclnnIsNegInf.md、test_aclnn_atan2.cpp、test_aclnn_inplace_lt_tensor.cpp等文档&exmaple存在问题,需要整改 Co-authored-by: jiangjiawei<jiangjiawei10@huawei.com> # message auto-generated for no-merge-commit merge: !5294 merge fix_example into master aclnnMinDim、aclnnIsNegInf.md、test_aclnn_atan2.cpp、test_aclnn_inplace_lt_tensor.cpp等文档&exmaple存在问题,需要整改 Created-by: jiangjiawei Commit-by: jiangjiawei Merged-by: cann-robot Description: ## 描述 修改aclnn文档&example ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3002 ## 测试 资料问题,不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5294 | 2 months ago | |
refactor: 继续迁移非 experimental 公共头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge refactor/math-prefix-common-headers-1008 into master refactor: 继续迁移非 experimental 公共头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 继续将 ops-math 的公共 op_api 头文件引用迁移到带 _math 后缀的名称,减少多个算子仓库集成时同名头文件误引用的风险。 本次更新 35 个非 experimental 文件中的 35 处引用: - level2_base.h → level2_base_math.h:11 处。 - level2_base_caculation.h → level2_base_caculation_math.h:1 处。 - op_api_def.h → op_api_def_math.h:23 处。 对涉及文件同步执行仓库 clang-format、尾部空白及 EOF 规范化。此次共 35 个文件,新增 2506 行、删除 2419 行;除头文件引用替换外,其余为格式调整。 sin 因此前发现的 UT 全局平台状态污染继续暂缓;experimental 文件继续分批处理。现有兼容转发头保留。 ## 关联的Issue 延续公共头文件重名问题的分阶段迁移:https://gitcode.com/cann/ops-math/issues/3243 ## 测试 在服务器 192.168.9.234 的 lcl_ops_9.0 容器(CANN 9.0.0 / aarch64)中,以基线 16700ac8d829f8e66180c612f45ed4384b51e2e0 创建独立工作区验证。35 个修改文件的 SHA256 与本地逐一一致。 - git diff --check:通过。 - pre-commit:所有 hook 通过;另显式扫描全部 35 文件的 OAT 检查通过。 - bash build.sh --opapi -j16:全量编译通过,生成 libopapi_math.so。 - 仓库 CI 脚本为涉及的 30 个算子生成 op_api 单测命令,指定 ascend910b 执行:605 个用例全部通过。 - 额外执行 fill_diagonal_v2,flatten,slogdet,svd 的 op_host 验证:容器中 libophost_math_ut.so 加载时缺少 ops::OpAICoreDef::AddConfig(const char*, ops::OpAICoreConfig&) 符号,导致注册失败及 FillDiagonalV2 InferShape 单测段错误。去掉全部 35 文件修改后的干净基线使用相同命令复现相同失败;该失败独立于本次头文件引用替换,op_host 验证尚未通过。 ## 文档更新 不涉及用户文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用重构及格式规范化。 See merge request: cann/ops-math!6220 | 27 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 | 7 days ago | |
nn仓121回合主线黄迁蓝 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !6656 merge master into master nn仓121回合主线黄迁蓝 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 为 nn仓算子新增 ascend960DT 平台的支持,包括新增该平台下的算子内核二进制配置、在算子定义中注册 ascend960DT 配置,并将该平台加入算子二进制编译配置的 compute_units 列表,使 Erfinv 算子能够在 ascend960DT 上编译运行。 ## 关联的Issue 关联Issue[#6917](https://gitcode.com/cann/ops-nn/issues/6917) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6656 | 17 days ago | |
refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !4527 merge fix/api-rename-regbase into master refactor: arch35 算子 Regbase Reg 层旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 将 ops-math 仓库中 19 个算子的 arch35 regbase kernel 实现从 Reg 层旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 Reg 层 API 进行了重命名,旧 API(如 Reg::DataCopy、Reg::CompareScalar、Reg::MaskAnd、Reg::MaskOr、Reg::MaskPack、Reg::FusedAbsSub、Reg::FusedMulDstAdd 等)将逐步废弃。本 PR 同步更新仓库中 arch35 regbase 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 22 个 arch35 regbase kernel 头文件进行批量接口替换,涉及 19 个 math 算子: add_n(2 个文件:add_n_regbase.h、add_n_regbase_fullload.h)、assign_add、assign_sub、cast(cast_impl.h)、ceil、exp、floor(3 个文件:floor_bf16.h、floor_f16.h、floor_f32.h)、is_close(is_close_dag.h)、log、log1p、nan_to_num、neg、reciprocal、round、rsqrt、rsqrt_grad、sign(sign.h)、tanh、trunc 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | Reg::DataCopy(reg, addr) | Reg::LoadAlign(reg, addr) | UB→Reg 加载 | | Reg::DataCopy(addr, reg) | Reg::StoreAlign(addr, reg) | Reg→UB 存储 | | Reg::DataCopy<T, LoadDist/StoreDist> | Reg::LoadAlign/StoreAlign<T, Dist> | 带 Dist 模板参数 | | Reg::DataCopy<T, PostLiteral, Dist> | Reg::LoadAlign/StoreAlign<T, PostLiteral, Dist> | 带 PostLiteral | | Reg::CompareScalar | Reg::Compares | 标量比较 | | CompareScalar(无命名空间) | Compares | 标量比较 | | Reg::MaskAnd | Reg::And | 掩码与运算 | | Reg::MaskOr | Reg::Or | 掩码或运算 | | Reg::MaskPack | Reg::Pack | 掩码打包 | | Reg::FusedAbsSub | Reg::AbsSub | 融合绝对差 | | Reg::FusedMulDstAdd | Reg::MulDstAdd | 融合乘加 | | __local_mem__ | __ubuf__ | 地址空间限定符(涉及 floor、is_close 算子) | > 注:上述替换同时覆盖带 AscendC:: 前缀和不带前缀两种调用形式。替换为纯命名变更,不涉及计算逻辑修改,部分接口替换伴随行格式重排(缩进调整)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2585 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!4527 | 2 months 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 | 7 days ago | |
nn仓121回合主线黄迁蓝 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !6656 merge master into master nn仓121回合主线黄迁蓝 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 本 PR 为 nn仓算子新增 ascend960DT 平台的支持,包括新增该平台下的算子内核二进制配置、在算子定义中注册 ascend960DT 配置,并将该平台加入算子二进制编译配置的 compute_units 列表,使 Erfinv 算子能够在 ascend960DT 上编译运行。 ## 关联的Issue 关联Issue[#6917](https://gitcode.com/cann/ops-nn/issues/6917) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6656 | 17 days ago | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 month ago |
NanToNum
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:将输入中的NaN、正无穷大和负无穷大值分别替换为nan、posinf、neginf指定的值。
-
计算公式:
y={nanif x is NaNposinfif x is +∞neginfif x is −∞xotherwisey=\begin{cases} nan & \text{if } x \text{ is NaN} \\ posinf & \text{if } x \text{ is } +\infty \\ neginf & \text{if } x \text{ is } -\infty \\ x & \text{otherwise} \end{cases} y=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧nanposinfneginfxif x is NaNif x is +∞if x is −∞otherwise
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行nan_to_num计算的入参,公式中的x。 | BFLOAT16、FLOAT16、FLOAT | ND |
| y | 输出 | 待进行nan_to_num计算的出参,公式中的y。 | BFLOAT16、FLOAT16、FLOAT | ND |
| nan | 属性 | 替换tensor元素中NaN的值。 | FLOAT | - |
| posinf | 属性 | 替换tensor元素中正无穷大的值。 | FLOAT | - |
| neginf | 属性 | 替换tensor元素中负无穷大的值。 | FLOAT | - |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_nan_to_num | 通过aclnnNanToNum接口方式调用NanToNum算子。 |