
SpMV算子【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparse算子概述SpMVSparse Matrix - Dense Vector Multiplication算子实现稀疏矩阵与稠密向量的乘法运算。核心运算为 y alpha * op(A) * x beta * y其中 A 为 CSR 格式稀疏矩阵x 和 y 为稠密向量。数学表达式y alpha * op(A) * x beta * y其中 op(A) 为稀疏矩阵 A 的操作转置/非转置x 为输入稠密向量y 为输入/输出稠密向量。包含以下接口接口名功能简述aclsparseSpMV执行稀疏矩阵-稠密向量乘法 y alpha * op(A) * x beta * yaclsparseSpMVGetBufferSize查询所需 workspace 大小暂未支持aclsparseSpMVPreprocess对稀疏矩阵进行预处理暂未支持算子执行接口aclsparseSpMV产品支持情况Ascend 950PR / Ascend 950DT不支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品支持函数原型aclsparseStatus_t aclsparseSpMV(aclsparseHandle_t handle, aclsparseOperation_t opA, const void *alpha, aclsparseConstSpMatDescr_t matA, aclsparseConstDnVecDescr_t vecX, const void *beta, aclsparseDnVecDescr_t vecY, aclDataType computeType, aclsparseSpMVAlg_t alg, void *externalBuffer)参数说明参数名输入/输出参数类型说明handle输入aclsparseHandle_tops-sparse 库上下文句柄携带 streamHost 内存opA输入aclsparseOperation_t稀疏矩阵 A 的操作类型支持ACL_SPARSE_OP_NON_TRANSPOSE或ACL_SPARSE_OP_TRANSPOSEHost 内存alpha输入const void*标量 alpha 指针类型须与 computeType 匹配。内存位置由aclsparseSetPointerMode控制Host/Device 内存matA输入aclsparseConstSpMatDescr_t稀疏矩阵 A 的描述符仅支持 CSR 格式Host 内存vecX输入aclsparseConstDnVecDescr_t输入稠密向量 x 的描述符Host 内存beta输入const void*标量 beta 指针类型须与 computeType 匹配。内存位置由aclsparseSetPointerMode控制Host/Device 内存vecY输入/输出aclsparseDnVecDescr_t输入/输出稠密向量 y 的描述符Host 内存computeType输入aclDataType计算精度类型支持ACL_FLOAT或ACL_INT32Host 内存alg输入aclsparseSpMVAlg_t算法类型仅支持ACL_SPARSE_SPMV_ALG_DEFAULTHost 内存externalBuffer输入void*工作缓冲区当前版本忽略传 nullptr 即可Device 内存约束说明handle 不可为 nullptr且须先调用aclsparseSetStream设置 streammatA、vecX、vecY 不可为 nullptrmatA 仅支持 CSR 格式ACL_SPARSE_FORMAT_CSRmatA 的行偏移和列索引类型必须均为ACL_SPARSE_INDEX_32I且两者类型相同matA 的索引基址仅支持ACL_SPARSE_INDEX_BASE_ZEROopA 支持ACL_SPARSE_OP_NON_TRANSPOSE或ACL_SPARSE_OP_TRANSPOSE不支持共轭转置alg 仅支持ACL_SPARSE_SPMV_ALG_DEFAULTcomputeType 仅支持ACL_FLOAT或ACL_INT32vecX 的值类型须与 matA 的值类型一致维度匹配非转置模式vecX 大小 A.colsvecY 大小 A.rows转置模式vecX 大小 A.rowsvecY 大小 A.cols支持的值类型组合matAACL_FLOAT, vecXACL_FLOAT, vecYACL_FLOAT, computeTypeACL_FLOATmatAACL_FLOAT16, vecXACL_FLOAT16, vecYACL_FLOAT 或 ACL_FLOAT16, computeTypeACL_FLOATmatAACL_BF16, vecXACL_BF16, vecYACL_FLOAT 或 ACL_BF16, computeTypeACL_FLOATmatAACL_INT32, vecXACL_INT32, vecYACL_INT32, computeTypeACL_INT32支持的稀疏格式格式支持说明CSR✅稀疏矩阵 A 支持 CSR 格式COO❌不支持CSC❌不支持调用示例暂无运行示例具体编译和执行过程请参考编译与运行样例。aclsparseSpMVGetBufferSize暂未支持。aclsparseSpMVPreprocess暂未支持。【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考