@@ -103,7 +103,7 @@ namespace pwr::intel
103103 double gpu_sustained_power_limit_mw = 0 .;
104104 if (const auto result = ctlOverclockPowerLimitGet (
105105 deviceHandle, &gpu_sustained_power_limit_mw);
106- result != CTL_RESULT_SUCCESS) {
106+ result != CTL_RESULT_SUCCESS && result != CTL_RESULT_ERROR_CORE_OVERCLOCK_DEPRECATED_API ) {
107107 success = false ;
108108 IGCL_ERR (result);
109109 }
@@ -484,13 +484,15 @@ namespace pwr::intel
484484 if constexpr (std::same_as<T, ctl_power_telemetry2_t >) {
485485 using namespace pmon ::util;
486486 if (useNewBandwidthTelemetry) {
487+ double gpuMemReadBandwidthMegabytesPerSecond = 0 ;
487488 result = GetInstantaneousPowerTelemetryItem (
488489 currentSample.vramReadBandwidth ,
489- pm_gpu_power_telemetry_info. gpu_mem_read_bandwidth_bps ,
490+ gpuMemReadBandwidthMegabytesPerSecond ,
490491 GpuTelemetryCapBits::gpu_mem_read_bandwidth);
492+ // we need bandwidth in bits per second, IGCL V1 gives in megabytes per second
491493 pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps = ConvertMagnitudePrefix (
492- pm_gpu_power_telemetry_info. gpu_mem_read_bandwidth_bps ,
493- MagnitudePrefix::Mebi ,
494+ gpuMemReadBandwidthMegabytesPerSecond * 8 . ,
495+ MagnitudePrefix::Mega ,
494496 MagnitudePrefix::Base);
495497 pmlog_verb (v::gpu)(std::format (" VRAM read BW V1: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}" ,
496498 currentSample.vramReadBandwidth .bSupported , (int )currentSample.vramReadBandwidth .type ,
@@ -504,13 +506,15 @@ namespace pwr::intel
504506 }
505507 }
506508 if (useNewBandwidthTelemetry) {
509+ double gpuMemWriteBandwidthMegabytesPerSecond = 0 ;
507510 result = GetInstantaneousPowerTelemetryItem (
508511 currentSample.vramWriteBandwidth ,
509- pm_gpu_power_telemetry_info. gpu_mem_write_bandwidth_bps ,
512+ gpuMemWriteBandwidthMegabytesPerSecond ,
510513 GpuTelemetryCapBits::gpu_mem_write_bandwidth);
514+ // we need bandwidth in bits per second, IGCL V1 gives in megabytes per second
511515 pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps = ConvertMagnitudePrefix (
512- pm_gpu_power_telemetry_info. gpu_mem_write_bandwidth_bps ,
513- MagnitudePrefix::Mebi ,
516+ gpuMemWriteBandwidthMegabytesPerSecond * 8 . ,
517+ MagnitudePrefix::Mega ,
514518 MagnitudePrefix::Base);
515519 pmlog_verb (v::gpu)(std::format (" VRAM write BW V1: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}" ,
516520 currentSample.vramWriteBandwidth .bSupported , (int )currentSample.vramWriteBandwidth .type ,
0 commit comments