if (!nvml->lib)
{
if (data.quiet == 0)
- log_info ("WARNING: load NVML library failed, proceed without NVML HWMon enabled.");
+ log_info ("WARNING: NVML library load failed, proceed without NVML HWMon enabled.");
return (-1);
}
HC_LOAD_FUNC(nvml, nvmlDeviceSetGpuOperationMode, NVML_DEVICE_SET_OPERATIONMODE, NVML, 0)
HC_LOAD_FUNC(nvml, nvmlDeviceGetPowerManagementLimitConstraints, NVML_DEVICE_GET_POWERMANAGEMENTLIMITCONSTRAINTS, NVML, 0)
HC_LOAD_FUNC(nvml, nvmlDeviceSetPowerManagementLimit, NVML_DEVICE_SET_POWERMANAGEMENTLIMIT, NVML, 0)
+ HC_LOAD_FUNC(nvml, nvmlDeviceGetPowerManagementLimit, NVML_DEVICE_GET_POWERMANAGEMENTLIMIT, NVML, 0)
return 0;
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetName (NVML_PTR *nvml, nvmlDevice_t device, char *name, unsigned int length)
+nvmlReturn_t hm_NVML_nvmlDeviceGetName (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, char *name, unsigned int length)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetName()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetName()", nvml_rc, string);
+ }
}
return nvml_rc;
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetTemperature (NVML_PTR *nvml, nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int *temp)
+nvmlReturn_t hm_NVML_nvmlDeviceGetTemperature (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, nvmlTemperatureSensors_t sensorType, unsigned int *temp)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetTemperature()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetTemperature()", nvml_rc, string);
+ }
}
return nvml_rc;
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetPowerUsage (NVML_PTR *nvml, nvmlDevice_t device, unsigned int *power)
+nvmlReturn_t hm_NVML_nvmlDeviceGetPowerUsage (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned int *power)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetPowerUsage()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetPowerUsage()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetUtilizationRates (NVML_PTR *nvml, nvmlDevice_t device, nvmlUtilization_t *utilization)
+nvmlReturn_t hm_NVML_nvmlDeviceGetUtilizationRates (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, nvmlUtilization_t *utilization)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetClockInfo (NVML_PTR *nvml, nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock)
+nvmlReturn_t hm_NVML_nvmlDeviceGetClockInfo (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, nvmlClockType_t type, unsigned int *clock)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetClockInfo()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetTemperatureThreshold (NVML_PTR *nvml, nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int *temp)
+nvmlReturn_t hm_NVML_nvmlDeviceGetTemperatureThreshold (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, unsigned int *temp)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetTemperatureThreshold()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetTemperatureThreshold()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetCurrPcieLinkGeneration (NVML_PTR *nvml, nvmlDevice_t device, unsigned int *currLinkGen)
+nvmlReturn_t hm_NVML_nvmlDeviceGetCurrPcieLinkGeneration (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned int *currLinkGen)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetCurrPcieLinkGeneration()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetCurrPcieLinkWidth (NVML_PTR *nvml, nvmlDevice_t device, unsigned int *currLinkWidth)
+nvmlReturn_t hm_NVML_nvmlDeviceGetCurrPcieLinkWidth (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned int *currLinkWidth)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetCurrPcieLinkWidth()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetCurrentClocksThrottleReasons (NVML_PTR *nvml, nvmlDevice_t device, unsigned long long *clocksThrottleReasons)
+nvmlReturn_t hm_NVML_nvmlDeviceGetCurrentClocksThrottleReasons (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned long long *clocksThrottleReasons)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetUtilizationRates()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetCurrentClocksThrottleReasons()", nvml_rc, string);
+ }
}
return nvml_rc;
}
-nvmlReturn_t hm_NVML_nvmlDeviceGetSupportedClocksThrottleReasons (NVML_PTR *nvml, nvmlDevice_t device, unsigned long long *supportedClocksThrottleReasons)
+nvmlReturn_t hm_NVML_nvmlDeviceGetSupportedClocksThrottleReasons (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned long long *supportedClocksThrottleReasons)
{
if (!nvml) return -1;
if (nvml_rc != NVML_SUCCESS)
{
- const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
- log_info ("WARN: %s %d %s\n", "nvmlDeviceGetSupportedClocksThrottleReasons()", nvml_rc, string);
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetSupportedClocksThrottleReasons()", nvml_rc, string);
+ }
}
return nvml_rc;
return nvml_rc;
}
+
+nvmlReturn_t hm_NVML_nvmlDeviceGetPowerManagementLimit (NVML_PTR *nvml, int skip_warnings, nvmlDevice_t device, unsigned int *limit)
+{
+ if (!nvml) return -1;
+
+ nvmlReturn_t nvml_rc = nvml->nvmlDeviceGetPowerManagementLimit (device, limit);
+
+ if (nvml_rc != NVML_SUCCESS)
+ {
+ if (skip_warnings == 0)
+ {
+ const char *string = hm_NVML_nvmlErrorString (nvml, nvml_rc);
+
+ log_info ("WARN: %s %d %s\n", "nvmlDeviceGetPowerManagementLimit()", nvml_rc, string);
+ }
+ }
+
+ return nvml_rc;
+}