| 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 | 14 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 | |
fix: ONNX插件解析零值属性异常 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5896 merge fix/onnx-zero-attr-parsing into master fix: ONNX插件解析零值属性异常 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量 int 字段 "i"。部分 ops-math 插件以 attr.contains("i") 判断属性是否存在,导致显式零值被错误回退到算子默认值或误判为必需属性缺失。 本次修改: - 按属性 name 判断属性是否存在;i 字段缺失时按 protobuf 标量默认值 0 处理。 - 修复 Correlation、ReverseSequence、NPUOneHot 的零值属性解析。 - 完善 3 个插件的 framework UT,覆盖显式零值、属性缺省、正常属性及异常 JSON 等场景。 ## 关联的Issue Closes #3270 https://gitcode.com/cann/ops-math/issues/3270 ## 测试 - ONNX 插件构建:bash build.sh --onnxplugin -j16,通过。 - op_host UT 构建:bash build.sh -u --ophost --noexec --ops=correlation,reverse_sequence,one_hot -j64,通过。 - 专项 UT:Correlation、ReverseSequence、OneHotD 共 22 个用例,全部 PASSED。 - pre-commit:trailing whitespace、EOF、merge conflict、private key、clang-format、codespell、OAT 全部通过。 - 验证环境:Ascend 910B3 / CANN 9.0.0。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5896 | 1 month ago | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 1 month ago | |
OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !6617 merge feat/rt2-infer-4ops into master OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> OneHot,ConfusedTransposeD,FusedMulAddN等3个算子infershape&inferDataType缺失补充 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6617 | 19 days ago | |
feat: LinSpace、OneHot、FusedMulAddN算子新增Ascend350平台支持 Co-authored-by: wychencc_<wangyuchen53@huawei.com> # message auto-generated for no-merge-commit merge: !6231 merge dvLite into master feat: LinSpace、OneHot、FusedMulAddN算子新增Ascend350平台支持 Created-by: wychencc_ Commit-by: wychencc_ Merged-by: cann-robot Description: ## 描述 ### 背景 LinSpace、OneHot、FusedMulAddN 三个算子此前未适配 Ascend350 平台。本 PR 为其补齐 ascend350 平台的注册与二进制配置,复用 ascend950(arch35)的 Tiling 与内核实现,使上述算子可在 Ascend350 硬件上正确调用。 ### 改动内容 1. **二进制配置**:新增 ascend350 平台二进制配置 - math/lin_space/op_host/config/ascend350/lin_space_binary.json - math/one_hot/op_host/config/ascend350/one_hot_binary.json - math/fused_mul_add_n/op_host/config/ascend350/fused_mul_add_n_binary.json 2. **算子定义**:三个算子的 op_host/*_def.cpp 通过 AICore().AddConfig("ascend350", ...) 注册 ascend350 配置; 3. **构建配置**:fused_mul_add_n、one_hot 的 CMakeLists.txt 在 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend350 / arch35; 4. **编译配置**:scripts/kernel/binary_config/ascendc_config.json 为三个算子增加 ascend350 compute_units 及对应编译选项。 变更规模:9 files changed, 3363 insertions(+), 88 deletions(-) ## 关联的Issue #3515 ## 测试 - [ ] 二级冒烟 - [ ] 算子泛化 - [x] 算子 ST 测试 ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6231 | 28 days ago | |
fix: 移除 lin_space/one_hot/range 不必要的workspace分配 Co-authored-by: yifangao<gaoyifan20@huawei.com> # message auto-generated for no-merge-commit merge: !5339 merge workspace-remove-2 into master fix: 移除 lin_space/one_hot/range 不必要的workspace分配 Created-by: yifangao Commit-by: yifangao Merged-by: cann-robot Description: ## 描述 移除 lin_space、one_hot、range 三个算子不必要的 workspace 分配: 1. **host 侧不再预留 workspace**:tiling 中 workspace 大小由固定 16MB(SYSTEM_WORKSPACE_SIZE/RESERVED_WORKSPACE)改为 DEFAULT_WORKSPACE_SIZE(0),三个算子统一使用同名常量。 2. **kernel 侧移除 workspace 解析**:删除 SetSysWorkspace/GetUserWorkspace 调用及空指针校验,workspace 直接传入 op.Init。 3. **UT 消除 magic number**:将 one_hot 的 DEFAULT_WORKSPACE_SIZE 上移至头文件 one_hot_tiling_arch35.h,UT 中 expectWorkspaces 使用 optiling::DEFAULT_WORKSPACE_SIZE 替代字面量,后续调整 workspace 大小无需逐个修改用例。 其余为代码格式化调整(单行化、对齐、补文件末尾换行),无功能影响。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3216 ## 测试 obp冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260917_135556551 David冒烟:http://7.215.10.221/scheduler/alljobs?length=100&isalljobs=true&search=20260917_094314808 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5339 | 1 month ago | |
fix: ONNX插件解析零值属性异常 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5896 merge fix/onnx-zero-attr-parsing into master fix: ONNX插件解析零值属性异常 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 GE 序列化 ONNX 算子属性为 JSON 时,会省略值为 0 的标量 int 字段 "i"。部分 ops-math 插件以 attr.contains("i") 判断属性是否存在,导致显式零值被错误回退到算子默认值或误判为必需属性缺失。 本次修改: - 按属性 name 判断属性是否存在;i 字段缺失时按 protobuf 标量默认值 0 处理。 - 修复 Correlation、ReverseSequence、NPUOneHot 的零值属性解析。 - 完善 3 个插件的 framework UT,覆盖显式零值、属性缺省、正常属性及异常 JSON 等场景。 ## 关联的Issue Closes #3270 https://gitcode.com/cann/ops-math/issues/3270 ## 测试 - ONNX 插件构建:bash build.sh --onnxplugin -j16,通过。 - op_host UT 构建:bash build.sh -u --ophost --noexec --ops=correlation,reverse_sequence,one_hot -j64,通过。 - 专项 UT:Correlation、ReverseSequence、OneHotD 共 22 个用例,全部 PASSED。 - pre-commit:trailing whitespace、EOF、merge conflict、private key、clang-format、codespell、OAT 全部通过。 - 验证环境:Ascend 910B3 / CANN 9.0.0。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5896 | 1 month ago | |
feat: LinSpace、OneHot、FusedMulAddN算子新增Ascend350平台支持 Co-authored-by: wychencc_<wangyuchen53@huawei.com> # message auto-generated for no-merge-commit merge: !6231 merge dvLite into master feat: LinSpace、OneHot、FusedMulAddN算子新增Ascend350平台支持 Created-by: wychencc_ Commit-by: wychencc_ Merged-by: cann-robot Description: ## 描述 ### 背景 LinSpace、OneHot、FusedMulAddN 三个算子此前未适配 Ascend350 平台。本 PR 为其补齐 ascend350 平台的注册与二进制配置,复用 ascend950(arch35)的 Tiling 与内核实现,使上述算子可在 Ascend350 硬件上正确调用。 ### 改动内容 1. **二进制配置**:新增 ascend350 平台二进制配置 - math/lin_space/op_host/config/ascend350/lin_space_binary.json - math/one_hot/op_host/config/ascend350/one_hot_binary.json - math/fused_mul_add_n/op_host/config/ascend350/fused_mul_add_n_binary.json 2. **算子定义**:三个算子的 op_host/*_def.cpp 通过 AICore().AddConfig("ascend350", ...) 注册 ascend350 配置; 3. **构建配置**:fused_mul_add_n、one_hot 的 CMakeLists.txt 在 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend350 / arch35; 4. **编译配置**:scripts/kernel/binary_config/ascendc_config.json 为三个算子增加 ascend350 compute_units 及对应编译选项。 变更规模:9 files changed, 3363 insertions(+), 88 deletions(-) ## 关联的Issue #3515 ## 测试 - [ ] 二级冒烟 - [ ] 算子泛化 - [x] 算子 ST 测试 ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6231 | 28 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 |
OneHot
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:对长度为n的输入self,经过one_hot的计算后得到一个元素数量为n*k的输出out,其中k的值为numClasses。
- 计算公式:
out[i][j]={onValue,self[i]=joffValue,self[i]≠jout[i][j]=\left\{ \begin{aligned} onValue,\quad self[i] = j \\ offValue, \quad self[i] \neq j \end{aligned} \right. out[i][j]={onValue,self[i]=joffValue,self[i]=j
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示索引张量。 | UINT8、INT32、INT64 | ND |
| depth | 输入 | 类别数。 | INT32、INT64 | ND |
| on_value | 输入 | 索引位置的填充值。 | FLOAT16、FLOAT、INT8、UINT8、INT32、INT64 | ND |
| off_value | 输入 | 非索引位置的填充值。 | FLOAT16、FLOAT、INT8、UINT8、INT32、INT64 | ND |
| axis | 输入属性 | 编码向量的插入维度。 | INT32 | ND |
| y | 输出 | 表示one-hot张量。 | FLOAT16、FLOAT、INT8、UINT8、INT32、INT64 | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_one_hot | 通过aclnnOneHot接口方式调用OneHot算子。 |