本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
fix(ci): 恢复ascend950包编译参数为16 Co-authored-by: zhanghedong<zhanghedong@huawei.com> # message auto-generated for no-merge-commit merge: !6857 merge fix/a5-compile-j8 into master fix(ci): 恢复ascend950包编译参数为16 Created-by: zhanghedong Commit-by: zhanghedong Merged-by: cann-robot Description: ## 描述 ascend950 TopkV2 算子编译已优化。本改动将 包编译并发恢复为16,增加同时运行的编译任务。 - .gitcode/scripts/compile.sh 的 调用参数从 -j8 改为 -j16。 - scripts/ci/compile_a5_pkg.sh 中普通算子、experimental 算子及全量 JIT 打包三处实际 build.sh 命令均改为 -j16。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4139 ## 测试 - 重跑实际编译,未触发OOM。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6857 | 11 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 | 14 days ago | |
topk_fusion_pass Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !6207 merge TopKFusionPass into master topk_fusion_pass Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 本 PR 在 math/topk/op_graph/fusion_pass 下新增旧版 fe::TopKFusionPass 重构的 TopKFusionPass(新 PatternFusionPass 框架 + ES 接口),将 TopK/TopKV2 替换为 AICore 优化路径,并按 opp 算子信息库实况覆盖构建矩阵内全部芯片家族。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4203 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 二级冒烟通过 - 相关topk的geir用例验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6207 | 10 days ago | |
fix: 【ReplicationPad3dBackward】Atlas A2/A3上AiCore dtype负padding提前拦截返回161002 Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !6940 merge personal/wjc/issue3965 into master fix: 【ReplicationPad3dBackward】Atlas A2/A3上AiCore dtype负padding提前拦截返回161002 Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> #3965 反馈:Atlas 910B 上调用 aclnnReplicationPad3dBackward 传入负 padding(如 self=[1,1,4,5,6]、padding=[-1,1,0,2,1,0])时,接口第一阶段不报参数错误,执行后在设备侧产生运行时错误(sync error 507035),且无有效报错信息。 根因:mode=replication + Ascend910B/910_93 + FLOAT16/FLOAT32/BFLOAT16 的组合会分派到 arch22 AiCore kernel,其内部以无符号类型处理 padding,负 padding 被当作超大数,导致设备侧越界访问。 改动方法: - 在 op_api 第一段(GetWorkspaceSize)的 CheckShape 中新增拦截:命中上述分派组合且 padding 含负值时,记录日志并返回 ACLNN_ERR_PARAM_INVALID(161002),不再进入执行阶段。拦截条件与 padv3grad.cpp 中 IsAiCoreSupportReplication3D 的分派条件严格一致:DOUBLE/COMPLEX64/COMPLEX128 走 AICPU 的路径不受影响,非 910B/910_93 产品不受影响,replication_pad1d/2d_backward 及 reflect 模式不受影响。 - 同步更新文档 aclnnReplicationPad3dBackward.md:参数表补充 A2/A3 产品上 FLOAT16/FLOAT32/BFLOAT16 输入时 padding 各元素须大于等于 0 的约束;错误码表 161002 新增对应子项。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - https://gitcode.com/cann/ops-math/issues/3965 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 新增 UT 2 例(test_aclnn_replication_pad3d_backward_l2.cpp): - case_negative_padding_arch22_aicore_dtype:复刻 issue 复现参数(self=[1,1,4,5,6],padding=[-1,1,0,2,1,0],FLOAT),断言第一段返回 ACLNN_ERR_PARAM_INVALID; - case_negative_padding_arch22_double_not_intercepted:同参数 DOUBLE dtype,断言第一段正常返回,锚定 AICPU 路径不受新拦截影响。 - 两例均按 GetCurrentPlatformInfo 门控,仅在 910B/910_93 环境执行,其他环境自动跳过。 - pre-commit(含 OAT 合规检查)对本次改动的 3 个文件全部通过。 - 继承性atk测试通过 -  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新 conversion/pad_v3_grad_replication/docs/aclnnReplicationPad3dBackward.md:参数表 padding 约束、错误码表新增子项。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6940 | 8 days ago | |
docs: fix QUICKSTART printf/DumpTensor reference chapter paths Co-authored-by: 豆豆943<dou12345622@qq.com> # message auto-generated for no-merge-commit merge: !5570 merge pr-2891-fix-quickstart-refs into master docs: fix QUICKSTART printf/DumpTensor reference chapter paths Created-by: weixin_73161469 Commit-by: 豆豆943 Merged-by: cann-robot Description: ## 背景 cann/ops-math#2891 报告 docs/QUICKSTART.md 中 printf 与 DumpTensor 的参见章节路径「算子调测API > ...」在《Ascend C API》目录中不存在。 ## 改动要点 - printf:参见章节修正为「Ascend C算子开发接口 > Utils API > 调测接口 > printf」(对应 api/Utils-API/tuning_interface/printf.md)。 - DumpTensor:参见章节修正为「Ascend C算子开发接口 > SIMD API > 基础API > 调试接口 > 上板打印 > DumpTensor」(对应 api/SIMD-API/basic_api/debug_interface/onboard_print/DumpTensor.md)。 章节归属依据 asc-devkit 官方 API 目录(utils_api_list.md 表7 调测接口、basic_api_list.md 调试接口 > 上板打印),并与 cann/ops-transformer docs/QUICKSTART.md 的既有写法保持一致。 ## 验证 - 纯文档改动,2 行; git diff --check 无空白错误。 - 改动后路径与 asc-devkit 文档树逐级核对一致。 Closes #2891 See merge request: cann/ops-math!5570 | 10 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 | 28 days ago | |
[Docs] 修正中文提示、Cosh 参数及 Pow2 文档示例 Co-authored-by: chensi79<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !6834 merge docs/issues-4190-4189-20261029-195900-P0800 into master [Docs] 修正中文提示、Cosh 参数及 Pow2 文档示例 Created-by: chensi79 Commit-by: chensi79 Merged-by: cann-robot Description: ## 描述 中文接口列表的提示块显示英文 Note,Cosh 参数说明不完整,Pow2 输出形状说明误用了不存在的 self 参数。本次将提示标题改为“说明”,补全 Cosh 输入、输出含义并统一参数名,同时明确 Pow2 的输出形状由 x1 与 x2 按广播规则推导,并给出 [2,1] 与 [1,3] 广播得到 [2,3] 的示例。 Pow2 调用示例补全 testFp32() 的成功返回值,并添加 main() 入口返回其执行状态,使示例与独立可执行文件的编译教程一致。 ## 关联的Issue Closes #4190 Closes #4189 Closes #4227 Closes #4228 ## 测试 - 中文说明及 Cosh 参数表的原有 Markdown 渲染结构检查通过。 - Pow2 参数表结构检查通过:仅修改 out 的使用说明单元格;广播示例通过 NumPy broadcast_shapes 和 power 核对。 - Pow2 调用示例静态核对通过:补全成功返回与 main 入口,入口直接返回 testFp32() 的执行状态,代码围栏结构保持完整;未执行真实 CANN 编译或 NPU 运行。 - git diff --check、pre-commit(含 OAT)通过。 - 纯文档修改,未运行算子编译及 NPU 测试;GitCode 最终页面展示待在线复核。 ## 文档更新 - docs/zh/op_api_list.md:使用与现有中文文档一致的“说明”引用块。 - experimental/math/cosh/README.md:明确 self 为输入数据,out 保存逐元素双曲余弦结果。 - experimental/math/pow2/docs/test_aclnn_pow2.md:将 out 的 shape 说明改为 x1、x2 的共同广播形状,并补充示例;补全调用示例的成功返回和程序入口。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6834 | 11 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 | 15 days ago | |
feat: AngleV2算子新增ascend960dt平台适配 | 5 days ago | |
fix: 修复 stateless_random_uniform_v3 与 stateless_random_choice_with_mask 样例运行期问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !6997 merge fix/ops-math-20261102-102928-ops-math-stateless-random-choice-with-mask-stateless-ran into master fix: 修复 stateless_random_uniform_v3 与 stateless_random_choice_with_mask 样例运行期问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 两个样例此前仅以 --noexec 验证过编译(!5867),实际运行均失败,本 PR 修复运行期问题: ### 一、stateless_random_uniform_v3 eager 样例运行失败(Run failed: 561103) - 复现:bash build.sh --run_example stateless_random_uniform_v3 eager --example_name=stateless_random_uniform_v3 --soc=ascend950 - 失败链路:RandomTilingParseArch35 GetHardwareInfo Failed, vectorCoreNum:0 → tiling compile info parse failed → InitTilingParseCtx failed → Run failed: 561103 - 根因:样例使用裸 l0op 执行器直调(CREATE_EXECUTOR + l0op::StatelessRandomUniformV3 + executor->Run()),不经过 aclnn 两段式接口,L2 线程上下文(AIC/AIV 核数)未被初始化(正常由 aclnn 层 InitL2Phase1Context/L2_DFX_PHASE_1 填充);执行期 TilingParse 获取的平台信息 vector_core_cnt 被覆写为 0,tiling parse 校验失败。 - 修改:样例在调用 l0op 前补 InitL2Phase1Context("StatelessRandomUniformV3", nullptr); ### 二、stateless_random_choice_with_mask graph 样例输入构造缺陷 - 该算子仅提供图模式样例(无 op_api/aclnn 入口,eager 提示 does not have eager examples 属预期);graph 运行失败已由 !6835(OutputShapeDependOnCompute 注册)修复。 - 本次排查发现样例自身缺陷:BOOL 输入 x 用 GenOnesDataFloat32 生成(float 1.0f 小端前两字节为 0x00),x 实际全为 false,输出恒为全 padding、mask 全 false,样例演示无意义;且 y/mask 输出 desc 形状与 count=3 不一致。 - 修改:x 改用 ADD_INT_INPUT 生成(int32 缓冲小端首字节 0x01 → x=[true,false],与 concat 样例 BOOL 生成方式一致),y/mask 输出 desc 对齐 count=3({3,1}/{3})。 ## 关联的Issue #4399 ## 测试 (Ascend950PR_9579,CANN 9.3.0~weekly.20261028.01,本 PR head 559fa3c9) 1. bash build.sh --run_example stateless_random_uniform_v3 eager --example_name=stateless_random_uniform_v3 --soc=ascend950:StatelessRandomUniformV3 test passed! / execute samples success(修复前 Run failed: 561103) 2. 本仓 HEAD 构建 vendor 包(build_out/cann-ops-math-*.run 安装至 vendors)后 bash build.sh --run_example stateless_random_choice_with_mask graph --example_name=stateless_random_choice_with_mask --soc=ascend950:execute samples success,实际输出 y=[0,0,0]/mask=[1,0,0](x=[true,false]、count=3 → 1 个有效索引 + 2 个填充,语义正确;修复前输出恒为全 padding、mask 全 false) 3. pre-commit 全钩子(clang-format/codespell/OAT 合规等)通过 说明:本地默认内置算子包为 10-28 构建(早于 !6835),该环境下 graph 样例需安装与本仓代码匹配的包后运行;本 PR 仅修改两份样例代码,不涉及算子 op_host/op_kernel,无算子行为影响。 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6997 | 8 days ago | |
coalesce_sparse/cummin适配960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6776 merge backBlue1 into master coalesce_sparse/cummin适配960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 CoalesceSparse、Cummin 两个算子新增 Ascend960DT(NpuArch::DAV_9201)平台支持,使二者可在 Ascend960DT 上完成注册、编译与运行。 具体改动: - CoalesceSparse(conversion/coalesce_sparse): - 在 op_host/coalesce_sparse_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicore_config),完成 Ascend960DT 计算单元注册;同时对输入/输出 DataType、Format、UnknownShapeFormat 的换行格式做统一整改,并补齐文件末尾换行。 - 在 op_host/coalesce_sparse_tiling.cpp 的 TilingKeyCalcu、TilingDataCalcu 中,将 isAscend950 判定由仅 DAV_3510 扩展为 DAV_3510 || DAV_9201,使 Ascend960DT 复用 Ascend950 的 tiling key 与多核任务切分逻辑。 - 新增 op_host/config/ascend960dt/coalesce_sparse_binary.json,覆盖 12 组 dtype 组合(unique_len/unique_indices 为 int64/int32,indices 为 int64/int32,values 为 float32/float16/int32);新增 coalesce_sparse_simplified_key.ini(default=0)。 - Cummin(math/cummin): - 在 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 在 op_host/cummin_def.cpp 中新增 AddConfig("ascend960dt", aicoreConfig),并补齐文件末尾换行。 - 新增 op_host/config/ascend960dt/cummin_binary.json,覆盖 float16/bfloat16/float32/int32 四组 dtype(输入输出同 dtype,另输出 int32 的 argmin);新增 cummin_simplified_key.ini(default=0)。 - 二进制配置:在 scripts/kernel/binary_config/ascendc_config.json 中,为 CoalesceSparse 的 compute_units 增加 ascend960dt 并补充 ascend960dt 的 compile_options(-mllvm -cce-aicore-dcci-before-kernel-end=false);为 Cummin 的 compute_units 增加 ascend960dt。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 CoalesceSparse、Cummin 在 Ascend960DT 下均能正常注册与编译,并生成对应 kernel 二进制。 - 二进制/交付件验证:确认两算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含对应的 ascend960dt 编译单元。 - 功能验证:在 Ascend960DT 上分别运行两算子的 aclnn 用例,覆盖各自 binary 配置中的 dtype 与 shape 组合,结果与 Golden 一致。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6776 | 11 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 | 20 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 | 25 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 | 25 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 | 17 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 | 13 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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。