back to the past

This commit is contained in:
2025-08-09 18:28:12 +02:00
parent cfd9fef3e9
commit f570f3c67d

View File

@@ -12,20 +12,21 @@ pub struct GpuInfo {
}
pub async fn get_gpu_info() -> Result<GpuInfo, Box<dyn Error>> {
let nvml = Nvml::init()?;
let device = nvml.device_by_index(0)?;
//let nvml = Nvml::init()?;
//let device = nvml.device_by_index(0)?;
let (used, total) = get_gpu_vram_usage(&device)?;
//let (used, total) = get_gpu_vram_usage(&device)?;
let (gpu_temp, gpu_load, vram_used, vram_total) = get_gpu_metrics()?;
let gpu_name = detect_gpu_name();
Ok(GpuInfo {
name: Some(gpu_name),
current_load: get_gpu_load(&device).ok(),
current_temp: get_gpu_temp(&device).ok(),
vram_total: Some(total),
vram_used: Some(used),
current_load: Some(gpu_load),
current_temp: Some(gpu_temp),
vram_total: Some(vram_total),
vram_used: Some(vram_used),
})
}
/*
pub fn get_gpu_load(device: &nvml_wrapper::Device) -> Result<f64, Box<dyn Error>> {
Ok(device.utilization_rates().unwrap().gpu as f64)
}
@@ -39,6 +40,33 @@ pub fn get_gpu_temp(device: &nvml_wrapper::Device) -> Result<f64, Box<dyn Error>
pub fn get_gpu_vram_usage(device: &nvml_wrapper::Device) -> Result<(f64, f64), Box<dyn Error>> {
let mem_info = device.memory_info().unwrap();
Ok((mem_info.used as f64, mem_info.total as f64))
}*/
pub fn get_gpu_metrics() -> Result<(f64, f64, f64, f64), Box<dyn Error>> {
let nvml = Nvml::init()?;
let (gpu_temp, gpu_load, vram_used, vram_total) = if let nvml = nvml {
let device = nvml.device_by_index(0).ok().unwrap();
let temp = device
.temperature(nvml_wrapper::enum_wrappers::device::TemperatureSensor::Gpu)
.unwrap_or(0) as f64;
let load = device
.utilization_rates()
.map(|u| u.gpu as f64)
.unwrap_or(0.0);
let mem = device.memory_info().ok();
let used = mem.clone().map(|m| (m.used as f64)).unwrap_or(0.0); // B
let total = mem.map(|m| (m.total as f64)).unwrap_or(0.0); // B
(temp, load, used, total)
} else {
return Err(anyhow::anyhow!("Failed to initialize NVML").into());
};
Ok((
gpu_temp as f64,
gpu_load as f64,
vram_used as f64,
vram_total as f64,
))
}
fn detect_gpu_name() -> String {