[論文レビュー] Onesweep: A Faster Least Significant Digit Radix Sort for GPUs
Onesweepは、GPU向けに新規の最下位桁(LSD)基数ソートを導入し、1パスのプレフィックス和技術を用いてグローバルメモリトラフィックを削減する。これにより、1桁のビニング反復あたり約2nのグローバルメモリ操作で済み、従来手法の約3nに比べて効率が向上する。NVIDIA A100では、256M個のランダムな32ビットキーを29.4 GKey/sでソートし、CUBを1.5倍の速度で上回り、さまざまなキー分布においてHRSをも凌駕する。
We present Onesweep, a least-significant digit (LSD) radix sorting algorithm for large GPU sorting problems residing in global memory. Our parallel algorithm employs a method of single-pass prefix sum that only requires ~2n global read/write operations for each digit-binning iteration. This exhibits a significant reduction in last-level memory traffic versus contemporary GPU radix sorting implementations, where each iteration of digit binning requires two passes through the dataset totaling ~3n global memory operations. On the NVIDIA A100 GPU, our approach achieves 29.4 GKey/s when sorting 256M random 32-bit keys. Compared to CUB, the current state-of-the-art GPU LSD radix sort, our approach provides a speedup of ~1.5x. For 32-bit keys with varied distributions, our approach provides more consistent performance compared to HRS, the current state-of-the-art GPU MSD radix sort, and outperforms it in almost all cases.
研究の動機と目的
- GPUベースのLSD基数ソートにおけるグローバルメモリトラフィックを、不要なメモリ操作を最小限に抑えることで低減すること。
- グローバルメモリに格納された大規模データセットに適した、高性能でスケーラブルなソーティングカーネルを設計すること。
- さまざまなキー分布にわたる性能の一貫性を保ちながら、現在の最先端GPU基数ソート実装を上回ること。
- 桁ビニング段階におけるメモリアクセスパターンの最適化を通じて、GPUでの効率的なソーティングを実現すること。
提案手法
- アルゴリズムは、1桁のビニング反復ごとに2回のメモリパスを必要としない1パスのプレフィックス和計算を採用している。
- セグメント化された並列プレフィックス和パターンを活用し、最小限のグローバルメモリトラフィックでビンオフセットを効率的に計算する。
- 2段階のカーネル起動を採用:まずビンカウントを計算し、次に計算されたオフセットを用いて排他的スキャンとスキャッタを出力ビンに実行する。
- ワープレベルの還元とシャッフルベースのアプローチを用いて、分岐を最小限に抑え、GPUのオキュパイアンシーを最大化する。
- グローバルメモリ操作を1桁のビニングステップあたり約2nにまで低減し、最後段のキャッシュ圧力を顕著に軽減する。
- 32ビットキーをサポートし、実世界のワークロードで一般的に見られるランダムで多様なキー分布に最適化されている。
実験結果
リサーチクエスチョン
- RQ11パスのプレフィックス和技術により、GPUのLSD基数ソートにおけるグローバルメモリ操作を、現在の2パス基準を下回るか。
- RQ2メモリトラフィックの低減が、A100のような現代GPUにおけるパフォーマンスに与える影響は。
- RQ3提案手法は、非一様で偏ったデータを含む多様なキー分布においても高いパフォーマンスを維持できるか。
- RQ4CUBおよびHRSと比較して、スループットと一貫性の点でどのように差がつくか。
主な発見
- Onesweepは、NVIDIA A100 GPU上で256M個のランダムな32ビットキーを29.4 GKey/sでソートし、CUBを顕著に上回る。
- 同じ条件下で、現在の最先端GPU LSD基数ソートであるCUBを1.5倍の速度で上回る。
- HRS(現在の最先端GPU MSD基数ソート)と比較して、さまざまなキー分布においてより一貫性のあるパフォーマンスを発揮する。
- 従来手法の約3nに比べ、1桁のビニング反復あたりのグローバルメモリ操作を約2nにまで削減し、最後段のメモリトラフィックを顕著に低減する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。