Quick Start Guide

Installation

Basic Installation:

pip install graphem-rapids

With CUDA support:

pip install graphem-rapids[cuda]

With RAPIDS cuVS:

pip install graphem-rapids[rapids]

All features:

pip install graphem-rapids[all]

Basic Usage

Generate and Embed a Graph

import graphem_rapids as gr

# Generate graph (returns sparse adjacency matrix)
adjacency = gr.generate_er(n=1000, p=0.01, seed=42)

# Create embedder with automatic backend selection
embedder = gr.create_graphem(adjacency, n_components=3)

# Run force-directed layout
embedder.run_layout(num_iterations=50)

# Get positions (numpy array)
positions = embedder.get_positions()  # shape: (n_vertices, n_components)

# Visualize (2D or 3D)
embedder.display_layout()

Backend Selection

PyTorch Backend

Best for 1K-100K vertices:

embedder = gr.GraphEmbedderPyTorch(
    adjacency, n_components=3, device='cuda',
    L_min=1.0, k_attr=0.2, k_inter=0.5,
    n_neighbors=10, batch_size=None
)

RAPIDS cuVS Backend

Best for 100K+ vertices:

embedder = gr.GraphEmbedderCuVS(
    adjacency, n_components=3,
    index_type='auto',  # 'brute_force', 'ivf_flat', 'ivf_pq'
    sample_size=1024, batch_size=None
)
Index Types:
  • brute_force: <100K vertices (exact KNN)

  • ivf_flat: 100K-1M vertices (good balance)

  • ivf_pq: >1M vertices (memory-efficient)

Configuration

Environment Variables

export GRAPHEM_BACKEND=pytorch        # Force specific backend
export GRAPHEM_PREFER_GPU=true        # Prefer GPU backends
export GRAPHEM_MEMORY_LIMIT=8         # Memory limit in GB
export GRAPHEM_VERBOSE=true           # Enable verbose logging

Programmatic Configuration

from graphem_rapids.utils.backend_selection import BackendConfig, get_optimal_backend

config = BackendConfig(
    n_vertices=50000,
    force_backend='cuvs',
    memory_limit=16.0,
    prefer_gpu=True
)
backend = get_optimal_backend(config)
embedder = gr.create_graphem(adjacency, backend=backend)

Check Available Backends

info = gr.get_backend_info()
print(f"CUDA: {info['cuda_available']}")
print(f"Recommended: {info['recommended_backend']}")