From 63bc2663951241cf1fd19e8253b498a79e11a76a Mon Sep 17 00:00:00 2001 From: Cr4xy Date: Mon, 25 May 2026 20:36:16 +0200 Subject: [PATCH] Add new power draw column header for rocm-smi monitoring (#788) # Overview This patch fixes https://github.com/mostlygeek/llama-swap/pull/775#issuecomment-4535303706 and removes some unnecessary `break` statements. ## The third variant now also works with power draw: ` device,Device Name,Device ID,Device Rev,Subsystem ID,GUID,Temperature (Sensor edge) (C),Temperature (Sensor junction) (C),Temperature (Sensor memory) (C),Average Graphics Package Power (W),GPU use (%),GPU Memory Allocated (VRAM%),GPU Memory Read/Write Activity (%),Memory Activity,Avg. Memory Bandwidth,VRAM Total Memory (B),VRAM Total Used Memory (B),Card Series,Card Model,Card Vendor,Card SKU,Node ID,GFX Version ` image ## Old variants: ` device,Device Name,Device ID,Device Rev,Subsystem ID,GUID,Temperature (Sensor edge) (C),Temperature (Sensor junction) (C),Temperature (Sensor memory) (C),Fan speed (level),Fan speed (%),Fan RPM,Current Socket Graphics Package Power (W),GPU use (%),GPU Memory Allocated (VRAM%),GPU Memory Read/Write Activity (%),Memory Activity,VRAM Total Memory (B),VRAM Total Used Memory (B),Card Series,Card Model,Card Vendor,Card SKU,Node ID,GFX Version ` image ` device,Device Name,Device ID,Device Rev,Subsystem ID,GUID,Temperature (Sensor edge) (C),Current Socket Graphics Package Power (W),GPU use (%),GPU Memory Allocated (VRAM%),Memory Activity,VRAM Total Memory (B),VRAM Total Used Memory (B),Card Series,Card Model,Card Vendor,Card SKU,Node ID,GFX Version ` image --- internal/perf/monitor_unix.go | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/internal/perf/monitor_unix.go b/internal/perf/monitor_unix.go index 18519892..a61163ae 100644 --- a/internal/perf/monitor_unix.go +++ b/internal/perf/monitor_unix.go @@ -281,51 +281,40 @@ func parseRocmSmiLine(header string, line string) *GpuStat { return nil } result.ID = id - break case "Device Name": deviceName = val - break case "GUID": result.UUID = val - break case "Temperature (Sensor edge) (C)": tempC, _ := strconv.ParseFloat(val, 64) result.TempC = int(tempC) - break case "Temperature (Sensor memory) (C)": vramTempC, _ := strconv.ParseFloat(val, 64) result.VramTempC = int(vramTempC) - break case "Fan speed (%)": fanSpeed, _ := strconv.ParseFloat(val, 64) result.FanSpeedPct = fanSpeed - break case "Current Socket Graphics Package Power (W)": + fallthrough + case "Average Graphics Package Power (W)": powerDraw, _ := strconv.ParseFloat(val, 64) result.PowerDrawW = powerDraw - break case "GPU use (%)": gpuUtil, _ := strconv.ParseFloat(val, 64) result.GpuUtilPct = gpuUtil - break case "GPU Memory Allocated (VRAM%)": memUtil, _ := strconv.ParseFloat(val, 64) result.MemUtilPct = memUtil - break case "VRAM Total Memory (B)": memTotal, _ := strconv.ParseUint(val, 10, 64) result.MemTotalMB = int(memTotal / toMB) - break case "VRAM Total Used Memory (B)": memUsed, _ := strconv.ParseUint(val, 10, 64) result.MemUsedMB = int(memUsed / toMB) - break case "Card Series": cardSeries = val - break case "GFX Version": gfxVersion = val - break } }