trueno_graph/gpu/mod.rs
1//! GPU acceleration for graph algorithms
2//!
3//! Based on research from:
4//! - **Gunrock** (Wang et al., ACM `ToPC` 2017) - GPU graph traversal primitives
5//! - **`cuGraph`** (Bader et al., 2022) - GPU-accelerated graph analytics
6//! - **`GraphBLAST`** (Yang et al., 2022) - GPU linear algebra for graphs
7//! - **Umbra** (Neumann & Freitag, CIDR 2020) - Morsel-driven parallelism
8//! - **Funke et al.** (SIGMOD 2018) - GPU memory paging
9//!
10//! # Architecture
11//!
12//! - `device`: GPU device initialization and management
13//! - `buffer`: GPU buffer management for CSR data
14//! - `memory`: VRAM detection and memory limits
15//! - `cache`: LRU cache for graph tiles
16//! - `paging`: Graph tiling and paging coordinator
17//! - `kernels`: WGSL compute shaders for BFS, `PageRank`, etc.
18//!
19//! # Feature Flag
20//!
21//! This module is only available with the `gpu` feature flag:
22//! ```bash
23//! cargo build --features gpu
24//! ```
25
26mod bfs;
27mod buffer;
28mod cache;
29mod device;
30mod memory;
31mod paged_bfs;
32mod pagerank;
33mod paging;
34
35pub use bfs::{gpu_bfs, GpuBfsResult};
36pub use buffer::GpuCsrBuffers;
37pub use cache::LruTileCache;
38pub use device::{GpuDevice, GpuDeviceError};
39pub use memory::{GpuMemoryLimits, DEFAULT_MORSEL_SIZE};
40pub use paged_bfs::gpu_bfs_paged;
41pub use pagerank::{gpu_pagerank, GpuPageRankResult};
42pub use paging::{GraphTile, PagingCoordinator};