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:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值