Skip to main content

Crate hypomnesis

Crate hypomnesis 

Source
Expand description

§hypomnesis

External measurement of a Rust process’s RAM and VRAM state, on Windows and Linux.

hypomnesis reports what’s currently in a process’s memory — process RSS, device-wide GPU memory, and per-process GPU VRAM — without depending on candle, cudarc, sysinfo, or any inference framework.

§Capabilities

MetricWindowsLinux
Process RSSK32GetProcessMemoryInfo/proc/self/status
Device-wide GPU memoryNVML (nvml.dll)NVML (libnvidia-ml.so.1)
Per-process GPU memoryDXGI (IDXGIAdapter3::QueryVideoMemoryInfo)NVML (nvmlDeviceGetComputeRunningProcesses)
Compute-process listing (other PIDs)nvidia-smi --query-compute-appsNVML + /proc/<pid>/comm
Fallbacknvidia-smi subprocessnvidia-smi subprocess

§Quick start

let snap = hypomnesis::Snapshot::now(0)?;
println!("RAM: {} bytes", snap.ram_bytes);
if let Some(dev) = snap.gpu_device {
    println!("GPU 0: {:?}, free {} of {} bytes",
             dev.name, dev.free_bytes, dev.total_bytes);
}

§Feature flags

FeatureDefaultDescription
nvmlyesNVML dynamic load via libloading (Linux + Windows-WDDM device-wide)
dxgiyesWindows per-process VRAM via IDXGIAdapter3 (no-op on non-Windows)
nvidia-smi-fallbackyesSubprocess fallback when NVML / DXGI fail
reportnoMemoryReport delta + print_delta / print_before_after / ram_mb / vram_mb helpers (candle-mi parity); format_free / print_free / format_total / format_used formatting helpers on GpuDeviceInfo
debug-outputnoPrint raw NVML / DXGI values to stderr (diagnostic)
clinoBuild the hmn CLI binary (pulls clap 4 as a dep). Library users do not need this; install via cargo install hypomnesis --features cli
test-helpersnoExpose GpuDeviceInfoBuilder for downstream tests that need synthetic GpuDeviceInfo fixtures. Default-off, additive — production code must never enable it.

Re-exports§

pub use error::HypomnesisError;
pub use error::Result;
pub use gpu::device_count;
pub use gpu::device_info;
pub use gpu::gpu_processes;
pub use gpu::process_gpu_info;
pub use ram::process_rss;
pub use snapshot::GpuDeviceInfo;
pub use snapshot::GpuProcessEntry;
pub use snapshot::GpuQuerySource;
pub use snapshot::ProcessGpuInfo;
pub use snapshot::Snapshot;
pub use report::MemoryReport;
pub use snapshot::GpuDeviceInfoBuilder;

Modules§

error
Error types for hypomnesis.
gpu
GPU memory measurement dispatchers and backend modules.
ram
Process RAM (RSS) measurement.
report
Snapshot delta and printing helpers (opt-in via report feature).
snapshot
Snapshot data types — what a hypomnesis measurement returns.