Skip to main content
QUICK REVIEW

[論文レビュー] New Row-grouped CSR format for storing the sparse matrices on GPU with implementation in CUDA

Tomáš Oberhuber, Atsushi Suzuki|arXiv (Cornell University)|Dec 10, 2010
Parallel Computing and Optimization Techniques参考文献 13被引用数 36
ひとこと要約

本稿では、GPU上でのスパース行列の保存のための新しいRow-grouped CSR (RgCSR)フォーマットを提案する。このフォーマットは、行のグループ化と知的な順序付けにより、連続メモリアクセスを最適化し、人工的なパディングを低減することを目的としている。1,600個の行列を評価した結果、RgCSRは一般にハイブリッドフォーマットを上回る性能を示したが、特に非ゼロ要素のパターンが規則的な行列において顕著な向上を示した。一方、極めて不規則な行列では、過剰な人工的非ゼロ要素の影響により性能が著しく低下し、キャッシュ利用効率を向上させるために効果的な行の再順序付けの必要性が浮き彫りになった。

ABSTRACT

In this article we present a new format for storing sparse matrices. The format is designed to perform well mainly on the GPU devices. We present its implementation in CUDA. The performance has been tested on 1,600 different types of matrices and we compare our format with the Hybrid format. We give detailed comparison of both formats and show their strong and weak parts.

研究の動機と目的

  • GPUデバイス上でメモリの連続アクセスを向上させるとともに、人工的パディングを低減するスパース行列フォーマットの設計を目的とする。
  • 低スループットとメモリ帯域幅の制限によるSpMV(スパース行列-ベクトル乗算)の性能ボトルネックを解消することを目的とする。
  • 1,600個の実世界のスパース行列を対象に、新しいRgCSRフォーマットと既存のハイブリッドフォーマットを比較・評価することを目的とする。
  • RgCSRにおける行の再順序付け(降順およびAMD順序付け)が、人工的非ゼロ要素数とテクスチャキャッシュ利用効率に与える影響を調査することを目的とする。
  • 単精度および倍精度計算の両環境下で、RgCSRとハイブリッドフォーマットとの比較において、RgCSRの強みと弱みを特定することを目的とする。

提案手法

  • RgCSRフォーマットは、GPUのマルチプロセッサにおける連続メモリアクセスを可能にするために、スパース行列の行を連続するブロックにグループ化する。
  • 各グループは、32バイト境界に揃うよう人工ゼロでパディングされ、ワープ内でのメモリ連続アクセスを向上させる。
  • フォーマットは、行オフセット、列インデックス、値を別々の連続配列に格納し、グループレベルのメタデータを用いて効率的なインデックスアクセスを可能にする。
  • SpMVカーネルはCUDAで実装され、1つのスレッドが1つの行グループを処理する。各スレッドは、自身のグループに属するすべての非ゼロ要素を処理する。
  • 人工的非ゼロ要素を最小限に抑えるために、非ゼロ要素数の降順順序付けおよびAMD(近似最小次数)順序付けといった行の再順序付け手法を適用する。
  • 性能評価にはCUDAプロファイラを用い、1,600個の行列(標準ベンチマークから取得)についてキャッシュヒット/ミス率、人工的非ゼロ要素数、GFLOPSを測定した。

実験結果

リサーチクエスチョン

  • RQ1GPU上での多様なスパース行列に対して、Row-grouped CSRフォーマットはハイブリッドフォーマットに比べてどの程度SpMV性能を向上させるか?
  • RQ2行の再順序付け(降順およびAMD順序付け)は、RgCSRにおける人工的非ゼロ要素数をどの程度低減し、テクスチャキャッシュ利用効率を向上させるか?
  • RQ3RgCSRは連続アクセスを最適化する設計であるにもかかわらず、非ゼロ要素のパターンが極めて不規則な行列ではなぜ性能が著しく低下するのか?
  • RQ4特に行の非ゼロ要素数のばらつきが大きい行列において、メモリ連続アクセスの利点と人工的非ゼロ要素のオーバーヘッドの間にはどのようなトレードオフが生じるか?
  • RQ5知的な行の再順序付けによってRgCSRの性能を著しく向上させられるか?もしそうであるなら、パディングの低減とキャッシュ利用効率の両立を最もよく果たす順序付け戦略は何か?

主な発見

  • 1,600個の行列全体においてRgCSRはハイブリッドフォーマットを上回り、Hohn/fd18 や AMD/G2_circuit のような非ゼロ要素のパターンが規則的な行列では高いGFLOPSを達成した。
  • Hohn/fd18では、降順順序付けを用いたRgCSRは4.845 GFLOPS(人工的非ゼロ要素0.34%)を達成したのに対し、順序付けなしでは4.690 GFLOPSであった。
  • AMD/G2_circuitでは、降順順序付けを用いたRgCSRは9.210 GFLOPS(人工的非ゼロ要素0.05%)を記録し、一部のケースでハイブリッドフォーマットの9.364 GFLOPSを上回った。
  • IBM_EDA/trans4 や Rajat/Raj1 のような不規則な行列では、RgCSRの性能は急激に低下した—それぞれ0.0189 GFLOPSおよび0.0578 GFLOPSに留まり、順序付けなしでは最大2,118.1%もの人工的非ゼロ要素が発生した。
  • AMD順序付けはテクスチャキャッシュヒット率を向上させた(例:AMD/G2_circuitでは3,448ヒット vs. 11,951ミス)が、降順順序付けに比べて人工的非ゼロ要素数が増加したため、キャッシュ効率とメモリ容量の間にはトレードオフがあることが示された。
  • 本研究では、キャッシュミス率が主な性能ボトルネックではないことが確認された。むしろ、不良な行グループ化に起因する人工的非ゼロ要素の増加が、不規則な行列における性能劣化の主な要因であることが判明した。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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