| Files | Last commit | Last update |
|---|---|---|
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 29 days ago | |
Log1p示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4705 merge raii-log1p into master Log1p示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/log1p/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example log1p eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(输入 [0,1,…,7] 的 log1p 结果 0.000000、0.693147、…、2.079442,即 ln(1+x),正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4705 | 2 months 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: 继续迁移非 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 | 30 days ago | |
select、selectv2、sin、log1p算子支持下一代实现 Co-authored-by: Huang-Peng<huangpeng98@huawei.com> # message auto-generated for no-merge-commit merge: !490 merge master into master select、selectv2、sin、log1p算子支持下一代实现 Created-by: Huang-Peng Commit-by: Huang-Peng Merged-by: cann-robot Description: ## 描述 select、selectv2、sin、log1p算子支持下一代实现 ## 关联的Issue 不涉及 ## 测试 已通过编译测试、二级冒烟测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!490 | 10 months ago | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 25 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 | |
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 | 24 days ago | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 25 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 | 28 days ago |
Log1p
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:对输入张量x的元素,逐元素计算log(1+x),并将结果保存到输出张量y中。
- 计算公式:
y=loge(x+1)y = log_{e}(x+1) y=loge(x+1)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量,公式中的x。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| y | 输出 | 输出张量,公式中的y,shape与x一致。 | FLOAT、FLOAT16、BFLOAT16 | ND |
- Atlas推理系列产品、Atlas训练系列产品:不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_log1p | 通过aclnnLog1p或aclnnInplaceLog1p接口方式调用Log1p算子。 |