diff --git a/cmd/client/main.go b/cmd/client/main.go index 6f06cf7..214e154 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -1190,7 +1190,7 @@ func tryNvidiaSMI() []GPUInfo { var gpus []GPUInfo for _, line := range strings.Split(strings.TrimSpace(string(out)), "\n") { parts := strings.Split(line, ",") - if len(parts) < 17 { + if len(parts) < 9 { continue } for i := range parts { @@ -1198,27 +1198,40 @@ func tryNvidiaSMI() []GPUInfo { parts[i] = strings.Trim(parts[i], "[]") } - // 0:index 1:name 2:vram_total 3:vram_used 4:vram_free - // 5:temp 6:load 7:core_clk 8:mem_clk 9:power 10:power_limit - // 11:fan 12:pstate 13:persistence 14:compute_mode - // 15:driver 16:cuda - gpus = append(gpus, GPUInfo{ - Name: parts[1], - VRAMTotalMB: parseFloat(parts[2]), - VRAMUsedMB: parseFloat(parts[3]), - Temperature: parseFloat(parts[5]), - LoadPercent: parseFloat(parts[6]), - CoreClock: parseFloat(parts[7]), - MemClock: parseFloat(parts[8]), - Power: parseFloatSafe(parts[9]), - PowerLimit: parseFloatSafe(parts[10]), - FanSpeed: parseFloatSafe(parts[11]), - PState: cleanStr(parts[12]), - Persistence: cleanStr(parts[13]), - ComputeMode: cleanStr(parts[14]), - DriverVersion: cleanStr(parts[15]), - CudaVersion: cleanStr(parts[16]), - }) + g := GPUInfo{ + Name: parts[1], + VRAMTotalMB: parseFloat(parts[2]), + VRAMUsedMB: parseFloat(parts[3]), + Temperature: parseFloat(parts[5]), + LoadPercent: parseFloat(parts[6]), + CoreClock: parseFloat(parts[7]), + MemClock: parseFloat(parts[8]), + } + if len(parts) > 9 { + g.Power = parseFloatSafe(parts[9]) + } + if len(parts) > 10 { + g.PowerLimit = parseFloatSafe(parts[10]) + } + if len(parts) > 11 { + g.FanSpeed = parseFloatSafe(parts[11]) + } + if len(parts) > 12 { + g.PState = cleanStr(parts[12]) + } + if len(parts) > 13 { + g.Persistence = cleanStr(parts[13]) + } + if len(parts) > 14 { + g.ComputeMode = cleanStr(parts[14]) + } + if len(parts) > 15 { + g.DriverVersion = cleanStr(parts[15]) + } + if len(parts) > 16 { + g.CudaVersion = cleanStr(parts[16]) + } + gpus = append(gpus, g) } return gpus } diff --git a/cmd/server/templates/index.html b/cmd/server/templates/index.html index 5345898..239db83 100644 --- a/cmd/server/templates/index.html +++ b/cmd/server/templates/index.html @@ -60,7 +60,7 @@ .pdot { position:absolute; top:50%; left:50%; width:8px; height:8px; margin:-4px; background:var(--accent); border-radius:50% } @keyframes pulse { 0%{transform:scale(.35);opacity:1} 100%{transform:scale(2.4);opacity:0} } - .device-grid { padding:12px 20px 32px; display:grid; grid-template-columns:repeat(auto-fill,minmax(420px,1fr)); gap:12px } + .device-grid { padding:12px 20px 32px; display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:12px } .device-grid > .device-card { min-width:0 } .device-card { background:var(--card); border:1px solid var(--border); border-radius:10px; transition:opacity .3s,border-color .2s,box-shadow .2s } .device-card:hover { border-color:#28304a; box-shadow:0 4px 24px rgba(0,0,0,.2) }