本项目是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 | 4 个月前 | |
批量修改md文档冗余空格第3批 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3318 merge master into master 批量修改md文档冗余空格第3批 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改md中冗余空格 ## 关联的Issue [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 自验证 ## 文档更新 all md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3318 | 3 个月前 | |
[PR1/3] migrate transdata aicpu kernel: kernel impl + format_transfer base + basic UT Co-authored-by: pan-tong<pantong@huawei.com> # message auto-generated for no-merge-commit merge: !4113 merge transdata_pr1 into master [PR1/3] migrate transdata aicpu kernel: kernel impl + format_transfer base + basic UT Created-by: pan-tong Commit-by: pan-tong Merged-by: cann-robot Description: ## 描述 将canndev仓TransData算子的AICPU kernel迁移到ops-math仓,PR1/3:kernel impl + format_transfer base + basic UT。 ## 关联的Issue #2231 ## 测试 PR1 of 3: kernel + format_transfer base (utils/register) + 3 basic UT. - cmake/symbol.cmake: add COMMAND_EXPAND_LISTS - CMakeLists.txt: target_sources for format_transfer - trans_data_aicpu.{cpp,h}: main CpuKernel implementation - format_transfer/{formats_definitions,register_format_transfer,format_transfer_utils}.{h,cpp}: base infra - test_trans_data.cpp: 3 basic UT (PARAM_INVALID paths) 修复检视意见: - P2: memset_s 返回值检查 - P3: Measure 函数 gcd(0) 修复 - P3: 冗余除零检查删除 No _aicpu_def.cpp (canndev TransData still active). ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:算子迁仓 See merge request: cann/ops-math!4113 | 1 个月前 | |
einsum原型迁移至nn仓 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !4128 merge 717 into master einsum原型迁移至nn仓 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 删除einsum原型定义 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 2256 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4128 | 2 个月前 | |
[PR1/3] migrate transdata aicpu kernel: kernel impl + format_transfer base + basic UT Co-authored-by: pan-tong<pantong@huawei.com> # message auto-generated for no-merge-commit merge: !4113 merge transdata_pr1 into master [PR1/3] migrate transdata aicpu kernel: kernel impl + format_transfer base + basic UT Created-by: pan-tong Commit-by: pan-tong Merged-by: cann-robot Description: ## 描述 将canndev仓TransData算子的AICPU kernel迁移到ops-math仓,PR1/3:kernel impl + format_transfer base + basic UT。 ## 关联的Issue #2231 ## 测试 PR1 of 3: kernel + format_transfer base (utils/register) + 3 basic UT. - cmake/symbol.cmake: add COMMAND_EXPAND_LISTS - CMakeLists.txt: target_sources for format_transfer - trans_data_aicpu.{cpp,h}: main CpuKernel implementation - format_transfer/{formats_definitions,register_format_transfer,format_transfer_utils}.{h,cpp}: base infra - test_trans_data.cpp: 3 basic UT (PARAM_INVALID paths) 修复检视意见: - P2: memset_s 返回值检查 - P3: Measure 函数 gcd(0) 修复 - P3: 冗余除零检查删除 No _aicpu_def.cpp (canndev TransData still active). ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:算子迁仓 See merge request: cann/ops-math!4113 | 1 个月前 | |
docs(build): 修正构建参数说明 Co-authored-by: chensi79<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !4167 merge fix/issue-2262-build-doc-test-options into master docs(build): 修正构建参数说明 Created-by: chensi79 Commit-by: chensi79 Merged-by: cann-robot Description: ## 描述 修正 docs/zh/install/build.md 中与 build.sh 实际行为不一致的构建参数说明。 - 移除已下线的 --ophost_test、--opapi_test、--opgraph_test 和 --opkernel_test 参数说明。 - 更新 -u 参数说明,明确其单独使用时编译所有 UT 目标,与 --ophost、--opapi、--opgraph 或 --opkernel 组合时编译对应 UT 目标。 - 将不存在的 --disable_asan 更正为实际支持的 --asan,并将功能说明修正为启用 ASAN 内存检测。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2261 https://gitcode.com/cann/ops-math/issues/2262 https://gitcode.com/cann/ops-math/issues/2263 https://gitcode.com/cann/ops-math/issues/2264 ## 测试 旧参数下线验证: - bash build.sh --ophost_test:退出码 1,提示 Invalid long option - bash build.sh --opapi_test:退出码 1,提示 Invalid long option - bash build.sh --opgraph_test:退出码 1,提示 Invalid long option - bash build.sh --opkernel_test:退出码 1,提示 Invalid long option - bash build.sh --opkernel_aicpu_test:退出码 1,提示 Invalid long option - bash build.sh --disable_asan:退出码 1,提示 Invalid long option 新参数单算子编译验证: - bash build.sh -u --ophost --ops=abs --noexec:通过 - bash build.sh -u --opapi --ops=abs --noexec:通过 - bash build.sh -u --opgraph --ops=abs --noexec:通过 - bash build.sh -u --opkernel --ops=abs --noexec:通过 - bash build.sh --asan --help:通过 - bash build.sh -u --ophost --ops=abs --asan --noexec:通过,CMake 参数包含 -DENABLE_ASAN=TRUE 其他检查: - bash -n build.sh:通过 - pre-commit run --files docs/zh/install/build.md:通过 ## 文档更新 更新 docs/zh/install/build.md 中的构建参数说明。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4167 | 1 个月前 | |
docs: 修复 issue #1618 反馈的三处文档不一致 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/issue-1618-docs-fixes into master docs: 修复 issue #1618 反馈的三处文档不一致 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 本 PR 修复 Issue #1618 反馈的三处文档不一致问题,全部为纯文档修改,不涉及代码逻辑: - examples/README.md:在"目录说明"的目录树中补全 fast_kernel_launch_example 子目录,使其与下方样例表格保持一致。 - docs/zh/develop/aicpu_develop_guide.md:修正第 140 行链接,URL 由 add_example.json 改为 add_example_aicpu.cpp,与链接文本保持一致(链接目标文件已在仓库中确认存在)。 - docs/zh/install/quick_install.md:将 spack install 命令中的 Spack 包名 cann-ops 改为 cann-ops-math,与 spack/prepare_cann_env.sh 中 DEFAULT_PACKAGE_NAME="cann-ops-math@master +pkg" 及同文件 spack location -i cann-ops-math 命令保持一致。 涉及文件中由 pre-commit trailing-whitespace hook 自动清理了行尾空格,无功能性变更。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1618 ## 测试 纯文档修改,未涉及代码逻辑,无相关单元测试可运行;已通过以下方式人工核对: - 目录树新增行与 L44 表格描述对齐。 - scripts/opgen/template/add_example_aicpu/op_kernel_aicpu/add_example_aicpu.cpp 文件在仓库中确实存在。 - Spack 包名修改与 spack/prepare_cann_env.sh 中的 DEFAULT_PACKAGE_NAME 一致。 ## 文档更新 - examples/README.md:补全 fast_kernel_launch_example 子目录说明。 - docs/zh/develop/aicpu_develop_guide.md:修正 L140 链接 URL。 - docs/zh/install/quick_install.md:统一 Spack 包名。 ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!4024 | 2 个月前 | |
【社区任务】feat(gcd): add experimental Ascend C Gcd operator Co-authored-by: yusenhao<morikunn@foxmail.com> # message auto-generated for no-merge-commit merge: !3947 merge pr/gcd-ascendc into master 【社区任务】feat(gcd): add experimental Ascend C Gcd operator Created-by: Morikunn Commit-by: yusenhao Merged-by: cann-robot Description: ## 描述 新增 experimental/math/gcd Gcd Ascend C 实现与 aclnnGcd ACLNN 直调入口。实现覆盖 broadcast shape、rank 1-8、非连续输入/输出,以及 float32、float16、bfloat16、int8、uint8、int16、int32、int64。 源码采用 experimental 扁平布局:host tiling 位于 op_host/gcd_tiling.cpp,kernel 位于 op_kernel/gcd.cpp 与 op_kernel/gcd.h。mixed dtype 签名校验收敛在现有 op_api/gcd.h,binary config 由仓库构建流程自动生成,不提交手写 config 文件。 实现路径不使用 Python reference、PyTorch/torch_npu 等价 Gcd、官方/vendor Gcd、CANN TBE Gcd 或 CPU fallback 作为计算路径。 ## 关联的Issue Fixes #2190 https://gitcode.com/cann/ops-math/issues/2190 ## 测试 - pre-commit run --from-ref origin/master --to-ref HEAD - source /mnt/model/lcw/SLAI-Ascend-OpForge/scripts/source_cann9.sh && bash build.sh --pkg --experimental --soc=ascend910_93 --ops=gcd --vendor_name=experimental -j16 - source /mnt/model/lcw/SLAI-Ascend-OpForge/scripts/source_cann9.sh && bash build.sh -u --opapi --experimental --ops=gcd -j16 - 结果:pre-commit 全部通过;Ascend910_93 experimental package 构建成功;Gcd L2 UT 9/9 PASSED。 ## 文档更新 更新 experimental/math/gcd/README.md 和 experimental/math/gcd/docs/aclnnGcd.md,补充实现边界、测试入口和贡献说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3947 | 1 个月前 | |
sort cleancode处理 Co-authored-by: ConanHuang<huangxiaobin1@huawei.com> # message auto-generated for no-merge-commit merge: !4135 merge codecheck into master sort cleancode处理 Created-by: ConanHuang Commit-by: ConanHuang Merged-by: cann-robot Description: ## 描述 1. 魔法数字消除:2/3/4/6/2048 等字面量替换为 DOUBLE_BUFFER_NUM、MERGE_LIST_MAX_NUM、ONE_CORE_DATA_SIZE 等具名常量,涉及 17+ 处 2. 函数提取:BuildSortGraph()、SelectAndFinalizeKthValueRoute()、FillRadixKernelResources()、LaunchSortKernel() 等 6 个 helper 函数从主流程中提取,减少重复 3. sort_apt.cpp 重构:内核派发链由 if constexpr + return 改为 if/else if,拆出 LaunchRadixMoreCore/LaunchMergeSortRoute 模板 4. Lambda 捕获修复:[&] → [&info, &computeBatchNum](sort_tiling_common.cpp:1168) 5. 格式化统一:const_cast<type> 间距、缩进(2→4空格)、注释对齐、文件末尾换行补全,涉及 30+ 文件 ## 关联的Issue 不涉及 ## 测试 1 sort sort_with_index top_k_v2 kth_value 全量ST通过 2 二级冒烟通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:格式和风格调整 See merge request: cann/ops-math!4135 | 1 个月前 | |
refactor: replace MacroAPI with Reg naming convention Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4155 merge master into master refactor: replace MacroAPI with Reg naming convention Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4155 | 1 个月前 | |
besseli1e算子开发 Co-authored-by: kangjiaming<1159380836@qq.com> # message auto-generated for no-merge-commit merge: !3780 merge besseli1e into master besseli1e算子开发 Created-by: kangjiaming Commit-by: kangjiaming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2216 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3780 | 2 个月前 | |
设置spack脚本set -e,使其有错误也会继续执行,消除codecheck告警 Co-authored-by: moudi123<moudi1@h-partners.com> # message auto-generated for no-merge-commit merge: !3109 merge master into master 设置spack脚本set -e,使其有错误也会继续执行,消除codecheck告警 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!3109 | 3 个月前 | |
feat: 补充pad_v3等算子UT Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3722 merge ft-ut into master feat: 补充pad_v3等算子UT Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat: 补充pad/pad_v3/transpose算子UT ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2090 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UT See merge request: cann/ops-math!3722 | 2 个月前 | |
feat: 构建脚本增加 --ccache 参数控制,支持编译时禁用 ccache Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !3509 merge master into master feat: 构建脚本增加 --ccache 参数控制,支持编译时禁用 ccache Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 为 build.sh 新增 --ccache=<VALUE> 构建选项,支持在编译时显式启用或禁用 ccache 缓存加速。默认行为保持开启(ENABLE_CCACHE=TRUE),当传入 --ccache=off/false/disable 时关闭 ccache。同时在 cmake/gen_ops_info.cmake 增加一行 _ASCENDC_ENV_VAR 的 message(STATUS ...) 调试输出。 ### 改动详情 - **build.sh** - 在 SUPPORTED_LONG_OPTS 中注册 ccache= 长选项 - checkopts() 中初始化 ENABLE_CCACHE=TRUE,新增 ccache=*) 分支解析 VALUE:值为 off/false/disable 时置 ENABLE_CCACHE=FALSE - assemble_cmake_args() 中追加 CMAKE_ARGS="$CMAKE_ARGS -DENABLE_CCACHE=${ENABLE_CCACHE}",将开关透传给 cmake - 在全部 8 处 usage 帮助文本中补充 --ccache=<VALUE> 说明(VALUE: on/off/true/false/disable,Default: on) - **cmake/gen_ops_info.cmake** - 在 prepare_compile_from_config 的 CCACHE_PROGRAM 块后新增 message(STATUS "_ASCENDC_ENV_VAR: ${_ASCENDC_ENV_VAR}") 调试输出 ## 关联的Issue - #2039 ## 测试 - 构建验证:bash build.sh --ophost --ccache=on(默认开启)与 bash build.sh --ophost --ccache=off(显式关闭)均构建正常,-DENABLE_CCACHE 参数按预期透传给 cmake ## 文档更新 - 无单独文档更新;构建选项说明已通过 build.sh 内 usage 帮助文本同步更新 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3509 | 2 个月前 | |
feat: ignore claude code Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3890 merge ft-ignore into master feat: ignore claude code Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat: ignore claude code ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:项目配置 See merge request: cann/ops-math!3890 | 2 个月前 | |
新增接口WeightQuantPreprocess Co-authored-by: yan-chengyi123<yanchengyi@huawei.com> Co-authored-by: renzetao<renzetao2@huawei.com> # message auto-generated for no-merge-commit merge: !3832 merge WeightQuantPreprocess into master 新增接口WeightQuantPreprocess Created-by: renzetao Commit-by: renzetao;yan-chengyi123 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 新增了 WeightQuantPreprocess 算子接口,用于对量化推理中的权重张量进行预处理转换。主要支持两类数据流:MM_MX_A8W4(矩阵乘,2维权重)和 GMM_MX_A8W4(分组矩阵乘,3维权重),均面向 FLOAT4_E2M1 权重 / FLOAT8_E8M0 scale 的 Mx 量化场景。核心流程是将 ND/NCL 格式的权重转置后通过 TransData 转换为 FORMAT_FRACTAL_NZ_C0_32 格式,并对 weightScale 和 bias 做直接拷贝。接口采用两段式设计(GetWorkspaceSize + 执行),并通过 DataFlowEntry 注册表按 NPU 架构匹配数据流、校验参数、执行业务逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2230](https://gitcode.com/cann/ops-math/issues/2230) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证GMM-MxA8W4,QBMM-MxA8W4 的历史用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增了conversion/weight_quant_preprocess/docs/aclnnWeightQuantPreprocess.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3832 | 2 个月前 | |
批量修改md文档冗余空格第3批 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3318 merge master into master 批量修改md文档冗余空格第3批 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改md中冗余空格 ## 关联的Issue [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 自验证 ## 文档更新 all md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3318 | 3 个月前 | |
noaicpu option is supported Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !3292 merge 612aicpu into master noaicpu option is supported Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 问题背景:mc62 场景是不需要用到毕昇编译器的,因此构建时并没有安装毕昇编译器的任何东西,但aicpu因为涉及device侧运行,需要用到毕昇的交叉工具链,所以会报错工具链找不到。 解决方案:因为mc62 不需要执行aicpu算子,且不支持跑aicpu算子,因此利用--noaicpu参数选项,在构建aicpu算子的时候进行kernel隔离。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1959 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3292 | 3 个月前 | |
冗余空格修复第4批 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3321 merge master into master 冗余空格修复第4批 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改md中冗余空格 ## 关联的Issue [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 自验证 ## 文档更新 all md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3321 | 3 个月前 | |
init | 11 个月前 | |
expint 算子开发 Co-authored-by: kangjiaming<1159380836@qq.com> # message auto-generated for no-merge-commit merge: !3864 merge expint into master expint 算子开发 Created-by: kangjiaming Commit-by: kangjiaming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2212 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3864 | 2 个月前 | |
doc-tools md低错清理 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3914 merge master into master doc-tools md低错清理 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> doc-tools md低错清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2168](https://gitcode.com/cann/ops-math/issues/2168) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> doc-tools工具已检测 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> all md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3914 | 2 个月前 | |
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 | 4 个月前 | |
【描 述】 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 | 7 个月前 | |
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 | 5 个月前 | |
fix: *_test 选项下线清理 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !3899 merge fix/issue-2170-cleanup-deprecated-test-options into master fix: *_test 选项下线清理 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 针对 Issue #2170 报告的" *_test 选项在 SUPPORTED_LONG_OPTS 里列出但实际执行报 Invalid option"问题,本 PR 采取"纯死代码清理"方案——不修复任何选项使其可用,而是把所有 *_test 相关代码路径和文档清掉,让脚本行为与文档保持一致。 **为什么不让 5 个选项重新可用**:--ophost_test/--opapi_test/--opgraph_test 在之前的提交中已被下线(帮助文本和专属 help 分支已删),--opkernel_test 也在同一笔里被从 usage 文档里清掉,仅保留 --opkernel_aicpu_test 在文档里——属于已确定的下线方向。完成下线比让 5 个全部可用更符合仓库演进意图。 具体改动: 1. **完成下线清理**:从 SUPPORTED_LONG_OPTS、check_help_combinations case、SHOW_HELP 分发以及相关错误消息中移除 5 个 *_test 选项的所有残留。 2. **死代码删除**: - 删除 line 13 的 UT_TARGETS=(... 5项) 选项白名单(不再需要) - 删除 *) 分支里 _test 后缀剥离和 ENABLE_TEST=TRUE 强设逻辑(无选项会触发) - *) 分支校验简化为只查 RELEASE_TARGETS ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2170 ## 测试 所有 5 个 *_test 选项行为一致,全部在 SUPPORTED_LONG_OPTS 第一关被拦下: - bash build.sh --ophost_test → [ERROR] Invalid long option: --ophost_test - bash build.sh --opapi_test → [ERROR] Invalid long option: --opapi_test - bash build.sh --opgraph_test → [ERROR] Invalid long option: --opgraph_test - bash build.sh --opkernel_test → [ERROR] Invalid long option: --opkernel_test - bash build.sh --opkernel_aicpu_test → [ERROR] Invalid long option: --opkernel_aicpu_test 未受影响的命令仍正常工作: - bash build.sh --help → 正常显示帮助 - bash build.sh -u --ophost → 选项解析通过,进入 cmake 阶段(-DOP_HOST_UT=TRUE) - bash -n build.sh → 语法检查通过 **行为结果与 master 一致**:5 个 *_test 选项仍然全部报错并退出(master 上报 Invalid option,本 PR 报 Invalid long option——文案微调,结果一致)。 ## 文档更新 无(本次只动 build.sh 脚本逻辑,没有 README / docs 文件变更)。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:死代码清理 + 文档/行为一致性修复 See merge request: cann/ops-math!3899 | 2 个月前 | |
modify classify_rule file path Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !4162 merge new_fff into master modify classify_rule file path Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 细化classify_rule 文件路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2274 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:细化llt:ut-filter 文件路径 See merge request: cann/ops-math!4162 | 1 个月前 | |
fix: 修复 install_deps.sh 中管道与 source 场景被 run_command 吞输出的问题 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !3865 merge fix/issue-2143-install-deps-pipe into master fix: 修复 install_deps.sh 中管道与 source 场景被 run_command 吞输出的问题 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 修复 install_deps.sh 中 run_command 与管道 / source 配合使用时的两类缺陷。 ### 根因 run_command() 用 output=$("$@" 2>&1) 捕获被包裹命令的标准输出,成功时只重新输出自身的 "Executing command: ..." 日志行。两类调用语义被破坏: 1. **管道场景**(install_cmake Ubuntu 18.04 分支,原 L220/L221):下游(gpg --dearmor、sudo tee)实际收到的是日志行而非真实 payload,Kitware 源 key 与 sources.list 导入失败。 2. **source 场景**(install_python/install_gcc 的 RHEL/CentOS 7 与 macOS 分支,原 L98/L107/L170/L183):run_command source X 在 $(...) 子 shell 中执行 source,导出的环境变量无法进入当前脚本。 ### 改动 去掉这 6 处调用点的 run_command 包裹: - L220 run_command wget -O - ... | gpg --dearmor - | sudo tee ... → wget -O - ... | gpg --dearmor - | sudo tee ... - L221 run_command echo 'deb [signed-by=...]' | sudo tee ... → echo 'deb [signed-by=...]' | sudo tee ... - L98/L107/L170/L183 run_command source X → source X 其余 30+ 处 run_command sudo apt/dnf install ... / run_command brew install ... 调用保持原样——这些场景下 run_command 工作正常(吞 stdout 反而让脚本输出更干净),且仍提供失败诊断。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2143 ## 测试 - bash -n install_deps.sh 语法检查通过 - 最小逻辑验证(参考 Issue #2143 中的复现用例): - 修复前:run_command printf hello | wc -c 输出 32(下游收到 Executing command: printf hello\n,hello 内容被吞) - 修复后:printf hello | wc -c 输出 5(下游收到真实 payload) ## 文档更新 无(仅修复脚本,未涉及文档) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3865 | 2 个月前 | |
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 个月前 | |
chore: bump ops_math version from 9.0.0 to 9.1.0 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !3268 merge fix/issue-1843-version-cmake into master chore: bump ops_math version from 9.0.0 to 9.1.0 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新 version.cmake 中 ops_math 包的默认版本号从 9.0.0 到 9.1.0,与当前已发布的 9.1.0 版本及其他 CANN 仓库保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1843 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 仅版本号修改,通过 diff 确认改动正确。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:版本号更新 See merge request: cann/ops-math!3268 | 2 个月前 |
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}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-math.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。