本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
子流水线支持更新门禁代码 Co-authored-by: zhangxu-<zhangxu109@huawei.com> # message auto-generated for no-merge-commit merge: !2617 merge master into master 子流水线支持更新门禁代码 Created-by: zhangxu- Commit-by: zhangxu- Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 子流水线支持更新门禁代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 线上测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2617 | 3 个月前 | |
doc Tools扫描错误修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !1899 merge master into master doc Tools扫描错误修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描错误修改 See merge request: cann/ops-math!1899 | 5 个月前 | |
adapt new opbase submodel Co-authored-by: 张磊<zhanglei121@huawei.com> # message auto-generated for no-merge-commit merge: !2875 merge master into master adapt new opbase submodel Created-by: zl_hw Commit-by: 张磊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2875 | 3 个月前 | |
update aicpu op tile register func to v2. Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !2844 merge master into master update aicpu op tile register func to v2. Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 本 PR 调整 Tile AICPU kernel 的注册方式,补充 host constant folding 场景下的 V2 注册兼容封装。 主要改动如下: - 新增 common/inc/aicpu/math_aicpu_register.h,封装 OPS_MATH_REGISTER_CPU_KERNELV2 注册宏。 - math/tile/op_kernel_aicpu/tile_aicpu.cpp 改为通过封装宏注册 Tile AICPU kernel。 - host constant folding 编译目标增加 OPS_MATH_AICPU_HOST_KERNEL 宏;该路径在 host 库存在 RegistCpuKernelV2 时注册到 V2,旧版本 libaicpu_context_host.a 不提供 V2 注册符号时注册到 V1。 - 非 host AICPU 编译路径继续展开为原 REGISTER_CPU_KERNEL,保持 device/custom AICPU 注册行为不变。 - AICPU_INCLUDE 补充 ${OPS_MATH_DIR}/common/inc,保证新增公共头文件可被 AICPU 编译目标引用。 改动目的: - 支持 Tile 在 host constant folding 产物中优先接入 V2 注册能力,配合新版 opbase的“V2 优先、V1 兜底”调度逻辑:Tile 若成功注册到 V2,则运行时命中 V2;未注册到 V2 时仍走 V1。 - 兼容新旧 AICPU host context 库:当 host 库存在 RegistCpuKernelV2 时注册到 V2;旧库缺少该符号时注册到 V1,配合 opbase 的 V1 兜底路径保持可运行。 ## 关联的Issue 关联Issue #1634:https://gitcode.com/cann/ops-math/issues/1634 ## 测试 - 已执行静态 diff 检查:git diff --check 7fac2495 96de8df2,结果通过。 - 已检查变更范围和引用关系: - aicpu/math_aicpu_register.h 可通过新增的 AICPU_INCLUDE 被 AICPU 目标引用。 - Tile AICPU 源码仅调整注册入口,未改动参数校验、数据类型分发、广播计算和并行拷贝逻辑。 - host constant folding 路径通过 OPS_MATH_AICPU_HOST_KERNEL 触发 V2 优先注册逻辑。 - 已结合 opbase 注册/调度逻辑检查:新版 opbase 通过 IsRegisteredV2 判断是否走 V2 路径;V2 查询未命中时由调度层选择 V1 路径,RunCpuKernelV2 内部不再回退 V1。 - 未在本地执行完整 CMake 配置和编译验证,需结合 CI 流水线继续确认 host constant folding 产物链接结果。 ## 文档更新 无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:AICPU Tile 注册兼容逻辑调整 See merge request: cann/ops-math!2844 | 3 个月前 | |
revert//restore Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !2911 merge revert-mr-2898-1779443716639-auto into master revert//restore Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2911 | 3 个月前 | |
[CANNBOT]tan atanh算子适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !2892 merge 0522 into master [CANNBOT]tan atanh算子适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> tan atanh算子适配Ascend950 Ascendc实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1642 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> # Tan 算子 TTK 测试用例总结 总计 346 个用例,全部 PASS。 按数据类型 ┌──────────┬──────────┬────────┬─────────────────────────┬────────┐ │ 输入类型 │ 输出类型 │ 用例数 │ 精度容忍度 (rtol, atol) │ 通过率 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ float32 │ float32 │ 95 │ (0.0001, 0.0001) │ 95/95 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ float16 │ float16 │ 95 │ (0.001, 0.001) │ 95/95 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ bfloat16 │ bfloat16 │ 91 │ (0.004, 0.004) │ 91/91 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ int32 │ float32 │ 65 │ (0.0001, 0.0001) │ 65/65 │ └──────────┴──────────┴────────┴─────────────────────────┴────────┘ 按张量维度 ┌──────┬─────┬─────┬─────┬─────┬─────┐ │ 维度 │ 1D │ 2D │ 3D │ 4D │ 5D │ ├──────┼─────┼─────┼─────┼─────┼─────┤ │ 数量 │ 190 │ 74 │ 36 │ 29 │ 17 │ └──────┴─────┴─────┴─────┴─────┴─────┘ 按输入数据范围 ┌─────────────────────────┬────────┬────────────────┐ │ 范围 │ 用例数 │ 覆盖场景 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1e-6, 1e-6) │ 43 │ 极小值/零附近 │ ├─────────────────────────┼────────┼────────────────┤ │ (-0.5, 0.5) │ 35 │ 小角度 │ ├─────────────────────────┼────────┼────────────────┤ │ (-0.785, 0.785) │ 45 │ ±π/4 以内 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1.0, 1.0) / (-1, 1) │ 47 │ 一般范围 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1.5, 1.5) │ 45 │ 接近 ±π/2 极点 │ ├─────────────────────────┼────────┼────────────────┤ │ (-π, π) / (-3.14, 3.14) │ 32 │ 全周期 │ ├─────────────────────────┼────────┼────────────────┤ │ (-10, 10) │ 30 │ 多周期 │ ├─────────────────────────┼────────┼────────────────┤ │ (-100, 100) │ 37 │ 大值域 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1000, 1000) │ 10 │ 极大值域 │ └─────────────────────────┴────────┴────────────────┘ # atanh TTK 测试结果报告 (torch golden) ## 1. 测试概览 | 测试类型 | 总用例数 | 通过 | 失败 | 通过率 | |---------|--------|------|------|--------| | 黑盒测试 | 119 | 119 | 0 | 100.0% | | 白盒测试 | 24 | 24 | 0 | 100.0% | | 网络测试 | 15 | 15 | 0 | 100.0% | | **合计** | **158** | **158** | **0** | **100.0%** | ## 2. KT流程 - 黑盒测试: 冒烟通过 → dtype覆盖通过 → 全量119条100%通过 - 白盒测试: 冒烟通过 → 全量24条100%通过 - 网络测试: 冒烟通过 → 全量15条100%通过 - DYN_GOLD 和 BIN_GOLD 全部为 100.0% ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2892 | 3 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 3 个月前 | |
新增greater-equal算子 Co-authored-by: lyt_claire<luyitong1@huawei.com> # message auto-generated for no-merge-commit merge: !2731 merge experimental/greater-equal-20260514 into master 新增greater-equal算子 Created-by: tieyutong Commit-by: lyt_claire Merged-by: cann-robot Description: ## 描述 新增Ascend C架构greater equal算子至目录experimental/math/greater_equal ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1540 ## 测试 | 类型 | 条数 | 通过率 / 结论 | |------|------|----------------| | Accu| 9730 / 9730 | 100%,Pass | | Accu_RL | 92 / 92 | 100%,Pass | | Accu_pangu | 4 / 4 | 100%,Pass | | Accu_O1 | 1 / 1(×2 次) | 各 100%,Pass | | Special | 202 / 202 | 100%,Pass | | Abnormal | 2 / 2 | 100%,Pass | | Sanitizer | 780 / 780 | 100%,SUCCESS | ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2731 | 3 个月前 | |
[CANNBOT]tan atanh算子适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !2892 merge 0522 into master [CANNBOT]tan atanh算子适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> tan atanh算子适配Ascend950 Ascendc实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1642 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> # Tan 算子 TTK 测试用例总结 总计 346 个用例,全部 PASS。 按数据类型 ┌──────────┬──────────┬────────┬─────────────────────────┬────────┐ │ 输入类型 │ 输出类型 │ 用例数 │ 精度容忍度 (rtol, atol) │ 通过率 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ float32 │ float32 │ 95 │ (0.0001, 0.0001) │ 95/95 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ float16 │ float16 │ 95 │ (0.001, 0.001) │ 95/95 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ bfloat16 │ bfloat16 │ 91 │ (0.004, 0.004) │ 91/91 │ ├──────────┼──────────┼────────┼─────────────────────────┼────────┤ │ int32 │ float32 │ 65 │ (0.0001, 0.0001) │ 65/65 │ └──────────┴──────────┴────────┴─────────────────────────┴────────┘ 按张量维度 ┌──────┬─────┬─────┬─────┬─────┬─────┐ │ 维度 │ 1D │ 2D │ 3D │ 4D │ 5D │ ├──────┼─────┼─────┼─────┼─────┼─────┤ │ 数量 │ 190 │ 74 │ 36 │ 29 │ 17 │ └──────┴─────┴─────┴─────┴─────┴─────┘ 按输入数据范围 ┌─────────────────────────┬────────┬────────────────┐ │ 范围 │ 用例数 │ 覆盖场景 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1e-6, 1e-6) │ 43 │ 极小值/零附近 │ ├─────────────────────────┼────────┼────────────────┤ │ (-0.5, 0.5) │ 35 │ 小角度 │ ├─────────────────────────┼────────┼────────────────┤ │ (-0.785, 0.785) │ 45 │ ±π/4 以内 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1.0, 1.0) / (-1, 1) │ 47 │ 一般范围 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1.5, 1.5) │ 45 │ 接近 ±π/2 极点 │ ├─────────────────────────┼────────┼────────────────┤ │ (-π, π) / (-3.14, 3.14) │ 32 │ 全周期 │ ├─────────────────────────┼────────┼────────────────┤ │ (-10, 10) │ 30 │ 多周期 │ ├─────────────────────────┼────────┼────────────────┤ │ (-100, 100) │ 37 │ 大值域 │ ├─────────────────────────┼────────┼────────────────┤ │ (-1000, 1000) │ 10 │ 极大值域 │ └─────────────────────────┴────────┴────────────────┘ # atanh TTK 测试结果报告 (torch golden) ## 1. 测试概览 | 测试类型 | 总用例数 | 通过 | 失败 | 通过率 | |---------|--------|------|------|--------| | 黑盒测试 | 119 | 119 | 0 | 100.0% | | 白盒测试 | 24 | 24 | 0 | 100.0% | | 网络测试 | 15 | 15 | 0 | 100.0% | | **合计** | **158** | **158** | **0** | **100.0%** | ## 2. KT流程 - 黑盒测试: 冒烟通过 → dtype覆盖通过 → 全量119条100%通过 - 白盒测试: 冒烟通过 → 全量24条100%通过 - 网络测试: 冒烟通过 → 全量15条100%通过 - DYN_GOLD 和 BIN_GOLD 全部为 100.0% ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2892 | 3 个月前 | |
RandomStandardNormalFusionPass修复参数顺序错误 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !2807 merge fusion into master RandomStandardNormalFusionPass修复参数顺序错误 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 RandomStandardNormalFusionPass修复参数顺序错误 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1587 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2807 | 3 个月前 | |
适配rdv功能 Co-authored-by: git config --global user.name gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !2787 merge 20260518 into master 适配rdv功能 Created-by: gcw_CRjbEjwl Commit-by: git config --global user.name gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 适配rdv功能,经过调测需对部分代码修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> rdv流水线任务通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-math!2787 | 3 个月前 | |
ops-math新增spack安装方式 Co-authored-by: moudi123<moudi1@h-partners.com> # message auto-generated for no-merge-commit merge: !2585 merge master into master ops-math新增spack安装方式 Created-by: moudi123 Commit-by: moudi123 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2585 | 3 个月前 | |
refactor: 统一使用CANN公共仓接口管理第三方依赖 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !2816 merge master into master refactor: 统一使用CANN公共仓接口管理第三方依赖 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 将第三方依赖(eigen、protobuf、json、gtest)的构建管理从项目内维护的 cmake 脚本切换为 CANN 公共仓提供的 add_cann_third_party() 接口,统一依赖获取方式。 主要改动: - CMakeLists.txt:移除 4 个 include(cmake/third_party/*.cmake),改用 add_cann_third_party() 下载 eigen、protobuf、json;新增 ENABLE_OPEN_SRC 开关;通过 host_protoc 目标获取 protoc 路径 - cmake/func.cmake:Eigen3::EigenMath → Eigen3::Eigen(5 处);protobuf include 路径更新为公共仓变量;${ABSL_SOURCE_DIR} → ${ABS_INSTALL_DIR};依赖 ascend_protobuf_build_math → host_protoc - cmake/ut.cmake:gtest 改用 add_cann_third_party(gtest) 并创建 ALIAS;Eigen3::EigenMath → Eigen3::Eigen(4 处) - tests/ut/op_kernel_aicpu/CMakeLists.txt:Eigen3::EigenMath → Eigen3::Eigen ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1603 ## 测试 编译通过,UT 用例运行正常,二级冒烟通过 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建系统重构 See merge request: cann/ops-math!2816 | 3 个月前 | |
update license Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !417 merge master into master update license Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!417 | 8 个月前 | |
docs: 移除 AI Core 算子开发进阶指南文档并清理相关引用 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2879 merge master into master docs: 移除 AI Core 算子开发进阶指南文档并清理相关引用 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 移除 docs/zh/develop/aicore_develop_advanced_guide.md 文档文件(AI Core 算子开发进阶指南),并清理其他文档中对该进阶指南的所有引用链接。 具体改动: - 删除 docs/zh/develop/aicore_develop_advanced_guide.md(1412行) - 清理 docs/zh/develop/aicore_develop_guide.md 中 6 处指向进阶指南的引用(涉及算子原型定义、Tiling实现、Kernel实现、图模式适配、Aclnn适配、代际隔离章节) - 清理 docs/zh/develop/graph_develop_guide.md 中 1 处指向进阶指南的引用(GE图模式原型定义章节) - 更新 .gitignore 添加 .opencode/ 忽略规则 ## 关联的Issue - #1635 ## 测试 - 验证删除文档后,其余文档中无残留的失效链接引用 - 验证剩余文档结构完整,章节衔接自然 ## 文档更新 - 删除了 AI Core 算子开发进阶指南文档 - 清理了 aicore_develop_guide.md 和 graph_develop_guide.md 中的相关引用 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:清理文档引用链接 See merge request: cann/ops-math!2879 | 3 个月前 | |
调整yaml文件格式 Co-authored-by: zhangxu-<zhangxu109@huawei.com> # message auto-generated for no-merge-commit merge: !2593 merge master into master 调整yaml文件格式 Created-by: zhangxu- Commit-by: zhangxu- Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 调整yaml文件格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #1464 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 线上测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2593 | 3 个月前 | |
math仓的doc tools 工具检测的低错问题 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !2461 merge master into master math仓的doc tools 工具检测的低错问题 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 处理math仓的doc tools 工具检测的低错问题,包括markdown低错、htlm标签合入、链接是否可以正常跳转 ## 关联的Issue #关联issue#1262 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新全部文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2461 | 3 个月前 | |
refactor: 统一使用CANN公共仓接口管理第三方依赖 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !2816 merge master into master refactor: 统一使用CANN公共仓接口管理第三方依赖 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 将第三方依赖(eigen、protobuf、json、gtest)的构建管理从项目内维护的 cmake 脚本切换为 CANN 公共仓提供的 add_cann_third_party() 接口,统一依赖获取方式。 主要改动: - CMakeLists.txt:移除 4 个 include(cmake/third_party/*.cmake),改用 add_cann_third_party() 下载 eigen、protobuf、json;新增 ENABLE_OPEN_SRC 开关;通过 host_protoc 目标获取 protoc 路径 - cmake/func.cmake:Eigen3::EigenMath → Eigen3::Eigen(5 处);protobuf include 路径更新为公共仓变量;${ABSL_SOURCE_DIR} → ${ABS_INSTALL_DIR};依赖 ascend_protobuf_build_math → host_protoc - cmake/ut.cmake:gtest 改用 add_cann_third_party(gtest) 并创建 ALIAS;Eigen3::EigenMath → Eigen3::Eigen(4 处) - tests/ut/op_kernel_aicpu/CMakeLists.txt:Eigen3::EigenMath → Eigen3::Eigen ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1603 ## 测试 编译通过,UT 用例运行正常,二级冒烟通过 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:构建系统重构 See merge request: cann/ops-math!2816 | 3 个月前 | |
docs: 补充生态算子精度标准引用 Co-authored-by: chaotang233<tangchao47@hisilicon.com> # message auto-generated for no-merge-commit merge: !2634 merge master into master docs: 补充生态算子精度标准引用 Created-by: chaotang233 Commit-by: chaotang233 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->增加精度标准的索引,确保仓可以引用到精度标准 会议纪要:https://etherpad-cann.meeting.osinfra.cn/p/TSC  ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2634 | 3 个月前 | |
init | 10 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !2009 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2009 | 4 个月前 | |
modify CANNLab desc Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !2651 merge master into master modify CANNLab desc Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 云开发环境名称由WebIDE更正为CANNLab ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_install.md QUICKSTART.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2651 | 3 个月前 | |
math仓的doc tools 工具检测的低错问题 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !2461 merge master into master math仓的doc tools 工具检测的低错问题 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 处理math仓的doc tools 工具检测的低错问题,包括markdown低错、htlm标签合入、链接是否可以正常跳转 ## 关联的Issue #关联issue#1262 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新全部文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2461 | 3 个月前 | |
【描 述】 eigen update to 5.0.0 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !985 merge master into master 【描 述】 eigen update to 5.0.0 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 现开源软件eigen 3.4.0 EOM,Eigen 从3.4.0版本升级到5.0.0,解决生命周期问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试   ## 文档更新 SECURITY.md docs/zh/context/build_offline.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Update Eigen to 5.0.0 See merge request: cann/ops-math!985 | 6 个月前 | |
add_example_aicpu修改 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !2237 merge bugfix-0415 into master add_example_aicpu修改 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR的具体修改内容如下: 1、修复add_example_aicpu的ut 2、ut说明中添加aicpu的kernel执行 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> issue [#1122](https://gitcode.com/cann/ops-math/issues/1122) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> [2026-04-15 13:01:30] [ RUN ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC [2026-04-15 13:01:30] [ OK ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC (0 ms) [2026-04-15 13:01:30] [----------] 1 test from TEST_AddExample_UT (0 ms total) [2026-04-15 13:01:30] [2026-04-15 13:01:30] [----------] Global test environment tear-down [2026-04-15 13:01:30] [==========] 1 test from 1 test suite ran. (0 ms total) [2026-04-15 13:01:30] [ PASSED ] 1 test. [2026-04-15 13:01:30] [100%] Built target math_aicpu_op_kernel_ut ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/install/compile.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2237 | 4 个月前 | |
feat: 新增 cannsim 仿真一键运行脚本及 --noexec 编译选项 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2874 merge master into master feat: 新增 cannsim 仿真一键运行脚本及 --noexec 编译选项 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 cannsim 仿真端到端运行脚本 scripts/ci/run_cannsim_example.sh,支持在 Ascend950 平台上对算子执行编译、安装、示例编译和 cannsim 仿真四阶段流程。同时在 build.sh 中新增 --noexec 选项,允许仅编译示例而不执行,便于交叉编译场景下将产物提供给 cannsim 使用。 ### 改动原因 原有 build.sh --run_example 会编译后立即执行示例,无法满足交叉编译+cannsim 仿真的场景需求(目标平台无 NPU 硬件)。需要一个独立的脚本串联构建→安装→编译示例→cannsim 仿真的完整流程。 ### 改动方法 1. **build.sh**: 新增 --noexec 命令行选项,设置 ENABLE_UT_EXEC 变量控制是否执行编译产物;更新 usage 帮助信息。 2. **scripts/ci/run_cannsim_example.sh**: 新增四阶段脚本(Stage 1 构建算子包 → Stage 2 安装算子包 → Stage 3 编译示例 --noexec → Stage 4 运行 cannsim 仿真),支持 --skip-build、--skip-cannsim、--gen-report、--clean、-j 等选项,并输出各阶段耗时统计。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/1632 ## 测试 - 使用 bash build.sh --run_example <op> eager cust --noexec --vendor_name=custom 验证仅编译不执行功能正常 - 使用 bash scripts/ci/run_cannsim_example.sh <op_name> 验证四阶段端到端流程 - 使用 --skip-build、--skip-cannsim、--gen-report、--clean 等选项验证各分支逻辑 ## 文档更新 无文档文件变更,usage 帮助信息已在 build.sh 中更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2874 | 3 个月前 | |
将matmul_compress_dequant算子从math仓迁到nn仓 Co-authored-by: wmg1<wangmingguang2@h-partners.com> # message auto-generated for no-merge-commit merge: !2728 merge test_c into master 将matmul_compress_dequant算子从math仓迁到nn仓 Created-by: wmg1 Commit-by: wmg1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将matmul_compress_dequant算子从math仓迁到nn仓 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->https://gitcode.com/cann/ops-math/issues/1507 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:matmulcompressdequant算子迁到nn仓去 See merge request: cann/ops-math!2728 | 3 个月前 | |
refactor: 去除构建脚本对 gawk 的依赖,改用纯 bash 实现时间戳格式化 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2407 merge master into master refactor: 去除构建脚本对 gawk 的依赖,改用纯 bash 实现时间戳格式化 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将项目中所有 shell 脚本对 gawk 的依赖替换为纯 bash 实现,降低构建环境的外部依赖要求。 ### 改动原因 项目中多个脚本使用 gawk 进行日志时间戳格式化,导致 gawk 成为必需依赖。gawk 并非所有系统默认安装,可通过纯 bash 的 while read + date 组合实现相同功能,消除该依赖。 ### 改动方法 1. 将 build.sh、scripts/kernel/binary_script/ 下 7 个脚本、scripts/util/gen_compile_option.sh 共 9 个脚本中的 gawk 调用替换为 while IFS= read -r line; do echo "$(date '[%Y-%m-%d %H:%M:%S]') $line"; done 2. 移除 install_deps.sh 中的 install_gawk 函数及其调用(删除 31 行) 3. 从 docs/zh/install/quick_install.md 依赖列表中移除 gawk ## 关联的Issue - #1348 ## 测试 替换后的 bash 命令功能与原 gawk 命令一致,均为逐行读取输出并添加 [YYYY-MM-DD HH:MM:SS] 时间前缀。 ## 文档更新 更新了 docs/zh/install/quick_install.md,移除 gawk 依赖说明。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构-移除外部依赖 See merge request: cann/ops-math!2407 | 4 个月前 | |
docs: 优化环境部署文档结构,补充基础依赖和构建参数说明 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2404 merge master into master docs: 优化环境部署文档结构,补充基础依赖和构建参数说明 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 重构项目环境部署相关文档,优化安装流程说明结构。将构建工具依赖安装步骤从 compile.md 迁移至 quick_install.md,使开发者在一处即可完成全部环境准备;补充 build.sh 的 --soc 参数支持列表;新增 absl-py 和 jinja2 Python 依赖。 具体改动: 1. README.md:优化源码下载说明措辞,将 WebIDE 提示改为醒目的注释块说明 2. build.sh:新增 --soc 参数所有支持值的说明,列出 ascend910b、ascend910_93、ascend950 等全部 SoC 型号 3. docs/zh/install/compile.md:移除"安装构建工具"章节(已迁移至 quick_install.md) 4. docs/zh/install/quick_install.md:重构手动安装章节,新增"安装基础依赖"小节,整合构建工具和 Python 依赖安装步骤 5. requirements.txt:新增 absl-py>=2.0.0 和 jinja2>=3.1.0 依赖 ## 关联的Issue - #1347 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 更新了 README.md、docs/zh/install/compile.md、docs/zh/install/quick_install.md 文档内容。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2404 | 4 个月前 | |
依赖cmake公共仓api,降低编译工程复杂度 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2311 merge master into master 依赖cmake公共仓api,降低编译工程复杂度 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 依赖cmake公共仓api,降低编译工程复杂度 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2311 | 4 个月前 |
ops-math
🔥Latest News
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT,可以通过CANN Simulator仿真工具开发调试;在add算子中增加了<<<>>>kernel异构调用示例,方便用户自定义使用;在多个类别中新支持算子concat、lerp、drop_out_v3等。
- [2025/11] 完善多个算子README描述,改进算子开发实例文档及example。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-math项目首次上线。
🚀概述
ops-math是CANN (Compute Architecture for Neural Networks)算子库中提供数值计算的基础算子库,包括conversion类、math类、random类等,覆盖张量形态变换、基础数学运算、随机数生成等场景,子库在架构图中的位置如下。

本仓已集成代码仓库智能体,点击 徽章,进入其专属页面,开启在线智能代码学习与知识问答体验!
📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码 。
git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。