1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Tiered memory management for CUDA inference.
//!
//! Implements a 3-tier memory hierarchy (VRAM ← RAM ← NVMe) for efficient
//! inference of models larger than available VRAM.
//!
//! # Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────┐
//! │ VRAM (Hot) - GPU memory, ~0.1ms latency, 24GB typical │
//! ├─────────────────────────────────────────────────────────────┤
//! │ RAM (Warm) - Pinned CPU memory, ~1ms latency, 64-128GB │
//! ├─────────────────────────────────────────────────────────────┤
//! │ NVMe (Cold) - Disk cache, ~10ms latency, 1TB+ │
//! └─────────────────────────────────────────────────────────────┘
//! ```
//!
//! # Usage
//!
//! ```ignore
//! use abaddon::cuda_inference::tiered::{TieredWeightStore, TieredConfig};
//!
//! let config = TieredConfig::for_24gb_gpu();
//! let weights = TieredWeightStore::load(model_dir, config)?;
//!
//! // Layers are loaded on-demand from the appropriate tier
//! let layer = weights.get_layer(0)?;
//! ```
pub use ;
pub use TieredError;
pub use ;
pub use ;
pub use TieredStats;
pub use TieredWeightStore;
// Re-export cache types for testing
pub use NvmeCache;
pub use RamCache;
pub use VramCache;
// Property-based tests for memory invariants