Expand description
GPU acceleration for graph algorithms
Based on research from:
- Gunrock (Wang et al., ACM
ToPC2017) - GPU graph traversal primitives cuGraph(Bader et al., 2022) - GPU-accelerated graph analyticsGraphBLAST(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 managementbuffer: GPU buffer management for CSR datamemory: VRAM detection and memory limitscache: LRU cache for graph tilespaging: Graph tiling and paging coordinatorkernels: WGSL compute shaders for BFS,PageRank, etc.
§Feature Flag
This module is only available with the gpu feature flag:
cargo build --features gpuStructs§
- GpuBfs
Result - GPU BFS result
- GpuCsr
Buffers - GPU buffers for CSR graph representation
- GpuDevice
- GPU device wrapper for graph operations
- GpuMemory
Limits - GPU memory limits and statistics
- GpuPage
Rank Result - GPU
PageRankresult - Graph
Tile - Graph tile (subset of nodes and their edges)
- LruTile
Cache - LRU cache for GPU buffers
- Paging
Coordinator - Paging coordinator for managing graph tiles
Enums§
- GpuDevice
Error - 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
PageRankalgorithm