[論文レビュー] Helios: An Efficient Out-of-core GNN Training System on Terabyte-scale Graphs with In-memory Performance
Helios は、GPU が開始する非同期 I/O、CPU と GPU メモリを横断する GPU 管理の異種キャッシュ、および深層 GNN に特化したパイプラインを活用することで、テラバイト規模のグラフにおいてメモリ内トレーニングのスループットを達成する、新規のオフコア GNN トレーニングシステムである。Helios は、最先端の GPU 管理ベースラインに対して最大 6.43× の高速化を達成し、CPU 管理システムに対しては 182× 以上の高速化を実現した。
Training graph neural networks (GNNs) on large-scale graph data holds immense promise for numerous real-world applications but remains a great challenge. Several disk-based GNN systems have been built to train large-scale graphs in a single machine. However, they often fall short in terms of performance, especially when training on terabyte-scale graphs. This is because existing disk-based systems either overly focus on minimizing the number of SSD accesses or do not fully overlap SSD accesses with GNN training, thus resulting in substantial unnecessary overhead on the CPU side and then low GPU utilization. To this end, we propose Helios, a system that can train GNN on terabyte graphs in a single machine while achieving throughput comparable with in-memory systems. To achieve this, we first present a GPU-initiated asynchronous disk IO stack, allowing the GPU to directly access graph data on SSD. This design only requires about 30% GPU cores to reach the almost maximal disk IO throughput and wastes no GPU cores between IO submission and IO completion such that the majority of GPU cores are left for other GNN kernels. Second, we design a GPU-managed heterogeneous cache that extends the cache hierarchy to heterogeneous CPU and GPU memory and thus enhances cache lookup throughput significantly by GPU parallelism. Finally, we build a deep GNN-aware pipeline that seamlessly integrates the computation and communication phases of the entire GNN training process, maximizing the utility of GPU computation cycles. Experimental results demonstrate that Helios can match the training throughput of in-memory GNN systems, even for terabyte-scale graphs. Remarkably, Helios surpasses the state-of-the-art GPU-managed baselines by up to 6.43x and exceeds CPU-managed baselines by over 182x on all terabyte-scale graphs.
研究の動機と目的
- テラバイト規模のグラフを処理するディスクベースの GNN トレーニングシステムにおいて、CPU ボトル neck と低効率な GPU 利用率が引き起こす深刻な性能ボトル neck を解消すること。
- 従来の CPU 管理システムの限界を克服し、ミニバッチ準備におけるシリアルな CPU-GPU データ転送と高い CPU オーバーヘッドにより無駄にされる GPU サイクルを削減すること。
- GIDS のような GPU 管理システムのスループットの上限を解消し、並列性の欠如と十分なキャッシュ容量の不足により、ディスク I/O を未利用のままにし、GPU リソースを浪費してしまう問題を解消すること。
- 単一マシンのオフコアアーキテクチャを用いて、インメモリストレージを必要とせず、テラバイト規模のグラフにおいてインメモリレベルのトレーニングスループットを達成すること。
- GPU ネイティブ制御と知的なデータ階層管理により、計算、I/O、キャッシュ管理を重ねることで GPU 利用率を最大化するシステムを設計すること。
提案手法
- GPU が直接 SSD に格納されたグラフデータにアクセスできるようにする、GPU が開始する非同期 I/O スタックを導入し、CPU の関与を削減し、GPU コアの約 30% を使用してディスク I/O をほぼ最大限に維持できるようにした。
- CPU と GPU メモリを横断する GPU 管理の異種キャッシュを採用し、GPU の並列処理を活用してキャッシュ参照を高速化し、I/O レイテンシを低減した。
- 計算フェーズと通信フェーズをシームレスに統合する、深層 GNN に特化したパイプラインを設計し、GPU のアイドルサイクルを最小限に抑え、ハードウェア利用率を最大化した。
- GNN トレーニングカーネルとデータロードを重ねることでディスク I/O を最適化し、GPU のワークロードを継続的に維持し、I/O 提出と完了の間のアイドル時間を排除した。
- GPU が駆動するサンプリングと特徴抽出を最適化したスーパーバッチとミニバッチ生成戦略を採用し、重複するデータ移動を最小限に抑え、I/O 效率を最大化した。
- GPUDirect 技術を活用して、CPU を介したデータ移動と比較してレイテンシとメモリコピーのオーバーヘッドを削減する、GPU-SSD 直接転送を実現した。
実験結果
リサーチクエスチョン
- RQ1CPU ボトル neck を最小限に抑え、GPU 利用率を最大化することで、ディスクベースの GNN トレーニングシステムがテラバイト規模のグラフにおいてインメモリレベルのスループットを達成できるか。
- RQ2GPU が開始する非同期 I/O は、GNN トレーニングワークロードにおいて、ディスク I/O スループットを向上させるとともに、GPU のアイドル時間をどれほど削減できるか。
- RQ3CPU と GPU メモリを横断する GPU 管理の異種キャッシュは、大規模な GNN におけるディスク I/O をどれほど削減し、データアクセスをどれほど高速化できるか。
- RQ4計算フェーズと通信フェーズを統合する深層で GNN に特化したパイプラインは、GPU 利用率とトレーニングスループットを顕著に向上させられるか。
- RQ5CPU 管理と GPU 管理のディスクベースの GNN システムの間には、テラバイト規模のグラフにおいてどれほどの性能差があるか。また、新しいシステムがその差を埋め、インメモリ性能に近づけるか。
主な発見
- Helios は、CPU ボトル neck を排除し、GPU 利用率を最大化することで、テラバイト規模のグラフにおいてもインメモリ GNN システムと同等のトレーニングスループットを達成した。
- Helios は、すべてのテラバイト規模のグラフにおいて、最先端の GPU 管理ベースライン GIDS を最大 6.43× まで上回ったトレーニングスループットを達成した。
- Helios は、Ginex や MariusGNN のような CPU 管理ベースラインを 182× 以上上回ったトレーニングスループットを達成し、顕著な性能優位性を示した。
- GPU が開始する非同期 I/O スタックは、GPU コアの約 30% のみでほぼ最大のディスク I/O スループットを達成でき、残りの大部分のコアが GNN カーネルに割り当てられた。
- GPU 管理の異種キャッシュは、CPU と GPU メモリに頻繁にアクセスされるデータをキャッシュすることで、ディスク I/O を顕著に削減し、オフコアストレージの性能ペナルティを緩和した。
- Helios はトレーニングワークロードで 90% 以上の GPU 利用率を達成したのに対し、Ginex のような CPU 管理システムでは 0.6% の低利用率にとどまっていたため、I/O と計算の重ねあいが効果的に実現された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。