本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
ci(workflows): fix compile comment trigger regex Co-authored-by: wangyunxiang<wangyunxiang6@h-partners.com> # message auto-generated for no-merge-commit merge: !6527 merge fix/compile-trigger-regex into master ci(workflows): fix compile comment trigger regex Created-by: wangyunxiang1 Commit-by: wangyunxiang Merged-by: cann-robot Description: ## 变更说明 将 PR 评论触发编译的正则从 '^(?:\/)?compile*' 统一修改为 '^/?compile(@\S+)?$'。 旧正则问题: 1. * 作用于字符 e(compile 后可跟任意个 e),并非匹配任意后缀; 2. 未做行尾锚定,任何以 compile 开头的评论(如 compiler、compile 请重跑)都会误触发编译流水线;且不支持 @机器人 语法。 新正则精确匹配 compile / /compile,允许可选的 @用户名 后缀。 See merge request: cann/ops-math!6527 | 4 days ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 6 days ago | |
fix(onnx_plugin): 删除ScatterND重复注册,避免与nn仓插件冲突 Co-authored-by: zhang-wenbo-beat<zhangwenbo67@huawei.com> # message auto-generated for no-merge-commit merge: !7160 merge fix/remove-scatternd-onnx-plugin into master fix(onnx_plugin): 删除ScatterND重复注册,避免与nn仓插件冲突 Created-by: zhang-wenbo-beat Commit-by: zhang-wenbo-beat Merged-by: cann-robot Description: ## 描述 math 仓 common/src/framework/similar_opp_onnx_plugin.cpp 中重复注册了 ONNX ScatterND 插件,共 10 条(opset 8/10/11/12/13/14/15/16/17/18),全部映射到 TensorScatterUpdate。nn 仓同样注册了 ScatterND 插件,两仓插件同时加载时发生重复注册冲突,导致 nn 仓的 ScatterND 插件失效。 本次删除 math 仓上述全部 10 条 ScatterND 注册,ScatterND 由 nn 仓统一注册提供。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4547 ## 测试 - cmake --build build --target oponnx_plugin_math_obj -j 8:编译通过([100%] Built target oponnx_plugin_math_obj) - grep -rn "ScatterND" common/src/framework/similar_opp_onnx_plugin.cpp:无残留 - git diff:仅删除 10 行注册,无其他代码变更(1 file changed, 10 deletions(-)) - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7160 | 4 days ago | |
fix(space_to_batch): 补充 BF16 支持与入参/溢出校验,修正 golden 与 README 批次映射 Co-authored-by: guyunlong1<guyunlong1@huawei.com> # message auto-generated for no-merge-commit merge: !7096 merge fix/issue-4456-space-to-batch-hardening-20261104T150000Z-4456 into master fix(space_to_batch): 补充 BF16 支持与入参/溢出校验,修正 golden 与 README 批次映射 Created-by: guyunlong1 Commit-by: guyunlong1 Merged-by: cann-robot Description: ## 描述 针对 Issue #4456 对 SpaceToBatch 进行质量加固: - 新增 BFLOAT16 数据类型支持( op_host/space_to_batch_def.cpp、op_graph/space_to_batch_proto.h、README.md); - Tiling:校验输入 x 各维度必须为正;H_padded/W_padded/输出 N 改为带溢出检查的加法/乘法;补 perCoreCount 零值保护; - InferShape:校验 paddings 元素个数为 [2,2];校验维度为正及 padding 后可被 block_size 整除;增加溢出保护; - Kernel:索引与计数 uint32→uint64,避免大 shape 截断;perCoreCount 为 0 时提前返回; - README:修正输出批次映射公式(n=n_out%N、rem=n_out/N、bh=rem/bs、bw=rem%bs); - GEIR 样例:文件改二进制读写,补充错误处理与资源释放; - golden:TensorFlow 优先 + Torch fallback,补充 __spec__/third_party/tolerance; - UT:新增零 N/H/C 维失败用例。 ## 关联的Issue Closes #4456 https://gitcode.com/cann/ops-math/issues/4456 ## 测试 - clang-format --style=file --dry-run --Werror(仓库 .clang-format,clang-format 18.1.8):通过 - python3 -m py_compile conversion/space_to_batch/tests/assets/golden.py:通过 - 提交前 pre-commit(trailing-whitespace、end-of-file-fixer、clang-format、ruff、codespell、OAT 等):全部通过 - 未在隔离 worktree 重新构建 UT(当前 CMake 配置 ENABLE_TEST=OFF),由 CI 编译验证 ## 文档更新 更新 conversion/space_to_batch/README.md 与 op_graph/space_to_batch_proto.h 注释。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7096 | 1 day ago | |
fix(space_to_batch_nd): 修复padding越界拷贝、空张量golden异常及静态检查治理 Co-authored-by: guyunlong1<guyunlong1@huawei.com> # message auto-generated for no-merge-commit merge: !7036 merge fix/space_to_batch_nd-4421 into master fix(space_to_batch_nd): 修复padding越界拷贝、空张量golden异常及静态检查治理 Created-by: guyunlong1 Commit-by: guyunlong1 Merged-by: cann-robot Description: ## 描述 长尾算子质量加固中的 space_to_batch_nd(Ascend950 / arch35)修复与静态检查治理: - 修复 padding 越界拷贝:有效范围计算 absMax、bcEnd 采用截断除法,底部 padding 块(padTop + spatial - 1 - blockIdx < 0)被截断为 0 而误判有效,导致越界读取输入并写入 padding 区。 - 修复 CopyInKey4 未按有效范围裁剪 dim(ubAxis+1):原实现直接按 outShape[ubAxis+1] 复制多个平面,padding 平面被相邻行数据填充。 - 修复空张量 golden:对 0 尺寸维调用 PyTorch F.pad 抛 "negative output size",改为空张量提前按语义解析输出 shape。 - 静态检查 / 健壮性:新增 SafeAddI64 / SafeMulI64 / SafeMulU64 溢出保护,tiling 辅助函数返回 ge::graphStatus 并通过 OP_CHECK_IF 传播;补充显式 static_cast 消除有符号/无符号及窄化告警;kernel DataCopy/LoopMode 参数改 int64;补充 paddings/block_shape/rank 参数校验;拆分 MAX_INPUT_RANK、MAX_RANK = MAX_SPATIAL + 2;proto 补充 bool / complex32 类型声明。 - 测试:新增 tiling / infershape / kernel UT;golden 新增tf三方比对,type不支持回退到numpy。 ## 关联的Issue Closes #4421 https://gitcode.com/cann/ops-math/issues/4421 ## 测试 - 构建:bash build.sh --pkg --soc=ascend950 --ops=space_to_batch_nd -j16 通过 - TTK Kernel L0_001~005:5/5 PASS - TTK GEIR 动态 shape(-d)L0_001~005:5/5 PASS ## 文档更新 - README.md、docs/zh/op_list.md 更新算子空间维度支持说明(1~7 个空间维度,输入张量秩 2~8)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7036 | 3 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 5 days ago | |
文档里产品名统一化+规范化修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7136 merge master into master 文档里产品名统一化+规范化修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 文档里产品名统一化+规范化修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7136 | 5 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 5 days ago | |
abs算子complex64数据类型代码特殊场景精度修复 Co-authored-by: qq_52874943<gaomingyuan3@h-partners.com> # message auto-generated for no-merge-commit merge: !7201 merge master into master abs算子complex64数据类型代码特殊场景精度修复 Created-by: qq_52874943 Commit-by: qq_52874943 Merged-by: cann-robot Description: ## 描述 修复 math/abs/op_kernel/arch35/abs_complex_dag.h 中 complex64(T=float)路径在特殊场景下的精度错误。 原实现先取 vA = max(|re|,|im|)、vB = min(|re|,|im|),再通过"提取 A 的指数因子"位运算(ShiftRights/ShiftLefts + Sub + Add)做归一化:vA1 = A/2^k 正确,但 vB1 = (B - 2^k) + 1.0 并非正确的 B/2^k,仅在 A ∈ [1,2)(k=0)时成立。当实/虚部量级相差较大或 A 的指数不为 0(两分量落在不同 binade)时,结果与真实 sqrt(A²+B²) 偏差显著(示例:A=3.0, B=1.0 时 kernel 得 4.0,真实值 ≈3.162,相对误差约 26.5%)。 本次改动改为标准数值稳定公式: |z| = vA · sqrt(1 + (vB/vA)²) - 删除原指数因子提取块,新增 Reg::Div(vA1, vB, vA, preg) 直接计算比值 vA1 = vB/vA ∈ [0,1); - 归一化值改为 vSumSq = 1 + (vB/vA)²; - 最终结果 vResult = vA · sqrt(vSumSq); - subnormal 输入的 2^24 scale up/down 处理、vB == 0 时结果直接取 vA 的边界处理保持不变; - complex32 路径不涉及本次改动。 该公式避免了对大数做 A²+B² 的直接平方和以及位运算归一化在大动态范围下的精度损失,各量级场景下精度均与 CPU 参考一致。 ## 关联的Issue fix https://atomgit.com/cann/ops-math/issues/4607 ## 测试 - arch35 二级冒烟(complex64):覆盖实/虚部同量级、量级相差多个数量级(跨 binade)、subnormal 输入、B=0 边界等场景,与 CPU 参考 sqrt(A²+B²) 比对通过; - complex32 路径回归:本次未改动该路径,回归结果不变; - 算子泛化:abs complex64 泛化用例在 arch35 上精度无回归。 ## 文档更新 无。本次为 kernel 内部精度修复,不涉及 README 或接口文档变更。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7201 | 1 day ago | |
修复 ops-math 接口文档扫描问题(错别字/标点/多字,59条/47文件) Co-authored-by: liujing987913<liujing407@h-partners.com> # message auto-generated for no-merge-commit merge: !7161 merge master into master 修复 ops-math 接口文档扫描问题(错别字/标点/多字,59条/47文件) Created-by: liujing987913 Commit-by: liujing987913 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 背景:大模型扫描发现 ops-math 接口文档问题 59 条(63 处) - 修改分类:多字/中文多字 41、同音字 6、引号未成对 10、术语拼写 2 - 涉及文件:docs/zh 及 math/conversion/random 下 47 个接口文档 md - 验证:git diff 确认为纯文本替换(63 处),无结构变化;已人工复核 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/4554 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 本次 PR 更新了 ops-math 接口文档 47 个 md 文件(docs/zh、math/、conversion/、random/ 下),修正错别字/标点/多字共 63 处,详见 diff。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7161 | 4 days ago | |
fix(package): 卸载es_math时设置PIP_BREAK_SYSTEM_PACKAGES兼容PEP 668环境 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !7189 merge master into master fix(package): 卸载es_math时设置PIP_BREAK_SYSTEM_PACKAGES兼容PEP 668环境 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 在 opp_uninstall.sh 的 whl_uninstall_package() 函数中新增 export PIP_BREAK_SYSTEM_PACKAGES=1,使 pip3 在 PEP 668(externally-managed-environment)保护的系统(如 Ubuntu 23.04+、Debian 12+ 等新版发行版)上卸载 es_math 包时不再被 pip 拦截,卸载脚本可正常完成。 ### 改动原因 pip 23.0+ 遵循 PEP 668 规范,在标记为 externally-managed 的系统环境中执行 pip3 uninstall 会直接报错退出,导致 ops-math 卸载脚本在此类系统上卸载 es_math 失败。 ### 改动方法 在执行 pip3 uninstall 前导出环境变量 PIP_BREAK_SYSTEM_PACKAGES=1,仅对当前卸载进程生效,不修改系统 pip 配置。 ## 关联的Issue - #4594 ## 测试 在启用 PEP 668 保护的系统环境上执行 ops-math 卸载脚本,验证 es_math 包可正常卸载,脚本退出码为 0。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7189 | 4 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 | |
fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !7056 merge master into master fix: math仓支持ut asan检查,适配asan版本的tiling so库. 暂时下掉有问题用例 Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 ASAN 流水线生成 op_kernel tiling 头文件时的运行库加载顺序错误。ASAN 模式下,在启动 Python 前预加载当前编译器对应的 libasan.so,并仅对头文件生成进程关闭泄漏检测,避免 Python/TBE 退出时的泄漏报告阻断构建。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4373 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ASAN 模式下,流水线日志中失败的 13 个 tiling 头文件生成目标均构建成功。非 ASAN 模式 CMake 配置、脚本语法检查、git diff --check 和 pre-commit 检查均通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7056 | 6 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 | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 5 days ago | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 6 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 | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 6 days 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 | |
文档里产品名统一化+规范化修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7136 merge master into master 文档里产品名统一化+规范化修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 文档里产品名统一化+规范化修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7136 | 5 days ago | |
文档里产品名统一化+规范化修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7136 merge master into master 文档里产品名统一化+规范化修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 文档里产品名统一化+规范化修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7136 | 5 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 | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7085 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第一批,共23个被其他译稿引用的文件):根README_en.md、CONTRIBUTING_en.md、SECURITY_en.md,以及circular_pad_grad/identity/pad系列/reflection_pad3d_grad、examples四个示例、ge控制流算子(merge/switch/ref系列/temporary_variable)、segsum、aclStft、aclRfft1D、hans_encode/tests等译稿。 本批为后续批量英文文档提交做前置:本批文件合入master后,其余译稿中的仓内链接(均指向master已有文件或本批文件)即可生效,避免链接失效拦截。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(第一批内全部相对链接仅指向master已有文件或本批新增文件),并逐篇完成翻译规范自查与语义审查。 ## 文档更新 新增23个英文译稿文件(*_en.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7085 | 6 days 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 | |
ut 覆盖率修正 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !7132 merge ut_conv into master ut 覆盖率修正 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ut 覆盖率修正 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/4516 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及代码修改 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7132 | 5 days ago | |
fix: preserve failed command status in dependency installer Co-authored-by: gaopengcheng<gaopengcheng13@huawei.com> # message auto-generated for no-merge-commit merge: !7046 merge fix/3660-install-deps-exit-status into master fix: preserve failed command status in dependency installer Created-by: guduid Commit-by: gaopengcheng Merged-by: cann-robot Description: ## 描述 install_deps.sh 的 run_command 使用 if ! output=$("$@" 2>&1),在失败分支读取 $? 时拿到的是 ! 取反后的状态 0。因此安装命令失败时,诊断日志显示 Exit code: 0,安装脚本也以成功状态退出,调用方无法识别依赖安装失败。 改为普通 if ...; then ... else ... fi:成功时返回 0;失败时在 else 入口立即保存原始退出码,保留原有命令及合并输出诊断,并以原始非零状态终止脚本。set -euo pipefail 和参数逐项传递保持不变。 仅修改 install_deps.sh 中的 run_command。已有 !3865 修改的是管道/source 调用方式,没有覆盖本次退出码捕获问题。 ## 关联的Issue Fixes #3660 https://gitcode.com/cann/ops-math/issues/3660 ## 测试 基线:master,8c9b6bd5a5efedc02d6b9a9e57c80757d76f28a4。 独立 clone / Python venv,在真实 Bash 的 set -euo pipefail 环境中执行从当前源文件原样提取的函数,不执行安装脚本的 main。 - 修复前:6 项检查中 **4 failed / 2 passed**,退出码 1、17、255、命令不存在时的 127 均被错误传播为 0。 - 修复后:**6 passed**;检查上述四种失败状态、stdout/stderr 诊断保留、失败后不执行后续语句,以及成功命令继续执行、含空格和通配符参数保持原样。 - bash -n install_deps.sh、git diff --check 通过。 - 仓库原配置 pre-commit run --files install_deps.sh 的全部适用检查通过,包含 codespell 和 OAT(实际扫描 1 个文件)。 在仓库根目录可使用以下无副作用命令复查退出码传播: bash python3 - <<'PY' from pathlib import Path import re import subprocess source = Path('install_deps.sh').read_text() function = re.search(r'^run_command\(\) \{\n.*?^\}', source, re.M | re.S).group(0) script = 'set -euo pipefail\n' + function + '\nrun_command bash -c "$1"\n' for code in (0, 1, 17, 127, 255): result = subprocess.run( ['bash', '-c', script, 'check', f'echo child-output; exit {code}'], capture_output=True, text=True, check=False) assert result.returncode == code, (code, result.returncode, result.stdout) print('exit status checks passed') PY 未调用 apt/dnf/yum/brew 或修改系统依赖;未声称完成全平台安装验证、算子编译或 NPU 测试。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7046 | 6 days 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 | |
opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !6989 merge master into master opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 opkernel 单独构建跳过 GenerateEsPackage 与 add_es_library_and_whl ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6989 | 6 days ago |
🔥Latest News
- [2026/07] Added support for operators and new features of the Huawei Ascend 950 series, covering operators such as CumulativeLogSumExp, MatrixSetDiagV2, DropoutV3Grad, SignBitsUnpack, and ProdVirialSeA; introduced new features such as FLOAT8/FLOAT4 low-precision type support, Philox PRNG random number generation, and Reg API migration.
- [2026/01] Added QuickStart, which guides beginners to get started with operator project deployment from scratch (Docker environment supported) and with the operator development and contribution workflows.
- [2025/12] Open-source operators support the Ascend 950PR&950DT products, and you can develop and debug them with the CANN Simulator simulation tool. A <<<>>> kernel heterogeneous invocation example is added to the add operator, making it convenient for you to customize and use it. Newly supported operators in multiple categories include concat, lerp, and drop_out_v3.
- [2025/11] Improved the README descriptions of multiple operators, and improved the operator development sample documents and examples.
- [2025/10] Added the experimental directory, improved the contribution guide, and enabled developers to debug and contribute custom operators.
- [2025/09] The ops-math project went online for the first time.
🚀Overview
ops-math is a basic operator library that provides numerical computation in the CANN (Compute Architecture for Neural Networks) operator library. It includes conversion-class, math-class, and random-class operators, covering scenarios such as tensor shape transformation, basic mathematical operations, and random number generation. The position of the sub-library in the architecture diagram is as follows.

