4 cuSPARSE数据类型参考
4.1 数据类型
float,double,cuComplex,cuDoubleComplex
后两个类型是来自cuComplex.h
4.2 cusparseStatus_t
表示库函数返回的状态,可以有以下取值:
CUSPARSE_STATUS_SUCCESS
操作成功完成CUSPARSE_STATUS_NOT_INITIALIZED
库没有初始化,通常是因为缺少预先调用,或者是硬件配置错误CUSPARSE_STATUS_ALLOC_FAILED
cuSPARSE内存分配失败,通常是由设备内存分配(cudaMalloc)或者主机内存分配失败造成的,可以在函数调用前尽可能地释放之前分配的内存CUSPARSE_STATUS_INVALID_VALUE
传入的参数值有误CUSPARSE_STATUS_ARCH_MISMATCH
设备问题,需要在具有适当计算运行能力的设备上编译并运行应用程序CUSPARSE_STATUS_EXECUTION_FAILED
GPU程序执行失败。处理步骤这通常是由GPU内核启动失败引起的,这可能是由多种原因引起的:检查硬件、适当版本的驱动程序和cuSPARSE库是否正确安装CUSPARSE_STATUS_INTERNAL_ERROR
检查硬件、适当版本的驱动程序和cuSPARSE库是否正确安装。另外,检查作为参数传递给例程的内存是否在例程完成之前被释放CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED
此函数不支持矩阵类型。这通常是由于向函数传递无效的矩阵描述符引起的
纠正方法:检查cusparseMatDescr_t descrA中的字段是否设置正确CUSPARSE_STATUS_NOT_SUPPORTED
该函数目前不支持操作或数据类型组合CUSPARSE_STATUS_INSUFFICIENT_RESOURCES
用于计算的资源(如GPU全局内存或共享内存)不足以完成该操作。该错误也可以表明当前的计算模式(例如稀疏矩阵索引的比特大小)不允许处理给定的输入
4.3 cusparseHandle_t
这是一个指针类型,用户必须在调用cusparseCreate()任何其他库函数之前初始化该上下文。由cusparseCreate()创建和返回的句柄必须传递给每个cuSPARSE函数。
4.4. cusparsePointerMode_t
表示向量是否在主机或者GPU上通过引用传递。如果在函数调用中通过引用传递几个标量值,那么它们将遵循相同的单指针模式。指针模式可以分别使用cusparseSetPointerMode()
和cusparseGetPointerMode()
例程设置和检索。
CUSPARSE_POINTER_MODE_HOST
标量在主机上通过引用传递CUSPARSE_POINTER_MODE_DEVICE
标量在设备上通过引用传递
4.5. cusparseOperation_t
此类型指示操作是仅对索引执行,还是对数据和索引执行。
CUSPARSE_ACTION_SYMBOLIC
操作只对索引进行CUSPARSE_ACTION_NUMERIC
操作对数值和索引都执行
4.7. cusparseDirection_t
该类型表示函数cusparse[S|D|C|Z]nnz中密集矩阵的元素应该按行还是按列(假设密集矩阵的内存中有列为主存储)进行解析。此外,BSR格式的块的存储格式也由该类型控制。
CUSPARSE_DIRECTION_ROW
矩阵应该按行解析CUSPARSE_DIRECTION_COLUMN
矩阵应该按列解析
4.8. cusparseMatDescr_t
这个结构用来描述矩阵的形状和性质
typedef struct {
cusparseMatrixType_t MatrixType;
cusparseFillMode_t FillMode;
cusparseDiagType_t DiagType;
cusparseIndexBase_t IndexBase;
} cusparseMatDescr_t;
4.8.1cusparseDiagType_t
CUSPARSE_DIAG_TYPE_NON_UNIT
矩阵对角线有非单位元素CUSPARSE_DIAG_TYPE_UNIT
句怎对角线有单位元素
4.8.2. cusparseFillMode_t
该类型表示矩阵的下部或上部存储在稀疏存储中
CUSPARSE_FILL_MODE_LOWER
下三角部分被存储CUSPARSE_FILL_MODE_UPPER
上三角部分被存储
4.8.3. cusparseIndexBase_t
表示矩阵是从0开始索引还是从1开始索引
CUSPARSE_INDEX_BASE_ZERO
从0开始索引CUSPARSE_INDEX_BASE_ONE
从1开始索引
4.8.4. cusparseMatrixType_t
4.9cusparseColorInfo_t
这是指向不透明结构的指针类型,该结构包含csrcolor()中使用的信息。
4.10cusparseSolvePolicy_t
该类型表示是否在bsric02_bufferSize(), bsric02_analysis(), and bsric02()
中生成和使用级别信息
CUSPARSE_SOLVE_POLICY_NO_LEVEL
不生成和使用级别信息CUSPARSE_SOLVE_POLICY_USE_LEVEL
生成并使用级别信息