@@ -534,16 +534,20 @@ nvml_hardware_read(long long *value, int which_one)
534534 case FEATURE_TOTAL_ENERGY_CONSUMPTION :
535535 * value = getTotalEnergyConsumption (handle );
536536 break ;
537+ #if defined(NVML_FI_DEV_POWER_INSTANT ) && defined(NVML_POWER_SCOPE_GPU )
537538 case FEATURE_GPU_INST :
538539 field_value -> fieldId = NVML_FI_DEV_POWER_INSTANT ;
539- field_value -> scopeId = 0 ; // GPU-only scope
540+ field_value -> scopeId = NVML_POWER_SCOPE_GPU ;
540541 * value = getDeviceFieldValue (handle , value_count , field_value );
541542 break ;
543+ #endif
544+ #if defined(NVML_FI_DEV_POWER_AVERAGE ) && defined(NVML_POWER_SCOPE_MEMORY )
542545 case FEATURE_GPU_MEMORY_AVG :
543546 field_value -> fieldId = NVML_FI_DEV_POWER_AVERAGE ;
544- field_value -> scopeId = 2 ; // GPU Memory scope
547+ field_value -> scopeId = NVML_POWER_SCOPE_MEMORY ;
545548 * value = getDeviceFieldValue (handle , value_count , field_value );
546549 break ;
550+ #endif
547551 case FEATURE_TEMP :
548552 * value = getTemperature (handle );
549553 break ;
@@ -752,23 +756,26 @@ detectDevices()
752756 int value_count = 1 ;
753757 nvmlFieldValue_t field_value [value_count ];
754758
759+ #if defined(NVML_FI_DEV_POWER_INSTANT ) && defined(NVML_POWER_SCOPE_GPU )
755760 // GPU instant power
756761 field_value -> fieldId = NVML_FI_DEV_POWER_INSTANT ;
757- field_value -> scopeId = 0 ; // GPU-only scope
762+ field_value -> scopeId = NVML_POWER_SCOPE_GPU ;
758763 /* Check if the device field for gpu instant power data are available */
759764 if (getDeviceFieldValue (devices [i ],value_count , field_value ) != (unsigned long long ) - 1 ) {
760765 features [i ] |= FEATURE_GPU_INST ;
761766 num_events ++ ;
762767 }
768+ #endif
769+ #if defined(NVML_FI_DEV_POWER_AVERAGE ) && defined(NVML_POWER_SCOPE_MEMORY )
763770 // GPU Memory average power
764771 field_value -> fieldId = NVML_FI_DEV_POWER_AVERAGE ;
765- field_value -> scopeId = 2 ; // GPU Memory scope
772+ field_value -> scopeId = NVML_POWER_SCOPE_MEMORY ;
766773 /* Check if the device field for gpu memory data are available */
767774 if (getDeviceFieldValue (devices [i ],value_count , field_value ) != (unsigned long long ) - 1 ) {
768775 features [i ] |= FEATURE_GPU_MEMORY_AVG ;
769776 num_events ++ ;
770777 }
771-
778+ #endif
772779 /* Check if temperature data are available */
773780 if (getTemperature (devices [i ]) != (unsigned long long ) - 1 ) {
774781 features [i ] |= FEATURE_TEMP ;
0 commit comments