CANN社区任务-SpSM算子开发
7月社区任务-SpSM算子开发任务书【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions基础信息技术标签算子开发适配硬件Ascend 950PR开源仓地址https://gitcode.com/cann/ops-sparseCANN 版本算子开源仓指定版本开发语言Ascend C Caclsparse 接口对标参考cuSPARSE cusparseSpSM §6.6.12任务概述参考 cuSPARSESpSMSparse triangular Solve with Multiple right-hand sides在昇腾 NPU 上实现稀疏三角求解$$ op(A) \cdot X \alpha \cdot op(B) \quad\Rightarrow\quad X \alpha \cdot op(A)^{-1} op(B) $$或等价形式 $C \alpha \cdot op(A)^{-1} op(B)$cuSPARSE 以稠密matC存解。各参数含义说明$A$稀疏三角系数矩阵仅支持上三角/下三角格式存储格式为CSR$op(\cdot)$矩阵操作符可选不转置op(A)A或转置op(A)A^T$X$方程组求解输出稠密矩阵与等价式中 $C$ 完全等同$B$多右端稠密输入矩阵多列代表多组并行方程组$\alpha$全局浮点缩放标量用于整体缩放计算结果$A^{-1}$稀疏三角矩阵的逆算子内部通过三角回代间接求解不生成显式逆矩阵。验收口径CaclsparseSpSM*与 cuSPARSE 调用流程对齐bufferSize预备 →analysis→solveupdateMatrix为可选数值更新路径。典型场景图预条件、三角分解回代ILU/IC 求解、稀疏三角系统多 RHS 求解。核心开发要求及验收标准1. C 层接口必选对齐 cuSPARSEcuSPARSE SpSM 核心流程为bufferSize预备 →analysis→solve三步骤另含描述符createDescr/destroyDescr与可选updateMatrix须完整实现aclsparseStatus_t aclsparseSpSMCreateDescr(aclsparseSpSMDescr_t *spsmDescr); aclsparseStatus_t aclsparseSpSMDestroyDescr(aclsparseSpSMDescr_t spsmDescr); aclsparseStatus_t aclsparseSpSMGetBufferSize( aclsparseHandle_t handle, aclsparseOperation_t opA, aclsparseOperation_t opB, const void *alpha, aclsparseConstSpMatDescr_t matA, aclsparseConstDnMatDescr_t matB, aclsparseDnMatDescr_t matC, aclDataType computeType, aclsparseSpSMAlg_t alg, aclsparseSpSMDescr_t spsmDescr, size_t *bufferSize); aclsparseStatus_t aclsparseSpSMAnalysis( aclsparseHandle_t handle, aclsparseOperation_t opA, aclsparseOperation_t opB, const void *alpha, aclsparseConstSpMatDescr_t matA, aclsparseConstDnMatDescr_t matB, aclsparseDnMatDescr_t matC, aclDataType computeType, aclsparseSpSMAlg_t alg, aclsparseSpSMDescr_t spsmDescr, void *externalBuffer); aclsparseStatus_t aclsparseSpSMSolve( aclsparseHandle_t handle, aclsparseOperation_t opA, aclsparseOperation_t opB, const void *alpha, aclsparseConstSpMatDescr_t matA, aclsparseConstDnMatDescr_t matB, aclsparseDnMatDescr_t matC, aclDataType computeType, aclsparseSpSMAlg_t alg, aclsparseSpSMDescr_t spsmDescr); aclsparseStatus_t aclsparseSpSMUpdateMatrix( aclsparseHandle_t handle, aclsparseSpSMDescr_t spsmDescr, void *newValues, aclsparseSpSMUpdate_t updatePart);格式仅支持CSR与 cuSPARSE 对齐。调用语义与 cuSPARSE §6.6.12 一致bufferSize/analysismatB、matC的values 指针可为 NULL仅用于 workspace 估算与符号分析描述符本身不可为 NULLsolvematB、matC须指向有效 valuesin-placematB与matC可使用同一 values 设备指针其余稠密描述符字段如order可独立设置。工程目录ops-sparse/src/spsm/2. 数据类型支持对标范围对齐 cuSPARSE cusparseSpSM §6.6.12 官方 dtype 表。SpSM 为同精度matAvalues、matB、matC、computeType四者 dtype 相同cuSPARSE 文档无 Mixed-precision 小节。列含义A稀疏三角系数矩阵matA的 valuesB稠密右端项matB多 RHSC稠密解matCcomputeType实际计算精度。稀疏格式与索引项目本任务稀疏格式CSR索引int32INDEX_32Ifill / diagLOWER/UPPER、UNIT/NON_UNIT映射 cuSPARSE fill/diag 属性SpSM 为全新算子ops-sparse 仓当前无src/spsm/aclsparseSpSM* Kernel 均须从零交付。2.1 dtype 组合A / B / C / computeTypecuSPARSE 枚举状态fp32CUDA_R_32F待实现alpha标量 dtype 与computeType一致为float32。验收须覆盖 ACLaclsparseSpSM*bufferSize / analysis / solveupdateMatrix全链路。3. 算子约束analysis 与 solve 间不得修改 matA 结构、externalBuffer、spsmDescr与 cuSPARSE 一致updateMatrix仅更新数值、结构不变时可跳过 re-analysis对标 cuSPARSEsolve 阶段 bit-wise 确定性cuSPARSE 保证多 RHSmatB/matC为[m, nrhs]稠密矩阵in-placematB与matC可共用同一 values 指针cuSPARSE 支持bufferSize/analysismatB/matC的 values 可为 NULLsolve须提供有效 values描述符不可为 NULL。4. 功能验收用例编号场景参考TC-01下三角 unit_diagFalsecuSPARSE CSR sampleTC-02上三角 transpose自行构造TC-03nrhs1 与 nrhs1自行构造TC-04updateMatrix 后 re-solvecuSPARSETC-05matB/matC in-place同一 values 指针cuSPARSETC-06bufferSize/analysis 阶段 matB/matC values 为 NULLcuSPARSE5. 性能要求对标cuSPARSE SpSMA100NPU 性能须达到 GPU 参考实现的1.0 倍及以上即 ≥1.0×。固定参考用例必测 3 组在NVIDIA A100上实测 cuSPARSE 耗时填入「GPU 参考耗时」取多次运行avganalysis 一次性开销可单独报告作为 NPU 验收基准编号场景mnnznrhsdtypeGPU 参考耗时 (μs)达标要求01下三角多 RHS 基础 solve25627258fp322203NPU ≥ 1.0×02updateMatrix 后 re-solve12813224fp322291NPU ≥ 1.0×03analysis 阶段 NULL values12813274fp322014NPU ≥ 1.0×泛化覆盖范围另抽 200 组用例由下列维度组合抽样或网格扫描生成须附完整用例列表solve 阶段性能达标 ≥1.0×维度覆盖范围矩阵规模m10²10⁵nnz与m成比例平均度约 550多 RHSnrhs1、8、32、128三角属性下三角 / 上三角unit_diagTrue / FalsetransTrue / False 等组合须纳入 200 组抽样稀疏结构随机三角 CSR更新路径updateMatrix后 re-solve 至少 5 组数值变、结构不变in-place / NULL valuesmatB/matC 共用 values 至少 5 组bufferSize/analysis 阶段 NULL values 至少 5 组边界m1nrhs1近奇异对角条件数偏大样本 5 组仅功能验收6. 精度要求《生态算子开源精度标准》 AscendOpTest ATK 双标杆L22 / 1.2 / 1.2。真值以cuSPARSE CPU 标杆或双精度参考为准。7. 接口分层aclsparseSpSM*必选 → Ascend C Kernel必选8. 验收交付件1, 自测用例、测试结果报告、测试步骤指导文档2, 算子代码的私仓邀请链接、代码仓路径、分支、算子目录9. PR 合入路径https://gitcode.com/cann/ops-sparse/tree/master/src/spsm环境获取开源仓提供100小时免费时长请不使用时及时关闭用时耗尽前请务必保存相关资料建议及时提交备份。使用 hidevlab notebook 算力。如需额外环境资源请联系昇腾小助手。特别注意事项SpSManalysis 缓存是性能关键须在文档中说明复用条件新增接口需对齐 cuSPARSE 风格三角性、对角类型须在描述符层显式设置映射 cuSPARSE fill/diag 属性设计文档按社区模板README 含aclsparse C调用示例自验证报告含 aclsparse 测试、AscendOpTest/ATK 日志。【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Subliminal:终极iOS集成测试框架完整指南

