2

是否有一个稀疏矩阵库可以复制密集 BLAS 的功能?

我至少想要:

  1. 高效的 SYR 和 SYRK(rank-k 更新),输入稀疏(可能是密集输出),
  2. 稀疏对称存储的选项,
  3. DOT、NRM2、转置和其他标准好东西。

不过,命名和 API 不需要以 BLAS 为中心,只要它能完成工作。首选 C 或 Fortran,但 C++ 也可以。

我查看了MKLscipy.sparseuBLASEigen3,但它们要么不支持我需要的东西,要么我不知道它们是否支持。

4

2 回答 2

2

很抱歉让您失望了,但据我所知,恐怕答案是否定的。我对稀疏数据进行了广泛的研究,但没有找到任何用于稀疏矩阵操作的深度库(即 BLAS 级)。在比 BLAS 更高的级别上,对 Matlab、R、Python 和其他语言有广泛的支持。

据我所见,这是由于稀疏矩阵类型(散布矩阵、对称矩阵、带状矩阵或三对角矩阵、块对角矩阵)、它们的内容(二进制、整数、实数)及其数学属性(例如正定矩阵)的变化引起的- 不保证,满级 - 不常见)等往往使优化复杂化。

相反,我倾向于编写自己的代码来处理稀疏矩阵,重用我能做的存储和简单的计算,比如乘法。

迟早会出现一个好的低级库,但我还没有看到。

于 2011-08-16T18:49:40.060 回答
0

有稀疏的 blas 实现

http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/bla/bla_SBLAS2-3.html

于 2012-02-13T09:55:22.727 回答