Skip to main content

Module gpu

Module gpu 

Source
Expand description

GPU acceleration for graph algorithms

Based on research from:

  • Gunrock (Wang et al., ACM ToPC 2017) - GPU graph traversal primitives
  • cuGraph (Bader et al., 2022) - GPU-accelerated graph analytics
  • GraphBLAST (Yang et al., 2022) - GPU linear algebra for graphs
  • Umbra (Neumann & Freitag, CIDR 2020) - Morsel-driven parallelism
  • Funke et al. (SIGMOD 2018) - GPU memory paging

§Architecture

  • device: GPU device initialization and management
  • buffer: GPU buffer management for CSR data
  • memory: VRAM detection and memory limits
  • cache: LRU cache for graph tiles
  • paging: Graph tiling and paging coordinator
  • kernels: WGSL compute shaders for BFS, PageRank, etc.

§Feature Flag

This module is only available with the gpu feature flag:

cargo build --features gpu

Structs§

GpuBfsResult
GPU BFS result
GpuCsrBuffers
GPU buffers for CSR graph representation
GpuDevice
GPU device wrapper for graph operations
GpuMemoryLimits
GPU memory limits and statistics
GpuPageRankResult
GPU PageRank result
GraphTile
Graph tile (subset of nodes and their edges)
LruTileCache
LRU cache for GPU buffers
PagingCoordinator
Paging coordinator for managing graph tiles

Enums§

GpuDeviceError
GPU device initialization errors

Constants§

DEFAULT_MORSEL_SIZE
Default morsel size (128MB chunks as per DuckDB/Umbra)

Functions§

gpu_bfs
Run GPU BFS from source node
gpu_bfs_paged
Run GPU breadth-first search over a graph that may exceed VRAM.
gpu_pagerank
Run GPU PageRank algorithm