gunrock/gunrock

Programmable CUDA/C++ GPU Graph Analytics

What it solves

Graph analytics on GPUs is traditionally hard to write because you need to manage low-level parallelism and memory. Gunrock solves this by providing a high-level, data-centric abstraction that focuses on operations on vertex or edge frontiers, so you can implement algorithms like BFS or PageRank quickly without deep GPU expertise.

How it works

Gunrock is built around a bulk-synchronous/asynchronous programming model. You define a frontier of vertices or edges, then apply operations like advance (traverse from the frontier) and filter (drop elements). The library supplies optimized GPU primitives and fine-grained load balancing, and its API lets you scale from one to many GPUs on a node.

Who it's for

It's for developers, researchers, and engineers who need to build or run graph algorithms on GPUs—especially those who want a balance between performance and expressiveness, without writing low-level CUDA from scratch.

Highlights

  • Supports both NVIDIA CUDA and AMD ROCm/HIP backends
  • Includes pre-built algorithms: BFS, SSSP, PageRank, Betweenness Centrality, Graph Coloring, and more
  • Small code size: a BFS implementation can be written in a few lambda expressions
  • Scales from one to many GPUs on a node
  • Python bindings via pygunrock
  • Apache 2.0 licensed

Related

  • Project
  • Project
  • Project
  • Project