NVIDIA cuGraph Documentation#

_images/cugraph_logo_2.png

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:

Core Libraries#

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.

Table of Contents#

Indices and tables#