Skip to content

Commit a55b9e6

Browse files
Workaround for IGCL VRAM memory power issue.
1 parent fa6622e commit a55b9e6

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,14 @@ namespace pwr::intel
730730
previous_telemetry_item.value.datadouble;
731731
pm_telemetry_value = (data_delta / time_delta_);
732732
SetTelemetryCapBit(telemetry_cap_bit);
733+
if (telemetry_cap_bit == GpuTelemetryCapBits::vram_power && useV1PowerTelemetry) {
734+
if (current_telemetry_item.value.datadouble < previous_telemetry_item.value.datadouble) {
735+
pm_telemetry_value = gpu_mem_power_cache_value_w_;
736+
}
737+
else {
738+
gpu_mem_power_cache_value_w_ = pm_telemetry_value;
739+
}
740+
}
733741
}
734742
else if (current_telemetry_item.type == CTL_DATA_TYPE_INT64) {
735743
auto data_delta = current_telemetry_item.value.data64 -

IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,9 @@ namespace pwr::intel
107107
// this is a stopgap to cover for cases where IGCL is reporting bad data in V0 bandwidth telemetry
108108
double gpu_mem_read_bw_cache_value_bps_ = 0.;
109109
uint64_t gpu_mem_max_bw_cache_value_bps_ = 0;
110+
// in V1 api vramEnergyCounter rolls over after hitting 1000.0 causing the current sample to be
111+
// less than the previous sample. Working with IGCL to determine the correct behavior for roll
112+
// over occasions
113+
double gpu_mem_power_cache_value_w_ = 0;
110114
};
111115
}

0 commit comments

Comments
 (0)