Skip to main content
QUICK REVIEW

[論文レビュー] A Highly Efficient Implementation of Multiple Precision Sparse Matrix-Vector Multiplication and Its Application to Product-type Krylov Subspace Methods

Tomonori Kouya|arXiv (Cornell University)|Nov 10, 2014
Numerical Methods and Algorithms参考文献 2被引用数 3
ひとこと要約

本稿では、MPFR/GMPを用いたBNCpackライブラリ内における高度に最適化された複数精度スパース行列-ベクトル乗算(SpMV)の実装を提示する。これにより、メモリ使用量と計算時間が顕著に削減された。この手法により、BiCG や GPBiCG といった積型Krylov部分空間法を用いて、大規模で悪条件な線形方程式系を効率的に解くことが可能となり、8192ビット精度のcavity04行列において最大67.48秒の計算時間短縮が達成された。

ABSTRACT

We evaluate the performance of the Krylov subspace method by using highly efficient multiple precision sparse matrix-vector multiplication (SpMV). BNCpack is our multiple precision numerical computation library based on MPFR/GMP, which is one of the most efficient arbitrary precision floating-point arithmetic libraries. However, it does not include functions that can manipulate multiple precision sparse matrices. Therefore, by using benchmark tests, we show that SpMV implemented in these functions can be more efficient. Finally, we also show that product-type Krylov subspace methods such as BiCG and GPBiCG in which we have embedded SpMV, can efficiently solve large-scale linear systems of equations provided in the UF sparse matrix collections in a memory-restricted computing environment.

研究の動機と目的

  • 高精度科学計算に適した効率的な複数精度スパース行列ライブラリの不足に対処すること。
  • 標準的な倍精度算術を用いた大規模で悪条件な線形方程式系の解法におけるメモリおよびパフォーマンスのボトル neck を克服すること。
  • メモリ制限環境におけるスパース行列に特化した高性能複数精度SpMVカーネルの開発およびベンチマーク化すること。
  • SpMVを積型Krylov部分空間ソルバー(例:BiCG, GPBiCG)に統合し、高精度問題における収束性と効率性を向上させること。
  • UFスパース行列コレクションの実際のスパース行列を用いて、コンsumer PC上で複数精度計算が実用的に行えることを実証すること。

提案手法

  • MPFR/GMPの任意精度浮動小数点演算を用いて、Compressed Sparse Row(CSR)形式に基づく複数精度スパース行列構造を実装した。
  • MPFR/GMPが最適化したゼロ乗算の無視および精度に柔軟な算術演算を活用し、SpMV演算の高速化を図った。
  • 精度、次元、非ゼロ要素、および列/行インデックス配列を格納するカスタムスパース行列データ型(`mpfrsmatrix`)を設計した。
  • パフォーマンス向上を定量化するため、標準PC上でSpMVと密行列-ベクトル乗算(Dense MV)を比較ベンチマークした。
  • BNCpackの積型Krylov部分空間ソルバー(BiCG, GPBiCG, BiCGSTAB)にSpMVカーネルを統合し、ILU(0)予めんなしの場合とありの場合を比較した。
  • UFスパース行列コレクション(例:cavity04, epb3)の行列を用いて、さまざまな精度レベル(512〜8192ビット)におけるスケーラビリティおよび収束性を評価した。

実験結果

リサーチクエスチョン

  • RQ1複数精度SpMVは、計算効率およびメモリ使用量の観点から、密行列-ベクトル乗算と比べてどのように異なるか?
  • RQ2複数精度SpMVは、メモリ制限環境における積型Krylov部分空間法のパフォーマンスを顕著に向上させることができるか?
  • RQ3cavity04 や epb3 のような悪条件問題において、収束に必要な精度レベルは何か? また、SpMVは反復回数および実行時間にどのように影響を与えるか?
  • RQ4予めん(例:ILU(0))は、複数精度Krylov法の収束性を向上させるか? また、高精度直接計算と比較して計算効率は高いか?
  • RQ5コンsumer PCは、提案されたSpMV実装を用いて、大規模な複数精度スパース線形方程式系をどの程度処理できるか?

主な発見

  • 8192ビット精度のcavity04行列において、GPBiCG法の計算時間は最大67.48秒短縮された。
  • epb3行列(84,617×84,617、99.0035%スパarsity)では、SpMVベースのGPBiCG法が8192ビット精度で収束し、計算時間は24,179秒であった。一方、密行列形式では約70TBのメモリが必要となる。
  • cavity04問題では、積型Krylov法の収束には少なくとも2048ビット精度が必要であり、BiCGSTABおよびGPBiCGは高精度でより優れた性能を示した。
  • SpMVカーネルは、特に高精度で顕著な高速化を達成した。これは、メモリフットプリントの低減およびMPFR/GMPにおける最適化されたゼロ乗算の無視によるものである。
  • ILU(0)予めんは複数精度において効率性を向上させなかった。4096ビット精度のBiCGSTAB法では、予めんなしのバージョン(42.79秒)が予めんありのバージョン(109.29秒)よりも高速であった。
  • スパース行列形式により、epb3行列のメモリ使用量は128ビット密行列の約320 GBから128ビットスパース行列の約3.5 MBにまで削減され、標準PCでも計算が可能となった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。