CUSP-从CSR / COO转换为HYB稀疏矩阵格式

时间:2019-05-12 21:46:44

标签: cuda sparse-matrix cusp-library

我在CUDA程序中有CSR格式的稀疏矩阵。当我尝试使用CUSP :: convert()将其转换为HYB格式时,我得到一个空矩阵-(0行,0 cols和0项)。如果我打印转换后的矩阵的ELL和COO分量,则会得到ELL部分的0个条目。所有条目均打印在COO部分下方。我知道这可能是由于矩阵的稀疏模式造成的,但是为什么我要为HYB格式的汇总矩阵获取 <0,0>的条目为0 。此外,我已经观察到我尝试过的每个矩阵的这种行为。

以下程序重现了该问题。

#include <cusp/csr_matrix.h>
#include <cusp/gallery/poisson.h>
#include <cusp/multiply.h>
#include <cusp/print.h>
#include <stdio.h>

int main()
{
 cusp::csr_matrix<int,double,cusp::device_memory> A_csr;
 cusp::hyb_matrix<int,double,cusp::device_memory> A_hyb;

 //Create a sparse 5*5 test matrix
 cusp::gallery::poisson5pt(A_csr, 5, 1);

 //Convert the test matrix to HYB format
 cusp::convert(A_csr, A_hyb);

 printf("\n A in CSR format\n");
 cusp::print(A_csr); 

 printf("\n A in HYB format\n");
 cusp::print(A_hyb); //prints an empty matrix

 printf("\n ELL component of A in HYB format\n");
 cusp::print(A_hyb.ell); //prints an empty matrix

 printf("\n COO component of A in HYB format\n");
 cusp::print(A_hyb.coo); //prints all the entries of A
}

我得到以下输出

 A in CSR format
sparse matrix <5, 5> with 13 entries
              0              0        (4)
              0              1        (-1)
              1              0        (-1)
              1              1        (4)
              1              2        (-1)
              2              1        (-1)
              2              2        (4)
              2              3        (-1)
              3              2        (-1)
              3              3        (4)
              3              4        (-1)
              4              3        (-1)
              4              4        (4)

 A in HYB format
sparse matrix <0, 0> with 0 entries

 ELL component of A in HYB format
sparse matrix <5, 5> with 0 entries

 COO component of A in HYB format
sparse matrix <5, 5> with 13 entries
              0              0        (4)
              0              1        (-1)
              1              0        (-1)
              1              1        (4)
              1              2        (-1)
              2              1        (-1)
              2              2        (4)
              2              3        (-1)
              3              2        (-1)
              3              3        (4)
              3              4        (-1)
              4              3        (-1)
              4              4        (4)

如果有人在我的转换过程中确定了 问题 ,或者建议了其他一些 功能来自动从CSR / CUSP库的COO到HYB格式 ? cuSparse具有这样的功能,但是会产生不透明的对象。此外,cuSparse不具有HYB格式的矩阵的矩阵乘法功能。

0 个答案:

没有答案