small fix for average cpu_power

pull/980/head
sfrcorne 1 year ago committed by flightlessmango
parent a98a402619
commit 2187b9ef19

@ -89,16 +89,16 @@ void amdgpu_get_instant_metrics(struct amdgpu_common_metrics *metrics) {
metrics->average_gfx_power_w = amdgpu_metrics->average_gfx_power / 1000.f;
if( IS_VALID_METRIC(amdgpu_metrics->average_cpu_power) && IS_VALID_METRIC(amdgpu_metrics->average_soc_power) ) {
// Use 'cpu power' + 'soc power' similar to 'get_cpu_power_k10temp' in 'cpu.cpp'
metrics->average_cpu_power_w = amdgpu_metrics->average_cpu_power / 1000.f + amdgpu_metrics->average_soc_power / 1000.f;
// prefered method
metrics->average_cpu_power_w = amdgpu_metrics->average_cpu_power / 1000.f;
} else if( IS_VALID_METRIC(amdgpu_metrics->average_core_power[0]) ) {
// fallback 1: sum of core power
metrics->average_cpu_power_w = 0;
for (unsigned i = 0; i < cpuStats.GetCPUData().size() / 2; i++)
metrics->average_cpu_power_w = metrics->average_cpu_power_w + amdgpu_metrics->average_core_power[i];
} else if( IS_VALID_METRIC(amdgpu_metrics->average_socket_power) && IS_VALID_METRIC(amdgpu_metrics->average_gfx_power) ) {
// fallback 2: estimate cpu power from total socket power
metrics->average_cpu_power_w = amdgpu_metrics->average_socket_power / 1000.f - amdgpu_metrics->average_gfx_power / 1000.f;
// fallback 2: estimate cpu power from total socket power
metrics->average_cpu_power_w = amdgpu_metrics->average_socket_power / 1000.f - amdgpu_metrics->average_gfx_power / 1000.f;
} else if( IS_VALID_METRIC(amdgpu_metrics->average_cpu_power) ) {
// fallback 3: Ignore 'soc power' if not available
metrics->average_cpu_power_w = amdgpu_metrics->average_cpu_power / 1000.f;

Loading…
Cancel
Save