Subliminal:终极iOS集成测试框架完整指南

Subliminal:终极iOS集成测试框架完整指南 【免费下载链接】Subliminal An understated approach to iOS integration testing. 项目地址: https://gitcode.com/gh_mirrors/subl/Subliminal Subliminal是一款专为iOS应用开发打造的集成测试框架,它…

2026/7/5 18:21:25 阅读更多 →
Sync与其他Erlang开发工具对比:优势与适用场景分析

Sync与其他Erlang开发工具对比:优势与适用场景分析

Sync与其他Erlang开发工具对比:优势与适用场景分析 【免费下载链接】sync On-the-fly recompiling and reloading in Erlang. Code without friction. 项目地址: https://gitcode.com/gh_mirrors/sync/sync 在Erlang开发领域,实时编译和代码热重载…

2026/7/5 18:19:25 阅读更多 →
MiniMax-M3-NVFP4的视觉编码器工作原理:ViT如何处理2016x2016分辨率图像

MiniMax-M3-NVFP4的视觉编码器工作原理:ViT如何处理2016x2016分辨率图像

MiniMax-M3-NVFP4的视觉编码器工作原理:ViT如何处理2016x2016分辨率图像 【免费下载链接】MiniMax-M3-NVFP4 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/MiniMax-M3-NVFP4 MiniMax-M3-NVFP4是一款强大的多模态AI模型,它采用了先进的视…

