本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
kirin_cann_test仓指定tag以下载固定代码版本 Co-authored-by: weixin_46515057<lidaoshuai@h-partners.com> # message auto-generated for no-merge-commit merge: !6316 merge master into master kirin_cann_test仓指定tag以下载固定代码版本 Created-by: weixin_46515057 Commit-by: weixin_46515057 Merged-by: cann-robot Description: kirin_cann_test仓指定tag以下载固定代码版本 See merge request: cann/ops-math!6316 | 29 days ago | |
build: 调整 opbase 依赖版本及 tiling 头文件顺序 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !6719 merge revert/math-opbase-update-6712 into master build: 调整 opbase 依赖版本及 tiling 头文件顺序 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 修改内容 调整 Math 构建使用的 opbase 依赖版本和 tiling 头文件搜索顺序,共涉及两个 CMake 文件。 - cmake/third_party/opbase.cmake:OPBASE_TAG_ID 从 185a0f16167f426ace4c04e18e6989d20fcedccf 调整为 f09beaf70dd62c9c089c237cbfcdc2bd2cb757d6。 - cmake/variables.cmake:OP_TILING_INCLUDE 按 C_SEC_INCLUDE、PLATFORM_INC_DIRS、METADEF_INCLUDE_DIRS、TILINGAPI_INC_DIRS、NPURUNTIME_INCLUDE_DIRS、OPBASE_INC_DIRS 的顺序组织头文件路径。 算子 Host、Tiling、Kernel、UT 以及 func.cmake 均无改动。 ## 验证 - 两个改动文件的本地 pre-commit 检查通过。 - 已核对差异范围仅包含上述依赖 SHA 和 include 顺序调整,一次提交。 - 当前提交的编译和测试结果以本 PR 流水线为准。 See merge request: cann/ops-math!6719 | 15 days ago | |
[LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Co-authored-by: gl_princekin<gelei10@huawei.com> # message auto-generated for no-merge-commit merge: !6684 merge master into master [LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Created-by: gl_princekin Commit-by: gl_princekin Merged-by: cann-robot Description: ## 描述 LeftShift(按位左移)算子此前仅包含 aclnn 接口(AICPU 实现),缺少 Ascend C 原生实现。本 PR 新增 LeftShift 的 Ascend C 实现,使其在 Ascend 950 及 Atlas A3 系列(arch35 架构)产品上获得原生执行路径。 **主要改动:** - op_kernel/arch35/:新增 Ascend C kernel(DAG 节点 + 数据结构定义) - op_host/arch35/:新增 tiling 代码 - op_host/config/ascend950/、op_host/config/ascend350/:算子配置(JSON + simplified_key.ini) - op_host/:left_shift_def.cpp(算子定义)、left_shift_infershape.cpp(shape 推导) - op_graph/:left_shift_proto.h、left_shift_graph_infer.cpp - op_kernel_aicpu/:AICPU kernel 实现 - op_api/:aclnn 接口参数校验代码更新 - examples/:图模式调用示例 test_geir_left_shift.cpp - tests/:单元测试(op_api / op_host / tiling / infershape / ST) - README.md、docs/:产品支持表、广播说明文档 - common/inc/op_graph/op_math_proto_extend.h:移除 LeftShift 注册(迁移至独立 proto 文件) - math/right_shift/framework/bitshift_onnx_plugin.cpp:修复 proto 头文件引用 ## 关联的Issue - #3978 ## 测试 - op_api 单元测试:test_aclnn_left_shift.cpp、test_aclnn_left_shift_l0.cpp、test_aclnn_left_shifts.cpp - op_host 单元测试:test_left_shift_tiling.cpp(arch35)、test_left_shift_infershape.cpp - op_kernel_aicpu 单元测试:test_left_shift.cpp - ST 测试:tests/st/arch35/ttk_kernel_left_shift_st.csv ## 文档更新 - 更新了 math/left_shift/README.md(产品支持表、功能说明、参数说明、约束说明、调用说明) - 更新了 math/left_shift/docs/aclnnLeftShift.md、aclnnLeftShifts.md(新增广播说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6684 | 15 days ago | |
fix(aicpu): 补齐手写json缺失的opInfo字段 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !6519 merge fix/aicpu-opinfo-metadata into master fix(aicpu): 补齐手写json缺失的opInfo字段 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因、所采取的方法。--> 对齐 AICPU 整包生成侧与 CANN 9.2.0 安装版 aicpu_kernel.json 的 opInfo 元数据,补齐 6 个算子的字段缺失: - conversion/identity/op_kernel_aicpu/identity.json - 补齐 formatAgnostic=True、opsFlag=OPS_FLAG_OPEN(对齐安装版) - kernelSo 指向修正(libnn → libmath)已由 master db84400e2 率先合入,本 PR rebase 后不再重复改动 - math/rsqrt/op_kernel_aicpu/rsqrt.json、math/sqrt/op_kernel_aicpu/sqrt.json:补齐 formatAgnostic=True(对齐安装版) - math/tile/op_kernel_aicpu/tile.json:补齐 opsFlag=OPS_FLAG_OPEN(对齐安装版及同族 TileWithAxis 注册写法) - math/pow/op_kernel_aicpu/pow.json:补齐 opsFlag=OPS_FLAG_CLOSE(对齐安装版) - math/greater_equal/op_kernel_aicpu/greater_equal_aicpu_def.cpp:补齐 TRUE_FORMAT_AGNOSTIC 覆盖(安装版比较家族 GreaterEqual/Less/NotEqual 均为 True、Equal 为 False,本仓 Less/NotEqual 已覆盖,唯独 GreaterEqual 漏了 formatAgnostic) 背景:三仓 AICPU 整包 json 与安装版逐算子逐字段比对([cann/ops-cv#1276](https://gitcode.com/cann/ops-cv/issues/1276))定位到上述差异。76 个 AICPU 算子中 5 个为手写 json(identity/rsqrt/sqrt/tile/pow),不走 ApplyMathAicpuDefaultCfg+ExtendCfgInfo 注册机制,迁移/手写时字段易漏,本 PR 逐一补齐;后续建议将手写 json 逐步迁移为 def 注册,从根本上规避。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [cann/ops-cv#1276](https://gitcode.com/cann/ops-cv/issues/1276)(AICPU整包json与安装版json 算子定义差异梳理) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 5 个手写 json 语法校验通过 - 76 个 AICPU 算子源码推导值与本机 CANN 9.2.0 安装版全量比对:修复后 6 个目标算子的 formatAgnostic/opsFlag 与安装版完全对齐,其余 3 项差异(Coordinates1DTo2D/OnesLike/TileWithAxis,整包侧演进项)保持不变 - trans_soc / find_value_by_key 等既有机制无行为影响(GreaterEqual 仅新增一行 ExtendCfgInfo 覆盖) - pre-commit 全钩子通过(json 校验 / clang-format / codespell / OAT 合规) - 重建验证:重新 configure(重编 71 个 opdef 生成 aicpu_kernel.ini)并构建 gen_aicpu_json_from_opdef,再生成 aicpu_math.json——76 算子齐全,6 个目标算子的 kernelSo/formatAgnostic/opsFlag 全部落盘正确(Identity kernelSo 由 libnn 修正为 libmath,三处 True/OPEN 补齐,GreaterEqual 经 def→ini→json 链路生效),全量比对无回归 - 符号核验:构建 libmath_aicpu_kernels.so(aarch64),RunCpuKernel 动态符号导出、"Identity" 注册名字符串在 so 内,非本仓 AICPU 算子名(Conv2D/ROIAlign 等)反证 0 命中 - 未执行 NPU 上板运行与完整打包封测(无硬件环境;CUST 注册加载行为需端到端图编译验证) - rebase 至 master f597aafa 后复核:剩余字段补齐改动与原 PR 逐行一致,master db84400e2 已含 kernelSo 修正(本 PR 该项变为无差异),pre-commit 全钩子通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6519 | 14 days ago | |
[LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Co-authored-by: gl_princekin<gelei10@huawei.com> # message auto-generated for no-merge-commit merge: !6684 merge master into master [LeftShift] 新增 Ascend 950 / arch35 Ascend C 实现 Created-by: gl_princekin Commit-by: gl_princekin Merged-by: cann-robot Description: ## 描述 LeftShift(按位左移)算子此前仅包含 aclnn 接口(AICPU 实现),缺少 Ascend C 原生实现。本 PR 新增 LeftShift 的 Ascend C 实现,使其在 Ascend 950 及 Atlas A3 系列(arch35 架构)产品上获得原生执行路径。 **主要改动:** - op_kernel/arch35/:新增 Ascend C kernel(DAG 节点 + 数据结构定义) - op_host/arch35/:新增 tiling 代码 - op_host/config/ascend950/、op_host/config/ascend350/:算子配置(JSON + simplified_key.ini) - op_host/:left_shift_def.cpp(算子定义)、left_shift_infershape.cpp(shape 推导) - op_graph/:left_shift_proto.h、left_shift_graph_infer.cpp - op_kernel_aicpu/:AICPU kernel 实现 - op_api/:aclnn 接口参数校验代码更新 - examples/:图模式调用示例 test_geir_left_shift.cpp - tests/:单元测试(op_api / op_host / tiling / infershape / ST) - README.md、docs/:产品支持表、广播说明文档 - common/inc/op_graph/op_math_proto_extend.h:移除 LeftShift 注册(迁移至独立 proto 文件) - math/right_shift/framework/bitshift_onnx_plugin.cpp:修复 proto 头文件引用 ## 关联的Issue - #3978 ## 测试 - op_api 单元测试:test_aclnn_left_shift.cpp、test_aclnn_left_shift_l0.cpp、test_aclnn_left_shifts.cpp - op_host 单元测试:test_left_shift_tiling.cpp(arch35)、test_left_shift_infershape.cpp - op_kernel_aicpu 单元测试:test_left_shift.cpp - ST 测试:tests/st/arch35/ttk_kernel_left_shift_st.csv ## 文档更新 - 更新了 math/left_shift/README.md(产品支持表、功能说明、参数说明、约束说明、调用说明) - 更新了 math/left_shift/docs/aclnnLeftShift.md、aclnnLeftShifts.md(新增广播说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6684 | 15 days ago | |
docs: AddExample 两种示例原型注释误称仅支持 FLOAT32 Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !6300 merge docs/b6-math-add-example-proto-integer-20261013 into master docs: AddExample 两种示例原型注释误称仅支持 FLOAT32 Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 AICore和AICPU AddExample三个Tensor说明均称只能FLOAT32,而两份同目录REG_OP实际支持FLOAT32与INT32;对应OpDef与示例实现也有整数路径。作为新算子开发模板,该复制注释会让贡献者遗漏已有整数接口能力。 两种示例的输入/输出类型文字统一为float32或int32,同源模板问题合并一组,不修改注册和执行实现。 ## 关联的Issue Fixes #3544 https://gitcode.com/cann/ops-math/issues/3544 ## 测试 依据同一源码基线的 REG_OP / OpDef / README 交叉核对文档参数、属性与计算语义;修复只改注释。最终 pre-commit 字节已复核:基线注释不满足注册契约,修复后一致;去除注释后的C++ token序列完全相同。具体注册片段、交叉引用行号和检查日志见 data/b6-math-add-example-proto-integer-contract-static.txt。 以本 case 干净基线执行适用 pre-commit hooks 与 diff --check 通过。 本地无 NPU;此修复只改文档注释,不宣称完成 GE 图构建或设备执行。 ## 文档更新 本 PR 修正文档中的已复现问题,修改范围见当前 diff。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI 使用声明 使用 AI 辅助核查和准备修复;由 Ethan_Zou 提交。每个 PR 保持一个提交。 ## AI 参与 使用 OpenAI Codex(GPT-6 系列)审查代码与文档,在 Host 侧复现、核对已有报告并准备修复。提交者账号为 Ethan_Zou。 See merge request: cann/ops-math!6300 | 29 days ago | |
docs: align experimental LogAddExp rank limit Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !6100 merge docs/logaddexp-readme-rank-limit-20261002 into master docs: align experimental LogAddExp rank limit Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 experimental/math/log_add_exp README 将最大维度数限定为3,但同目录 aclnn_log_add_exp.md 的输入表和限制均明确最多8维。当前实际 InferShape4LogAddExp 按输入最大维数推导广播结果;tiling 的 shape/stride 数组均为8项,普通广播处理遍历 dimNum。README 的3维限制会让读者错误排除4~8维输入。 将 README 最大维度数对齐本目录当前 API 文档为8;不改变算子实现或引入新的硬件支持声明。 ## 关联的Issue Fixes #3382 ## 测试 抽取该 experimental 算子的实际 InferShape4LogAddExp 函数体,在 Host C++ Shape/InferShapeContext stub 上执行4维与8维广播,均返回 GRAPH_SUCCESS 且输出形状正确;同时核对本目录 API 文档和8项 tiling 数组。此验证覆盖 Host 形状推理,不声明设备数值/性能验证。 仓库适用 pre-commit hooks 与 diff --check 通过;OAT 的 macOS sed 格式告警为既有脚本行为。 本地无 NPU,未执行设备测试;提交后评论 /compile。 ## 文档更新 - experimental/math/log_add_exp/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6100 | 15 days ago | |
feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Co-authored-by: Dazhou_Cao<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !6621 merge migrate-gelocal-delivery into master feat: 迁移gelocal控制流与基础算子交付件(含While/If/Case/For/PartitionedCall、TF控制流插件、reshape),实现RT2.0交付 Created-by: Dazhou_Cao Commit-by: Dazhou_Cao Merged-by: cann-robot Description: ## 描述 汇总迁移 gelocal(RT2.0)算子交付件: - **基础/GE 控制流算子**:size、rank、LoopCond、NextIteration、RefIdentity、SwitchByIndex、aipp_data、End、squeezev2、unsqueezev2,以及 enter/exit/merge/switch/switch_n/ref_* 等 - **子图控制流算子**:If、Case、For、PartitionedCall、While(原型注册 + RT2.0 推导注册 + UT + README,If/Case/For/PartitionedCall 含 GeIR 示例;均归入 ge 分类) - **TF 控制流插件**:If/_If/StatelessIf、While/_While/StatelessWhile、Case/StatelessCase、PartitionedCall/StatefulPartitionedCall 变体合并映射 - **reshape**:infershape 对齐 RT1.0 语义、allowzero/shape 属性注册、信息库 - **文档**:README 产品支持表统一(全部√)、gather_shapes 归入 conversion、op_list 同步登记 ## 测试 - bash build.sh --ophost --opgraph -j8 构建通过(含各算子 REG_OP 注册校验) - 宿主侧全量 UT:2594/2594 PASSED(384 test suites) ## 说明 - 内容汇总自此前迁移 PR(6474 / 6522 / 6208)的交付件,本 PR 为其合并后的统一交付 See merge request: cann/ops-math!6621 | 16 days ago | |
增加aclnnReduceSum ascend960支持数据类型分支判断 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6721 merge bugfix/aclnnReduceSumA6 into master 增加aclnnReduceSum ascend960支持数据类型分支判断 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnReduceSum 增加关于Ascend960的数据类型分支判断,防止bf16、int64等数据类型走到aicpu ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6721 | 14 days ago | |
[修复] dsa_gen_bit_mask 错误码整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6728 merge dsa_gen into master [修复] dsa_gen_bit_mask 错误码整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 dsa_gen_bit_mask 错误码整改 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4113 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6728 | 14 days ago | |
fix: kernel编译失败时被dlopen日志刷屏 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !6714 merge fix-build into master fix: kernel编译失败时被dlopen日志刷屏 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: kernel编译失败时被dlopen日志刷屏 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:编译日志优化 See merge request: cann/ops-math!6714 | 15 days ago | |
设置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 | 5 months ago | |
refactor: pad_v3/mirror_pad golden 内联 pad helper 副本,消除外部文件加载依赖 Co-authored-by: Xbying<2119046648@qq.com> # message auto-generated for no-merge-commit merge: !6560 merge golden-self-contained into master refactor: pad_v3/mirror_pad golden 内联 pad helper 副本,消除外部文件加载依赖 Created-by: 2301_81474000 Commit-by: Xbying Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - conversion/pad_v3/tests/assets/golden.py、conversion/mirror_pad/tests/assets/golden.py:删除 runpy.run_path + parents[4] 固定深度的外部加载,**内联各自的 pad helper 副本**(内容与 tests/golden_helpers/padding.py 同源),golden.py 成为完全自包含单文件。 - golden.py 单文件即可分发/随包打包/在 cross_check 竞品端独立执行,消除目录深度硬编码、单文件分发失效、远端探测失败等问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3760 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6560 | 21 days ago | |
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 | 4 months ago | |
chore: 补充.gitattributes并将存量png统一迁移至LFS Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !5569 merge add-gitattributes into master chore: 补充.gitattributes并将存量png统一迁移至LFS Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 补充 PR !5397 遗漏的 .gitattributes,并将存量 png 统一迁移至 LFS(单提交、不重写历史)。 ### 背景 PR !5397 以 LFS pointer 形式提交了 docs/zh/figures/CastlikeFusionPass.png,但仓库缺少 .gitattributes 中 filter=lfs 规则声明,导致 git check-attr filter 为 unspecified,检出时该文件无法被 smudge 为真实图片。 ### 变更内容(单提交 8fee7b7ea) - 新增 .gitattributes:*.png filter=lfs diff=lfs merge=lfs -text(对齐 ops-nn / ops-transformer 惯例) - 将存量 37 个 png 二进制文件转换为 LFS pointer 存储,连同已有 pointer 共 38 个 png 统一走 LFS,消除混合存储导致的 git status 假 modified、checkout 告警及后续误提交风险 ## 关联的Issue #3057 ## 测试 - [x] git check-attr filter 对全部 png 返回 lfs - [x] git lfs ls-files 共 38 个文件,工作区可正常检出为真实 PNG - [x] git status clean,无假 modified 文件 - [x] pre-commit / OAT 合规检查通过 - [x] PR 仅含 1 个提交,无历史重写 ## 类型标签 - [x] 其他(工程配置修复) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5569 | 1 month ago | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 3 months ago | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 26 days ago | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !4332 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改AIDD扫描的核心资料问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2415](https://gitcode.com/cann/ops-math/issues/2415) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_op_invocation.md cross_platform_migration_guide.md op_list.md aicpu_develop_guide.md ... ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4332 | 3 months ago | |
工程框架支持兼容arch配置(同步ops-nn PR #11603,适配本仓差异) Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !6325 merge master into master 工程框架支持兼容arch配置(同步ops-nn PR #11603,适配本仓差异) 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!6325 | 26 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 | |
init | 1 year ago | |
docs: 新增CastlikeFusionPass融合pass文档 Co-authored-by: ywx1080114<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !5397 merge castlike-fusion-pass-doc into master docs: 新增CastlikeFusionPass融合pass文档 Created-by: yuanbin_22 Commit-by: ywx1080114 Merged-by: cann-robot Description: ## 描述 新增 CastLike 算子的融合 pass 说明文档,包含融合模式、使用约束及支持的型号信息: - **CastlikeFusionPass**:将图中的 CastLike 算子替换为 Cast 算子,从 CastLike 的类型参考输入 y 中提取目标类型 dst_type,替换后 Cast 仅接收 x 输入并携带 dst_type 属性。支持 Ascend 950PR/Ascend 950DT。 同时新增融合模式示意图(LFS)。 ## 关联的Issue #3057 ## 测试 纯文档更新,无需测试。 ## 文档更新 - 新增 math/cast/docs/CastlikeFusionPass.md - 新增 docs/zh/figures/CastlikeFusionPass.png ## 类型标签 - [x] 文档更新 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5397 | 2 months ago | |
docs(readme): README最新动态中Ascend 950系列表述补充Huawei品牌前缀 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !6662 merge master into master docs(readme): README最新动态中Ascend 950系列表述补充Huawei品牌前缀 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 更新 README.md「🔥Latest News」2026/07 条目的品牌表述:将"新增支持Ascend 950系列"修改为"新增支持**Huawei** Ascend 950系列",为 Ascend 950 系列补充 Huawei 品牌前缀。 ### 改动原因 规范品牌表述,Ascend 950 系列在对外文档中需携带 Huawei 品牌前缀。 ### 改动方法 仅修改 README.md 中该条目的一处文字,链接指向(Ascend950重点特性与本仓算子样例介绍)、算子及特性清单等内容均保持不变。 ## 关联的Issue - #3872 ## 测试 文档文案改动,不涉及代码逻辑。已核对:全 PR 仅此一处文字变更,Markdown 链接格式及指向未受影响。 ## 文档更新 - README.md:最新动态 2026/07 条目补充 Huawei 品牌表述 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6662 | 18 days ago | |
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 | 6 months ago | |
【描 述】 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 | 8 months ago | |
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 | 6 months ago | |
refactor: 将 build.sh 拆分为模块化构建脚本 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !4239 merge master into master refactor: 将 build.sh 拆分为模块化构建脚本 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 ops-math 工程中原本约 1700 行的单体构建脚本 build.sh,按职责拆分为 8 个独立子脚本,放在 scripts/ 目录下。拆分后的 build.sh 仅作为入口,负责引入各模块并调用 main() 主流程统一调度,功能逻辑完全保持不变。 ### 改动原因 原始的 build.sh 将所有构建逻辑(配置管理、参数解析、编译、打包、UT、Example、GenOp 等)集中在一个文件中,代码量庞大(~1738 行),不利于维护和团队协作。本次重构将不同职责的代码分离到独立脚本中,提升可读性和可维护性。 ### 改动方法 - build.sh:精简为入口脚本(~70 行),定义环境变量,按序 source 各模块子脚本,定义 main() 统一调度构建流程 - 各子脚本按职责划分: - scripts/build.conf.sh(106 行):全局配置、变量定义、公共工具函数 - scripts/build_clean.sh(57 行):构建产物清理 - scripts/build_options.sh(846 行):命令行选项解析、校验、帮助信息展示 - scripts/build_cmake.sh(167 行):CMake 初始化与配置 - scripts/build_lib.sh(209 行):库编译、二进制编译、打包 - scripts/build_ut.sh(24 行):单元测试构建 - scripts/build_example.sh(284 行):示例代码构建 - scripts/build_genop.sh(59 行):GenOp 算子代码生成 ## 关联的Issue - #2381 https://gitcode.com/cann/ops-math/issues/2300 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 See merge request: cann/ops-math!4239 | 3 months ago | |
fix(batch_to_space,diag_flat,cosh): 按人工检视意见修复校验缺失、空输入安全、溢出与测试文档资产 Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !6566 merge longtail into master fix(batch_to_space,diag_flat,cosh): 按人工检视意见修复校验缺失、空输入安全、溢出与测试文档资产 Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 按人工检视意见对 batch_to_space、diag_flat、cosh 三个算子整改,共 61 个文件(+964/-825),5 个提交。 **batch_to_space** - op_host: batch_to_space_def.cpp 增加 bfloat16 支持对齐 ascend910b 基线;InferShape 补充 x 4D、crops 元素数/非负、N 可整除 block_size²、H_out/W_out>0 校验;tiling 补充 crops 元素数校验 - 资产与文档:golden 增加 __spec__ 注册;proto.h 注释改为 4D NHWC 并补 BasicType 清单;README 补 BF16 并修正属性角色;example 检查 AddGraph 返回值、释放 session 与输入缓冲 **diag_flat** - 空输入安全:arch35 SIMT 内核以 numInput 为一致分支守卫输入读取,避免空输入越界读 xGm[0];arch22 DiagFlatNDTo2DWithFew 空输入早退避免 iter=-1 负索引;GmSetZeroPad/GmSetZero 空输出提前返回避免整除零 - 校验与返回码:aclnn CheckParams 增加 INT64_MIN 与输出尺寸溢出校验(161002);空指针返回码由 ACLNN_ERR_INNER_NULLPTR 改为 ACLNN_ERR_PARAM_NULLPTR(161001);infershape/tiling/op_api 采用溢出安全计算 - 资产与文档:golden __spec__ 注册并补 @staticmethod;修正 4 条用例输出形状,atk 补负 diagonal 与 2-8 维输入;单测夹具改为真实单输入 x + 属性 diagonal;README/aclnnDiagFlat.md 修正 dtype 集合、空 Tensor 语义、输出形状公式与错误码;classify_rule.yaml 修正 diag_flat 交付路径 **cosh** - 样例与资产:test_aclnn_cosh.cpp FP32 阈值对齐 spec.yaml(rtol=atol=1e-5)、workspace 交由调用方持有并在流同步后释放;test_geir_cosh.cpp 输入缓冲改用 Tensor SetData(deleter) 释放、失败路径补 GEFinalize;golden __spec__ 注册(与已合入 #6652 版本一致) - 文档:README 调用说明补“样例代码”列并规范为 aclnn API/GE图模式/PyTorch API、self/out 补整数与 BOOL 类型;aclnnCosh&aclnnInplaceCosh.md 修正数据类型基准、BFLOAT16 归为 950/A3/A2 额外支持并补空 Tensor 说明;cosh_proto.h 恢复 REG_OP 上方 Doxygen 说明 ## 关联的Issue #3869 ## 测试 - 3 个算子 tests/assets/golden.py(cosh/diag_flat/batch_to_space)通过 python py_compile 语法检查 - diag_flat 单测夹具改造为真实单输入 x + 属性 diagonal;atk 用例补齐负 diagonal 与 2-8 维输入 - 本分支已 rebase 至最新 master(e4fbff83c),冲突解决后 cosh golden.py 与已合入 #6652 版本对齐 ## 文档更新 - README:batch_to_space(BF16/属性角色)、diag_flat(dtype/空 Tensor)、cosh(样例代码列/类型) - docs:aclnnDiagFlat.md(dtype/输出形状/错误码)、aclnnCosh&aclnnInplaceCosh.md(类型基准/BF16 归属/空 Tensor) - 其他:proto.h 注释、classify_rule.yaml 交付路径 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6566 | 14 days ago | |
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 | 4 months ago | |
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 | 6 months ago | |
chore(version): ops_math包版本由9.1.0升级至9.2.0 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !5298 merge master into master chore(version): ops_math包版本由9.1.0升级至9.2.0 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 ### 改动原因 仓库已进入 9.2.0 发布周期(远端已发布 v9.2.0-beta.2 标签),ops_math 包版本号需由 9.1.0 升级至 9.2.0,与发布节奏对齐。 ### 改动方法 version.cmake 中 set_cann_package(ops_math VERSION "9.1.0") 调整为 "9.2.0"。编译依赖与运行时依赖(runtime/opbase/metadef/ge-compiler/bisheng-compiler/asc-devkit/ge-executor 等 >=8.5)保持不变。 ## 关联的Issue #3003 ## 测试 版本号变更仅影响打包元信息,编译验证通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:版本升级 See merge request: cann/ops-math!5298 | 2 months ago |
🔥Latest News
- [2026/07] 新增支持Huawei Ascend 950系列算子及新特性,涵盖CumulativeLogSumExp、MatrixSetDiagV2、DropoutV3Grad、SignBitsUnpack、ProdVirialSeA等算子;引入FLOAT8/FLOAT4低精度类型支持、Philox PRNG随机数生成、Reg接口迁移等新特性。
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR&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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。