本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 4 天前 | |
fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 | 18 小时前 | |
fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !6731 merge refactor/fusion-pass-stub-static into master fix: 桩 registrar 改静态对象登记消除泄漏,惰化路径补 WARN 日志,补登记 Globalavgpoolpass Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 修复 !5140 桩机制的两处遗留问题,并补登记一项搁置的桩: 1. **registrar 堆分配未释放**: STUB_REG_PASS 的 registrar 改为函数内静态对象——ge_compiler 版本满足时构造并登记一次,不满足时不构造;消除 new 出的对象永不释放(ASan dlclose 场景 11 条分配 → 0)。 2. **惰化路径零日志**:版本门控不满足时补 WARN,进程内仅告警一次,区分弱符号未解析与 ge_compiler 版本低于 9.0.0 两种原因;登记行为与不加日志时完全一致。 3. **补登记 Globalavgpoolpass**(STUB_REG_PASS("Globalavgpoolpass", fe::BUILT_IN_GRAPH_PASS, 0x01),FORBIDDEN_CLOSE):!5140 时 math 类名为 GlobalavgpoolPass,大小写与 canndev 旧名(小写 p)不一致而搁置;!5385(10-30)类名对齐为 Globalavgpoolpass 后,桩名 / 类名(REG_FUSION_PASS(Globalavgpoolpass))/ 配置槽位(fusion_config.json、support_fusion_pass.json 3510/5102)三面一致,且 Stage=kCompatibleInherited、在 OPP 3510(ascend950) 白名单内,满足登记条件,补上 !5140 遗留。 4. 全部改动通过 clang-format v18.1.8(pre-commit 门禁)规范。 ## 关联的Issue - 关联 Issue #4352:https://gitcode.com/cann/ops-math/issues/4352(registrar 泄漏与门控静默缺陷) ## 测试 - **差分验证**(新旧同条件编译,五场景:无ACL / 真实ACL / 旧版本8.0.0 / dlclose前后 / -O2):注册输出逐名字一致;符号面未定义引用零删除、强符号导出面一致。 - **ASan/LSan**:泄漏 old=11 条分配 → new=0(修复生效);常驻场景两版均无泄漏报告。 - **950 真机**(run 包解包产物):桩编入(nm 两查通过)、fe 表登记 11/11、桥接闭环 11/11、PR 静态指纹=2(registrar 机制验证,时点为 11 桩清单;新增登记复用同一机制与门控)。 - **新增登记静态核验**:名字/类型/attr 与 canndev 原注册 REG_PASS("Globalavgpoolpass", BUILT_IN_GRAPH_PASS, Globalavgpoolpass, FORBIDDEN_CLOSE) 逐项一致;类名大小写经 !5385 对齐 canndev 旧名;OPP 白名单 3510 含该 pass;Stage=kCompatibleInherited(ge_compiler≥9.0.0),不在 kAfterInferShape 例外清单(对比 Castlike/Histogram)。 - **门禁**:pre-commit 全钩子通过(clang-format / codespell / OAT 合规);--opgraph --soc=ascend950 构建通过;rebase 至最新 master 后 CI 重跑(见下方流水线)。 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6731 | 23 小时前 | |
fix: pre commit problem | 17 小时前 | |
feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6869 merge f1029 into master feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 面向 ops-math RT1.0 → RT2.0 迁移,为本仓 11 个算子补齐 op_graph 侧 InferDataType 推导,并将 op_host InferShape 的边界语义与 RT1.0 对齐(未知秩、非常量 shape、标量等),避免 C1 日落 rt1.0 后图模式推导回归。 ### 改动原因 1. 部分算子只有 InferShape、缺少 InferDataType 注册,图模式下无法完成输出 dtype 推导。 2. 部分 op_host InferShape 与 RT1.0 语义不一致,例如:AsStrided 在 size 非/未知时误用常量值计算甚至越界;Assign 取 value(输入1)而非 ref(输入0);DynamicPartition 只有 InferShapeRange 无 InferShape;Pack/Unpack 将未知秩当已知维计算;ReciprocalGrad 误用 elewise 推导导致广播场景结果错误。 ### 改动方法 1) 新增 op_graph InferDataType(输出 dtype 透传输入 dtype) - 单输出、透传输入 0:Adds、Asin、Power、Assign、TensorMove、ViewCopy - 多输出、逐个透传:Pack、Unpack、DynamicPartition(输入 0 x)、AsStrided(输入 0 x)、StridedSliceGrad(输入 4 dy) - 均为 IMPL_OP(<Op>).InferDataType(...) 注册;op_graph 源码由 cmake/func.cmake 的 file(GLOB_RECURSE ... op_graph/*.cpp) 自动收集,无需改 CMakeLists。 2) op_host InferShape 对齐 - AsStrided:size 张量缺失、size 描述符含未知维/未知秩、GetValueToShape 取常量失败时,输出置未知秩并返回成功(对齐 rt1.0 SetOutputForRank)。 - Assign:输出 shape 改为取输入 0(ref),修复 value 为标量(numel=1)时输出 shape 错误。 - DynamicPartition:新增 InferShape4DynamicPartition(输入未知秩 → 各输出未知秩;输出秩 = x秩 - partitions秩 + 1,第 0 维为 -1,其余维取 x 对应维;partitions 秩大于 x 秩报错),并注册 InferShape + InferShapeRange + OutputShapeDependOnCompute({0})。 - Pack:未知秩输入按通配处理,取首个已知秩输入作为基准,全未知秩则输出未知秩;保留 N 与实例数一致性校验,失败日志改为同时打印基准索引。 - Unpack:输入未知秩时各输出保持未知秩,不再退化为 0 维。 - StridedSliceGrad:shape 输入形状值为 0(前向为 rank-0 标量)时输出 0 维标量,不再报错。 - ReciprocalGrad:InferShape4Elewise → InferShape4Broadcast。 - Adds/Asin/TensorMove/ViewCopy:仅 namespace 注释与格式修正,逻辑不变。 3) 测试 新增 39 个 host 侧 InferShape UT,覆盖未知秩/非常量/标量/广播/失败分支。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4383 ## 测试 - 新增 UT:as_strided 6 例、assign 2 例、concat 7 例、concat_d 4 例、pack 7 例、unpack 6 例、reciprocal_grad 5 例、strided_slice_grad 2 例(共 39 例,全部位于各算子 tests/ut/op_host)。 - 说明:本次流程未在本环境执行编译与 UT 运行,用例已随 PR 提交,需由 CI/本地环境验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6869 | 23 小时前 | |
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 | 21 天前 | |
fix(fresnel_sin): guard null GM base address and cap per-core split lengths Co-authored-by: wang-gang<wanggang414@h-partners.com> # message auto-generated for no-merge-commit merge: !6849 merge fix/fresnel-sin-ci-format into master fix(fresnel_sin): guard null GM base address and cap per-core split lengths Created-by: wang-gang Commit-by: wang-gang Merged-by: cann-robot Description: ## 描述 FresnelSin kernel performs an unchecked GM base address dereference in Init(): for oversized tensors (e.g. 2^32 fp32 elements) the GM allocation may fail and the framework hands over a null base address, so the first CopyIn reads address 0x0 (mSAN reports 2x illegal read of size 1 on GM). The host tiling also stores the per-core split lengths in uint32_t fields while the total element count is int64, which can silently truncate for element counts beyond the uint32 range. Changes: - op_kernel/arch35/fresnel_sin.h: add a null-pointer guard in Init() so the kernel bails out before any GM access, and guard Process() against zero-length work (avoids the loopCount division by zero when Init() returns early). - op_host/arch35/fresnel_sin_tiling.cpp: reject per-core split lengths beyond UINT32_MAX right at the narrowing point in FresnelSinTilingFunc(), so any length that the static_cast<uint32_t> of baseLength/tailLength would silently truncate fails fast in the host tiling with an explicit error, without rejecting large total element counts that the kernel itself supports. The FresnelSinTilingData layout is intentionally unchanged (no uint64 widening of baseLength/tailLength): the new host-side limit makes truncation unreachable, and keeping the layout avoids cross-component compatibility risk. ## 关联的Issue https://gitcode.com/wangyueting/changwei_gaoxiang/issues/18 ## 测试 - pre-commit checks (clang-format 18.1.8, OAT compliance, codespell) verified locally with the same hook versions as CI; the two touched files now pass clang-format --style=file --dry-run -Werror cleanly. - Local environment has no NPU device / CANN toolkit, so the mSAN reproduction (shape (1, 4294967296, 1, 1, 1) fp32) could not be run locally; verification relies on CI plus an mSAN rerun of the L1 upboundary cases. - Static code review: OP_CHECK_IF/OP_LOGE/UINT32_MAX usage follows existing conventions in this repo (e.g. split_v_tiling.cpp); the guard in Process() prevents a division-by-zero UB on the early-return path; normal-path behavior is unchanged. ## 文档更新 None ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6849 | 23 小时前 | |
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 | 8 天前 | |
fix: 屏蔽RadixTopK用例失败 | 14 小时前 | |
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 | 1 天前 | |
feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Co-authored-by: wuxuening<wuxuening2@huawei.com> # message auto-generated for no-merge-commit merge: !6969 merge br_5162_series_rename into master feat(5162a): 5162 短名/series 更名、reduce 算子注册与 IsSimtSupported 接口 Created-by: wuxuening Commit-by: wuxuening Merged-by: cann-robot Description: ## 描述 **1. 区分 5162 芯片 soc 版本与短名/series 命名**(对齐 MC62/Ascend950 惯例): - soc 版本:保留 Ascend5162A/ascend5162a;短名/series:ascend5162a 更名为 ascend5162 **2. reduce_sum/max/min/mean 算子注册适配 ascend5162**(移植 PR #6504,适配名统一改为 ascend5162): - 4 个 def.cpp 追加 AddConfig("ascend5162", aicoreConfig),复用 950 全量配置(含 B64 类型) - 4 个 CMakeLists 的 SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 追加 ascend5162/arch35 **3. 新增 IsSimtSupported 平台 SIMT 能力查询函数**(common/inc/op_host/tiling_util.h,纯头文件): - 架构白名单 {DAV_3510, DAV_5102, DAV_9201, DAV_9202},DAV_5162 等无 SIMT 硬件的架构返回 false - DAV_ 常量经 opbase op_const_def.h 解析(旧版 CANN 兼容),TilingParseContext/TilingContext 双重载 - 参考 cann/opbase PR #1065 评审意见,与 ops-nn/ops-cv 仓实现保持一致 ## 测试 - pre-commit 全量 hook 通过 - IsSimtSupported g++ 语法校验与双重载实例化 0 error ## 文档更新 无 See merge request: cann/ops-math!6969 | 1 天前 | |
设置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 | 4 个月前 | |
fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 | 18 小时前 | |
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 个月前 | |
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 个月前 | |
迁移开源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 | 2 个月前 | |
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 | 18 天前 | |
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 | 2 个月前 | |
工程框架支持兼容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 | 19 天前 | |
产品名变更 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 个月前 | |
init | 1 年前 | |
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 | 1 个月前 | |
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 | 10 天前 | |
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 个月前 | |
【描 述】 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 个月前 | |
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 个月前 | |
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 个月前 | |
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 | 7 天前 | |
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 | 3 个月前 | |
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 个月前 | |
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 个月前 |
🔥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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。