process_probe/
process_probe.rs1use anyhow::Result;
2use gpu_histop::backend::create_backend;
3use gpu_histop::config::BackendChoice;
4
5fn main() -> Result<()> {
6 let mut backend = create_backend(BackendChoice::Auto)?;
7
8 for sample in backend.sample()? {
9 println!(
10 "GPU {}: {} process(es)",
11 sample.gpu_id,
12 sample.processes.len()
13 );
14 for process in sample.processes {
15 let user = process.user.as_deref().unwrap_or("?");
16 let command = process.command.as_deref().unwrap_or("?");
17 let memory = process
18 .used_gpu_memory_bytes
19 .map(|bytes| format!("{:.1} GiB", bytes as f64 / 1024.0 / 1024.0 / 1024.0))
20 .unwrap_or_else(|| "n/a".to_owned());
21 println!(
22 " {:<7} pid={:<8} user={:<12} mem={:<8} {}",
23 process.kind_label(),
24 process.pid,
25 user,
26 memory,
27 command
28 );
29 }
30 }
31
32 Ok(())
33}