| 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 | |
LogAddExp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4706 merge raii-log_add_exp into master LogAddExp示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/log_add_exp/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 测试 - bash build.sh --run_example log_add_exp eager --soc=ascend950:编译通过,在 Ascend950PR 上 test_aclnn_log_add_exp、test_aclnn_log_add_exp2 均运行成功,输出符合预期(logaddexp(x,x)=x+ln2,结果 1.693147、2.693147、…、8.693148 正确),示例正常退出。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4706 | 2 months ago | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 14 days ago | |
fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6606 merge fix_errorNum_1021 into master fix: E*9****内部错误码整改为正式语义码并保留内部异常EZ9999上报 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 整改以下 43 个算子中非法使用的内部错误码(E*9****),使其符合错误码使用规范: - cholesky / complex / cross / cummax / cummin / cumprod / get_shape / histogram_v2 / is_finite / is_inf - kl_div_v2 / lin_space / log_add_exp / non_finite_check / pdist / polar / pows / radix_top_k - reduce_log_sum / reduce_log_sum_exp / reduce_max / reduce_mean / reduce_mean_with_count / reduce_min - reduce_nansum / reduce_std_with_mean / rfft1_d / search_sorted / signbit / sin / sinc / sinkhorn / topk - affine_grid / amp_update_scale / angle_v2 / arg_max_v2 / arg_min / arg_min_with_value / atan2 / bessel_i1e / cdist_grad - conversion/tril 改动原因:上述算子 op_host / op_api / op_graph 源码中存在裸 OP_LOGE (EZ9999 兜底上报)、 OP_CHECK_NULL_WITH_CONTEXT / OP_CHECK_NOTNULL (EZ9999 上报)等不符合错误码使用规范的上报路径,需按失败原因分类整改为正式语义码或内部透传。 采取的方法: - op_host 参数/输入校验类(shape / dtype / format / attr 值域等)裸 OP_LOGE → 正式语义宏(EZ0004 / EZ0008–EZ0038) - op_host 内部 API 失败类(平台能力查询、tiling API 失败等)→ OP_LOGE_WITHOUT_REPORT 透传,去掉 EZ9999 上报、保留日志 - OP_CHECK_NULL_WITH_CONTEXT (EZ9999)→ 显式空指针检查 + 正式码宏 - op_api OP_CHECK_NOTNULL (EZ9999)→ 显式检查 + OP_LOGE_WITHOUT_REPORT(ACLNN_ERR_INNER_NULLPTR) + 返回公共错误码 - op_api OP_LOGE(ACLNN_ERR_INNER_* / RUNTIME_ERROR) (561xxx / 361xxx)→ OP_LOGE_WITHOUT_REPORT ;正式参数码 ACLNN_ERR_PARAM_* (161xxx)保留 - 删除 CREATE_EXECUTOR 之后不可达的空指针死检查( CHECK_RET(executor.get()!=nullptr, ACLNN_ERR_INNER_CREATE_EXECUTOR) ,40 处) - op_graph(histogram_v2 / reduce_mean 融合 pass)E9 上报 → 正式码或透传 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3977 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 43 算子 op_host / op_api / op_graph 全量编译通过,exit 0(910b + 950/arch35) - 本地增加ut测试130 用例全量通过(910b 83 + 950 47),日志级验证触发 78 次正式 EZ 错误码上报,覆盖 14 个正式错误码 - 原版 math_op_host_ut 300 用例全量通过,无回归 - 静态复扫:范围内 E*9**** 正式上报清零(残留均为 CHECK_RET 返回公共码 / 动态 return 等允许项) - 附:适配 CANN 9.3.0 atvoss 库 tiling key 编码变化,更新 reduce_max / reduce_mean_with_count 测试的 9 处 expectedTilingKey (官方 master 在 9.3.0 下同样失败,非本 PR 引入) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6606 | 14 days ago | |
perf: 优化 log_add_exp arch35 计算链 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !4974 merge perf/log-add-exp-arch35 into master perf: 优化 log_add_exp arch35 计算链 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 对log_add_exp的950实现进行寄存器融合优化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2897](https://gitcode.com/cann/ops-math/issues/2897) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4974 | 2 months ago | |
feat: 补充log_add_exp算子op_api UT Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !4068 merge feat/ut_log_add_exp into master feat: 补充log_add_exp算子op_api UT Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 描述 补充log_add_exp算子的op_api和op_host infershape级别单元测试,覆盖以下场景: - 各数据类型测试 - 不同维度测试 - 异常场景测试:nullptr输入输出、shape不匹配等 ## 关联的Issue #2465 ## 测试 - 编译验证:bash build.sh -u --soc=ascend950 --ops=log_add_exp --noexec 编译通过 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UT补充 **关联 Issue:** #2465 See merge request: cann/ops-math!4068 | 3 months ago | |
LogAddExp 新增 Ascend950 AscendC 算子实现 Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !3150 merge add_log_add_exp into master LogAddExp 新增 Ascend950 AscendC 算子实现 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia Merged-by: cann-robot Description: ## 描述 为 LogAddExp 算子新增 Ascend950(arch35)的 AscendC 算子实现,复用同一 kernel 通过 base/scale/shift 属性同时支持 aclnnLogAddExp(base=-1,自然对数)与 aclnnLogAddExp2(base=2)。 主要改动: - **op_kernel(device 侧)**:新增 log_add_exp_apt.cpp kernel 入口,按 schMode/formulaType 分发 simplified/full 两套公式 × native/cast 两条数据路径;arch35/log_add_exp_dag.h 实现数值稳定公式 y = max(x1,x2) + ln(1 + exp(-|x1-x2|))(full 路径叠加 base/scale/shift),并通过 InfGuardedSub 处理 x1、x2 同为 +inf/-inf 时 inf-inf=NaN 的污染(与 910B after_v200 分支行为对齐);bf16 走 cast-to-float 路径。 - **op_host(host 侧)**:新增算子定义(base/scale/shift 属性、ascend950 AICore config)、broadcast infershape、arch35 tiling。 支持数据类型:FP16 / FP32 / BF16,支持 broadcast。 ## 关联的Issue #1868 ## 测试 ## 文档更新 无 ## 类型标签 - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3150 | 4 months ago | |
[Docs] 完善 LogAddExp 算子 README Co-authored-by: zhangqijia<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !6595 merge docs/fix-log-add-exp-readme-3721 into master [Docs] 完善 LogAddExp 算子 README Created-by: gcw_SUaZx3UQ Commit-by: gcw_SUaZx3UQ;zhangqijia Merged-by: cann-robot Description: ## 描述 LogAddExp 已有 AscendC 实现,原 README 仍描述为仅包含 aclnn 接口。按仓内 Add 算子 README 的章节顺序、产品支持表、参数表和调用表格式,补全 LogAddExp 算子说明。 正文介绍算子的功能、默认计算公式、输入输出、base/scale/shift 属性和约束;aclnnLogAddExp、aclnnLogAddExp2 及对应样例仅放在“调用说明”中。 ## 关联的Issue [Issue #3721:LogAddExp README 与现有 AscendC 实现不一致](https://gitcode.com/cann/ops-math/issues/3721) ## 测试 ## 文档更新 更新 math/log_add_exp/README.md。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6595 | 15 days ago |
LogAddExp
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:对两个输入张量逐元素计算指数和的对数,默认属性下以e为底。
- 计算公式:
y=ln(ex1+ex2)y = \ln\left(e^{x_1} + e^{x_2}\right) y=ln(ex1+ex2)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 公式中的输入张量x_1 | FLOAT16, BFLOAT16, FLOAT32 | ND |
| x2 | 输入 | 公式中的输入张量x2 | 同x1 | ND |
| base | 可选属性 | 指数和对数运算的底数,默认值为-1.0,表示以e为底 | FLOAT32 | - |
| scale | 可选属性 | 指数项中-abs(x1-x2)的缩放系数,默认值为1.0 | FLOAT32 | - |
| shift | 可选属性 | 指数项的偏移量,默认值为0.0 | FLOAT32 | - |
| y | 输出 | 公式中的输出张量y | 同x1 | ND |
约束说明
- base必须为-1.0或大于0的值。
- x1、x2、y的数据类型需相同。
- x1与x2的shape需满足broadcast关系,y的shape为broadcast后的shape。
- Atlas推理系列产品、Atlas训练系列产品不支持BFLOAT16数据类型。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_log_add_exp | 通过aclnnLogAddExp接口方式调用LogAddExp算子 |
| aclnn调用 | test_aclnn_log_add_exp2 | 通过aclnnLogAddExp2接口方式调用LogAddExp算子 |