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 {