Skip to content

Commit 8f4775d

Browse files
committed
fix: gpu info absolute path for NixOS, clean up dead code and warnings
- nvidia-smi: try PATH first, fallback to /run/current-system/sw/bin/nvidia-smi (NixOS) - Remove unused output_format capture in generate handler - Remove unused InferenceEngine import in routes.rs
1 parent a5a495f commit 8f4775d

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

crates/mold-server/src/routes.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use axum::{
66
Json, Router,
77
};
88
use mold_core::{GenerateRequest, GpuInfo, ModelInfo, OutputFormat, ServerStatus};
9-
use mold_inference::{model_registry, InferenceEngine};
9+
use mold_inference::model_registry;
1010

1111
use crate::state::AppState;
1212

@@ -28,8 +28,6 @@ async fn generate(
2828
return Err((StatusCode::UNPROCESSABLE_ENTITY, e));
2929
}
3030

31-
let output_format = req.output_format;
32-
3331
// Load on first request (holds lock only during load, not inference)
3432
{
3533
let mut engine = state.engine.lock().await;
@@ -160,7 +158,20 @@ async fn server_status(State(state): State<AppState>) -> Json<ServerStatus> {
160158

161159
/// Query GPU info via nvidia-smi. Returns None if not available or on non-NVIDIA hardware.
162160
fn query_gpu_info() -> Option<GpuInfo> {
163-
let output = std::process::Command::new("nvidia-smi")
161+
// Try PATH first, then NixOS well-known location.
162+
let nvidia_smi = ["nvidia-smi", "/run/current-system/sw/bin/nvidia-smi"]
163+
.iter()
164+
.find(|p| {
165+
if p.starts_with('/') {
166+
std::path::Path::new(p).exists()
167+
} else {
168+
true // let Command::new try PATH
169+
}
170+
})
171+
.copied()
172+
.unwrap_or("nvidia-smi");
173+
174+
let output = std::process::Command::new(nvidia_smi)
164175
.args([
165176
"--query-gpu=name,memory.total,memory.used",
166177
"--format=csv,noheader,nounits",

0 commit comments

Comments
 (0)