From e35484013ea0c8feac1c0827bdf32e38b8c7ed5a Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Sun, 19 Apr 2026 18:44:13 +0300 Subject: [PATCH] Use SDR PSU AC input for single-card calibration server power Same fix as ramp steps: take sdrSingle snapshot after calibration and prefer PSUInW over DCMI for singleIPMILoadedW. DCMI kept as fallback. Log message indicates source. Co-Authored-By: Claude Sonnet 4.6 --- audit/internal/platform/benchmark.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/audit/internal/platform/benchmark.go b/audit/internal/platform/benchmark.go index 630bc83..e4cdaa0 100644 --- a/audit/internal/platform/benchmark.go +++ b/audit/internal/platform/benchmark.go @@ -4152,9 +4152,15 @@ func (s *System) RunNvidiaPowerBench(ctx context.Context, baseDir string, opts N c, restore, singleRows := runBenchmarkPowerCalibration(ctx, verboseLog, singleDir, []int{idx}, singleInfo, logFunc, nil, durationSec) appendBenchmarkMetrics(&allPowerRows, singleRows, fmt.Sprintf("single-gpu-%d", idx), &powerCursor, 0) ipmiSingleCancel() - if w, ok := <-ipmiSingleDone; ok { + sdrSingle := sampleIPMISDRPowerSensors() + if sdrSingle.PSUInW > 0 { + singleIPMILoadedW[idx] = sdrSingle.PSUInW + logFunc(fmt.Sprintf("power calibration: GPU %d single-card IPMI loaded: %.0f W (SDR PSU AC input)", idx, sdrSingle.PSUInW)) + } else if w, ok := <-ipmiSingleDone; ok { singleIPMILoadedW[idx] = w - logFunc(fmt.Sprintf("power calibration: GPU %d single-card IPMI loaded: %.0f W", idx, w)) + logFunc(fmt.Sprintf("power calibration: GPU %d single-card IPMI loaded: %.0f W (DCMI)", idx, w)) + } else { + <-ipmiSingleDone // drain channel } allRestoreActions = append(allRestoreActions, restore...) if r, ok := c[idx]; ok {