feat: mining section rework, GPU filter, chart as full-width row, progress bars separate line, contrast fix

This commit is contained in:
ngfchl
2026-06-20 16:46:21 +08:00
parent d39713a196
commit 2c103af9d8
3 changed files with 173 additions and 72 deletions
+32 -15
View File
@@ -143,12 +143,16 @@ type GPUInfo struct {
MemClock float64 `json:"mem_clock_mhz"`
Power float64 `json:"power"`
PowerLimit float64 `json:"power_limit"`
PowerMax float64 `json:"power_max"`
FanSpeed float64 `json:"fan_speed"`
PState string `json:"pstate"`
Persistence string `json:"persistence_mode"`
ComputeMode string `json:"compute_mode"`
DriverVersion string `json:"driver_version"`
CudaVersion string `json:"cuda_version"`
UtilMemory float64 `json:"util_memory"`
UtilEncoder float64 `json:"util_encoder"`
UtilDecoder float64 `json:"util_decoder"`
ClocksMaxGfx float64 `json:"clocks_max_graphics"`
ClocksMaxMem float64 `json:"clocks_max_memory"`
}
// ═══════════════════════════════════════════════
@@ -1220,20 +1224,33 @@ func tryNvidiaSMI() []GPUInfo {
parts[i] = strings.Trim(parts[i], "[]")
}
// 0:index 1:name 2:uuid 3:bus_id 4:driver 5:vbios
// 6:temp_gpu 7:temp_mem 8:fan 9:power 10:power_limit
// 11:power_default 12:power_min 13:power_max
// 14:clk_gfx 15:clk_sm 16:clk_mem 17:clk_max_gfx 18:clk_max_mem
// 19:util_gpu 20:util_mem 21:util_enc 22:util_dec
// 23:vram_total 24:vram_used 25:vram_free
// 26:ecc_corr 27:ecc_uncorr 28:compute_mode 29:pstate
gpus = append(gpus, GPUInfo{
Name: cleanStr(parts[1]),
VRAMTotalMB: parseFloat(parts[23]),
VRAMUsedMB: parseFloat(parts[24]),
Temperature: parseFloat(parts[6]),
LoadPercent: parseFloat(parts[19]),
CoreClock: parseFloat(parts[14]),
MemClock: parseFloat(parts[16]),
Power: parseFloatSafe(parts[9]),
PowerLimit: parseFloatSafe(parts[10]),
FanSpeed: parseFloatSafe(parts[8]),
PState: cleanStr(parts[29]),
ComputeMode: cleanStr(parts[28]),
DriverVersion: cleanStr(parts[4]),
Name: cleanStr(parts[1]),
DriverVersion: cleanStr(parts[4]),
Temperature: parseFloat(parts[6]),
FanSpeed: parseFloat(parts[8]),
Power: parseFloat(parts[9]),
PowerLimit: parseFloat(parts[10]),
PowerMax: parseFloat(parts[13]),
CoreClock: parseFloat(parts[14]),
MemClock: parseFloat(parts[16]),
ClocksMaxGfx: parseFloat(parts[17]),
ClocksMaxMem: parseFloat(parts[18]),
LoadPercent: parseFloat(parts[19]),
UtilMemory: parseFloat(parts[20]),
UtilEncoder: parseFloat(parts[21]),
UtilDecoder: parseFloat(parts[22]),
VRAMTotalMB: parseFloat(parts[23]),
VRAMUsedMB: parseFloat(parts[24]),
ComputeMode: cleanStr(parts[28]),
PState: cleanStr(parts[29]),
})
}
return gpus