Skip to content

Commit 40c48ef

Browse files
committed
add total card power for igcl
1 parent 7a15b01 commit 40c48ef

File tree

7 files changed

+25
-3
lines changed

7 files changed

+25
-3
lines changed

IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,15 @@ namespace pwr::intel
536536
return result;
537537
}
538538

539+
result = GetPowerTelemetryItemUsage(
540+
currentSample.totalCardEnergyCounter,
541+
previousSample->totalCardEnergyCounter,
542+
pm_gpu_power_telemetry_info.gpu_card_power_w,
543+
GpuTelemetryCapBits::gpu_card_power);
544+
if (result != CTL_RESULT_SUCCESS) {
545+
return result;
546+
}
547+
539548
result = GetPowerTelemetryItemUsagePercent(
540549
currentSample.globalActivityCounter,
541550
previousSample->globalActivityCounter,

IntelPresentMon/ControlLib/PresentMonPowerTelemetry.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ struct PresentMonPowerTelemetryInfo {
3838
double gpu_overvoltage_percent;
3939
double gpu_temperature_percent;
4040
double gpu_power_percent;
41+
double gpu_card_power_w;
4142

4243
double vram_power_w;
4344
double vram_voltage_v;
@@ -123,6 +124,7 @@ enum class GpuTelemetryCapBits {
123124
max_fan_speed_2,
124125
max_fan_speed_3,
125126
max_fan_speed_4,
127+
gpu_card_power,
126128
gpu_telemetry_count,
127129
};
128130

IntelPresentMon/Interprocess/source/IntrospectionCapsLookup.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ namespace pmon::ipc::intro
2929
template<> struct IntrospectionCapsLookup<PM_METRIC_GPU_OVERVOLTAGE_PERCENT> { static constexpr auto gpuCapBit = GpuTelemetryCapBits::gpu_overvoltage_percent; };
3030
template<> struct IntrospectionCapsLookup<PM_METRIC_GPU_TEMPERATURE_PERCENT> { static constexpr auto gpuCapBit = GpuTelemetryCapBits::gpu_temperature_percent; };
3131
template<> struct IntrospectionCapsLookup<PM_METRIC_GPU_POWER_PERCENT> { static constexpr auto gpuCapBit = GpuTelemetryCapBits::gpu_power_percent; };
32+
template<> struct IntrospectionCapsLookup<PM_METRIC_GPU_CARD_POWER> { static constexpr auto gpuCapBit = GpuTelemetryCapBits::gpu_card_power; };
3233
template<> struct IntrospectionCapsLookup<PM_METRIC_GPU_FAN_SPEED> {
3334
static constexpr auto gpuCapBitArray = std::array{ GpuTelemetryCapBits::fan_speed_0, GpuTelemetryCapBits::fan_speed_1,
3435
GpuTelemetryCapBits::fan_speed_2, GpuTelemetryCapBits::fan_speed_3, GpuTelemetryCapBits::fan_speed_4, };

IntelPresentMon/Interprocess/source/metadata/MetricList.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,5 @@
9494
X_(PM_METRIC_GPU_OVERVOLTAGE_PERCENT, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \
9595
X_(PM_METRIC_GPU_TEMPERATURE_PERCENT, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \
9696
X_(PM_METRIC_GPU_POWER_PERCENT, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \
97-
X_(PM_METRIC_GPU_FAN_SPEED_PERCENT, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS)
97+
X_(PM_METRIC_GPU_FAN_SPEED_PERCENT, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \
98+
X_(PM_METRIC_GPU_CARD_POWER, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_WATTS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS)

IntelPresentMon/PresentMonAPI2/PresentMonAPI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ extern "C" {
131131
PM_METRIC_GPU_TEMPERATURE_PERCENT,
132132
PM_METRIC_GPU_POWER_PERCENT,
133133
PM_METRIC_GPU_FAN_SPEED_PERCENT,
134+
PM_METRIC_GPU_CARD_POWER,
134135
};
135136

136137
enum PM_METRIC_TYPE

IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,9 @@ namespace pmon::mid
429429
case PM_METRIC_GPU_POWER_PERCENT:
430430
pQuery->accumGpuBits.set(static_cast<size_t>(GpuTelemetryCapBits::gpu_power_percent));
431431
break;
432+
case PM_METRIC_GPU_CARD_POWER:
433+
pQuery->accumGpuBits.set(static_cast<size_t>(GpuTelemetryCapBits::gpu_card_power));
434+
break;
432435
case PM_METRIC_CPU_UTILIZATION:
433436
pQuery->accumCpuBits.set(static_cast<size_t>(CpuTelemetryCapBits::cpu_utilization));
434437
break;
@@ -1631,6 +1634,9 @@ static void ReportMetrics(
16311634
case GpuTelemetryCapBits::gpu_power_percent:
16321635
metricInfo[PM_METRIC_GPU_POWER_PERCENT].data[0].emplace_back(power_telemetry_info.gpu_power_percent);
16331636
break;
1637+
case GpuTelemetryCapBits::gpu_card_power:
1638+
metricInfo[PM_METRIC_GPU_CARD_POWER].data[0].emplace_back(power_telemetry_info.gpu_card_power_w);
1639+
break;
16341640
default:
16351641
validGpuMetric = false;
16361642
break;
@@ -1886,6 +1892,7 @@ static void ReportMetrics(
18861892
case PM_METRIC_GPU_OVERVOLTAGE_PERCENT:
18871893
case PM_METRIC_GPU_TEMPERATURE_PERCENT:
18881894
case PM_METRIC_GPU_POWER_PERCENT:
1895+
case PM_METRIC_GPU_CARD_POWER:
18891896
CalculateGpuCpuMetric(metricInfo, qe, pBlob);
18901897
break;
18911898
case PM_METRIC_CPU_VENDOR:

IntelPresentMon/metrics.csv

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ PM_METRIC_CPU_VENDOR,1,CPU Vendor,Vendor name of the CPU.
4141
PM_METRIC_CPU_NAME,1,CPU Name,Device name of the CPU.
4242
,,,
4343
PM_METRIC_GPU_SUSTAINED_POWER_LIMIT,1,GPU Sustained Power Limit,Sustained power limit of the GPU.
44-
PM_METRIC_GPU_POWER,1,GPU Power,Power consumed by the graphics adapter.
44+
PM_METRIC_GPU_POWER,1,GPU Power,Power consumed by the graphics processing unit.
4545
PM_METRIC_GPU_VOLTAGE,1,GPU Voltage,Voltage consumed by the graphics adapter.
4646
PM_METRIC_GPU_FREQUENCY,1,GPU Frequency,Clock speed of the GPU cores.
4747
PM_METRIC_GPU_TEMPERATURE,1,GPU Temperature,Temperature of the GPU.
@@ -89,4 +89,5 @@ PM_METRIC_GPU_MEM_EFFECTIVE_BANDWIDTH,1,GPU Memory Effective Bandwidth,Data tran
8989
PM_METRIC_GPU_OVERVOLTAGE_PERCENT,1,GPU Overvoltage Percent,GPU overvoltage increment as a ratio of the maximum increment.
9090
PM_METRIC_GPU_TEMPERATURE_PERCENT,1,GPU Temperature Percent,GPU temperature as a ratio of the thermal margin.
9191
PM_METRIC_GPU_POWER_PERCENT,1,GPU Power Percent,GPU power draw as a ratio of default maximum power.
92-
PM_METRIC_GPU_FAN_SPEED_PERCENT,1,GPU Fan Speed Percent,GPU fan speed as a ratio of the max speed for that fan.
92+
PM_METRIC_GPU_FAN_SPEED_PERCENT,1,GPU Fan Speed Percent,GPU fan speed as a ratio of the max speed for that fan.
93+
PM_METRIC_GPU_CARD_POWER,1,GPU Card Power,Total power consumption of the graphics adapter board.

0 commit comments

Comments
 (0)