| Files | Last commit | Last update |
|---|---|---|
docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6949 merge docs/reduce-contract-clarify into master docs(reduce): 修改 MeanV2/MaxV2/AminmaxAll 接口约束 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 aclnnMeanV2:删除无法触发的 format 161002 子项,并说明当前实现不校验 aclFormat、按 ND 语义处理;调用方应使用 ND,非 ND 物理布局不受支持。 aclnnMaxV2:补充 out shape 与 dims/keepDims/noopWithEmptyDims 推导不一致时返回 161002。 aclnnAminmaxAll:补充 minOut/maxOut 的 shape 约束,以及出参元素数与归约结果不一致时返回 161002。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4260 https://gitcode.com/cann/ops-math/issues/4262 https://gitcode.com/cann/ops-math/issues/4287 ## 测试 ## 文档更新 更新了: math/reduce_max/docs/aclnnMaxV2.md math/reduce_max/docs/aclnnMaxV2_en.md math/reduce_mean/docs/aclnnMeanV2.md math/reduce_mean/docs/aclnnMeanV2_en.md math/reduce_min/docs/aclnnAminmaxAll.md math/reduce_min/docs/aclnnAminmaxAll_en.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6949 | 8 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 | |
日志整改(im2col等算子) Co-authored-by: wow5523<wuao1@huawei.com> # message auto-generated for no-merge-commit merge: !5009 merge log-remediation into master 日志整改(im2col等算子) Created-by: zhu-xun Commit-by: wow5523 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 日志整改(im2col等算子) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5009 | 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 | |
融合规则globalavgpool修复format Co-authored-by: zhu-xun<zhuxun7@huawei.com> # message auto-generated for no-merge-commit merge: !5385 merge globalavgpool-dev into master 融合规则globalavgpool修复format Created-by: zhu-xun Commit-by: zhu-xun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 融合规则globalavgpool修复format ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5385 | 11 days ago | |
feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !6969 merge br_5162_series_rename into master feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 **1. 区分 5162 芯片 soc 版本与短名/series 命名**(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a;短名/series:ascend5162a 更名为 ascend5162 **2. reduce_sum/max/min/mean 算子注册适配 ascend5162**(移植 PR #6504,适配名统一改为 ascend5162): - 4 个 def.cpp 追加 AddConfig("ascend5162", aicoreConfig),复用 950 全量配置(含 B64 类型) - 4 个 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 追加 ascend5162/arch35 **3. 新增 IsSimtSupported 平台 SIMT 能力查询函数**(common/inc/op_host/tiling_util.h,纯头文件): - 架构白名单 {DAV_3510, DAV_5102, DAV_9201, DAV_9202},DAV_5162 等无 SIMT 硬件的架构返回 false - DAV_ 常量经 opbase op_const_def.h 解析(旧版 CANN 兼容),TilingParseContext/TilingContext 双重载 - 参考 cann/opbase PR #1065 评审意见,与 ops-nn/ops-cv 仓实现保持一致 ## 测试 - pre-commit 全量 hook 通过 - IsSimtSupported g++ 语法校验与双重载实例化 0 error ## 文档更新 无 See merge request: cann/ops-math!6969 | 7 days ago | |
修改tilingkey引用文件 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !4773 merge modifyreducetilingkey into master 修改tilingkey引用文件 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reduce模板tilingkey修改,math仓对应调整,reducesum、reducemean支持非连续和batch一致性,tilingkey使用full。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4773 | 2 months ago | |
fix(aicpu): 整改代码质量告警 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5881 merge fix-aicpu-codecheck-warnings into master fix(aicpu): 整改代码质量告警 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 整改部分 AICPU 算子的代码质量告警: - 将可替代的 reinterpret_cast 调整为 static_cast。 - 为 lambda 显式列出捕获变量,避免默认引用捕获。 - 补充成员函数 const 限定、析构函数 override 以及头文件内函数的 inline 限定。 - 修正有符号整数左移、状态码隐式布尔转换及指针顶层 const 等告警。 - 同步头文件声明与实现签名,不改变算子功能语义。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3264 ## 测试 - cmake --build build --target aicpu_kernels -j8:通过,成功生成 libmath_aicpu_kernels.so。 - 对本次修改文件执行 pre-commit run --files ...:全部通过,包括 clang-format、codespell 和 OAT 检查。 - git diff --check:通过。 ## 文档更新 无文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AICPU 代码质量告警整改 See merge request: cann/ops-math!5881 | 1 month ago | |
融合规则globalavgpool修复format Co-authored-by: zhu-xun<zhuxun7@huawei.com> # message auto-generated for no-merge-commit merge: !5385 merge globalavgpool-dev into master 融合规则globalavgpool修复format Created-by: zhu-xun Commit-by: zhu-xun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 融合规则globalavgpool修复format ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5385 | 11 days ago | |
feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !6969 merge br_5162_series_rename into master feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 **1. 区分 5162 芯片 soc 版本与短名/series 命名**(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a;短名/series:ascend5162a 更名为 ascend5162 **2. reduce_sum/max/min/mean 算子注册适配 ascend5162**(移植 PR #6504,适配名统一改为 ascend5162): - 4 个 def.cpp 追加 AddConfig("ascend5162", aicoreConfig),复用 950 全量配置(含 B64 类型) - 4 个 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 追加 ascend5162/arch35 **3. 新增 IsSimtSupported 平台 SIMT 能力查询函数**(common/inc/op_host/tiling_util.h,纯头文件): - 架构白名单 {DAV_3510, DAV_5102, DAV_9201, DAV_9202},DAV_5162 等无 SIMT 硬件的架构返回 false - DAV_ 常量经 opbase op_const_def.h 解析(旧版 CANN 兼容),TilingParseContext/TilingContext 双重载 - 参考 cann/opbase PR #1065 评审意见,与 ops-nn/ops-cv 仓实现保持一致 ## 测试 - pre-commit 全量 hook 通过 - IsSimtSupported g++ 语法校验与双重载实例化 0 error ## 文档更新 无 See merge request: cann/ops-math!6969 | 7 days ago | |
aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6613 merge master into master aclnn确定性开关配置变更和产品名变更,简化md表格语法,删除冗余css样式 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - aclnn确定性开关配置变更:aclrtCtxSetSysParamOpt改为aclrtSetSysParamOpt - 产品名变更 - 简化md表格语法,删除冗余css样式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [# 3833](https://gitcode.com/cann/ops-math/issues/3833) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> \*.md acl\*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6613 | 18 days ago |
ReduceMean
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
- 算子功能:对一个多维向量按照指定的维度求平均值。
- 示例:
-
示例1: 定义指定计算的维度(Reduce轴)为R轴,非指定维度(Normal轴)为A轴。如下图所示,对shape为(2, 3)的二维矩阵进行运算,对第一维计算数据求平均值,输出结果为[2.5, 3.5, 4.5];对第二维计算数据求平均值,输出结果为[2, 5]。
图1 ReduceMean按第一个维度计算示例

图2 ReduceMean最后一个维度计算示例

-
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量 | complex128, complex64, double, float32, float16, int64, int32, int16, int8 uint64, uint32, uint16, uint8, bfloat16 |
ND |
| axes | 输入 | 要缩减的维度。支持int、list、tuple或NoneType。数据类型必须为int32或int64。 如果为None,则缩减所有维度。取值范围为 [-rank(x), rank(x)]。 |
int32, int64 | ND |
| keep_dims | 属性 | 可选布尔值,默认为false。若为true,则保留长度为1的缩减维度; 若为false,则对每个axis中的条目,张量的秩减1。 |
bool | ND |
| noop_with_empty_axes | 属性 | 可选布尔值,默认为true。若为true,当axes = [] 时不进行缩减; 若为false,当axes = [] 时缩减所有维度。 |
bool | ND |
| y | 输出 | 输出张量,与输入张量x的类型和格式相同 | 与输入张量x相同 | ND |
约束说明
- axes维度须大于0。
- 输入向量维度:最小1维,最大8维。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_mean_v2 | 通过aclnnMeanV2接口方式调用ReduceMean算子。 |
| aclnn调用 | test_aclnn_global_average_pool | 通过aclnnGlobalAveragePool接口方式调用ReduceMean算子。 |
| 图模式调用 | test_geir_reduce_mean | 通过算子IR构图方式调用ReduceMean算子。 |