[論文レビュー] An Efficient Multiway Mergesort for GPU Architectures
本稿では、GPU向けに新規に開発されたマルチウェイマージソート(MMS)を提示する。MMSは、新しい並列分割手法を用いることで、グローバルメモリアクセス回数を漸近的に最適化し、共有メモリのバンク競合を解消する。MMSは、Thrust や MGPU といった最先端のライブラリを上回り、バンク競合に起因する入力に強く、特に競合を引き起こしやすい入力に対しては、それぞれ最大44.3%および37.6%の高速化を達成する。これは、バンク競合フリーな設計とI/O効率の高さに起因する。
Sorting is a primitive operation that is a building block for countless algorithms. As such, it is important to design sorting algorithms that approach peak performance on a range of hardware architectures. Graphics Processing Units (GPUs) are particularly attractive architectures as they provides massive parallelism and computing power. However, the intricacies of their compute and memory hierarchies make designing GPU-efficient algorithms challenging. In this work we present GPU Multiway Mergesort (MMS), a new GPU-efficient multiway mergesort algorithm. MMS employs a new partitioning technique that exposes the parallelism needed by modern GPU architectures. To the best of our knowledge, MMS is the first sorting algorithm for the GPU that is asymptotically optimal in terms of global memory accesses and that is completely free of shared memory bank conflicts. We realize an initial implementation of MMS, evaluate its performance on three modern GPU architectures, and compare it to competitive implementations available in state-of-the-art GPU libraries. Despite these implementations being highly optimized, MMS compares favorably, achieving performance improvements for most random inputs. Furthermore, unlike MMS, state-of-the-art algorithms are susceptible to bank conflicts. We find that for certain inputs that cause these algorithms to incur large numbers of bank conflicts, MMS can achieve up to a 37.6% speedup over its fastest competitor. Overall, even though its current implementation is not fully optimized, due to its efficient use of the memory hierarchy, MMS outperforms the fastest comparison-based sorting implementations available to date.
研究の動機と目的
- グローバルメモリアクセス回数を最小限に抑え、共有メモリのバンク競合を解消するGPUソーティングアルゴリズムの設計。
- データ依存性によるバンク競合が原因で性能が低下する既存のGPUソーティングライブラリの問題を解決すること。
- GPUアーキテクチャを想定した、並列外部記憶モデル(PEM)に基づく理論的裏付けがあり、I/O効率の高いソーティングアルゴリズムの開発。
- 現代のGPUにおいて、標準的なペアワイズマージソートを上回る実用的性能を示すマルチウェイマージソートの有効性を実証すること。
- 初期のMMS実装における性能ボトルネック、特にマージフェーズにおけるスレッド間通信を同定・最適化すること。
提案手法
- アルゴリズムは、入力データを複数のスレッドに効果的に分散させる新規な並列分割手法を採用し、GPU実行に適した高レベルの並列性を露呈する。
- 複数の整列済みサブ配列を効率的にマージするため、minBlockHeap 構造に基づくマルチウェイマージ戦略を採用する。
- すべてのグローバルメモリアクセスがコalescedされ、アクセス回数が並列外部記憶モデル(PEM)における下界と漸近的に一致するよう設計されている。
- 共有メモリのバンク競合を回避するため、同じバンクへの同時アクセスを避けるようにデータアクセスパターンを慎重に設計している。
- ワープ内ではビットォニックマージングネットワークを用いて小さなサブ配列(各32要素)をマージしているが、この部品はパフォーマンスボトルネックとして特定されている。
- アルゴリズムは3つの現代的なGPUアーキテクチャ上で実装・評価され、Thrust や MGPU といった高度に最適化されたライブラリと比較された。
実験結果
リサーチクエスチョン
- RQ1GPU向けに、I/O最適かつ共有メモリバンク競合のないマルチウェイマージソートアルゴリズムを設計可能か?
- RQ2I/O最適かつバンク競合フリーなソーティングアルゴリズムの性能は、Thrust や MGPU といった高度に最適化されたペアワイズマージソートライブラリと比べてどの程度優れるか?
- RQ3既存のGPUソーティングライブラリにおけるバンク競合が、非一様な入力分布において性能にどの程度悪影響を及えるか?
- RQ4提案されたMMS実装における主なパフォーマンスボトルネックは何か。それらはどのように是正可能か?
- RQ5MMSの理論的I/O効率は、多様なGPUアーキテクチャおよび入力タイプにおいて実用的パフォーマンス向上にどのように結びつくか?
主な発見
- MMSは、並列外部記憶モデル(PEM)における理論的下界と一致する漸近的に最適なグローバルメモリアクセス回数を達成している。
- アルゴリズムは共有メモリバンク競合が完全に存在しないため、入力の順列パターンに依存しない安定したパフォーマンスを示す。
- ランダム入力では、Thrust や MGPU と同等またはわずかに優れたスループットを達成し、競争力のある性能を示している。
- バンク競合を引き起こしやすい入力では、Gibson GPUプラットフォーム上でのMMSは、Thrust や MGPU に対してそれぞれ最大44.3%および37.6%の高速化を達成している。
- 分割フェーズの実行時間は合計実行時間の2%未満にとどまっているため、主なパフォーマンスボトルネックはマージフェーズにあり、特にminBlockHeap 構造内のスレッド間通信に起因している。
- マージフェーズのパフォーマンスボトルネックは、32スレッドワープ間でのビットォニックマージングネットワークを介した高い通信オーバーヘッドに起因しており、この部品の最適化により顕著なパフォーマンス向上が見込める。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。