2

高密度BLASの機能をコピーするスパース行列ライブラリはありますか?

少なくとも欲しい:

  1. 疎な入力(および場合によっては密な出力)を使用した効率的なSYRおよびSYRK(ランクk更新)、
  2. スパース対称ストレージのオプション、
  3. DOT、NRM2、転置およびその他の標準的なグッズ。

ただし、名前付けとAPIは、機能する限り、BLAS中心である必要はありません。CまたはFortranが推奨されますが、C++でも問題ありません。

MKLscipy.sparseuBLASEigen3を調べましたが、必要なものがサポートされていないか、サポートされているかどうかわかりませんでした。

4

2 に答える 2

2

がっかりさせて申し訳ありませんが、私の知る限り、答えはノーです。私はスパース データを幅広く扱ってきましたが、スパース行列操作用の深いライブラリ (つまり、BLAS レベル) は見つかりませんでした。BLAS よりも高いレベルで、Matlab、R、Python、およびその他の言語が幅広くサポートされています。

私が見てきたことから、これは、疎行列の種類 (分散、対称、帯状または三重対角、ブロック対角)、その内容 (2 進数、整数、実数)、およびそれらの数学的特性 (正定行列など) が異なるために発生します。 - 保証されていない、完全なランク - 一般的ではない) などは、最適化を複雑にする傾向があります。

代わりに、スパース行列を処理するための独自のコードを記述し、ストレージや乗算などの単純な計算に使用できるものを再利用する傾向があります。

やがて、優れた低レベルのライブラリが登場するでしょうが、私はまだ見ていません。

于 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 に答える