[論文レビュー] Kernelet: High-Throughput GPU Kernel Executions with Dynamic Slicing and Scheduling
Kernelet は、マルコフ連鎖に基づくパフォーマンスモデルを用いて、動的にカーネルを低占有率のサブカーネルに分割し、それらを共同スケジューリングすることで、共有GPU環境におけるスループットを向上させるGPUランタイムシステムである。NVIDIA Tesla C2050 および GTX680 GPU において、動的スライシングと知的なスケジューリングによりリソース利用効率を高めることで、それぞれ最大31.1%および23.4%のパフォーマンス向上を達成した。
Graphics processors, or GPUs, have recently been widely used as accelerators in the shared environments such as clusters and clouds. In such shared environments, many kernels are submitted to GPUs from different users, and throughput is an important metric for performance and total ownership cost. Despite the recently improved runtime support for concurrent GPU kernel executions, the GPU can be severely underutilized, resulting in suboptimal throughput. In this paper, we propose Kernelet, a runtime system with dynamic slicing and scheduling techniques to improve the throughput of concurrent kernel executions on the GPU. With slicing, Kernelet divides a GPU kernel into multiple sub-kernels (namely slices). Each slice has tunable occupancy to allow co-scheduling with other slices and to fully utilize the GPU resources. We develop a novel and effective Markov chain based performance model to guide the scheduling decision. Our experimental results demonstrate up to 31.1% and 23.4% performance improvement on NVIDIA Tesla C2050 and GTX680 GPUs, respectively.
研究の動機と目的
- 共有GPU環境における高占有率だがリソース利用効率が低い単一カーネル実行が引き起こすGPU利用効率の低下を是正すること。
- 複数のユーザーがGPUリソースを競い合うGPUクラスターやクラウド環境におけるスループットを向上させること。
- 設定可能な占有率を備えたより小さな、共同スケジューリング可能な単位に動的にカーネルをスライスすることで、GPUカーネルの効果的な並列実行を可能にすること。
- 広範なプロファイリングを必要とせず、正確で軽量なパフォーマンスモデルを構築すること。
- GPU利用効率を最大化するために、カーネルスライシングとスケジューリングを透明に管理するランタイムシステムを設計すること。
提案手法
- スレッドブロックレベルでGPUカーネルをサブカーネル(スライス)に動的にスライスし、他のカーネルからのスライスと共同スケジューリングを可能にする。
- スライスの占有率を調整することで、複数のカーネル間でのリソース使用の補完的配分を可能にし、リソース競合を回避する。
- 主なカーネル特徴(占有率やメモリアクセスパターンなど)を用いて、並列実行されるスライスの実行時間を予測する、新規のマルコフ連鎖ベースのパフォーマンスモデルを採用する。
- パフォーマンスモデルの予測結果を基にスケジューリング意思決定を実施し、GPU利用効率を最大化するとともに、アイドル時間を最小限に抑えるスライスの組み合わせを選択する。
- 既存のGPUランタイムと統合され、ソースコードやカーネルの変更なしに透明に動作する。
- スライスの粒度をスレッドブロックに制限することでランタイムのオーバーヘッドを回避しつつ、過度に小さなスライスの送信を防ぐ。
実験結果
リサーチクエスチョン
- RQ1動的カーネルスライシングにより、リソース共有を向上させることで、共有GPU環境におけるスループットの向上が図れるか?
- RQ2スライスサイズと占有率をどのように調整すれば、並列カーネル実行時のGPU利用効率を最大にすることができるか?
- RQ3広範なプロファイリングを伴わずに、軽量なパフォーマンスモデルが並列実行カーネルの挙動を正確に予測できるか?
- RQ4複数のカーネルが共有GPU環境で共同スケジューリングされる状況で、GPU利用効率を最大化するスケジューリング戦略は何か?
- RQ5動的スライシングは、静的カーネル統合やモノリシックカーネル実行と比較して、スループットと効率の面で優れているか?
主な発見
- Kernelet は、NVIDIA Tesla C2050(Fermi)および GTX680(Kepler)において、多様なワークロードでGPUスループットを最大31.1%および23.4%向上させた。
- マルコフ連鎖ベースのパフォーマンスモデルは、占有率やメモリアクセスパターンといった主要なカーネル指標のみを入力として用いることで、並列実行パフォーマンスを非常に正確に予測できる。
- 動的スライシングにより、個々のカーネルが高占有率であっても、GPUリソースの効果的な時間共有が可能となり、従来のカーネル統合手法の限界を克服できる。
- ソースコードのアクセスやカーネルのランタイム変更が不要なため、共有環境やクラウド環境においても適用可能であり、顕著なパフォーマンス向上を達成している。
- パフォーマンスモデルに従ったスケジューリング意思決定により、リソース利用効率が向上し、アイドル時間が削減され、GPU全体の効率が向上した。
- 細粒度のスライシングによりスケジューリングの機会を増やした点で、従来の手法(カーネル統合や静的スケジューリング)を上回る性能を発揮した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。