📌Version Compatibility
The source code of this project is released together with CANN software versions. For the mapping between CANN software versions and the tags of this project, refer to the corresponding version notes in the release repository. Note that to ensure smooth custom development based on the source code, select a compatible CANN version and GitCode tag source code. Using the master branch may cause version mismatch risks.
🛠️Environment Preparation
Environment deployment is a prerequisite for experiencing the capabilities of this project. Install the NPU driver and CANN package first, and ensure the environment works properly.
⬇️Source Code Download
After the environment is ready, download the branch source code that matches the CANN version. The general command is as follows, where ${tag_version} is replaced with the branch tag name. The following uses the download of the 9.0.0 branch source code as an example:
# General command: 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
Note: If the matching branch source code already exists in the environment, you can skip this step. For example, CANNLab provides the source code corresponding to the latest CANN version by default.
📖Learning Tutorials
- Quick start: Quickly experience the core basic capabilities of the project from scratch, covering source code compilation, operator invocation, development, debugging, and other operations.
- Advanced tutorials: If you need to deeply understand project compilation and deployment, operator invocation, development, debugging and tuning, and other capabilities, go to the documentation center for detailed guidance.
💬Related Information
PS: The features and documentation of this project are continuously updated and improved. Stay tuned for the latest version.
- Issue feedback: Submit issues through GitCode Issues.
- Community interaction: Join discussions through GitCode Discussions.
- Technical column: Read technical articles through GitCode Wiki.