CuSparse 第一章

本文介绍了CUDA函数库CUSPARSE的基本情况,包括其处理稀疏矩阵的基本线性代数子程序的功能划分,命名规则,以及异步执行特性。CUSPARSE支持float、double等多种数据格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(部分翻译)

第一章 介绍

    1. 命名惯例

       CUSPARSE 包含了一系列处理稀疏矩阵的基本的线性代数子程式。是cuda函数库的一部分,从C,C++中调用。

       该库例程可以分为四类:

             第一层:在稠密向量格式和稀疏矩阵向量格式之间的操作

             第二层:在稀疏矩阵格式和稠密向量格式之间的操作

             第三层:在稀疏矩阵格式和一组稠密向量之间的操作

             转换:不同格式矩阵之间转换操作

             CUSparse支持的数据格式有 float,double, cuComplex, cuDoubleComplex.  

            

            稀疏矩阵第一层,第二层,第三层函数都遵循这样的命名惯例:

           cusparse<t>[<matrix data format>]<operation>[<output matrix data format>]Introduction

           其中 <t> 可以是 S, D, C, Z, or X, 分别对应数据类型 float, double, cuComplex, cuDoubleComplex, and the generic type.
           <matrix data format> 可以是 dense, coo, csr, csc, or hyb, 分别对应 dense, coordinate, compressed sparse row, compressed sparse column, and hybrid storage formats.
          最后,  <operation> 可以是 axpyi, doti, dotci, gthr, gthrz, roti, or sctr, 对应 the Level 1 functions; 也可以是 mv or sv,  对应 Level 2 functions, 或者 mm or sm,  对应 the Level 3 functions.
           所有这些函数的返回值都是 cusparseStatus_t 类型的。

     2. 异步执行

          The CUSPARSE 库函数是类似主机的,异步执行的, 并且在结果算出来的时候会回到主机控制。
          开发这可以用 cudaDeviceSynchronize() 函数去确认CUSPARSE函数库里的命令已经执行完毕。 开发者也可以用 cudaMemcpy() routine 去拷贝数据,且不需要用  cudaDeviceSynchronize() 来确认执行完毕,如果参数是cudaMemcpyDeviceToHost 或者cudaMemcpyHostToDevice.



参考文档:http://docs.nvidia.com/cuda/pdf/CUSPARSE_Library.pdf     《CUSPARSE LIBRARY》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值