用户
 找回密码
 立即注册
jaredlu_CUDA 该用户已被删除
发表于 2013-9-24 10:51:55
90877
请教一个关于cusparse的问题:
图1中,cusparseScsrmv() 是一个cusparse函数,该函数计算矩阵与向量的乘积,矩阵采用的是CSR存储格式。
其输入参数的第三行,是 const cusparseMatDescr_t desrA,这是矩阵的shape 和 properties 的描述,如图2所示。
在这个结构体中,第1个元素是关于矩阵类型的描述,如图3所示。图3表明,矩阵有四种类型,其中,第二种类型是对称矩阵。
我的问题是,如果一个矩阵是对称稀疏矩阵,那么,采用CSR格式存储该矩阵时,应该也可以利用矩阵的对称性吧??
比如图4所示的矩阵:
     如果不考虑对称性,则CSR格式的存储向量为:[1  2        3  4      2  5      4  6],即每一行的非零元都要储存;
如果考虑对称性,是否是:[1  2       3  4        5       6],即是否是只要储存上三角部分??
注:CSR格式的另外两个数组未列出。


                                    图1


                                     图2


                                       图3


                                     图4



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发表于 2013-9-24 12:01:05
楼主您好,我不懂cusparse, 建议其他会员、 版主、 NVIDIA官方支持、总版主为您解答。
使用道具 举报 回复 支持 反对
发表于 2013-9-24 12:34:37
LZ您好:

我也不懂cusparse,不过刚才现查了cusparse的相关文档,发现在您提供的图3上其实就有说明:对于对称阵,厄米阵,和三角阵,均假定仅有上三角部分或者下三角部分是被保存的。

您不妨予以尝试。

祝您编码顺利~
使用道具 举报 回复 支持 反对
发表于 2013-9-24 14:43:32
嗯,好的,谢谢两位版主,我先试一下,看结果如何!
使用道具 举报 回复 支持 反对
发表于 2013-9-24 16:46:28
版主,是可以的。只是,矩阵的描述,还要加上cusparseFillMode_t,以指定存储的是上三角部分还是下三角部分。
使用道具 举报 回复 支持 反对
发表于 2013-9-24 16:47:26
jaredlu_CUDA 发表于 2013-9-24 16:46
版主,是可以的。只是,矩阵的描述,还要加上cusparseFillMode_t,以指定存储的是上三角部分还是下三角部分 ...

嗯嗯,感谢您反馈经验~

祝您编码顺利~
使用道具 举报 回复 支持 反对
发表于 2013-9-24 17:02:17
ice 发表于 2013-9-24 16:47
嗯嗯,感谢您反馈经验~

祝您编码顺利~

是在版主的指点下才找到的,谢谢版主!
使用道具 举报 回复 支持 反对
发表于 2013-9-24 17:04:22
jaredlu_CUDA 发表于 2013-9-24 17:02
是在版主的指点下才找到的,谢谢版主!

不客气的,这是您自己劳动的结果!

欢迎您常来论坛~
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册