CUSparse 第二章 使用CUSPARSE API

19 篇文章 0 订阅

(部分翻译。且非专业翻译人士,如知详情,请参考参考书目)


2.1 线程安全

      这个库是线程安全的,并且函数可以被多个主机线程调用。

2.2 标量参数

     标量参数可以在主机和设备之间传递。

     极少数函数的返回值是标量,譬如doti()和nnz().和其他返回数据类型一样,标量参数返回时要等到GPU上运作完成才能确定。所以当主机读取数据时应当要做适当的同步。

     这个特点允许CUSPARAE函数库里的函数以流的方式做完全异步执行。

2.3 流平行

    如果一个应用它做一些小的独立运算,或者如果运算的时候还同时进行着数据地传输。CUDA的流可以重叠这些任务。

   程式在概念上可以让一个任务和一个流关联。要获得任务重叠,开发者需要用 cudaStreamCreate()来创建流,然后在呼叫流对应的程式之前通过 cusparseSetStream()设置所运行的程式的流。然后,不同流执行的程式将会被GPU动态重叠运行。 当运用流处理时,我们建议运用新的带标量参数和结果的CUSPARSE API 去获得最大的重叠。

    虽然开发者能创建很多流,但是通过实际经验可知,同时运行的代码一般不会超过16个。












参考文档: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、付费专栏及课程。

余额充值