本项目是CANN提供的高性能稀疏矩阵计算的算子库,专注于优化稀疏矩阵的计算效率。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[需求]: 新增ops-sparse仓PR/issue模板 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !9 merge master into master [需求]: 新增ops-sparse仓PR/issue模板 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: wangzitao_leo Description: ## 变更描述 / Description 新增ops-sparse仓PR/issue模板 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues - Closes [#5](https://gitcode.com/cann/ops-sparse/issues/5) - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-sparse!9 | 2 个月前 | |
feat: 新增 sparse 算子开发 agent 工作流 Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !35 merge agent into master feat: 新增 sparse 算子开发 agent 工作流 Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 sparse 算子开发 agent 工作流 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> #78 > Issue 链接:https://gitcode.com/cann/ops-sparse/issues/78 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!35 | 15 天前 | |
fix: build.sh --run 将不支持当前架构的算子标记为 skipped 而非 failed (#93) Co-authored-by: zhanghua145<zhanghua25@mails.ucas.ac.cn> # message auto-generated for no-merge-commit merge: !56 merge fix/skip-unsupported-ops into master fix: build.sh --run 将不支持当前架构的算子标记为 skipped 而非 failed (#93) Created-by: zhanghua145 Commit-by: zhanghua145 Merged-by: cann-robot Description: ## 修复内容 修复 #93 :build.sh --run 在测试二进制不存在时,将不支持当前架构的算子标记为 failed 而非 skipped,导致测试汇总误报失败。 ### 原因分析 - spmv 仅在 src/spmv/arch22/ 下有实现,ascend950(arch35)无对应源码 - CMake 构建阶段已正确跳过 spmv,但 build.sh 的 --run 逻辑在发现测试二进制不存在时直接判定为 failed ### 修复方案(参考 ops-blas 仓的 skip 机制) 1. cmake/test.cmake:跳过算子时写入 skipped_tests.list 2. test/CMakeLists.txt:初始化 skipped_tests.list 3. build.sh:读取 skip 清单,新增 SKIPPED_OPS 和 print_skip,汇总新增 Skipped 行 ### 验证结果 bash build.sh --run --soc=ascend950 Test Summary: Passed: 4 - csrgeam2 gtsv_interleaved_batch nnz spmm Skipped: 1 - spmv (not supported on ascend950) Failed: 0 See merge request: cann/ops-sparse!56 | 4 天前 | |
Refactor: 仓库目录结构重组,对齐 ops-blas 组织形式 Co-authored-by: zhanghua145<zhanghua25@mails.ucas.ac.cn> # message auto-generated for no-merge-commit merge: !54 merge refactor/dir-restructure into master Refactor: 仓库目录结构重组,对齐 ops-blas 组织形式 Created-by: zhanghua145 Commit-by: zhanghua145 Merged-by: cann-robot Description: ## 变更说明 对齐 ops-blas 仓库的目录组织形式,重组 ops-sparse 目录结构,为后续 sparseLt 功能扩展做好结构准备。 关联 Issue: #95 ### 目录变更 - src/ -> sparse/(git rename,保留完整 git history) - 新增 sparseLt/ 目录 + CMakeLists.txt(占位框架,对齐 blasLt/) - 删除 include/cann_ops_sparse_common.h(内容合并到 cann_ops_sparse.h + aclsparse_host_utils.h) - 新增 include/cann_ops_sparseLt.h(纯 C 框架,include cann_ops_sparse.h,预留 aclsparseLt API) ### 头文件变更 - cann_ops_sparse.h:保持纯 C,无新增 C++ 内容 - aclsparse_host_utils.h:新增 #include "cann_ops_sparse.h" 和 CHECK_ACL 宏(原 common.h 内容) - 源码中 #include "cann_ops_sparse_common.h" 全部替换为 #include "aclsparse_host_utils.h" ### 构建系统变更 - 根 CMakeLists.txt:add_subdirectory(sparse),新增 sparseLt 构建逻辑,install 规则更新 - cmake/test.cmake、test/*/CMakeLists.txt:src/ -> sparse/ 路径引用 - sparse/CMakeLists.txt:日志前缀 [src] -> [sparse] ### 验证 - ascend950 编译通过 - csrgeam2(64 cases)、nnz(29 cases)、spmm(7 cases)、gtsv_interleaved_batch全部测试通过,spmv并非失败,而是不支持arch35  - spmv 仅 arch22 实现,arch35 无源码属预期跳过 See merge request: cann/ops-sparse!54 | 5 天前 | |
update readme and create | 5 个月前 | |
Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge aclsparseSgpsvInterleavedBatch into master Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增 aclsparseSgpsvInterleavedBatch 接口,实现面向 Ascend950(arch35)的五对角批次线性方程组求解。 **算子功能**:批量求解五对角线性方程组 A^(k) · x^(k) = b^(k),其中 A^(k) 为 m×m 五对角矩阵,由 5 条对角线(ds, dl, d, du, dw)定义,数据布局为 row-major interleaved。 **目标芯片**:Ascend950(A5 架构,arch35) **编程模型**:SIMT — 每线程处理 1 个 batch 的完整 m 行扫描,batch 间无数据依赖,通过 grid-stride 支持 batchCount 超过硬件核心数的场景。 **算法**:QR 分解 **接口列表**: - aclsparseSgpsvInterleavedBatch — 求解接口(FP32) - aclsparseSgpsvInterleavedBatch_bufferSizeExt — 工作区大小查询接口 ## 关联 Issue: <!-- Issue 提交后补充链接,格式:[#N](https://gitcode.com/cann/ops-sparse/issues/N) --> https://gitcode.com/cann/ops-sparse/issues/96 ## 测试 **测试框架**:GTest + CSV 参数化 **测试用例**:共 54 条,全部通过 - 正向用例:35条(L0 12 条 + L1 24 条) - 异常用例:19 条(nullptr / 非法参数 / 对齐错误等)  ## 文档更新 - **新增** src/gpsv_interleaved_batch/README.md — 算子接口文档(概述、接口签名、参数说明、约束、调用示例、LU 算法附录) - **修改** include/cann_ops_sparse.h — 追加 gpsv section 接口声明 - **新增** test/frame/fill.h — 追加约 100 行 Pentadiag 矩阵生成器(五对角填充 helper) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!55 | 2 天前 | |
Add sparse operations library implementation Co-authored-by: chenbinbin199309<chenbinbin20@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master Add sparse operations library implementation Created-by: chenbinbin199309 Commit-by: chenbinbin199309 Merged-by: QK_25415 Description: Add sparse operations library implementation See merge request: cann/ops-sparse!2 | 3 个月前 | |
Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge aclsparseSgpsvInterleavedBatch into master Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增 aclsparseSgpsvInterleavedBatch 接口,实现面向 Ascend950(arch35)的五对角批次线性方程组求解。 **算子功能**:批量求解五对角线性方程组 A^(k) · x^(k) = b^(k),其中 A^(k) 为 m×m 五对角矩阵,由 5 条对角线(ds, dl, d, du, dw)定义,数据布局为 row-major interleaved。 **目标芯片**:Ascend950(A5 架构,arch35) **编程模型**:SIMT — 每线程处理 1 个 batch 的完整 m 行扫描,batch 间无数据依赖,通过 grid-stride 支持 batchCount 超过硬件核心数的场景。 **算法**:QR 分解 **接口列表**: - aclsparseSgpsvInterleavedBatch — 求解接口(FP32) - aclsparseSgpsvInterleavedBatch_bufferSizeExt — 工作区大小查询接口 ## 关联 Issue: <!-- Issue 提交后补充链接,格式:[#N](https://gitcode.com/cann/ops-sparse/issues/N) --> https://gitcode.com/cann/ops-sparse/issues/96 ## 测试 **测试框架**:GTest + CSV 参数化 **测试用例**:共 54 条,全部通过 - 正向用例:35条(L0 12 条 + L1 24 条) - 异常用例:19 条(nullptr / 非法参数 / 对齐错误等)  ## 文档更新 - **新增** src/gpsv_interleaved_batch/README.md — 算子接口文档(概述、接口签名、参数说明、约束、调用示例、LU 算法附录) - **修改** include/cann_ops_sparse.h — 追加 gpsv section 接口声明 - **新增** test/frame/fill.h — 追加约 100 行 Pentadiag 矩阵生成器(五对角填充 helper) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!55 | 2 天前 | |
Feat: 实现 sparseLt 库管理接口(Init/Destroy/GetErrorName/GetErrorString) Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !58 merge add_sparseLt_init into master Feat: 实现 sparseLt 库管理接口(Init/Destroy/GetErrorName/GetErrorString) Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 描述 实现 aclsparseLt 库管理接口,包括 aclsparseLtInit、aclsparseLtDestroy、aclsparseLtGetErrorName、aclsparseLtGetErrorString 四个函数。新增 aclsparseLtHandle_t opaque 类型和 aclsparseLtContext 内部结构体,复用 aclsparseStatus_t 状态码。修复 sparseLt target 的 CMake include 路径排序和链接库配置。 ## 关联的Issue [#99](https://gitcode.com/cann/ops-sparse/issues/99) ## 测试 已在本地通过 GTest 单元测试验证全部接口功能,包括 Init/Destroy 生命周期、错误码转换等场景。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!58 | 3 天前 | |
Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Co-authored-by: justsheldon<taoxudong@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge aclsparseSgpsvInterleavedBatch into master Feat: 新增 aclsparseSgpsvInterleavedBatch 五对角批量求解接口(Ascend950/arch35) Created-by: justsheldon Commit-by: justsheldon Merged-by: cann-robot Description: ## 描述 新增 aclsparseSgpsvInterleavedBatch 接口,实现面向 Ascend950(arch35)的五对角批次线性方程组求解。 **算子功能**:批量求解五对角线性方程组 A^(k) · x^(k) = b^(k),其中 A^(k) 为 m×m 五对角矩阵,由 5 条对角线(ds, dl, d, du, dw)定义,数据布局为 row-major interleaved。 **目标芯片**:Ascend950(A5 架构,arch35) **编程模型**:SIMT — 每线程处理 1 个 batch 的完整 m 行扫描,batch 间无数据依赖,通过 grid-stride 支持 batchCount 超过硬件核心数的场景。 **算法**:QR 分解 **接口列表**: - aclsparseSgpsvInterleavedBatch — 求解接口(FP32) - aclsparseSgpsvInterleavedBatch_bufferSizeExt — 工作区大小查询接口 ## 关联 Issue: <!-- Issue 提交后补充链接,格式:[#N](https://gitcode.com/cann/ops-sparse/issues/N) --> https://gitcode.com/cann/ops-sparse/issues/96 ## 测试 **测试框架**:GTest + CSV 参数化 **测试用例**:共 54 条,全部通过 - 正向用例:35条(L0 12 条 + L1 24 条) - 异常用例:19 条(nullptr / 非法参数 / 对齐错误等)  ## 文档更新 - **新增** src/gpsv_interleaved_batch/README.md — 算子接口文档(概述、接口签名、参数说明、约束、调用示例、LU 算法附录) - **修改** include/cann_ops_sparse.h — 追加 gpsv section 接口声明 - **新增** test/frame/fill.h — 追加约 100 行 Pentadiag 矩阵生成器(五对角填充 helper) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!55 | 2 天前 | |
更新 .gitignore 忽略 opencode 相关目录 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !51 merge update-gitignore-opencode into master 更新 .gitignore 忽略 opencode 相关目录 Created-by: xutianze Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 更新 .gitignore,新增忽略 opencode 相关目录(.claude、.opencode、.agent)及配置文件(opencode.json),对齐 ops-blas 仓库的格式规范,避免开发工具产生的中间文件被误提交。 ## 关联的Issue <!-- 待 Issue 创建后填入,例如:关联 Issue #000 --> ## 测试 本地验证忽略规则生效: - .opencode 目录已被 git 正确标记为 untracked 且不再出现在 git status 待提交列表中 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:工程维护,更新 .gitignore 规则 See merge request: cann/ops-sparse!51 | 5 天前 | |
Feat: 实现 sparseLt 库管理接口(Init/Destroy/GetErrorName/GetErrorString) Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !58 merge add_sparseLt_init into master Feat: 实现 sparseLt 库管理接口(Init/Destroy/GetErrorName/GetErrorString) Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 描述 实现 aclsparseLt 库管理接口,包括 aclsparseLtInit、aclsparseLtDestroy、aclsparseLtGetErrorName、aclsparseLtGetErrorString 四个函数。新增 aclsparseLtHandle_t opaque 类型和 aclsparseLtContext 内部结构体,复用 aclsparseStatus_t 状态码。修复 sparseLt target 的 CMake include 路径排序和链接库配置。 ## 关联的Issue [#99](https://gitcode.com/cann/ops-sparse/issues/99) ## 测试 已在本地通过 GTest 单元测试验证全部接口功能,包括 Init/Destroy 生命周期、错误码转换等场景。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!58 | 3 天前 | |
更新src/test多架构并存方式 Co-authored-by: rueenov11<zhuruyi@huawei.com> # message auto-generated for no-merge-commit merge: !21 merge fix_docs into master 更新src/test多架构并存方式 Created-by: rueenov11 Commit-by: rueenov11 Merged-by: cann-robot Description: ## 描述 本 PR 完善 ops-sparse 仓的多架构目录规范与测试构建机制,并同步更新相关文档,主要变更如下: 1. **构建配置**:在根 CMakeLists.txt 中补充 SOC → 架构目录映射(910B / 910_93 → arch22,950 → arch35,310P → arch20),并将 arch22 纳入 ARCH_SPECIFIC_DIRS。 2. **测试框架**:新增 cmake/test.cmake,提供 ops_sparse_add_test(),按 SOC_ARCH_DIRS 自动选择 test/${operator}/${arch_dir}/${operator}_test.cpp 编译,无匹配则跳过。 3. **测试目录调整**:将测试样例迁移至 arch 子目录: - test/spmv/arch22/spmv_test.cpp(910B) - test/spmm/arch35/spmm_test.cpp(950) 4. **文档更新**: - CONTRIBUTING.md:对齐贡献流程章节结构,补充多架构并存规则与 spmm 示例。 - docs/zh/install/dir_structure.md:更新目录树框架,反映 ${arch_dir}/ 组织方式。 - docs/QUICKSTART.md:适配新版 Spmv 实现路径与调试样例。 - README.md、test/spmv/README.md:更新样例路径引用。 ## 关联的Issue https://gitcode.com/cann/ops-sparse/issues/21 ## 测试  测试通过。 ## 文档更新 - 更新了 CONTRIBUTING.md - 更新了 docs/zh/install/dir_structure.md - 更新了 docs/QUICKSTART.md - 更新了 README.md - 更新了 test/spmv/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:多架构目录规范与测试构建机制完善(CMake + test 目录结构调整) See merge request: cann/ops-sparse!21 | 21 天前 | |
[文档更新]: 更新ops-sparse仓文档 Co-authored-by: rueenov11<zhuruyi@huawei.com> # message auto-generated for no-merge-commit merge: !7 merge readme_docs_update into master [文档更新]: 更新ops-sparse仓文档 Created-by: rueenov11 Commit-by: rueenov11 Merged-by: wangzitao_leo Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> **1. 新增文档文件** - docs/zh/install/quick_install.md :新增中文快速安装指南,提供详细的安装步骤和配置说明 - docs/zh/api_list.md :新增中文 API 接口列表文档,优化接口说明和使用指南 - docs/QUICKSTART.md :新增快速入门指南,帮助开发者快速上手 - test/spmv/README.md :新增 SPMV 测试说明文档,详细介绍测试方法和用例 - install_deps.sh :新增依赖安装脚本,提供自动化的系统依赖安装功能,简化环境搭建过程 - requirements.txt :新增 Python 依赖配置文件,列出项目所需的 Python 包及其版本 - OAT.xml :新增项目配置文件,提供构建和测试相关的配置信息 - LICENSE :新增软件许可证文件,包含 CANN Open Software License Agreement Version 2.0 的详细条款 - SECURITY.md :新增安全声明文档,提供安全相关说明和漏洞报告流程 **2. 文档刷新** - README.md :更新项目主文档,整合最新的安装、使用和贡献指南 **3. 头文件重构** - 头文件移动与重命名 : - src/spmv/sparse_common.h → include/cann_ops_sparse_common.h - src/spmv/spmv_host.h → include/cann_ops_sparse.h ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #123 可自动关闭 / Closes #123 to auto-close --> https://gitcode.com/cann/ops-sparse/issues/3 - Closes # - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [x] 单元测试通过 / UT passed - [x] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-sparse!7 | 2 个月前 | |
Fix:rectify OAT rule 过滤 csv 测试用例文件 Co-authored-by: zhanghua145<zhanghua25@mails.ucas.ac.cn> # message auto-generated for no-merge-commit merge: !39 merge fix/oat-csv-filter into master Fix:rectify OAT rule 过滤 csv 测试用例文件 Created-by: zhanghua145 Commit-by: zhanghua145 Merged-by: cann-robot Description: ## 描述 修改 OAT.xml,为 defaultPolicyFilter 增加 *.csv 文件过滤规则,并为 license policyitem 指定 filefilter=defaultPolicyFilter,使 csv 测试用例文件不再被 codecheck 拦截,无需手动屏蔽。 ## 关联的Issue [#80](https://gitcode.com/cann/ops-sparse/issues/80) ## 测试 本地确认 OAT.xml 语法正确,过滤规则生效。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!39 | 17 天前 | |
Fix: resolve multiple documentation issues (#64 #65 #66 #67 #68 #69 #70) Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !33 merge issue_docs into master Fix: resolve multiple documentation issues (#64 #65 #66 #67 #68 #69 #70) Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 描述 本次 PR 修复多个文档反馈 Issue,涉及 spmm/spmv README 及仓库根目录 README.md、SECURITY.md: - [#66](https://gitcode.com/cann/ops-sparse/issues/66): spmm README 算子规格表格删除孤立的 <tr> 和多余的 </tr> 标签 - [#67](https://gitcode.com/cann/ops-sparse/issues/67): spmm README 样例执行命令补充 --soc=ascend950 参数 - [#68](https://gitcode.com/cann/ops-sparse/issues/68): spmm README 正文产品支持描述与表格对齐(Ascend 950PR/950DT) - [#69](https://gitcode.com/cann/ops-sparse/issues/69): spmm README 将"SOC 网关"更正为"SOC 架构映射" - [#70](https://gitcode.com/cann/ops-sparse/issues/70): spmv README Float Transpose 用例数从 17 更正为 15 - [#64](https://gitcode.com/cann/ops-sparse/issues/64): README.md 最新动态补充 SpMM 算子(2026/06) - [#65](https://gitcode.com/cann/ops-sparse/issues/65): SECURITY.md 删除三个不存在的 cmake 文件公网地址声明 ## 关联的Issue 本次 PR 关联的 Issue:[#64](https://gitcode.com/cann/ops-sparse/issues/64) [#65](https://gitcode.com/cann/ops-sparse/issues/65) [#66](https://gitcode.com/cann/ops-sparse/issues/66) [#67](https://gitcode.com/cann/ops-sparse/issues/67) [#68](https://gitcode.com/cann/ops-sparse/issues/68) [#69](https://gitcode.com/cann/ops-sparse/issues/69) [#70](https://gitcode.com/cann/ops-sparse/issues/70) ## 测试 本次为纯文档修改,无需编译/运行测试。 ## 文档更新 本次 PR 包含以下文档文件的更新: - README.md - SECURITY.md - test/spmm/README.md - test/spmv/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!33 | 18 天前 | |
Fix: resolve multiple documentation issues (#64 #65 #66 #67 #68 #69 #70) Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !33 merge issue_docs into master Fix: resolve multiple documentation issues (#64 #65 #66 #67 #68 #69 #70) Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 描述 本次 PR 修复多个文档反馈 Issue,涉及 spmm/spmv README 及仓库根目录 README.md、SECURITY.md: - [#66](https://gitcode.com/cann/ops-sparse/issues/66): spmm README 算子规格表格删除孤立的 <tr> 和多余的 </tr> 标签 - [#67](https://gitcode.com/cann/ops-sparse/issues/67): spmm README 样例执行命令补充 --soc=ascend950 参数 - [#68](https://gitcode.com/cann/ops-sparse/issues/68): spmm README 正文产品支持描述与表格对齐(Ascend 950PR/950DT) - [#69](https://gitcode.com/cann/ops-sparse/issues/69): spmm README 将"SOC 网关"更正为"SOC 架构映射" - [#70](https://gitcode.com/cann/ops-sparse/issues/70): spmv README Float Transpose 用例数从 17 更正为 15 - [#64](https://gitcode.com/cann/ops-sparse/issues/64): README.md 最新动态补充 SpMM 算子(2026/06) - [#65](https://gitcode.com/cann/ops-sparse/issues/65): SECURITY.md 删除三个不存在的 cmake 文件公网地址声明 ## 关联的Issue 本次 PR 关联的 Issue:[#64](https://gitcode.com/cann/ops-sparse/issues/64) [#65](https://gitcode.com/cann/ops-sparse/issues/65) [#66](https://gitcode.com/cann/ops-sparse/issues/66) [#67](https://gitcode.com/cann/ops-sparse/issues/67) [#68](https://gitcode.com/cann/ops-sparse/issues/68) [#69](https://gitcode.com/cann/ops-sparse/issues/69) [#70](https://gitcode.com/cann/ops-sparse/issues/70) ## 测试 本次为纯文档修改,无需编译/运行测试。 ## 文档更新 本次 PR 包含以下文档文件的更新: - README.md - SECURITY.md - test/spmm/README.md - test/spmv/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!33 | 18 天前 | |
fix: build.sh --run 将不支持当前架构的算子标记为 skipped 而非 failed (#93) Co-authored-by: zhanghua145<zhanghua25@mails.ucas.ac.cn> # message auto-generated for no-merge-commit merge: !56 merge fix/skip-unsupported-ops into master fix: build.sh --run 将不支持当前架构的算子标记为 skipped 而非 failed (#93) Created-by: zhanghua145 Commit-by: zhanghua145 Merged-by: cann-robot Description: ## 修复内容 修复 #93 :build.sh --run 在测试二进制不存在时,将不支持当前架构的算子标记为 failed 而非 skipped,导致测试汇总误报失败。 ### 原因分析 - spmv 仅在 src/spmv/arch22/ 下有实现,ascend950(arch35)无对应源码 - CMake 构建阶段已正确跳过 spmv,但 build.sh 的 --run 逻辑在发现测试二进制不存在时直接判定为 failed ### 修复方案(参考 ops-blas 仓的 skip 机制) 1. cmake/test.cmake:跳过算子时写入 skipped_tests.list 2. test/CMakeLists.txt:初始化 skipped_tests.list 3. build.sh:读取 skip 清单,新增 SKIPPED_OPS 和 print_skip,汇总新增 Skipped 行 ### 验证结果 bash build.sh --run --soc=ascend950 Test Summary: Passed: 4 - csrgeam2 gtsv_interleaved_batch nnz spmm Skipped: 1 - spmv (not supported on ascend950) Failed: 0 See merge request: cann/ops-sparse!56 | 4 天前 | |
修复 #26 #27 #35 #36 缺陷:构建与安装问题 Co-authored-by: zhanghua145<zhanghua25@mails.ucas.ac.cn> # message auto-generated for no-merge-commit merge: !26 merge fix/build-system into master 修复 #26 #27 #35 #36 缺陷:构建与安装问题 Created-by: zhanghua145 Commit-by: zhanghua145 Merged-by: cann-robot Description: ## 描述 修复构建/安装相关的 4 个缺陷: - #26 CMakeLists.txt 移除 CMAKE_BUILD_TYPE 的 FORCE 选项,允许用户通过 -DCMAKE_BUILD_TYPE=Release 指定发布构建 - #27 cmake/test.cmake 增加 EAGER_LIBRARY_PATH 环境变量为空时的 CMake 变量回退机制,直接调用 cmake 不再链接失败 - #36 install 规则补充 cann_ops_sparse_common.h 公共头文件安装 - #35 install_deps.sh install_patch 函数补充 openEuler/EulerOS(euler) 分支支持 ## 关联的Issue [#26](https://gitcode.com/cann/ops-sparse/issues/26) [#27](https://gitcode.com/cann/ops-sparse/issues/27) [#35](https://gitcode.com/cann/ops-sparse/issues/35) [#36](https://gitcode.com/cann/ops-sparse/issues/36) ## 测试 - cmake -DCMAKE_BUILD_TYPE=Release 构建确认不再被覆盖为 Debug - 不经 build.sh 直接 cmake 构建测试目标,确认链接路径回退生效 - 确认 install 后包含 cann_ops_sparse_common.h - 确认 install_deps.sh 在 euler 系统可安装 patch ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!26 | 18 天前 | |
fix: 修复文档与仓库结构不一致问题,补充贡献指南 Co-authored-by: rueenov11<zhuruyi@huawei.com> # message auto-generated for no-merge-commit merge: !16 merge fix_docs into master fix: 修复文档与仓库结构不一致问题,补充贡献指南 Created-by: rueenov11 Commit-by: rueenov11 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 修复 README 目录结构与实际仓库不一致 - 移除内联的错误目录树( example 、 tests ),替换为指向独立目录结构文档的链接 - 新增说明:当前算子调用样例位于 test/ 目录下, examples/ 为预留目录 - 新建 docs/zh/install/dir_structure.md ,准确描述仓库真实目录层级 2. 修复 QuickStart 中路径描述错误 - sparse/src/spmv_kernel.cpp → src/spmv/spmv_kernel.cpp (共 2 处) 3. README 增加版本兼容说明 - 新增"🛠️环境准备"和"⬇️源码下载"章节,在 README 级别明确 CANN 版本配套关系 - 注明"本项目仅支持CANN 8.5.0及后续版本",并链接至 release 仓库 4. Python 依赖补充版本范围 - requirements.txt 中各包名补充经过验证的版本范围(如 numpy>=1.21,<2 、 protobuf>=3.20,<6 ) 5. 接口文档补充能力边界备注 - docs/zh/api_list.md 末尾新增"备注"章节,说明接口能力以当前实现版本为准,详细限制参考各算子 README 及头文件注释 6. 补充贡献指南 - 新建 CONTRIBUTING.md ,包含新算子贡献、Bug修复、算子优化、文档纠错等贡献场景的完整流程 - 交付件目录结构适配 ops-sparse 仓实际结构( src/${operator}/ 、 test/${operator}/ ) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-sparse/issues/7 https://gitcode.com/cann/ops-sparse/issues/10 https://gitcode.com/cann/ops-sparse/issues/14 https://gitcode.com/cann/ops-sparse/issues/15 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-sparse!16 | 1 个月前 |
ops-sparse
🔥Latest News
- [2026/06] 新增稀疏矩阵-稠密矩阵乘法(SpMM)算子实现。
- [2026/05] ops-sparse项目上线,提供稀疏矩阵计算的API以及优化的稀疏矩阵向量乘法实现。
🚀概述
ops-sparse是CANN (Compute Architecture for Neural Networks)算子库中提供高性能稀疏矩阵计算的算子库,专注于优化稀疏矩阵的计算效率。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
说明:本项目仅支持CANN 9.0.0及后续版本,源码版本与CANN版本配套关系参见release仓库。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码。
git clone -b ${tag_version} https://gitcode.com/cann/ops-sparse.git
说明:对于CANNLab云开发环境,已默认提供最新商发CANN版本配套的源码,如需获取其他版本源码,参考上述命令获取。
📖学习教程
🔍目录结构
ops-sparse仓关键目录结构请参见目录结构。
说明:当前算子调用样例位于
test/目录下(如test/spmv/arch22/spmv_test.cpp),examples/为预留目录。各算子的详细调用说明可参考test/<算子名>/README.md。
💬相关信息
🤝联系我们
本项目功能和文档正在持续更新和完善中,建议您关注最新版本。