gunrock/gunrock
Programmable CUDA/C++ GPU Graph Analytics
解決する課題
GPU上でのグラフ分析は、低レベルの並列処理やメモリ管理が必要となるため、従来は実装が困難でした。Gunrockは、頂点やエッジのフロンティアに対する操作に焦点を当てた高レベルでデータ中心の抽象化を提供することで、この問題を解決します。これにより、GPUに関する深い専門知識がなくても、BFSやPageRankなどのアルゴリズムを迅速に実装できます。
仕組み
Gunrockは、バルク同期/非同期プログラミングモデルを中心に構築されています。頂点またはエッジのフロンティアを定義し、advance(フロンティアからのトラバース)やfilter(要素の除外)といった操作を適用します。このライブラリは最適化されたGPUプリミティブと細粒度の負荷分散を提供し、APIを通じて単一GPUからノード内のマルチGPUまでスケーリング可能です。
対象ユーザー
GPU上でグラフアルゴリズムを構築または実行する必要がある開発者、研究者、エンジニア向けです。特に、低レベルのCUDAをゼロから記述することなく、パフォーマンスと表現力のバランスを重視する方に適しています。
ハイライト
- NVIDIA CUDAおよびAMD ROCm/HIPバックエンドの両方をサポート
- 構築済みアルゴリズムを同梱:BFS、SSSP、PageRank、Betweenness Centrality、Graph Coloringなど
- 小さなコードサイズ:BFSの実装を数個のラムダ式で記述可能
- 単一GPUからノード内のマルチGPUまでスケーリング可能
- pygunrockによるPythonバインディング
- Apache 2.0ライセンス
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト