Skip to main content

rustyhdf5_gpu/
error.rs

1/// Errors for GPU operations.
2#[derive(Debug, thiserror::Error)]
3pub enum GpuError {
4    #[error("no GPU device available")]
5    NoDevice,
6
7    #[error("GPU device request failed: {0}")]
8    DeviceRequest(String),
9
10    #[error("no vectors uploaded to GPU")]
11    NoVectors,
12
13    #[error("no norms uploaded to GPU")]
14    NoNorms,
15
16    #[error("dimension mismatch: expected {expected}, got {got}")]
17    DimensionMismatch { expected: usize, got: usize },
18
19    #[error("k ({k}) exceeds vector count ({n})")]
20    KExceedsN { k: usize, n: usize },
21
22    #[error("GPU buffer mapping failed: {0}")]
23    BufferMap(String),
24
25    #[error("vectors too large for GPU memory: need {need_mb} MB, have {avail_mb} MB")]
26    OutOfMemory { need_mb: u64, avail_mb: u64 },
27
28    #[error("GPU feature not enabled — compile with feature 'gpu-wgpu'")]
29    NotCompiled,
30}
31
32pub type Result<T> = std::result::Result<T, GpuError>;