mkl各个类型sparse matrix store type

Posted 菜鸟决心努力A-A

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mkl各个类型sparse matrix store type相关的知识,希望对你有一定的参考价值。

csr:(表格里是1-based的,也就是index都加一)(红球球那个例子是0-based的)

(Intel的代码我也是醉了。csr这个格式,在他们的函数里,使用的类型就存在不一致的情况,比如mkl_?csrgemv中采用的是上图这种格式,但是在mkl_?csrmm中采用的就是https://software.intel.com/zh-cn/node/599882中提供的格式,醉醉哒)

bsr:和csr一个意思,只不过是先把矩阵分成一个一个小方块。如本来6*6矩阵,按照2*2的block压缩,就变成3*3的矩阵,然后按照csr的方式存储“元素不全为0的block”。

这样数据压缩率降低了些,但是rowIndex和columns的长度缩减很多。

coo:

dia:
“元素不全为0的Diagonal”的个数 = ndiag = 5(图中例子)
原则:在values矩阵(行数*ndiag)中,每一列存储原矩阵中的一个“元素不全为0的Diagonal”,然后再有一个数组distance来标识每一个列存储的是哪一Diagonal,这样就可以复原原来的矩阵了。例子如下图所示:
(每个diagonal中元素存储时,保留行号)

备注:
在mkl中使用mkl_?diagemv函数时,需要将values矩阵转置一下才可以得到正确结果,虽然这个问题在函数说明中并未体现

sky:

csc:

以上是关于mkl各个类型sparse matrix store type的主要内容,如果未能解决你的问题,请参考以下文章

scipy.sparse.csr.csr_matrix 未显示在变量资源管理器中

Python scipy.sparse矩阵使用方法

Python scipy.sparse矩阵使用方法

python使用scipy中的sparse.csr_matrix函数将numpy数组转化为稀疏矩阵(Create A Sparse Matrix)

python稀疏矩阵sparse matrix的保存和读取

scipy.sparse.csr_matrix 行过滤 - 如何正确实现?