Skip to main content
QUICK REVIEW

[論文レビュー] Design Principles for Sparse Matrix Multiplication on the GPU

Carl Yang, Aydın Buluç|arXiv (Cornell University)|Mar 22, 2018
Parallel Computing and Optimization Techniques被引用数 8
ひとこと要約

本稿では、圧縮疎行列形式(CSR)を用いた、GPUに最適化された新しいスパース行列-密行列乗算(SpMM)アルゴリズムを2つ提案する。マージベースの負荷分散と行優先のコalescedメモリアクセスを活用することで、実世界のデータセット上で最先端の実装比でピークで4.1倍、幾何平均で31.7%のスループット向上を達成する。形式変換にかかるコストを回避し、遅延隠蔽と命令レベル並列性に焦点を当てることで、GPUの利用効率を大幅に向上させる。

ABSTRACT

We implement two novel algorithms for sparse-matrix dense-matrix multiplication (SpMM) on the GPU. Our algorithms expect the sparse input in the popular compressed-sparse-row (CSR) format and thus do not require expensive format conversion. While previous SpMM work concentrates on thread-level parallelism, we additionally focus on latency hiding with instruction-level parallelism and load-balancing. We show, both theoretically and experimentally, that the proposed SpMM is a better fit for the GPU than previous approaches. We identify a key memory access pattern that allows efficient access into both input and output matrices that is crucial to getting excellent performance on SpMM. By combining these two ingredients---(i) merge-based load-balancing and (ii) row-major coalesced memory access---we demonstrate a 4.1x peak speedup and a 31.7% geomean speedup over state-of-the-art SpMM implementations on real-world datasets.

研究の動機と目的

  • CSR形式からの形式変換を必要とせずに、GPU上でのスパース行列-密行列乗算(SpMM)の性能を向上させること。
  • GPUアーキテクチャにおけるSpMMにおける不規則なメモリアクセスと負荷不均衡の課題に対処すること。
  • 両方の入力行列および出力行列に対する効率的なコalescedアクセスを可能にする重要なメモリアクセスパターンを特定・活用すること。
  • 行列の特徴に基づいて、2つのSpMMカーネルバージョンの間で動的選択を行うヒューリスティックを開発すること。
  • スパース度が低い(9%未満)状況で、SpMMが密行列乗算(GEMM)を上回ることを実証すること。

提案手法

  • GPU実行を想定し、主に2つのSpMVアルゴリズムクラス(行分割とマージベース)をSpMMに一般化する。
  • スレッドブロックを密行列の行に一致させ、ワープ間の負荷をバランスさせるマージパスを用いるマージベースのカーネルを設計する。
  • 最適選択と比較して99.3%の正確性を達成する、軽量なヒューリスティックを実装し、マージベースと行分割カーネルの間での選択を可能にする。
  • スパース入力と密出力行列の両方に対して行優先のコalescedアクセスを保証することで、メモリアクセスを最適化し、遅延を最小限に抑え、スループットを最大化する。
  • 協調スレッドアレイ(CTAs)とワープレベルのプリミティブを用いて、スレッドの分岐を最小限に抑え、割り当て率を最大化する。
  • 負荷分散の論理と計算を密接に統合することで、抽象化のオーバーヘッドを回避しつつ、性能を維持する。

実験結果

リサーチクエスチョン

  • RQ1マージベースの負荷分散を、SpMVからGPU上のSpMMに効果的に拡張できるか?
  • RQ2形式変換なしで、GPU上で高性能なSpMMを実現するためのメモリアクセスパターンは何か?
  • RQ32つのSpMMバリアント間での動的カーネル選択を、高い正確性と低いランタイムコストで達成できるか?
  • RQ4GPU上でSpMMがGEMMを上回るスパース度の閾値は何か?
  • RQ5入力形式を変更せずに、ベンダーオプティマイズ済みCSR SpMM実装を大幅に上回る性能向上が達成できるか?

主な発見

  • 提案されたマージベースのSpMMカーネルは、SuiteSparse Collectionの157個の実世界行列を対象に、最先端のSpMM実装比でピークで4.1倍、幾何平均で31.7%のスループット向上を達成した。
  • cuSPARSEのcsrmmおよびcsrmm2関数を含め、多様なスパース行列において、両者を上回る性能を発揮し、特にタールスキンニ行列において一貫した向上を示した。
  • カーネル選択のヒューリスティックは、最適選択と比較して99.3%の正確性を達成し、最小限のオーバーヘッドでほぼ最適な性能を実現した。
  • スパース行列の非ゼロ要素が9%未満の状況で、SpMMがGEMMを上回ることが確認され、低スパース度でも効率的であることが示された。
  • コalescedメモリアクセスとバランスの取れた負荷分散を保証することで、高いGPU割り当て率を維持し、スレッド分岐を最小限に抑えた。
  • 性能向上の要因は、命令レベル並列性による効果的な遅延隠蔽と、コalesced行優先メモリアクセスパターンに起因する。

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

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

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

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