NVIDIA cuGraph Documentation#
Overview#
NVIDIA cuGraph is an open-source collection of GPU-accelerated graph analytics libraries. The collection spans high-level Python analytics, graph neural network (GNN) integrations, and lower-level libraries for applications that need direct control over graph storage and computation.
Traditional Graph Analytics in Python#
cuGraph provides a NetworkX-like Python API for creating and manipulating graphs and running single- and multi-GPU algorithms. See the cuGraph Python API.
pylibcugraph provides lower-level Python bindings to
libcugraph. See the pylibcugraph API.nx-cugraph, maintained in the nx-cugraph repository, is a NetworkX backend that accelerates supported NetworkX algorithms on NVIDIA GPUs without changing application code. See the nx-cugraph guide.
GNN Libraries#
The GNN libraries are maintained in the cuGraph-GNN repository.
cuGraph-PyG integrates cuGraph with PyTorch Geometric and implements its
GraphStore,FeatureStore, loader, and sampler interfaces. See the cuGraph-PyG API.WholeGraph provides distributed storage, communication, tensor, embedding, and graph operations for large-scale GNN workflows. It consists of:
pylibwholegraph, the Python and PyTorch-facing API.
libwholegraph, the native C/CUDA library.
Core Libraries#
libcuGraph is the native GPU graph analytics implementation in the cuGraph repository. Its public interfaces are organized as:
the C API (libcugraph_c);
the C++ API;
the C++ primitives API for composing graph operations; and
the ETL API (libcugraph_etl) for renumbering tabular vertex identifiers.
The cuGraph Docs repository contains the combined documentation sources and build configuration for these components.
cuGraph Using NetworkX Code#
cuGraph is available as a NetworkX backend through nx-cugraph. NetworkX users can accelerate supported algorithms on an NVIDIA GPU without changing their existing code.
See zero-code-change NetworkX acceleration, or continue below to use the cuGraph API directly.
Getting started with cuGraph#
See the RAPIDS system requirements for required hardware and software.
Installation#
Please see the latest RAPIDS System Requirements documentation.
The RAPIDS installation guide covers several ways to set up cuGraph:
Note: Windows use of RAPIDS depends on prior installation of WSL2.
cuGraph API example#
import cugraph
# Create an instance of the Zachary Karate Club graph.
from cugraph.datasets import karate
G = karate.get_graph()
centrality = cugraph.degree_centrality(G)
The cuGraph notebooks include examples of loading graph data and running algorithms. The Python tests also provide focused examples.
The degree centrality test is a compact starting point. A corresponding multi-GPU example shows the distributed workflow.