Skip to content

Commit

Permalink
Workaround for IGCL VRAM memory power issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
markgalvan-intel committed Nov 22, 2024
1 parent fa6622e commit a55b9e6
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
8 changes: 8 additions & 0 deletions IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,14 @@ namespace pwr::intel
previous_telemetry_item.value.datadouble;
pm_telemetry_value = (data_delta / time_delta_);
SetTelemetryCapBit(telemetry_cap_bit);
if (telemetry_cap_bit == GpuTelemetryCapBits::vram_power && useV1PowerTelemetry) {
if (current_telemetry_item.value.datadouble < previous_telemetry_item.value.datadouble) {
pm_telemetry_value = gpu_mem_power_cache_value_w_;
}
else {
gpu_mem_power_cache_value_w_ = pm_telemetry_value;
}
}
}
else if (current_telemetry_item.type == CTL_DATA_TYPE_INT64) {
auto data_delta = current_telemetry_item.value.data64 -
Expand Down
4 changes: 4 additions & 0 deletions IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,5 +107,9 @@ namespace pwr::intel
// this is a stopgap to cover for cases where IGCL is reporting bad data in V0 bandwidth telemetry
double gpu_mem_read_bw_cache_value_bps_ = 0.;
uint64_t gpu_mem_max_bw_cache_value_bps_ = 0;
// in V1 api vramEnergyCounter rolls over after hitting 1000.0 causing the current sample to be
// less than the previous sample. Working with IGCL to determine the correct behavior for roll
// over occasions
double gpu_mem_power_cache_value_w_ = 0;
};
}

0 comments on commit a55b9e6

Please sign in to comment.