Skip to main content
QUICK REVIEW

[論文レビュー] Gunrock: GPU Graph Analytics

Yangzihao Wang, Yuechao Pan|arXiv (Cornell University)|Jan 4, 2017
Graph Theory and Algorithms参考文献 62被引用数 11
ひとこと要約

Gunrock は、データ中心のフロンティア指向プログラミングモデルを採用することで、効率的なグラフプリミティブの実装を可能にする、高性能で GPU アクセcelerated のグラフ分析フレームワークです。頂点およびエッジのフロンティアを中心に計算を抽象化し、GPU 特有の最適化を統合することで、手動で最適化された GPU カーネルと同等のパフォーマンスを達成しながらも、高水準のプログラマビリティと最小限の GPU コーディングの専門知識を維持しています。

ABSTRACT

For large-scale graph analytics on the GPU, the irregularity of data access and control flow, and the complexity of programming GPUs, have presented two significant challenges to developing a programmable high-performance graph library. "Gunrock", our graph-processing system designed specifically for the GPU, uses a high-level, bulk-synchronous, data-centric abstraction focused on operations on a vertex or edge frontier. Gunrock achieves a balance between performance and expressiveness by coupling high performance GPU computing primitives and optimization strategies with a high-level programming model that allows programmers to quickly develop new graph primitives with small code size and minimal GPU programming knowledge. We characterize the performance of various optimization strategies and evaluate Gunrock's overall performance on different GPU architectures on a wide range of graph primitives that span from traversal-based algorithms and ranking algorithms, to triangle counting and bipartite-graph-based algorithms. The results show that on a single GPU, Gunrock has on average at least an order of magnitude speedup over Boost and PowerGraph, comparable performance to the fastest GPU hardwired primitives and CPU shared-memory graph libraries such as Ligra and Galois, and better performance than any other GPU high-level graph library.

研究の動機と目的

  • GPU でのグラフ分析における不規則なメモリアクセスと制御フローの課題に対処する。
  • GPU グラフ処理における高性能とプログラマビリティのギャップを埋める。
  • 最小限の GPU プログラミングの専門知識で、多様なグラフプリミティブの効率的な実装を可能にする。
  • ロードバランシング、カーネル統合、優先度キューといった高度な GPU 最適化を、高水準な抽象化に統合する。
  • データサイエンティスト、アルゴリズム設計者、研究者らが GPU 上でグラフアルゴリズムを開発・ベンチマークできる、パフォーマンスに優れたオープンソースフレームワークを提供する。

提案手法

  • バッチ同期的で、頂点およびエッジのフロンティアを主たる計算単位とするデータ中心の抽象化を採用する。
  • プログラマーが『何を』実行するかを指定するだけで、『どのように』並列化または最適化するかを明示しなくてもよい高水準 API を提供する。
  • ランタイム内に透明に統合された低レベル GPU 最適化(カーネル統合、プッシュプル走査、冪等走査、2段階優先度キュー)を実装する。
  • 動的ロードバランシングとワークエフェィシャシー戦略を用いて、GPU のワープおよびブロック間での不規則な作業配分を管理する。
  • メモリアクセスを最適化するため、データ再編成とエッジリストのグループ化を実施し、非コalesced メモリトランザクションを削減する。
  • 必要な情報のみを GPU にロードすることで、頂点およびエッジに豊富なデータをサポートし、複雑なグラフクエリおよび分析を可能にする。

実験結果

リサーチクエスチョン

  • RQ1GPU グラフ分析の高水準プログラミングモデルは、手動で最適化されたハードウェアに固定された GPU カーネルと同等のパフォーマンスを達成できるか?
  • RQ2データ中心のフロンティア抽象化は、走査ベース、順位付け、カウントアルゴリズムを含む多様なグラフプリミティブをどれほど効果的にサポートできるか?
  • RQ3GPU 特有の最適化(例:ロードバランシング、カーネル統合、優先度キュー)を抽象化し、パフォーマンスを損なわず、低レベルコーディングを必要とせずに自動的に適用できるか?
  • RQ4Gunrock のパフォーマンスは、CPU 基盤の共有メモリグラフライブラリや他の GPU プログラマブルフレームワークと比較してどの程度か?
  • RQ5インクリメンタルなグラフ更新と、豊富な頂点/エッジデータのサポートを維持しながら、効率性とスケーラビリティを確保できるか?

主な発見

  • 1 つの GPU で、Gunrock は Boost や PowerGraph に対して、さまざまなグラフプリミティブで少なくとも 1 時間の速度向上を達成している。
  • Gunrock のパフォーマンスは、最も高速なハードウェアに固定された GPU プリミティブと同等であり、Ligra や Galois といった CPU 共有メモリライブラリと同等またはそれを上回っている。
  • Gunrock は、パフォーマンスの観点から、他のすべての GPU 高水準グラフライブラリを上回っており、汎用 GPU グラフ分析フレームワークとしての有効性を示している。
  • フレームワークにより、数 hundred 行のコードと最小限の GPU プログラミング知識で新しいグラフプリミティブを実装できるようになり、開発のオーバーヘッドが著しく削減された。
  • プッシュプル走査や 2 段階優先度キューといった最適化戦略を高水準抽象化に統合することで、高いパフォーマンスと柔軟性の両立が可能になった。
  • Gunrock は Apache 2.0 ライセンスのもとでオープンソース化されており、http://gunrock.github.io/ で入手可能であり、GPU グラフ処理のベンチマークとしての役割を果たしている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。