[論文レビュー] GPU sample sort
本論文は、多数のコアを備えたGPU向けに最適化されたサンプルソートアルゴリズムを提示しており、マルチウェイパーティショニングを活用することで、既存のGPUソートアルゴリズムを上回る性能を発揮する。均一に分布したキーに対しては、Thrustのマージソートよりも最大68%高速であり、GPUクイックソートよりも2倍以上高速な性能を発揮する。また、64ビット整数においては、レーダックスソートを平均で2倍の速度で上回る。
In this paper, we present the design of a sample sort algorithm for manycore GPUs. Despite being one of the most efficient comparison-based sorting algorithms for distributed memory architectures its performance on GPUs was previously unknown. For uniformly distributed keys our sample sort is at least 25% and on average 68% faster than the best comparison-based sorting algorithm, GPU Thrust merge sort, and on average more than 2 times faster than GPU quicksort. Moreover, for 64-bit integer keys it is at least 63% and on average 2 times faster than the highly optimized GPU Thrust radix sort that directly manipulates the binary representation of keys. Our implementation is robust to different distributions and entropy levels of keys and scales almost linearly with the input size. These results indicate that multi-way techniques in general and sample sort in particular achieve substantially better performance than two-way merge sort and quicksort.
研究の動機と目的
- サンプルソートの性能がこれまでGPUアーキテクチャにおいて未検討であった、多数コアGPU向けに最適化されたサンプルソートアルゴリズムの設計。
- Thrustのマージソートやクイックソートといった既存のGPUソートアルゴリズムと比較して、サンプルソートの性能を評価すること。
- 64ビット整数キーに対して、高度に最適化されたGPUレーダックスソートと比較して、サンプルソートがどのように性能を発揮するかを検証すること。
- さまざまなデータ分布およびエントロピー水準における、サンプルソートの頑健性とスケーラビリティを評価すること。
提案手法
- サンプルキーに基づく分割点の決定をもとに、マルチウェイパーティショニングを用いて、GPUスレッドブロック間でのデータの効率的分布を実現する。
- 負荷の不均衡を最小限に抑えるため、分割処理中のグローバルメモリアクセスを削減するための、サンプルに基づく分割点選択を採用する。
- GPUの負荷を最大化し、メモリのコalescingを促進するために、スレッドブロック内でのソート処理と並列パーティショニングを統合する設計を採用する。
- 均一でないキー分布に対しても最適化されており、データのエントロピー水準にかかわらず一貫した性能を発揮する。
- 共有メモリの使用やワープレベルのプリミティブを活用するなど、GPU固有の最適化を駆使して、比較処理とデータ移動を高速化する。
実験結果
リサーチクエスチョン
- RQ1サンプルソートは、マージソートやクイックソートといった既存の比較ベースのGPUソートアルゴリズムと比較して、GPU上でどのように性能を発揮するか?
- RQ264ビット整数キーに対して、高度に最適化されたGPUレーダックスソートをサンプルソートが上回ることができるか?
- RQ3サンプルソートは、データ分布やエントロピー水準の変化に対してどれほど頑健か?
- RQ4GPUアーキテクチャにおいて、入力サイズの増加に伴って、アルゴリズムはどの程度スケーリングするか?
主な発見
- 均一に分布したキーに対しては、サンプルソートはThrustのマージソートよりも最低でも25%高速であり、平均で68%高速である。
- 均一に分布したデータに対しては、サンプルソートはGPUクイックソートよりも平均で2倍以上高速である。
- 64ビット整数キーに対しては、最適化されたGPU Thrustレーダックスソートよりも、サンプルソートは最低でも63%高速であり、平均で2倍高速である。
- アルゴリズムは、さまざまなデータ分布において、入力サイズに対してほぼ線形のスケーラビリティを示す。
- サンプルソートは、多様なキー分布およびエントロピー水準においても高い性能を維持し、強い頑健性を示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。