NVIDIA-cuSPARSE数据类型2023年(二)

请添加图片描述

4 cuSPARSE数据类型参考

4.1 数据类型

  • float,double,cuComplex,cuDoubleComplex后两个类型是来自cuComplex.h

4.2 cusparseStatus_t

表示库函数返回的状态,可以有以下取值:

  • CUSPARSE_STATUS_SUCCESS 操作成功完成
  • CUSPARSE_STATUS_NOT_INITIALIZED 库没有初始化,通常是因为缺少预先调用,或者是硬件配置错误
  • CUSPARSE_STATUS_ALLOC_FAILEDcuSPARSE内存分配失败,通常是由设备内存分配(cudaMalloc)或者主机内存分配失败造成的,可以在函数调用前尽可能地释放之前分配的内存
  • CUSPARSE_STATUS_INVALID_VALUE传入的参数值有误
  • CUSPARSE_STATUS_ARCH_MISMATCH设备问题,需要在具有适当计算运行能力的设备上编译并运行应用程序
  • CUSPARSE_STATUS_EXECUTION_FAILEDGPU程序执行失败。处理步骤这通常是由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

NVIDIA-cuSPARSE数据类型2023年(二)_第1张图片

  • 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

NVIDIA-cuSPARSE数据类型2023年(二)_第2张图片

4.9cusparseColorInfo_t

这是指向不透明结构的指针类型,该结构包含csrcolor()中使用的信息。

4.10cusparseSolvePolicy_t

该类型表示是否在bsric02_bufferSize(), bsric02_analysis(), and bsric02()中生成和使用级别信息

  • CUSPARSE_SOLVE_POLICY_NO_LEVEL不生成和使用级别信息
  • CUSPARSE_SOLVE_POLICY_USE_LEVEL
    生成并使用级别信息

NVIDIA-cuSPARSE数据类型2023年(二)_第3张图片

你可能感兴趣的:(算法,c++,CUDA,NVIDIA)