2026/7/5 18:19:25 阅读更多 →

最新新闻

5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单

5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单

5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经因为看不懂Minec…

2026/7/5 19:58:15 阅读更多 →
终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置

终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置

终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在传统黑苹果配置过程中&#xff0…

2026/7/5 19:58:15 阅读更多 →
D-Link DCS摄像头CVE-2020-25078漏洞剖析与批量检测脚本实现

D-Link DCS摄像头CVE-2020-25078漏洞剖析与批量检测脚本实现

1. 项目概述:一次对D-Link DCS监控设备信息泄露漏洞的深度剖析最近在整理网络设备安全审计案例时,一个老生常谈但又屡见不鲜的漏洞类型再次引起了我的注意——硬编码或未授权访问导致的信息泄露。D-Link DCS系列网络监控摄像头爆出的CVE-2020-25078漏洞&…

2026/7/5 19:58:15 阅读更多 →
Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案

Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案

Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案 【免费下载链接】Roblox-Account-Manager Application that allows you to add multiple accounts into one application allowing you to easily play on alt accounts without having to …

2026/7/5 19:53:53 阅读更多 →
Vue 实战:利用 IndexedDB 实现前端大文件断点续传

Vue 实战:利用 IndexedDB 实现前端大文件断点续传

、背景与痛点 前端下载大文件时&#xff0c;我们通常的做法是一行 fetch 拿到 response&#xff0c;转成 Blob&#xff0c;再丢给一个隐藏的 <a> 标签触发下载。这套逻辑在几十 KB 的图片、几百 KB 的 PDF 上完全没问题。可一旦文件跑到 100MB、1GB&#xff0c;问题就来…

2026/7/5 19:49:53 阅读更多 →
云平台 OCR(云端 API OCR)完整讲解

云平台 OCR(云端 API OCR)完整讲解

云平台 OCR(云端 API OCR)完整讲解 一、什么是云平台 OCR 各大云厂商(百度智能云、阿里云、腾讯云、华为云、谷歌云等)托管在云端服务器的 OCR 识别服务,开发者不用本地部署任何模型、推理库,仅通过 HTTP/HTTPS 网络接口上传图片,云端完成全部文字检测 + 识别,返回结…

2026/7/5 19:47:52 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