2012-03-29 179 views
6

我致力于将大型Matlab代码转换为C++和CUDA。我有问题将一些稀疏矩阵运算等:CUDA上的稀疏矩阵运算

1. full_Matrix * sparse_Matrix 
2. sparse_Matrix * full_Matrix 
3. sparse_Matrix * sparse_Matrix (SOLVED WITH CUSP) 
4. full_Matrix .* sparse_Matrix (elementwise multiplication) 
5. sparse_Matrix * full_Matrix  (elementwise multiplication) 
6. sparse_Matrix .* sparse_Matrix (elementwise multiplication) 

我能够使用CUSPARSE和3使用CUSP解决2,但我不能够使用尖点(或CUSPARSE),用于按元素矩阵乘法或对问题1.

我很感兴趣,如果有一个CUDA库实现所有上述操作(最好是开源的)。

谢谢

+2

uhh,'(AB)=(B'A')''? – Anycorn 2012-03-29 04:27:51

+0

@Anycorn虽然在理论上是正确的,但你正在做3个转置,可以矫枉过正(当然取决于你的数组大小)。 – mmisu 2012-03-29 04:51:09

+0

你应该能够指定转置标志,因此只有一个转置。 – Anycorn 2012-03-29 04:53:09

回答