cusparseSdense2csr conversion



我尝试使用cusparsesdense2csr api将密集的矩阵转换为稀疏,密集矩阵如下:

[ 0 1  0 3  0
  0 6  0 8  0
  0 11 0 13 0
  0 16 0 18 0 ]

预期的结果稀疏矩阵应为:

csrValA = {1,3,6,8,11,13,16,18}
csrRowPtrA = {0,2,4,6,8}
csrColIndA = {1,3,1,3,1,3,1,3}

但是我得到的输出是

csrValA = {8,16,1,13,6,18,3,11}
csrRowPtrA = {0,2,4,6,8}
csrColIndA = {2,4,0,3,1,4,0,2}

为什么会发生这种情况?什么原因是?

好吧,Cusparse似乎以列的主要格式存储了密集的矩阵。我在相同的文档中找到了它

http://docs.nvidia.com/cuda/cuda/cusparse/index.html#dense-format2

因此,在问题中提到的如下所述,引用我们的输入矩阵,Cusparse将此密集的矩阵存储在记忆中。因此,理想情况下,我们在内存中的输入矩阵变成了类似的东西:

[ 0  0  8  0  16
  1  0  0  13 0
  0  6  0  0  18
  3  0  11 0  0 ]

这解释了我得到的输出。

相关内容

  • 没有找到相关文章

最新更新