| 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 | |
算子资料修改后同步修改example Co-authored-by: FelixTang7<tangyanfeng@huawei.com> # message auto-generated for no-merge-commit merge: !5542 merge md into master 算子资料修改后同步修改example Created-by: FelixTang7 Commit-by: FelixTang7 Merged-by: cann-robot Description: ## 描述 部分算子资料有误,修改算子文档后同步对example进行修改 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3040 ## 测试 文档修改,无需测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5542 | 1 month ago | |
适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5328 merge master into master 适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 cos等算子在350平台适配 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3064 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5328 | 2 months ago | |
supports the realization of next-generation technologies Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !812 merge master into master supports the realization of next-generation technologies Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 支持下一代实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!812 | 9 months ago | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 21 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: 补充is_close算子op_host infershape UT Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !4065 merge feat/ut_is_close into master feat: 补充is_close算子op_host infershape UT Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 描述 补充is_close算子的op_api和op_host infershape级别单元测试,覆盖以下场景: - 各数据类型测试 - 不同维度测试 - 异常场景测试:nullptr输入输出、shape不匹配等 ## 关联的Issue #2465 ## 测试 - 编译验证:bash build.sh -u --soc=ascend950 --ops=is_close --noexec 编译通过 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UT补充 **关联 Issue:** #2465 See merge request: cann/ops-math!4065 | 3 months ago | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 21 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 |
IsClose
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:返回一个带有布尔元素的新张量,判断给定的self和other是否彼此接近,如果值接近,则返回True,否则返回False。
-
计算公式: 返回一个新张量out,其数据类型为BOOL,表示输入self的每个元素是否“close”输入other的对应元素。 closeness定义为:
∣selfi−otheri∣≤atol+rtol×∣otheri∣\left | self_{i}-other_{i}\right | \le atol + rtol\times \left | other_{i} \right | ∣selfi−otheri∣≤atol+rtol×∣otheri∣
当self和other都是有限值时,以上公式成立。当self和other都是非有限时,且仅当它们是相等时,结果为True。当equal_nan为True,NaNs被认为是close的;当equal_nan为False,NaNs被认为是不close。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 待进行is_close计算的入参,公式中的self_i。 | BFLOAT16、FLOAT16、FLOAT、INT32 | ND |
| x2 | 输入 | 待进行is_close计算的入参,公式中的other_i。 | BFLOAT16、FLOAT16、FLOAT、INT32 | ND |
| rtol | 输入 | 待进行is_close计算的入参,公式中的rtol。 | FLOAT | ND |
| atol | 输入 | 待进行is_close计算的入参,公式中的atol。 | FLOAT | ND |
| equal_nan | 输入 | 待进行is_close计算的入参。 | BOOL | ND |
| y | 输出 | 待进行is_close计算的出参。 | BOOL | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_isclose | 通过aclnnIsClose接口方式调用IsClose算子。 |