diff --git a/go.mod b/go.mod index 81b12721..7f9ff2a0 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,13 @@ module github.com/NVIDIA/mig-parted go 1.26.0 require ( +<<<<<<< HEAD github.com/NVIDIA/go-nvlib v0.8.1 github.com/NVIDIA/go-nvml v0.13.0-1 +======= + github.com/NVIDIA/go-nvlib v0.12.0 + github.com/NVIDIA/go-nvml v0.13.4-0 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) github.com/coreos/go-systemd/v22 v22.7.0 github.com/sirupsen/logrus v1.9.4 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index 3f05b936..faf62655 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,14 @@ +<<<<<<< HEAD github.com/NVIDIA/go-nvlib v0.8.1 h1:OPEHVvn3zcV5OXB68A7WRpeCnYMRSPl7LdeJH/d3gZI= github.com/NVIDIA/go-nvlib v0.8.1/go.mod h1:7mzx9FSdO9fXWP9NKuZmWkCwhkEcSWQFe2tmFwtLb9c= github.com/NVIDIA/go-nvml v0.13.0-1 h1:OLX8Jq3dONuPOQPC7rndB6+iDmDakw0XTYgzMxObkEw= github.com/NVIDIA/go-nvml v0.13.0-1/go.mod h1:+KNA7c7gIBH7SKSJ1ntlwkfN80zdx8ovl4hrK3LmPt4= +======= +github.com/NVIDIA/go-nvlib v0.12.0 h1:LICVlUGlDnpbwQv64rOZQn11xQae1J+c+dvH9CCi7jc= +github.com/NVIDIA/go-nvlib v0.12.0/go.mod h1:J5M/QPIJJtaipjdONqevSnfgBlkW49uVWX5cFOoQpoA= +github.com/NVIDIA/go-nvml v0.13.4-0 h1:o3jp9u2x1R9ShFE3v+Aesp55XOSIQFMJz/VGNUcJaNE= +github.com/NVIDIA/go-nvml v0.13.4-0/go.mod h1:id63qwpoDWpFXwnwM6psDCSqW4BmNu6mWpr4YeQtPGo= +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) github.com/coreos/go-systemd/v22 v22.7.0 h1:LAEzFkke61DFROc7zNLX/WA2i5J8gYqe0rSj9KI28KA= github.com/coreos/go-systemd/v22 v22.7.0/go.mod h1:xNUYtjHu2EDXbsxz1i41wouACIwT7Ybq9o0BQhMwD0w= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers_static.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers_static.go index 1f30eaae..2e808c1b 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers_static.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/cgo_helpers_static.go @@ -73,3 +73,51 @@ func unpackPCharString(str string) (*C.char, *struct{}) { h := (*stringHeader)(unsafe.Pointer(&str)) return (*C.char)(h.Data), cgoAllocsUnknown } +<<<<<<< HEAD +======= + +func malloc(size uintptr) unsafe.Pointer { + return C.malloc(C.size_t(size)) +} + +func free(ptr unsafe.Pointer) { + C.free(ptr) +} + +// int8SliceToString converts a NUL-terminated C char array (typed as []int8) +// into a Go string, stopping at the first NUL. +func int8SliceToString(s []int8) string { + buf := make([]byte, len(s)) + for i, c := range s { + buf[i] = byte(c) + } + return string(buf[:clen(buf)]) +} + +// stringToInt8Slice copies s into out as a NUL-terminated C string. At most +// len(out)-1 bytes are written so the final byte is always a NUL terminator; +// remaining bytes in out are zeroed. +func stringToInt8Slice(s string, out []int8) { + n := len(s) + if n > len(out)-1 { + n = len(out) - 1 + } + for i := 0; i < n; i++ { + out[i] = int8(s[i]) + } + for i := n; i < len(out); i++ { + out[i] = 0 + } +} + +func int8PtrToString(p *int8) string { + goString := C.GoString((*C.char)(unsafe.Pointer(p))) + return goString +} + +func stringToCPtr(s string) unsafe.Pointer { + cstr := C.CString(s) + p := unsafe.Pointer(cstr) + return p +} +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go index 8a6a93c2..2664aed0 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/const.go @@ -44,6 +44,8 @@ const ( DEVICE_PCI_BUS_ID_LEGACY_FMT = "%04X:%02X:%02X.0" // DEVICE_PCI_BUS_ID_FMT as defined in nvml/nvml.h DEVICE_PCI_BUS_ID_FMT = "%08X:%02X:%02X.0" + // DEVICE_MEMORY_LIMIT_MAX as defined in nvml/nvml.h + DEVICE_MEMORY_LIMIT_MAX = 18446744073709551615 // NVLINK_MAX_LINKS as defined in nvml/nvml.h NVLINK_MAX_LINKS = 18 // TOPOLOGY_CPU as defined in nvml/nvml.h @@ -56,6 +58,32 @@ const ( DEVICE_UUID_ASCII_LEN = 41 // DEVICE_UUID_BINARY_LEN as defined in nvml/nvml.h DEVICE_UUID_BINARY_LEN = 16 + // PERF_METRICS_PWR_MODEL_DLPPM_1X_MAX_CORE_RAILS as defined in nvml/nvml.h + PERF_METRICS_PWR_MODEL_DLPPM_1X_MAX_CORE_RAILS = 2 + // PERF_METRICS_NNE_DESC_INFERENCE_LOOPS_MAX as defined in nvml/nvml.h + PERF_METRICS_NNE_DESC_INFERENCE_LOOPS_MAX = 8 + // PERF_METRICS_PWR_MODEL_METRICS_DLPPM_1X_OBESRVED_INTIAL_DRAMCLK_ESTIMATES_MAX as defined in nvml/nvml.h + PERF_METRICS_PWR_MODEL_METRICS_DLPPM_1X_OBESRVED_INTIAL_DRAMCLK_ESTIMATES_MAX = 3 + // PERF_METRICS_CONTROLLER_DLPPC_2X_PWR_POLICY_RELATIONSHIP_SET_LIMITS_MAX as defined in nvml/nvml.h + PERF_METRICS_CONTROLLER_DLPPC_2X_PWR_POLICY_RELATIONSHIP_SET_LIMITS_MAX = 4 + // PERF_METRICS_CONTROLLER_STATUS_DLPPC_2X_DRAMCLK_NUM as defined in nvml/nvml.h + PERF_METRICS_CONTROLLER_STATUS_DLPPC_2X_DRAMCLK_NUM = 3 + // PERF_METRICS_CONTROLLER_SAMPLE_CONTROLLER_MAX_NUM as defined in nvml/nvml.h + PERF_METRICS_CONTROLLER_SAMPLE_CONTROLLER_MAX_NUM = 4 + // PERF_METRICS_SAMPLE_COUNT as defined in nvml/nvml.h + PERF_METRICS_SAMPLE_COUNT = 13 + // PERF_METRICS_PWR_MODEL_SCALE_LOOPS_MAX_PFPP_1X as defined in nvml/nvml.h + PERF_METRICS_PWR_MODEL_SCALE_LOOPS_MAX_PFPP_1X = 32 + // PERF_METRICS_PWR_MODEL_SCALE_METRICS_INPUT_MAX as defined in nvml/nvml.h + PERF_METRICS_PWR_MODEL_SCALE_METRICS_INPUT_MAX = 16 + // PERF_METRICS_CONTROLLER_TYPE_DLPPC_2X as defined in nvml/nvml.h + PERF_METRICS_CONTROLLER_TYPE_DLPPC_2X = 0 + // PERF_METRICS_CONTROLLER_TYPE_PFPP_1X as defined in nvml/nvml.h + PERF_METRICS_CONTROLLER_TYPE_PFPP_1X = 1 + // PERF_METRICS_PWR_MODEL_SCALE_METRICS_PFPP_1X_GPCCLK_IDX as defined in nvml/nvml.h + PERF_METRICS_PWR_MODEL_SCALE_METRICS_PFPP_1X_GPCCLK_IDX = 0 + // PERF_CF_PM_SENSOR_MAX_SIGNALS as defined in nvml/nvml.h + PERF_CF_PM_SENSOR_MAX_SIGNALS = 1024 // FlagDefault as defined in nvml/nvml.h FlagDefault = 0 // FlagForce as defined in nvml/nvml.h @@ -96,6 +124,17 @@ const ( DEVICE_ARCH_HOPPER = 9 // DEVICE_ARCH_BLACKWELL as defined in nvml/nvml.h DEVICE_ARCH_BLACKWELL = 10 +<<<<<<< HEAD +======= + // DEVICE_ARCH_DLA as defined in nvml/nvml.h + DEVICE_ARCH_DLA = 11 + // DEVICE_ARCH_DLA2 as defined in nvml/nvml.h + DEVICE_ARCH_DLA2 = 12 + // DEVICE_ARCH_RUBIN as defined in nvml/nvml.h + DEVICE_ARCH_RUBIN = 13 + // DEVICE_ARCH_NPU3 as defined in nvml/nvml.h + DEVICE_ARCH_NPU3 = 15 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // DEVICE_ARCH_UNKNOWN as defined in nvml/nvml.h DEVICE_ARCH_UNKNOWN = 4294967295 // BUS_TYPE_UNKNOWN as defined in nvml/nvml.h @@ -727,6 +766,7 @@ const ( // FI_DEV_POWER_SYNC_BALANCING_FREQ as defined in nvml/nvml.h FI_DEV_POWER_SYNC_BALANCING_FREQ = 254 // FI_DEV_POWER_SYNC_BALANCING_AF as defined in nvml/nvml.h +<<<<<<< HEAD FI_DEV_POWER_SYNC_BALANCING_AF = 255 // FI_PWR_SMOOTHING_ENABLED as defined in nvml/nvml.h FI_PWR_SMOOTHING_ENABLED = 256 @@ -766,6 +806,85 @@ const ( FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VAL = 273 // FI_MAX as defined in nvml/nvml.h FI_MAX = 274 +======= + FI_DEV_POWER_SYNC_BALANCING_AF = 273 + // FI_DEV_EDPP_MULTIPLIER as defined in nvml/nvml.h + FI_DEV_EDPP_MULTIPLIER = 274 + // FI_PWR_SMOOTHING_PRIMARY_POWER_FLOOR as defined in nvml/nvml.h + FI_PWR_SMOOTHING_PRIMARY_POWER_FLOOR = 275 + // FI_PWR_SMOOTHING_SECONDARY_POWER_FLOOR as defined in nvml/nvml.h + FI_PWR_SMOOTHING_SECONDARY_POWER_FLOOR = 276 + // FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_OFFSET as defined in nvml/nvml.h + FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_OFFSET = 277 + // FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_POINT as defined in nvml/nvml.h + FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_POINT = 278 + // FI_PWR_SMOOTHING_WINDOW_MULTIPLIER as defined in nvml/nvml.h + FI_PWR_SMOOTHING_WINDOW_MULTIPLIER = 279 + // FI_PWR_SMOOTHING_DELAYED_PWR_SMOOTHING_SUPPORTED as defined in nvml/nvml.h + FI_PWR_SMOOTHING_DELAYED_PWR_SMOOTHING_SUPPORTED = 280 + // FI_PWR_SMOOTHING_PROFILE_SECONDARY_POWER_FLOOR as defined in nvml/nvml.h + FI_PWR_SMOOTHING_PROFILE_SECONDARY_POWER_FLOOR = 281 + // FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_WIN_MULT as defined in nvml/nvml.h + FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_WIN_MULT = 282 + // FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_TAR_WIN_MULT as defined in nvml/nvml.h + FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_TAR_WIN_MULT = 283 + // FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_OFFSET as defined in nvml/nvml.h + FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_OFFSET = 284 + // FI_PWR_SMOOTHING_ADMIN_OVERRIDE_SECONDARY_POWER_FLOOR as defined in nvml/nvml.h + FI_PWR_SMOOTHING_ADMIN_OVERRIDE_SECONDARY_POWER_FLOOR = 285 + // FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_WIN_MULT as defined in nvml/nvml.h + FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_WIN_MULT = 286 + // FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_TAR_WIN_MULT as defined in nvml/nvml.h + FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_TAR_WIN_MULT = 287 + // FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_OFFSET as defined in nvml/nvml.h + FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_OFFSET = 288 + // FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE0 as defined in nvml/nvml.h + FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE0 = 289 + // FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE1 as defined in nvml/nvml.h + FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE1 = 290 + // FI_DEV_NVLINK_COUNT_RAW_BER_LANE0_V2 as defined in nvml/nvml.h + FI_DEV_NVLINK_COUNT_RAW_BER_LANE0_V2 = 291 + // FI_DEV_NVLINK_COUNT_RAW_BER_LANE1_V2 as defined in nvml/nvml.h + FI_DEV_NVLINK_COUNT_RAW_BER_LANE1_V2 = 292 + // FI_DEV_NVLINK_COUNT_RAW_BER_V2 as defined in nvml/nvml.h + FI_DEV_NVLINK_COUNT_RAW_BER_V2 = 293 + // FI_DEV_NVLINK_PLR_XMIT_BLOCKS as defined in nvml/nvml.h + FI_DEV_NVLINK_PLR_XMIT_BLOCKS = 294 + // FI_DEV_NVLINK_PLR_XMIT_RETRY_BLOCKS as defined in nvml/nvml.h + FI_DEV_NVLINK_PLR_XMIT_RETRY_BLOCKS = 295 + // FI_DEV_NVLINK_GET_DATA_RATE as defined in nvml/nvml.h + FI_DEV_NVLINK_GET_DATA_RATE = 296 + // FI_DEV_MMA_STALL_PERCENT as defined in nvml/nvml.h + FI_DEV_MMA_STALL_PERCENT = 297 + // FI_DEV_MCLK_SWITCH_TYPE as defined in nvml/nvml.h + FI_DEV_MCLK_SWITCH_TYPE = 298 + // FI_DEV_MCLK_MIN_SWITCH_INTERVAL_MILLISECONDS as defined in nvml/nvml.h + FI_DEV_MCLK_MIN_SWITCH_INTERVAL_MILLISECONDS = 299 + // FI_PWR_SMOOTHING_SOC_POWER_SMOOTHING_ENABLED as defined in nvml/nvml.h + FI_PWR_SMOOTHING_SOC_POWER_SMOOTHING_ENABLED = 300 + // FI_DEV_REMAPPED_ROWS_COR_INACTIVE as defined in nvml/nvml.h + FI_DEV_REMAPPED_ROWS_COR_INACTIVE = 301 + // FI_DEV_REMAPPED_ROWS_UNC_INACTIVE as defined in nvml/nvml.h + FI_DEV_REMAPPED_ROWS_UNC_INACTIVE = 302 + // FI_DEV_ACTIVE_BANK_REMAPPINGS as defined in nvml/nvml.h + FI_DEV_ACTIVE_BANK_REMAPPINGS = 303 + // FI_DEV_INACTIVE_BANK_REMAPPINGS as defined in nvml/nvml.h + FI_DEV_INACTIVE_BANK_REMAPPINGS = 304 + // FI_DEV_BANK_REMAPPER_HISTOGRAM_MAX as defined in nvml/nvml.h + FI_DEV_BANK_REMAPPER_HISTOGRAM_MAX = 305 + // FI_DEV_BANK_REMAPPER_HISTOGRAM_NONE as defined in nvml/nvml.h + FI_DEV_BANK_REMAPPER_HISTOGRAM_NONE = 306 + // FI_DEV_PENDING_BANK_REMAPPING as defined in nvml/nvml.h + FI_DEV_PENDING_BANK_REMAPPING = 307 + // FI_MAX as defined in nvml/nvml.h + FI_MAX = 308 + // MCLK_SWITCH_TYPE_NOT_SUPPORTED as defined in nvml/nvml.h + MCLK_SWITCH_TYPE_NOT_SUPPORTED = 0 + // MCLK_SWITCH_TYPE_DEFERRED as defined in nvml/nvml.h + MCLK_SWITCH_TYPE_DEFERRED = 1 + // MCLK_SWITCH_TYPE_RUNTIME as defined in nvml/nvml.h + MCLK_SWITCH_TYPE_RUNTIME = 2 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // NVLINK_LOW_POWER_THRESHOLD_UNIT_100US as defined in nvml/nvml.h NVLINK_LOW_POWER_THRESHOLD_UNIT_100US = 0 // NVLINK_LOW_POWER_THRESHOLD_UNIT_50US as defined in nvml/nvml.h @@ -818,6 +937,30 @@ const ( EventTypeGpuRecoveryAction = 32768 // EventTypeAll as defined in nvml/nvml.h EventTypeAll = 65439 + // GPU_INSTANCE_ID_ANY as defined in nvml/nvml.h + GPU_INSTANCE_ID_ANY = 4294967295 + // COMPUTE_INSTANCE_ID_ANY as defined in nvml/nvml.h + COMPUTE_INSTANCE_ID_ANY = 4294967295 + // OPERATIONAL_EVENT_ATTR_UNCONTAINED as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_UNCONTAINED = 1 + // OPERATIONAL_EVENT_ATTR_LATENT as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_LATENT = 2 + // OPERATIONAL_EVENT_ATTR_PROPAGATED as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_PROPAGATED = 4 + // OPERATIONAL_EVENT_ATTR_COMPONENT_RESET as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_COMPONENT_RESET = 8 + // OPERATIONAL_EVENT_ATTR_THRESHOLD_EXCEEDED as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_THRESHOLD_EXCEEDED = 16 + // OPERATIONAL_EVENT_ATTR_PRIMARY as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_PRIMARY = 32 + // OPERATIONAL_EVENT_ATTR_OVERFLOW as defined in nvml/nvml.h + OPERATIONAL_EVENT_ATTR_OVERFLOW = 64 + // OPERATIONAL_EVENT_GROUP_ATTR_RECOVERED as defined in nvml/nvml.h + OPERATIONAL_EVENT_GROUP_ATTR_RECOVERED = 1 + // OPERATIONAL_EVENT_GROUP_ATTR_PREVERR as defined in nvml/nvml.h + OPERATIONAL_EVENT_GROUP_ATTR_PREVERR = 2 + // OPERATIONAL_EVENT_GROUP_ATTR_SIMULATED as defined in nvml/nvml.h + OPERATIONAL_EVENT_GROUP_ATTR_SIMULATED = 4 // SystemEventTypeGpuDriverUnbind as defined in nvml/nvml.h SystemEventTypeGpuDriverUnbind = 1 // SystemEventTypeGpuDriverBind as defined in nvml/nvml.h @@ -844,10 +987,14 @@ const ( ClocksThrottleReasonHwPowerBrakeSlowdown = 128 // ClocksEventReasonDisplayClockSetting as defined in nvml/nvml.h ClocksEventReasonDisplayClockSetting = 256 + // ClocksEventReasonBoardLimit as defined in nvml/nvml.h + ClocksEventReasonBoardLimit = 512 + // ClocksEventReasonReliability as defined in nvml/nvml.h + ClocksEventReasonReliability = 1024 // ClocksEventReasonNone as defined in nvml/nvml.h ClocksEventReasonNone = 0 // ClocksEventReasonAll as defined in nvml/nvml.h - ClocksEventReasonAll = 511 + ClocksEventReasonAll = 2047 // ClocksThrottleReasonGpuIdle as defined in nvml/nvml.h ClocksThrottleReasonGpuIdle = 1 // ClocksThrottleReasonApplicationsClocksSetting as defined in nvml/nvml.h @@ -863,7 +1010,7 @@ const ( // ClocksThrottleReasonNone as defined in nvml/nvml.h ClocksThrottleReasonNone = 0 // ClocksThrottleReasonAll as defined in nvml/nvml.h - ClocksThrottleReasonAll = 511 + ClocksThrottleReasonAll = 2047 // NVFBC_SESSION_FLAG_DIFFMAP_ENABLED as defined in nvml/nvml.h NVFBC_SESSION_FLAG_DIFFMAP_ENABLED = 1 // NVFBC_SESSION_FLAG_CLASSIFICATIONMAP_ENABLED as defined in nvml/nvml.h @@ -996,6 +1143,29 @@ const ( GPU_FABRIC_HEALTH_MASK_SHIFT_INCORRECT_CONFIGURATION = 8 // GPU_FABRIC_HEALTH_MASK_WIDTH_INCORRECT_CONFIGURATION as defined in nvml/nvml.h GPU_FABRIC_HEALTH_MASK_WIDTH_INCORRECT_CONFIGURATION = 15 +<<<<<<< HEAD +======= + // GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_NOT_SUPPORTED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_NOT_SUPPORTED = 0 + // GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_TRUE as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_TRUE = 1 + // GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_FALSE as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_FALSE = 2 + // GPU_FABRIC_HEALTH_MASK_SHIFT_PARTITION_ASSIGNED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_SHIFT_PARTITION_ASSIGNED = 12 + // GPU_FABRIC_HEALTH_MASK_WIDTH_PARTITION_ASSIGNED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_WIDTH_PARTITION_ASSIGNED = 3 + // GPU_FABRIC_HEALTH_MASK_GFM_STATE_NOT_SUPPORTED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_GFM_STATE_NOT_SUPPORTED = 0 + // GPU_FABRIC_HEALTH_MASK_GFM_STATE_CONNECTED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_GFM_STATE_CONNECTED = 1 + // GPU_FABRIC_HEALTH_MASK_GFM_STATE_DISCONNECTED as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_GFM_STATE_DISCONNECTED = 2 + // GPU_FABRIC_HEALTH_MASK_SHIFT_GFM_STATE as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_SHIFT_GFM_STATE = 14 + // GPU_FABRIC_HEALTH_MASK_WIDTH_GFM_STATE as defined in nvml/nvml.h + GPU_FABRIC_HEALTH_MASK_WIDTH_GFM_STATE = 3 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED as defined in nvml/nvml.h GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED = 0 // GPU_FABRIC_HEALTH_SUMMARY_HEALTHY as defined in nvml/nvml.h @@ -1004,6 +1174,16 @@ const ( GPU_FABRIC_HEALTH_SUMMARY_UNHEALTHY = 2 // GPU_FABRIC_HEALTH_SUMMARY_LIMITED_CAPACITY as defined in nvml/nvml.h GPU_FABRIC_HEALTH_SUMMARY_LIMITED_CAPACITY = 3 + // GPU_FABRIC_CLIQUE_MAX as defined in nvml/nvml.h + GPU_FABRIC_CLIQUE_MAX = 64 + // GPU_FABRIC_CLIQUE_TYPE_UNICAST_POINTER as defined in nvml/nvml.h + GPU_FABRIC_CLIQUE_TYPE_UNICAST_POINTER = 0 + // GPU_FABRIC_CLIQUE_TYPE_MULTICAST_POINTER as defined in nvml/nvml.h + GPU_FABRIC_CLIQUE_TYPE_MULTICAST_POINTER = 1 + // GPU_FABRIC_CLIQUE_TYPE_UNICAST_LOGICAL_ENDPOINT as defined in nvml/nvml.h + GPU_FABRIC_CLIQUE_TYPE_UNICAST_LOGICAL_ENDPOINT = 2 + // GPU_FABRIC_CLIQUE_TYPE_MULTICAST_LOGICAL_ENDPOINT as defined in nvml/nvml.h + GPU_FABRIC_CLIQUE_TYPE_MULTICAST_LOGICAL_ENDPOINT = 3 // INIT_FLAG_NO_GPUS as defined in nvml/nvml.h INIT_FLAG_NO_GPUS = 1 // INIT_FLAG_NO_ATTACH as defined in nvml/nvml.h @@ -1046,6 +1226,8 @@ const ( NVLINK_STATE_ACTIVE = 1 // NVLINK_STATE_SLEEP as defined in nvml/nvml.h NVLINK_STATE_SLEEP = 2 + // NVLINK_STATE_ACTIVE_TRAFFIC_DISABLED as defined in nvml/nvml.h + NVLINK_STATE_ACTIVE_TRAFFIC_DISABLED = 3 // NVLINK_TOTAL_SUPPORTED_BW_MODES as defined in nvml/nvml.h NVLINK_TOTAL_SUPPORTED_BW_MODES = 23 // NVLINK_FIRMWARE_UCODE_TYPE_MSE as defined in nvml/nvml.h @@ -1387,7 +1569,10 @@ const ( BRAND_NVIDIA BrandType = 14 BRAND_GEFORCE_RTX BrandType = 15 BRAND_TITAN_RTX BrandType = 16 - BRAND_COUNT BrandType = 18 + BRAND_NVIDIA_DLA BrandType = 17 + BRAND_NVIDIA_VGAMEDEV BrandType = 18 + BRAND_NVIDIA_NPU BrandType = 19 + BRAND_COUNT BrandType = 20 ) // TemperatureThresholds as declared in nvml/nvml.h @@ -1411,8 +1596,9 @@ type TemperatureSensors int32 // TemperatureSensors enumeration from nvml/nvml.h const ( - TEMPERATURE_GPU TemperatureSensors = iota - TEMPERATURE_COUNT TemperatureSensors = 1 + TEMPERATURE_GPU TemperatureSensors = iota + TEMPERATURE_GPU_MAX TemperatureSensors = 1 + TEMPERATURE_COUNT TemperatureSensors = 2 ) // ComputeMode as declared in nvml/nvml.h @@ -1716,11 +1902,22 @@ type DeviceGpuRecoveryAction int32 // DeviceGpuRecoveryAction enumeration from nvml/nvml.h const ( +<<<<<<< HEAD GPU_RECOVERY_ACTION_NONE DeviceGpuRecoveryAction = iota GPU_RECOVERY_ACTION_GPU_RESET DeviceGpuRecoveryAction = 1 GPU_RECOVERY_ACTION_NODE_REBOOT DeviceGpuRecoveryAction = 2 GPU_RECOVERY_ACTION_DRAIN_P2P DeviceGpuRecoveryAction = 3 GPU_RECOVERY_ACTION_DRAIN_AND_RESET DeviceGpuRecoveryAction = 4 +======= + GPU_RECOVERY_ACTION_NONE DeviceGpuRecoveryAction = iota + GPU_RECOVERY_ACTION_GPU_RESET DeviceGpuRecoveryAction = 1 + GPU_RECOVERY_ACTION_NODE_REBOOT DeviceGpuRecoveryAction = 2 + GPU_RECOVERY_ACTION_DRAIN_P2P DeviceGpuRecoveryAction = 3 + GPU_RECOVERY_ACTION_DRAIN_AND_RESET DeviceGpuRecoveryAction = 4 + GPU_RECOVERY_ACTION_RECOVER_IMEX_DOMAIN DeviceGpuRecoveryAction = 5 + GPU_RECOVERY_ACTION_BUS_RESET DeviceGpuRecoveryAction = 6 + GPU_RECOVERY_ACTION_SYSTEM_REBOOT DeviceGpuRecoveryAction = 7 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) ) // FanState as declared in nvml/nvml.h @@ -1890,8 +2087,103 @@ const ( GRID_LICENSE_FEATURE_CODE_VWORKSTATION GridLicenseFeatureCode = 2 GRID_LICENSE_FEATURE_CODE_GAMING GridLicenseFeatureCode = 3 GRID_LICENSE_FEATURE_CODE_COMPUTE GridLicenseFeatureCode = 4 + GRID_LICENSE_FEATURE_CODE_VGAMEDEV GridLicenseFeatureCode = 5 +) + +// GpuOperationalEventLogLevel as declared in nvml/nvml.h +type GpuOperationalEventLogLevel int32 + +// GpuOperationalEventLogLevel enumeration from nvml/nvml.h +const ( + GPU_OPERATIONAL_EVENT_LOG_LEVEL_ALL GpuOperationalEventLogLevel = iota + GPU_OPERATIONAL_EVENT_LOG_LEVEL_TELEMETRY GpuOperationalEventLogLevel = 10 + GPU_OPERATIONAL_EVENT_LOG_LEVEL_DIAG GpuOperationalEventLogLevel = 20 + GPU_OPERATIONAL_EVENT_LOG_LEVEL_NOTICE GpuOperationalEventLogLevel = 30 + GPU_OPERATIONAL_EVENT_LOG_LEVEL_WARNING GpuOperationalEventLogLevel = 40 + GPU_OPERATIONAL_EVENT_LOG_LEVEL_ERROR GpuOperationalEventLogLevel = 50 +) + +// OperationalEventSeverity as declared in nvml/nvml.h +type OperationalEventSeverity int32 + +// OperationalEventSeverity enumeration from nvml/nvml.h +const ( + OPERATIONAL_EVENT_SEVERITY_ALL OperationalEventSeverity = iota + OPERATIONAL_EVENT_SEVERITY_INFORMATIONAL OperationalEventSeverity = 10 + OPERATIONAL_EVENT_SEVERITY_CORRECTED OperationalEventSeverity = 20 + OPERATIONAL_EVENT_SEVERITY_RECOVERABLE OperationalEventSeverity = 30 + OPERATIONAL_EVENT_SEVERITY_FATAL OperationalEventSeverity = 40 +) + +// EventDataType as declared in nvml/nvml.h +type EventDataType int32 + +// EventDataType enumeration from nvml/nvml.h +const ( + EVENT_DATA_TYPE_NVML_EVENT EventDataType = iota + EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT EventDataType = 1 +) + +// GpuOperationalEventContextType as declared in nvml/nvml.h +type GpuOperationalEventContextType int32 + +// GpuOperationalEventContextType enumeration from nvml/nvml.h +const ( + GPU_OPERATIONAL_EVENT_CONTEXT_TYPE_UNKNOWN GpuOperationalEventContextType = iota + GPU_OPERATIONAL_EVENT_CONTEXT_TYPE_LEGACY_XID GpuOperationalEventContextType = 1 +) + +<<<<<<< HEAD +======= +// CPERType as declared in nvml/nvml.h +type CPERType int32 + +// CPERType enumeration from nvml/nvml.h +const ( + CPER_ACCESS_TYPE_GPU CPERType = 1 +) + +// NvlinkTelemetrySampleType as declared in nvml/nvml.h +type NvlinkTelemetrySampleType int32 + +// NvlinkTelemetrySampleType enumeration from nvml/nvml.h +const ( + NVLINK_TELEMETRY_SAMPLE_TYPE_THROUGHPUT_RAW_TX NvlinkTelemetrySampleType = iota + NVLINK_TELEMETRY_SAMPLE_TYPE_THROUGHPUT_RAW_RX NvlinkTelemetrySampleType = 1 + NVLINK_TELEMETRY_SAMPLE_TYPE_COUNT NvlinkTelemetrySampleType = 2 +) + +// PRMCounterId as declared in nvml/nvml.h +type PRMCounterId int32 + +// PRMCounterId enumeration from nvml/nvml.h +const ( + PRM_COUNTER_ID_NONE PRMCounterId = iota + PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_LINK_DOWN_EVENTS PRMCounterId = 1 + PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_SUCCESSFUL_RECOVERY_EVENTS PRMCounterId = 2 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_SUCCESSFUL_RECOVERY_EVENTS PRMCounterId = 101 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_SINCE_LAST_RECOVERY PRMCounterId = 102 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_BETWEEN_LAST_TWO_RECOVERIES PRMCounterId = 103 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_IN_LAST_HOST_SERDES_FEQ_RECOVERY PRMCounterId = 104 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_TIME_IN_HOST_SERDES_FEQ_RECOVERY PRMCounterId = 105 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_HOST_SERDES_FEQ_RECOVERY_COUNT PRMCounterId = 106 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_HOST_SERDES_FEQ_SUCCESSFUL_RECOVERY_COUNT PRMCounterId = 107 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_HOST_SERDES_FEQ_ATTEMPTS_COUNT PRMCounterId = 108 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_SUCCESSFUL_RECOVERY_STEP_ATTEMPTS PRMCounterId = 109 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_SUCCESSFUL_RECOVERY_TIME PRMCounterId = 110 + PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_SUCCESSFUL_RECOVERY_TIME PRMCounterId = 111 + PRM_COUNTER_ID_PPCNT_PORTCOUNTERS_PORT_XMIT_WAIT PRMCounterId = 201 + PRM_COUNTER_ID_PPCNT_PLR_RCV_CODES PRMCounterId = 301 + PRM_COUNTER_ID_PPCNT_PLR_RCV_CODE_ERR PRMCounterId = 302 + PRM_COUNTER_ID_PPCNT_PLR_RCV_UNCORRECTABLE_CODE PRMCounterId = 303 + PRM_COUNTER_ID_PPCNT_PLR_XMIT_CODES PRMCounterId = 304 + PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_CODES PRMCounterId = 305 + PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_EVENTS PRMCounterId = 306 + PRM_COUNTER_ID_PPCNT_PLR_SYNC_EVENTS PRMCounterId = 307 + PRM_COUNTER_ID_PPRM_OPER_RECOVERY PRMCounterId = 1001 ) +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GpmMetricId as declared in nvml/nvml.h type GpmMetricId int32 @@ -2077,7 +2369,276 @@ const ( GPM_METRIC_GR7_CTXSW_REQUESTS GpmMetricId = 207 GPM_METRIC_GR7_CTXSW_CYCLES_PER_REQ GpmMetricId = 208 GPM_METRIC_GR7_CTXSW_ACTIVE_PCT GpmMetricId = 209 +<<<<<<< HEAD GPM_METRIC_MAX GpmMetricId = 210 +======= + GPM_METRIC_NVLINK_L18_RX_PER_SEC GpmMetricId = 212 + GPM_METRIC_NVLINK_L18_TX_PER_SEC GpmMetricId = 213 + GPM_METRIC_NVLINK_L19_RX_PER_SEC GpmMetricId = 214 + GPM_METRIC_NVLINK_L19_TX_PER_SEC GpmMetricId = 215 + GPM_METRIC_NVLINK_L20_RX_PER_SEC GpmMetricId = 216 + GPM_METRIC_NVLINK_L20_TX_PER_SEC GpmMetricId = 217 + GPM_METRIC_NVLINK_L21_RX_PER_SEC GpmMetricId = 218 + GPM_METRIC_NVLINK_L21_TX_PER_SEC GpmMetricId = 219 + GPM_METRIC_NVLINK_L22_RX_PER_SEC GpmMetricId = 220 + GPM_METRIC_NVLINK_L22_TX_PER_SEC GpmMetricId = 221 + GPM_METRIC_NVLINK_L23_RX_PER_SEC GpmMetricId = 222 + GPM_METRIC_NVLINK_L23_TX_PER_SEC GpmMetricId = 223 + GPM_METRIC_NVLINK_L24_RX_PER_SEC GpmMetricId = 224 + GPM_METRIC_NVLINK_L24_TX_PER_SEC GpmMetricId = 225 + GPM_METRIC_NVLINK_L25_RX_PER_SEC GpmMetricId = 226 + GPM_METRIC_NVLINK_L25_TX_PER_SEC GpmMetricId = 227 + GPM_METRIC_NVLINK_L26_RX_PER_SEC GpmMetricId = 228 + GPM_METRIC_NVLINK_L26_TX_PER_SEC GpmMetricId = 229 + GPM_METRIC_NVLINK_L27_RX_PER_SEC GpmMetricId = 230 + GPM_METRIC_NVLINK_L27_TX_PER_SEC GpmMetricId = 231 + GPM_METRIC_NVLINK_L28_RX_PER_SEC GpmMetricId = 232 + GPM_METRIC_NVLINK_L28_TX_PER_SEC GpmMetricId = 233 + GPM_METRIC_NVLINK_L29_RX_PER_SEC GpmMetricId = 234 + GPM_METRIC_NVLINK_L29_TX_PER_SEC GpmMetricId = 235 + GPM_METRIC_NVLINK_L30_RX_PER_SEC GpmMetricId = 236 + GPM_METRIC_NVLINK_L30_TX_PER_SEC GpmMetricId = 237 + GPM_METRIC_NVLINK_L31_RX_PER_SEC GpmMetricId = 238 + GPM_METRIC_NVLINK_L31_TX_PER_SEC GpmMetricId = 239 + GPM_METRIC_NVLINK_L32_RX_PER_SEC GpmMetricId = 240 + GPM_METRIC_NVLINK_L32_TX_PER_SEC GpmMetricId = 241 + GPM_METRIC_NVLINK_L33_RX_PER_SEC GpmMetricId = 242 + GPM_METRIC_NVLINK_L33_TX_PER_SEC GpmMetricId = 243 + GPM_METRIC_NVLINK_L34_RX_PER_SEC GpmMetricId = 244 + GPM_METRIC_NVLINK_L34_TX_PER_SEC GpmMetricId = 245 + GPM_METRIC_NVLINK_L35_RX_PER_SEC GpmMetricId = 246 + GPM_METRIC_NVLINK_L35_TX_PER_SEC GpmMetricId = 247 + GPM_METRIC_SM_CYCLES_ELAPSED GpmMetricId = 248 + GPM_METRIC_SM_CYCLES_ACTIVE GpmMetricId = 249 + GPM_METRIC_MMA_CYCLES_ACTIVE GpmMetricId = 250 + GPM_METRIC_DMMA_CYCLES_ACTIVE GpmMetricId = 251 + GPM_METRIC_HMMA_CYCLES_ACTIVE GpmMetricId = 252 + GPM_METRIC_IMMA_CYCLES_ACTIVE GpmMetricId = 253 + GPM_METRIC_DFMA_CYCLES_ACTIVE GpmMetricId = 254 + GPM_METRIC_PCIE_TX GpmMetricId = 255 + GPM_METRIC_PCIE_RX GpmMetricId = 256 + GPM_METRIC_INTEGER_CYCLES_ACTIVE GpmMetricId = 257 + GPM_METRIC_FP64_CYCLES_ACTIVE GpmMetricId = 258 + GPM_METRIC_FP32_CYCLES_ACTIVE GpmMetricId = 259 + GPM_METRIC_FP16_CYCLES_ACTIVE GpmMetricId = 260 + GPM_METRIC_NVLINK_L0_RX GpmMetricId = 261 + GPM_METRIC_NVLINK_L0_TX GpmMetricId = 262 + GPM_METRIC_NVLINK_L1_RX GpmMetricId = 263 + GPM_METRIC_NVLINK_L1_TX GpmMetricId = 264 + GPM_METRIC_NVLINK_L2_RX GpmMetricId = 265 + GPM_METRIC_NVLINK_L2_TX GpmMetricId = 266 + GPM_METRIC_NVLINK_L3_RX GpmMetricId = 267 + GPM_METRIC_NVLINK_L3_TX GpmMetricId = 268 + GPM_METRIC_NVLINK_L4_RX GpmMetricId = 269 + GPM_METRIC_NVLINK_L4_TX GpmMetricId = 270 + GPM_METRIC_NVLINK_L5_RX GpmMetricId = 271 + GPM_METRIC_NVLINK_L5_TX GpmMetricId = 272 + GPM_METRIC_NVLINK_L6_RX GpmMetricId = 273 + GPM_METRIC_NVLINK_L6_TX GpmMetricId = 274 + GPM_METRIC_NVLINK_L7_RX GpmMetricId = 275 + GPM_METRIC_NVLINK_L7_TX GpmMetricId = 276 + GPM_METRIC_NVLINK_L8_RX GpmMetricId = 277 + GPM_METRIC_NVLINK_L8_TX GpmMetricId = 278 + GPM_METRIC_NVLINK_L9_RX GpmMetricId = 279 + GPM_METRIC_NVLINK_L9_TX GpmMetricId = 280 + GPM_METRIC_NVLINK_L10_RX GpmMetricId = 281 + GPM_METRIC_NVLINK_L10_TX GpmMetricId = 282 + GPM_METRIC_NVLINK_L11_RX GpmMetricId = 283 + GPM_METRIC_NVLINK_L11_TX GpmMetricId = 284 + GPM_METRIC_NVLINK_L12_RX GpmMetricId = 285 + GPM_METRIC_NVLINK_L12_TX GpmMetricId = 286 + GPM_METRIC_NVLINK_L13_RX GpmMetricId = 287 + GPM_METRIC_NVLINK_L13_TX GpmMetricId = 288 + GPM_METRIC_NVLINK_L14_RX GpmMetricId = 289 + GPM_METRIC_NVLINK_L14_TX GpmMetricId = 290 + GPM_METRIC_NVLINK_L15_RX GpmMetricId = 291 + GPM_METRIC_NVLINK_L15_TX GpmMetricId = 292 + GPM_METRIC_NVLINK_L16_RX GpmMetricId = 293 + GPM_METRIC_NVLINK_L16_TX GpmMetricId = 294 + GPM_METRIC_NVLINK_L17_RX GpmMetricId = 295 + GPM_METRIC_NVLINK_L17_TX GpmMetricId = 296 + GPM_METRIC_NVLINK_L18_RX GpmMetricId = 297 + GPM_METRIC_NVLINK_L18_TX GpmMetricId = 298 + GPM_METRIC_NVLINK_L19_RX GpmMetricId = 299 + GPM_METRIC_NVLINK_L19_TX GpmMetricId = 300 + GPM_METRIC_NVLINK_L20_RX GpmMetricId = 301 + GPM_METRIC_NVLINK_L20_TX GpmMetricId = 302 + GPM_METRIC_NVLINK_L21_RX GpmMetricId = 303 + GPM_METRIC_NVLINK_L21_TX GpmMetricId = 304 + GPM_METRIC_NVLINK_L22_RX GpmMetricId = 305 + GPM_METRIC_NVLINK_L22_TX GpmMetricId = 306 + GPM_METRIC_NVLINK_L23_RX GpmMetricId = 307 + GPM_METRIC_NVLINK_L23_TX GpmMetricId = 308 + GPM_METRIC_NVLINK_L24_RX GpmMetricId = 309 + GPM_METRIC_NVLINK_L24_TX GpmMetricId = 310 + GPM_METRIC_NVLINK_L25_RX GpmMetricId = 311 + GPM_METRIC_NVLINK_L25_TX GpmMetricId = 312 + GPM_METRIC_NVLINK_L26_RX GpmMetricId = 313 + GPM_METRIC_NVLINK_L26_TX GpmMetricId = 314 + GPM_METRIC_NVLINK_L27_RX GpmMetricId = 315 + GPM_METRIC_NVLINK_L27_TX GpmMetricId = 316 + GPM_METRIC_NVLINK_L28_RX GpmMetricId = 317 + GPM_METRIC_NVLINK_L28_TX GpmMetricId = 318 + GPM_METRIC_NVLINK_L29_RX GpmMetricId = 319 + GPM_METRIC_NVLINK_L29_TX GpmMetricId = 320 + GPM_METRIC_NVLINK_L30_RX GpmMetricId = 321 + GPM_METRIC_NVLINK_L30_TX GpmMetricId = 322 + GPM_METRIC_NVLINK_L31_RX GpmMetricId = 323 + GPM_METRIC_NVLINK_L31_TX GpmMetricId = 324 + GPM_METRIC_NVLINK_L32_RX GpmMetricId = 325 + GPM_METRIC_NVLINK_L32_TX GpmMetricId = 326 + GPM_METRIC_NVLINK_L33_RX GpmMetricId = 327 + GPM_METRIC_NVLINK_L33_TX GpmMetricId = 328 + GPM_METRIC_NVLINK_L34_RX GpmMetricId = 329 + GPM_METRIC_NVLINK_L34_TX GpmMetricId = 330 + GPM_METRIC_NVLINK_L35_RX GpmMetricId = 331 + GPM_METRIC_NVLINK_L35_TX GpmMetricId = 332 + GPM_METRIC_NVLINK_L36_RX GpmMetricId = 333 + GPM_METRIC_NVLINK_L36_TX GpmMetricId = 334 + GPM_METRIC_NVLINK_L37_RX GpmMetricId = 335 + GPM_METRIC_NVLINK_L37_TX GpmMetricId = 336 + GPM_METRIC_NVLINK_L38_RX GpmMetricId = 337 + GPM_METRIC_NVLINK_L38_TX GpmMetricId = 338 + GPM_METRIC_NVLINK_L39_RX GpmMetricId = 339 + GPM_METRIC_NVLINK_L39_TX GpmMetricId = 340 + GPM_METRIC_NVLINK_L40_RX GpmMetricId = 341 + GPM_METRIC_NVLINK_L40_TX GpmMetricId = 342 + GPM_METRIC_NVLINK_L41_RX GpmMetricId = 343 + GPM_METRIC_NVLINK_L41_TX GpmMetricId = 344 + GPM_METRIC_NVLINK_L42_RX GpmMetricId = 345 + GPM_METRIC_NVLINK_L42_TX GpmMetricId = 346 + GPM_METRIC_NVLINK_L43_RX GpmMetricId = 347 + GPM_METRIC_NVLINK_L43_TX GpmMetricId = 348 + GPM_METRIC_NVLINK_L44_RX GpmMetricId = 349 + GPM_METRIC_NVLINK_L44_TX GpmMetricId = 350 + GPM_METRIC_NVLINK_L45_RX GpmMetricId = 351 + GPM_METRIC_NVLINK_L45_TX GpmMetricId = 352 + GPM_METRIC_NVLINK_L46_RX GpmMetricId = 353 + GPM_METRIC_NVLINK_L46_TX GpmMetricId = 354 + GPM_METRIC_NVLINK_L47_RX GpmMetricId = 355 + GPM_METRIC_NVLINK_L47_TX GpmMetricId = 356 + GPM_METRIC_NVLINK_L48_RX GpmMetricId = 357 + GPM_METRIC_NVLINK_L48_TX GpmMetricId = 358 + GPM_METRIC_NVLINK_L49_RX GpmMetricId = 359 + GPM_METRIC_NVLINK_L49_TX GpmMetricId = 360 + GPM_METRIC_NVLINK_L50_RX GpmMetricId = 361 + GPM_METRIC_NVLINK_L50_TX GpmMetricId = 362 + GPM_METRIC_NVLINK_L51_RX GpmMetricId = 363 + GPM_METRIC_NVLINK_L51_TX GpmMetricId = 364 + GPM_METRIC_NVLINK_L52_RX GpmMetricId = 365 + GPM_METRIC_NVLINK_L52_TX GpmMetricId = 366 + GPM_METRIC_NVLINK_L53_RX GpmMetricId = 367 + GPM_METRIC_NVLINK_L53_TX GpmMetricId = 368 + GPM_METRIC_NVLINK_L54_RX GpmMetricId = 369 + GPM_METRIC_NVLINK_L54_TX GpmMetricId = 370 + GPM_METRIC_NVLINK_L55_RX GpmMetricId = 371 + GPM_METRIC_NVLINK_L55_TX GpmMetricId = 372 + GPM_METRIC_NVLINK_L56_RX GpmMetricId = 373 + GPM_METRIC_NVLINK_L56_TX GpmMetricId = 374 + GPM_METRIC_NVLINK_L57_RX GpmMetricId = 375 + GPM_METRIC_NVLINK_L57_TX GpmMetricId = 376 + GPM_METRIC_NVLINK_L58_RX GpmMetricId = 377 + GPM_METRIC_NVLINK_L58_TX GpmMetricId = 378 + GPM_METRIC_NVLINK_L59_RX GpmMetricId = 379 + GPM_METRIC_NVLINK_L59_TX GpmMetricId = 380 + GPM_METRIC_NVLINK_L60_RX GpmMetricId = 381 + GPM_METRIC_NVLINK_L60_TX GpmMetricId = 382 + GPM_METRIC_NVLINK_L61_RX GpmMetricId = 383 + GPM_METRIC_NVLINK_L61_TX GpmMetricId = 384 + GPM_METRIC_NVLINK_L62_RX GpmMetricId = 385 + GPM_METRIC_NVLINK_L62_TX GpmMetricId = 386 + GPM_METRIC_NVLINK_L63_RX GpmMetricId = 387 + GPM_METRIC_NVLINK_L63_TX GpmMetricId = 388 + GPM_METRIC_NVLINK_L64_RX GpmMetricId = 389 + GPM_METRIC_NVLINK_L64_TX GpmMetricId = 390 + GPM_METRIC_NVLINK_L65_RX GpmMetricId = 391 + GPM_METRIC_NVLINK_L65_TX GpmMetricId = 392 + GPM_METRIC_NVLINK_L66_RX GpmMetricId = 393 + GPM_METRIC_NVLINK_L66_TX GpmMetricId = 394 + GPM_METRIC_NVLINK_L67_RX GpmMetricId = 395 + GPM_METRIC_NVLINK_L67_TX GpmMetricId = 396 + GPM_METRIC_NVLINK_L68_RX GpmMetricId = 397 + GPM_METRIC_NVLINK_L68_TX GpmMetricId = 398 + GPM_METRIC_NVLINK_L69_RX GpmMetricId = 399 + GPM_METRIC_NVLINK_L69_TX GpmMetricId = 400 + GPM_METRIC_NVLINK_L70_RX GpmMetricId = 401 + GPM_METRIC_NVLINK_L70_TX GpmMetricId = 402 + GPM_METRIC_NVLINK_L71_RX GpmMetricId = 403 + GPM_METRIC_NVLINK_L71_TX GpmMetricId = 404 + GPM_METRIC_NVLINK_L36_RX_PER_SEC GpmMetricId = 405 + GPM_METRIC_NVLINK_L36_TX_PER_SEC GpmMetricId = 406 + GPM_METRIC_NVLINK_L37_RX_PER_SEC GpmMetricId = 407 + GPM_METRIC_NVLINK_L37_TX_PER_SEC GpmMetricId = 408 + GPM_METRIC_NVLINK_L38_RX_PER_SEC GpmMetricId = 409 + GPM_METRIC_NVLINK_L38_TX_PER_SEC GpmMetricId = 410 + GPM_METRIC_NVLINK_L39_RX_PER_SEC GpmMetricId = 411 + GPM_METRIC_NVLINK_L39_TX_PER_SEC GpmMetricId = 412 + GPM_METRIC_NVLINK_L40_RX_PER_SEC GpmMetricId = 413 + GPM_METRIC_NVLINK_L40_TX_PER_SEC GpmMetricId = 414 + GPM_METRIC_NVLINK_L41_RX_PER_SEC GpmMetricId = 415 + GPM_METRIC_NVLINK_L41_TX_PER_SEC GpmMetricId = 416 + GPM_METRIC_NVLINK_L42_RX_PER_SEC GpmMetricId = 417 + GPM_METRIC_NVLINK_L42_TX_PER_SEC GpmMetricId = 418 + GPM_METRIC_NVLINK_L43_RX_PER_SEC GpmMetricId = 419 + GPM_METRIC_NVLINK_L43_TX_PER_SEC GpmMetricId = 420 + GPM_METRIC_NVLINK_L44_RX_PER_SEC GpmMetricId = 421 + GPM_METRIC_NVLINK_L44_TX_PER_SEC GpmMetricId = 422 + GPM_METRIC_NVLINK_L45_RX_PER_SEC GpmMetricId = 423 + GPM_METRIC_NVLINK_L45_TX_PER_SEC GpmMetricId = 424 + GPM_METRIC_NVLINK_L46_RX_PER_SEC GpmMetricId = 425 + GPM_METRIC_NVLINK_L46_TX_PER_SEC GpmMetricId = 426 + GPM_METRIC_NVLINK_L47_RX_PER_SEC GpmMetricId = 427 + GPM_METRIC_NVLINK_L47_TX_PER_SEC GpmMetricId = 428 + GPM_METRIC_NVLINK_L48_RX_PER_SEC GpmMetricId = 429 + GPM_METRIC_NVLINK_L48_TX_PER_SEC GpmMetricId = 430 + GPM_METRIC_NVLINK_L49_RX_PER_SEC GpmMetricId = 431 + GPM_METRIC_NVLINK_L49_TX_PER_SEC GpmMetricId = 432 + GPM_METRIC_NVLINK_L50_RX_PER_SEC GpmMetricId = 433 + GPM_METRIC_NVLINK_L50_TX_PER_SEC GpmMetricId = 434 + GPM_METRIC_NVLINK_L51_RX_PER_SEC GpmMetricId = 435 + GPM_METRIC_NVLINK_L51_TX_PER_SEC GpmMetricId = 436 + GPM_METRIC_NVLINK_L52_RX_PER_SEC GpmMetricId = 437 + GPM_METRIC_NVLINK_L52_TX_PER_SEC GpmMetricId = 438 + GPM_METRIC_NVLINK_L53_RX_PER_SEC GpmMetricId = 439 + GPM_METRIC_NVLINK_L53_TX_PER_SEC GpmMetricId = 440 + GPM_METRIC_NVLINK_L54_RX_PER_SEC GpmMetricId = 441 + GPM_METRIC_NVLINK_L54_TX_PER_SEC GpmMetricId = 442 + GPM_METRIC_NVLINK_L55_RX_PER_SEC GpmMetricId = 443 + GPM_METRIC_NVLINK_L55_TX_PER_SEC GpmMetricId = 444 + GPM_METRIC_NVLINK_L56_RX_PER_SEC GpmMetricId = 445 + GPM_METRIC_NVLINK_L56_TX_PER_SEC GpmMetricId = 446 + GPM_METRIC_NVLINK_L57_RX_PER_SEC GpmMetricId = 447 + GPM_METRIC_NVLINK_L57_TX_PER_SEC GpmMetricId = 448 + GPM_METRIC_NVLINK_L58_RX_PER_SEC GpmMetricId = 449 + GPM_METRIC_NVLINK_L58_TX_PER_SEC GpmMetricId = 450 + GPM_METRIC_NVLINK_L59_RX_PER_SEC GpmMetricId = 451 + GPM_METRIC_NVLINK_L59_TX_PER_SEC GpmMetricId = 452 + GPM_METRIC_NVLINK_L60_RX_PER_SEC GpmMetricId = 453 + GPM_METRIC_NVLINK_L60_TX_PER_SEC GpmMetricId = 454 + GPM_METRIC_NVLINK_L61_RX_PER_SEC GpmMetricId = 455 + GPM_METRIC_NVLINK_L61_TX_PER_SEC GpmMetricId = 456 + GPM_METRIC_NVLINK_L62_RX_PER_SEC GpmMetricId = 457 + GPM_METRIC_NVLINK_L62_TX_PER_SEC GpmMetricId = 458 + GPM_METRIC_NVLINK_L63_RX_PER_SEC GpmMetricId = 459 + GPM_METRIC_NVLINK_L63_TX_PER_SEC GpmMetricId = 460 + GPM_METRIC_NVLINK_L64_RX_PER_SEC GpmMetricId = 461 + GPM_METRIC_NVLINK_L64_TX_PER_SEC GpmMetricId = 462 + GPM_METRIC_NVLINK_L65_RX_PER_SEC GpmMetricId = 463 + GPM_METRIC_NVLINK_L65_TX_PER_SEC GpmMetricId = 464 + GPM_METRIC_NVLINK_L66_RX_PER_SEC GpmMetricId = 465 + GPM_METRIC_NVLINK_L66_TX_PER_SEC GpmMetricId = 466 + GPM_METRIC_NVLINK_L67_RX_PER_SEC GpmMetricId = 467 + GPM_METRIC_NVLINK_L67_TX_PER_SEC GpmMetricId = 468 + GPM_METRIC_NVLINK_L68_RX_PER_SEC GpmMetricId = 469 + GPM_METRIC_NVLINK_L68_TX_PER_SEC GpmMetricId = 470 + GPM_METRIC_NVLINK_L69_RX_PER_SEC GpmMetricId = 471 + GPM_METRIC_NVLINK_L69_TX_PER_SEC GpmMetricId = 472 + GPM_METRIC_NVLINK_L70_RX_PER_SEC GpmMetricId = 473 + GPM_METRIC_NVLINK_L70_TX_PER_SEC GpmMetricId = 474 + GPM_METRIC_NVLINK_L71_RX_PER_SEC GpmMetricId = 475 + GPM_METRIC_NVLINK_L71_TX_PER_SEC GpmMetricId = 476 + GPM_METRIC_MAX GpmMetricId = 477 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) ) // PowerProfileType as declared in nvml/nvml.h @@ -2085,20 +2646,30 @@ type PowerProfileType int32 // PowerProfileType enumeration from nvml/nvml.h const ( - POWER_PROFILE_MAX_P PowerProfileType = iota - POWER_PROFILE_MAX_Q PowerProfileType = 1 - POWER_PROFILE_COMPUTE PowerProfileType = 2 - POWER_PROFILE_MEMORY_BOUND PowerProfileType = 3 - POWER_PROFILE_NETWORK PowerProfileType = 4 - POWER_PROFILE_BALANCED PowerProfileType = 5 - POWER_PROFILE_LLM_INFERENCE PowerProfileType = 6 - POWER_PROFILE_LLM_TRAINING PowerProfileType = 7 - POWER_PROFILE_RBM PowerProfileType = 8 - POWER_PROFILE_DCPCIE PowerProfileType = 9 - POWER_PROFILE_HMMA_SPARSE PowerProfileType = 10 - POWER_PROFILE_HMMA_DENSE PowerProfileType = 11 - POWER_PROFILE_SYNC_BALANCED PowerProfileType = 12 - POWER_PROFILE_HPC PowerProfileType = 13 - POWER_PROFILE_MIG PowerProfileType = 14 - POWER_PROFILE_MAX PowerProfileType = 15 + POWER_PROFILE_MAX_P PowerProfileType = iota + POWER_PROFILE_MAX_Q PowerProfileType = 1 + POWER_PROFILE_COMPUTE PowerProfileType = 2 + POWER_PROFILE_MEMORY_BOUND PowerProfileType = 3 + POWER_PROFILE_NETWORK PowerProfileType = 4 + POWER_PROFILE_BALANCED PowerProfileType = 5 + POWER_PROFILE_LLM_INFERENCE PowerProfileType = 6 + POWER_PROFILE_LLM_TRAINING PowerProfileType = 7 + POWER_PROFILE_RBM PowerProfileType = 8 + POWER_PROFILE_DCPCIE PowerProfileType = 9 + POWER_PROFILE_HMMA_SPARSE PowerProfileType = 10 + POWER_PROFILE_HMMA_DENSE PowerProfileType = 11 + POWER_PROFILE_SYNC_BALANCED PowerProfileType = 12 + POWER_PROFILE_HPC PowerProfileType = 13 + POWER_PROFILE_MIG PowerProfileType = 14 + POWER_PROFILE_MAX_Q_1 PowerProfileType = 15 + POWER_PROFILE_NETWORK_BOUND PowerProfileType = 16 + POWER_PROFILE_HIGH_THROUGHPUT_INFERENCE PowerProfileType = 17 + POWER_PROFILE_MEDIUM_THROUGHPUT_INFERENCE PowerProfileType = 18 + POWER_PROFILE_LOW_LATENCY_INFERENCE PowerProfileType = 19 + POWER_PROFILE_TRAINING PowerProfileType = 20 + POWER_PROFILE_INFERENCE PowerProfileType = 21 + POWER_PROFILE_MAX_Q_2 PowerProfileType = 22 + POWER_PROFILE_MAX_Q_3 PowerProfileType = 23 + POWER_PROFILE_LOW_PRIORITY_BACKGROUND PowerProfileType = 24 + POWER_PROFILE_MAX PowerProfileType = 25 ) diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go index d341e157..d926faf4 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/device.go @@ -816,6 +816,60 @@ func (device nvmlDevice) GetEnforcedPowerLimit() (uint32, Return) { return limit, ret } +func (l *library) DeviceSetMemoryLimits_v1(device Device, namespace string, requests uint64, limits uint64) Return { + return device.SetMemoryLimits_v1(namespace, requests, limits) +} + +func (device nvmlDevice) SetMemoryLimits_v1(namespace string, requests uint64, limits uint64) Return { + d := &SetMemoryLimits_v1{} + cptr := stringToCPtr(namespace) + defer free(cptr) + d.NameSpace = (*int8)(cptr) + d.SoftLimit = requests + d.HardLimit = limits + return nvmlDeviceSetMemoryLimits_v1(device, d) +} + +// nvml.DeviceGetMemoryLimits_v1() +func (l *library) DeviceGetMemoryLimits_v1(device Device, namespace string) (MemoryLimits_v1, Return) { + return device.GetMemoryLimits_v1(namespace) +} + +func (device nvmlDevice) GetMemoryLimits_v1(namespace string) (MemoryLimits_v1, Return) { + d := &GetMemoryLimits_v1{} + cptr := stringToCPtr(namespace) + defer free(cptr) + d.NameSpace = (*int8)(cptr) + ret := nvmlDeviceGetMemoryLimits_v1(device, d) + resp := MemoryLimits_v1{ + NameSpace: int8PtrToString(d.NameSpace), + SoftLimit: d.SoftLimit, + HardLimit: d.HardLimit, + CurrentUsed: d.CurrentUsed, + } + return resp, ret +} + +// nvml.DeviceSetAdaptiveTgpMode_v1() +func (l *library) DeviceSetAdaptiveTgpMode_v1(device Device, mode EnableState) Return { + return device.SetAdaptiveTgpMode_v1(mode) +} + +func (device nvmlDevice) SetAdaptiveTgpMode_v1(mode EnableState) Return { + return nvmlDeviceSetAdaptiveTgpMode_v1(device, mode) +} + +// nvml.DeviceGetAdaptiveTgpModeInfo_v1() +func (l *library) DeviceGetAdaptiveTgpModeInfo_v1(device Device) (AdaptiveTgpModeInfo_v1, Return) { + return device.GetAdaptiveTgpModeInfo_v1() +} + +func (device nvmlDevice) GetAdaptiveTgpModeInfo_v1() (AdaptiveTgpModeInfo_v1, Return) { + var info AdaptiveTgpModeInfo_v1 + ret := nvmlDeviceGetAdaptiveTgpModeInfo_v1(device, &info) + return info, ret +} + // nvml.DeviceGetGpuOperationMode() func (l *library) DeviceGetGpuOperationMode(device Device) (GpuOperationMode, GpuOperationMode, Return) { return device.GetGpuOperationMode() @@ -1397,6 +1451,39 @@ func (device nvmlDevice) GetPdi() (Pdi, Return) { return pdi, ret } +<<<<<<< HEAD +======= +func (l *library) DeviceSetHostname_v1(device Device, hostName string) Return { + return device.SetHostname_v1(hostName) +} + +func (device nvmlDevice) SetHostname_v1(hostName string) Return { + var hostNameReq Hostname_v1 + stringToInt8Slice(hostName, hostNameReq.Value[:]) + return nvmlDeviceSetHostname_v1(device, &hostNameReq) +} + +func (l *library) DeviceGetHostname_v1(device Device) (string, Return) { + return device.GetHostname_v1() +} + +func (device nvmlDevice) GetHostname_v1() (string, Return) { + var hostName Hostname_v1 + ret := nvmlDeviceGetHostname_v1(device, &hostName) + return int8SliceToString(hostName.Value[:]), ret +} + +func (l *library) DevicePerfMetricsGetSamples_v1(device Device) (PerfMetricsSamples_v1, Return) { + return device.PerfMetricsGetSamples_v1() +} + +func (device nvmlDevice) PerfMetricsGetSamples_v1() (PerfMetricsSamples_v1, Return) { + var samples PerfMetricsSamples_v1 + ret := nvmlDevicePerfMetricsGetSamples_v1(device, &samples) + return samples, ret +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // nvml.DeviceGetAccountingStats() func (l *library) DeviceGetAccountingStats(device Device, pid uint32) (AccountingStats, Return) { return device.GetAccountingStats(pid) @@ -2300,6 +2387,9 @@ func (device nvmlDevice) GetGpuInstances(info *GpuInstanceProfileInfo) ([]GpuIns return nil, ERROR_INVALID_ARGUMENT } var count = info.InstanceCount + if count == 0 { + return nil, ERROR_INVALID_ARGUMENT + } gpuInstances := make([]nvmlGpuInstance, count) ret := nvmlDeviceGetGpuInstances(device, info.Id, &gpuInstances[0], &count) return convertSlice[nvmlGpuInstance, GpuInstance](gpuInstances[:count]), ret @@ -2418,6 +2508,9 @@ func (gpuInstance nvmlGpuInstance) GetComputeInstances(info *ComputeInstanceProf return nil, ERROR_INVALID_ARGUMENT } var count = info.InstanceCount + if count == 0 { + return nil, ERROR_INVALID_ARGUMENT + } computeInstances := make([]nvmlComputeInstance, count) ret := nvmlGpuInstanceGetComputeInstances(gpuInstance, info.Id, &computeInstances[0], &count) return convertSlice[nvmlComputeInstance, ComputeInstance](computeInstances[:count]), ret @@ -2658,7 +2751,7 @@ func (l *library) DeviceGetSupportedPerformanceStates(device Device) ([]Pstates, func (device nvmlDevice) GetSupportedPerformanceStates() ([]Pstates, Return) { pstates := make([]Pstates, MAX_GPU_PERF_PSTATES) - ret := nvmlDeviceGetSupportedPerformanceStates(device, &pstates[0], MAX_GPU_PERF_PSTATES) + ret := nvmlDeviceGetSupportedPerformanceStates(device, &pstates[0], MAX_GPU_PERF_PSTATES*uint32(unsafe.Sizeof(Pstates(0)))) for i := 0; i < MAX_GPU_PERF_PSTATES; i++ { if pstates[i] == PSTATE_UNKNOWN { return pstates[0:i], ret @@ -3095,6 +3188,16 @@ func (device nvmlDevice) GetGpuFabricInfoV() GpuFabricInfoHandler { return GpuFabricInfoHandler{device} } +func (l *library) DeviceGetGpuFabricInfo_v4(device Device) (GpuFabricInfo_v4, Return) { + return device.GetGpuFabricInfo_v4() +} + +func (device nvmlDevice) GetGpuFabricInfo_v4() (GpuFabricInfo_v4, Return) { + var info GpuFabricInfo_v4 + ret := nvmlDeviceGetGpuFabricInfo_v4(device, &info) + return info, ret +} + // nvml.DeviceGetProcessesUtilizationInfo() func (l *library) DeviceGetProcessesUtilizationInfo(device Device) (ProcessesUtilizationInfo, Return) { return device.GetProcessesUtilizationInfo() @@ -3124,6 +3227,7 @@ func (l *library) DeviceSetVgpuHeterogeneousMode(device Device, heterogeneousMod } func (device nvmlDevice) SetVgpuHeterogeneousMode(heterogeneousMode VgpuHeterogeneousMode) Return { + heterogeneousMode.Version = STRUCT_VERSION(heterogeneousMode, 1) ret := nvmlDeviceSetVgpuHeterogeneousMode(device, &heterogeneousMode) return ret } @@ -3223,6 +3327,7 @@ func (l *library) DeviceSetClockOffsets(device Device, info ClockOffset) Return } func (device nvmlDevice) SetClockOffsets(info ClockOffset) Return { + info.Version = STRUCT_VERSION(info, 1) return nvmlDeviceSetClockOffsets(device, &info) } @@ -3396,6 +3501,14 @@ func (device nvmlDevice) SetNvlinkBwMode(setBwMode *NvlinkSetBwMode) Return { return nvmlDeviceSetNvlinkBwMode(device, setBwMode) } +func (l *library) DeviceSetNvlinkBwModeAsync_v1(device Device, setBwMode *NvlinkSetBwModeAsync_v1) Return { + return device.SetNvlinkBwModeAsync_v1(setBwMode) +} + +func (device nvmlDevice) SetNvlinkBwModeAsync_v1(setBwMode *NvlinkSetBwModeAsync_v1) Return { + return nvmlDeviceSetNvlinkBwModeAsync_v1(device, setBwMode) +} + func (l *library) DeviceGetNvLinkInfo(device Device) NvLinkInfoHandler { return device.GetNvLinkInfo() } @@ -3424,6 +3537,28 @@ func (handler NvLinkInfoHandler) V2() (NvLinkInfo_v2, Return) { return info, ret } +// nvml.DeviceGetNvLinkTelemetrySamples_v1() +func (l *library) DeviceGetNvLinkTelemetrySamples_v1(device Device, samples NvlinkTelemetrySamples_v1) (NvlinkTelemetrySamples_v1, Return) { + return device.GetNvLinkTelemetrySamples_v1(samples) +} + +func (device nvmlDevice) GetNvLinkTelemetrySamples_v1(samples NvlinkTelemetrySamples_v1) (NvlinkTelemetrySamples_v1, Return) { + var pinner runtime.Pinner + defer pinner.Unpin() + + if samples.TelemetrySamples != nil && samples.TelemetryCount > 0 { + pinner.Pin(samples.TelemetrySamples) + entries := unsafe.Slice(samples.TelemetrySamples, samples.TelemetryCount) + for _, entry := range entries { + if entry.Samples != nil && entry.SampleCount > 0 { + pinner.Pin(entry.Samples) + } + } + } + ret := nvmlDeviceGetNvLinkTelemetrySamples_v1(device, &samples) + return samples, ret +} + // nvml.DeviceWorkloadPowerProfileGetProfilesInfo() func (l *library) DeviceWorkloadPowerProfileGetProfilesInfo(device Device) (WorkloadPowerProfileProfilesInfo, Return) { return device.WorkloadPowerProfileGetProfilesInfo() @@ -3501,6 +3636,49 @@ func (device nvmlDevice) GetSramUniqueUncorrectedEccErrorCounts(errorCounts *Ecc return nvmlDeviceGetSramUniqueUncorrectedEccErrorCounts(device, errorCounts) } +<<<<<<< HEAD +======= +// nvml.DeviceSetRusdSettings_v1() +func (l *library) DeviceSetRusdSettings_v1(device Device, settings RusdSettings_v1) Return { + return device.SetRusdSettings_v1(settings) +} + +func (device nvmlDevice) SetRusdSettings_v1(settings RusdSettings_v1) Return { + settings.Version = STRUCT_VERSION(settings, 1) + return nvmlDeviceSetRusdSettings_v1(device, &settings) +} + +// nvml.DeviceGetBankRemapperStatus_v1() +func (l *library) DeviceGetBankRemapperStatus_v1(device Device) (EccBankRemapperStatus_v1, Return) { + return device.GetBankRemapperStatus_v1() +} + +func (device nvmlDevice) GetBankRemapperStatus_v1() (EccBankRemapperStatus_v1, Return) { + var status EccBankRemapperStatus_v1 + ret := nvmlDeviceGetBankRemapperStatus_v1(device, &status) + return status, ret +} + +func (l *library) DeviceGetRemappedRows_v2(device Device) (RemappedRowsInfo_v2, Return) { + return device.GetRemappedRows_v2() +} + +func (device nvmlDevice) GetRemappedRows_v2() (RemappedRowsInfo_v2, Return) { + var rowsInfo RemappedRowsInfo_v2 + ret := nvmlDeviceGetRemappedRows_v2(device, &rowsInfo) + return rowsInfo, ret +} + +func (l *library) DeviceGetVgpuSchedulerLog_v2(device Device, logInfo VgpuSchedulerLogInfo_v2) (VgpuSchedulerLogInfo_v2, Return) { + return device.GetVgpuSchedulerLog_v2(logInfo) +} + +func (device nvmlDevice) GetVgpuSchedulerLog_v2(logInfo VgpuSchedulerLogInfo_v2) (VgpuSchedulerLogInfo_v2, Return) { + ret := nvmlDeviceGetVgpuSchedulerLog_v2(device, &logInfo) + return logInfo, ret +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // nvml.GpuInstanceGetCreatableVgpus() func (l *library) GpuInstanceGetCreatableVgpus(gpuInstance GpuInstance) (VgpuTypeIdInfo, Return) { return gpuInstance.GetCreatableVgpus() diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go index b772d57f..7405af78 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/event_set.go @@ -14,6 +14,8 @@ package nvml +import "runtime" + // EventData includes an interface type for Device instead of nvmlDevice type EventData struct { Device Device @@ -52,6 +54,72 @@ func (set nvmlEventSet) Wait(timeoutms uint32) (EventData, Return) { return data.convert(), ret } +func (l *library) EventSetRegisterGpuOperationalEvents_v1(set EventSet, config *GpuOperationalEventConfig_v1) Return { + return set.RegisterGpuOperationalEvents_v1(config) +} + +func (set nvmlEventSet) RegisterGpuOperationalEvents_v1(config *GpuOperationalEventConfig_v1) Return { + return nvmlEventSetRegisterGpuOperationalEvents_v1(set, config) +} + +func (l *library) EventSetWait_v3(set EventSet, timeoutms uint32) (EventSetWaitData_v3, Return) { + return set.Wait_v3(timeoutms) +} + +func (set nvmlEventSet) Wait_v3(timeoutms uint32) (EventSetWaitData_v3, Return) { + var data EventSetWaitData_v3 + data.TimeoutMs = timeoutms + ret := nvmlEventSetWait_v3(set, &data) + return data, ret +} + +func (l *library) EventSetGetContextCount_v1(set EventSet) (GetContextCount_v1, Return) { + return set.GetContextCount_v1() +} + +func (set nvmlEventSet) GetContextCount_v1() (GetContextCount_v1, Return) { + var count GetContextCount_v1 + ret := nvmlEventSetGetContextCount_v1(set, &count) + return count, ret +} + +func (l *library) EventSetGetContextInfo_v1(set EventSet, index uint32) (GetContextInfo_v1, Return) { + return set.GetContextInfo_v1(index) +} + +func (set nvmlEventSet) GetContextInfo_v1(index uint32) (GetContextInfo_v1, Return) { + var info GetContextInfo_v1 + info.Index = index + ret := nvmlEventSetGetContextInfo_v1(set, &info) + return info, ret +} + +func (l *library) EventSetGetContextData_v1(set EventSet, data GetContextData_v1) (GetContextData_v1, Return) { + return set.GetContextData_v1(data) +} + +func (set nvmlEventSet) GetContextData_v1(data GetContextData_v1) (GetContextData_v1, Return) { + var pinner runtime.Pinner + defer pinner.Unpin() + + if data.Data != nil && data.DataSize > 0 { + pinner.Pin(data.Data) + } + ret := nvmlEventSetGetContextData_v1(set, &data) + return data, ret +} + +func (l *library) EventSetGetGpuOperationalEventContextLegacyXid_v1(set EventSet, index uint32) (uint32, Return) { + return set.GetGpuOperationalEventContextLegacyXid_v1(index) +} + +func (set nvmlEventSet) GetGpuOperationalEventContextLegacyXid_v1(index uint32) (uint32, Return) { + var params GetGpuOperationalEventContextLegacyXid_v1 + params.Index = index + ret := nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1(set, ¶ms) + return params.XidCode, ret +} + // nvml.EventSetFree() func (l *library) EventSetFree(set EventSet) Return { return set.Free() diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go index 563bc593..ef72151e 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/gpm.go @@ -20,7 +20,11 @@ type GpmMetricsGetType struct { NumMetrics uint32 Sample1 GpmSample Sample2 GpmSample +<<<<<<< HEAD Metrics [210]GpmMetric +======= + Metrics [477]GpmMetric +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) } func (g *GpmMetricsGetType) convert() *nvmlGpmMetricsGetType { diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/memory_limits.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/memory_limits.go new file mode 100644 index 00000000..515335f4 --- /dev/null +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/memory_limits.go @@ -0,0 +1,23 @@ +// Copyright (c) NVIDIA CORPORATION. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package nvml + +// MemoryLimits_v1 is the go-friendly wrapper struct of GetMemoryLimits_v1 +type MemoryLimits_v1 struct { + NameSpace string + SoftLimit uint64 + HardLimit uint64 + CurrentUsed uint64 +} diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/device.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/device.go index 26397284..46919d91 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/device.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/device.go @@ -60,6 +60,9 @@ var _ nvml.Device = &Device{} // GetAdaptiveClockInfoStatusFunc: func() (uint32, nvml.Return) { // panic("mock out the GetAdaptiveClockInfoStatus method") // }, +// GetAdaptiveTgpModeInfo_v1Func: func() (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) { +// panic("mock out the GetAdaptiveTgpModeInfo_v1 method") +// }, // GetAddressingModeFunc: func() (nvml.DeviceAddressingMode, nvml.Return) { // panic("mock out the GetAddressingMode method") // }, @@ -78,6 +81,15 @@ var _ nvml.Device = &Device{} // GetBAR1MemoryInfoFunc: func() (nvml.BAR1Memory, nvml.Return) { // panic("mock out the GetBAR1MemoryInfo method") // }, +<<<<<<< HEAD +======= +// GetBBXTimeData_v1Func: func() (nvml.BBXTimeData_v1, nvml.Return) { +// panic("mock out the GetBBXTimeData_v1 method") +// }, +// GetBankRemapperStatus_v1Func: func() (nvml.EccBankRemapperStatus_v1, nvml.Return) { +// panic("mock out the GetBankRemapperStatus_v1 method") +// }, +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GetBoardIdFunc: func() (uint32, nvml.Return) { // panic("mock out the GetBoardId method") // }, @@ -246,6 +258,9 @@ var _ nvml.Device = &Device{} // GetGpuFabricInfoVFunc: func() nvml.GpuFabricInfoHandler { // panic("mock out the GetGpuFabricInfoV method") // }, +// GetGpuFabricInfo_v4Func: func() (nvml.GpuFabricInfo_v4, nvml.Return) { +// panic("mock out the GetGpuFabricInfo_v4 method") +// }, // GetGpuInstanceByIdFunc: func(n int) (nvml.GpuInstance, nvml.Return) { // panic("mock out the GetGpuInstanceById method") // }, @@ -354,6 +369,9 @@ var _ nvml.Device = &Device{} // GetMemoryInfo_v2Func: func() (nvml.Memory_v2, nvml.Return) { // panic("mock out the GetMemoryInfo_v2 method") // }, +// GetMemoryLimits_v1Func: func(s string) (nvml.MemoryLimits_v1, nvml.Return) { +// panic("mock out the GetMemoryLimits_v1 method") +// }, // GetMigDeviceHandleByIndexFunc: func(n int) (nvml.Device, nvml.Return) { // panic("mock out the GetMigDeviceHandleByIndex method") // }, @@ -405,6 +423,9 @@ var _ nvml.Device = &Device{} // GetNvLinkStateFunc: func(n int) (nvml.EnableState, nvml.Return) { // panic("mock out the GetNvLinkState method") // }, +// GetNvLinkTelemetrySamples_v1Func: func(nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) { +// panic("mock out the GetNvLinkTelemetrySamples_v1 method") +// }, // GetNvLinkUtilizationControlFunc: func(n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) { // panic("mock out the GetNvLinkUtilizationControl method") // }, @@ -648,6 +669,9 @@ var _ nvml.Device = &Device{} // OnSameBoardFunc: func(device nvml.Device) (int, nvml.Return) { // panic("mock out the OnSameBoard method") // }, +// PerfMetricsGetSamples_v1Func: func() (nvml.PerfMetricsSamples_v1, nvml.Return) { +// panic("mock out the PerfMetricsGetSamples_v1 method") +// }, // PowerSmoothingActivatePresetProfileFunc: func(powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return { // panic("mock out the PowerSmoothingActivatePresetProfile method") // }, @@ -684,6 +708,9 @@ var _ nvml.Device = &Device{} // SetAccountingModeFunc: func(enableState nvml.EnableState) nvml.Return { // panic("mock out the SetAccountingMode method") // }, +// SetAdaptiveTgpMode_v1Func: func(enableState nvml.EnableState) nvml.Return { +// panic("mock out the SetAdaptiveTgpMode_v1 method") +// }, // SetApplicationsClocksFunc: func(v1 uint32, v2 uint32) nvml.Return { // panic("mock out the SetApplicationsClocks method") // }, @@ -735,6 +762,9 @@ var _ nvml.Device = &Device{} // SetMemClkVfOffsetFunc: func(n int) nvml.Return { // panic("mock out the SetMemClkVfOffset method") // }, +// SetMemoryLimits_v1Func: func(s string, v1 uint64, v2 uint64) nvml.Return { +// panic("mock out the SetMemoryLimits_v1 method") +// }, // SetMemoryLockedClocksFunc: func(v1 uint32, v2 uint32) nvml.Return { // panic("mock out the SetMemoryLockedClocks method") // }, @@ -750,6 +780,9 @@ var _ nvml.Device = &Device{} // SetNvlinkBwModeFunc: func(nvlinkSetBwMode *nvml.NvlinkSetBwMode) nvml.Return { // panic("mock out the SetNvlinkBwMode method") // }, +// SetNvlinkBwModeAsync_v1Func: func(nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return { +// panic("mock out the SetNvlinkBwModeAsync_v1 method") +// }, // SetPersistenceModeFunc: func(enableState nvml.EnableState) nvml.Return { // panic("mock out the SetPersistenceMode method") // }, @@ -841,6 +874,9 @@ type Device struct { // GetAdaptiveClockInfoStatusFunc mocks the GetAdaptiveClockInfoStatus method. GetAdaptiveClockInfoStatusFunc func() (uint32, nvml.Return) + // GetAdaptiveTgpModeInfo_v1Func mocks the GetAdaptiveTgpModeInfo_v1 method. + GetAdaptiveTgpModeInfo_v1Func func() (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) + // GetAddressingModeFunc mocks the GetAddressingMode method. GetAddressingModeFunc func() (nvml.DeviceAddressingMode, nvml.Return) @@ -859,6 +895,15 @@ type Device struct { // GetBAR1MemoryInfoFunc mocks the GetBAR1MemoryInfo method. GetBAR1MemoryInfoFunc func() (nvml.BAR1Memory, nvml.Return) +<<<<<<< HEAD +======= + // GetBBXTimeData_v1Func mocks the GetBBXTimeData_v1 method. + GetBBXTimeData_v1Func func() (nvml.BBXTimeData_v1, nvml.Return) + + // GetBankRemapperStatus_v1Func mocks the GetBankRemapperStatus_v1 method. + GetBankRemapperStatus_v1Func func() (nvml.EccBankRemapperStatus_v1, nvml.Return) + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GetBoardIdFunc mocks the GetBoardId method. GetBoardIdFunc func() (uint32, nvml.Return) @@ -1027,6 +1072,9 @@ type Device struct { // GetGpuFabricInfoVFunc mocks the GetGpuFabricInfoV method. GetGpuFabricInfoVFunc func() nvml.GpuFabricInfoHandler + // GetGpuFabricInfo_v4Func mocks the GetGpuFabricInfo_v4 method. + GetGpuFabricInfo_v4Func func() (nvml.GpuFabricInfo_v4, nvml.Return) + // GetGpuInstanceByIdFunc mocks the GetGpuInstanceById method. GetGpuInstanceByIdFunc func(n int) (nvml.GpuInstance, nvml.Return) @@ -1135,6 +1183,9 @@ type Device struct { // GetMemoryInfo_v2Func mocks the GetMemoryInfo_v2 method. GetMemoryInfo_v2Func func() (nvml.Memory_v2, nvml.Return) + // GetMemoryLimits_v1Func mocks the GetMemoryLimits_v1 method. + GetMemoryLimits_v1Func func(s string) (nvml.MemoryLimits_v1, nvml.Return) + // GetMigDeviceHandleByIndexFunc mocks the GetMigDeviceHandleByIndex method. GetMigDeviceHandleByIndexFunc func(n int) (nvml.Device, nvml.Return) @@ -1186,6 +1237,9 @@ type Device struct { // GetNvLinkStateFunc mocks the GetNvLinkState method. GetNvLinkStateFunc func(n int) (nvml.EnableState, nvml.Return) + // GetNvLinkTelemetrySamples_v1Func mocks the GetNvLinkTelemetrySamples_v1 method. + GetNvLinkTelemetrySamples_v1Func func(nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) + // GetNvLinkUtilizationControlFunc mocks the GetNvLinkUtilizationControl method. GetNvLinkUtilizationControlFunc func(n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) @@ -1429,6 +1483,9 @@ type Device struct { // OnSameBoardFunc mocks the OnSameBoard method. OnSameBoardFunc func(device nvml.Device) (int, nvml.Return) + // PerfMetricsGetSamples_v1Func mocks the PerfMetricsGetSamples_v1 method. + PerfMetricsGetSamples_v1Func func() (nvml.PerfMetricsSamples_v1, nvml.Return) + // PowerSmoothingActivatePresetProfileFunc mocks the PowerSmoothingActivatePresetProfile method. PowerSmoothingActivatePresetProfileFunc func(powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return @@ -1465,6 +1522,9 @@ type Device struct { // SetAccountingModeFunc mocks the SetAccountingMode method. SetAccountingModeFunc func(enableState nvml.EnableState) nvml.Return + // SetAdaptiveTgpMode_v1Func mocks the SetAdaptiveTgpMode_v1 method. + SetAdaptiveTgpMode_v1Func func(enableState nvml.EnableState) nvml.Return + // SetApplicationsClocksFunc mocks the SetApplicationsClocks method. SetApplicationsClocksFunc func(v1 uint32, v2 uint32) nvml.Return @@ -1516,6 +1576,9 @@ type Device struct { // SetMemClkVfOffsetFunc mocks the SetMemClkVfOffset method. SetMemClkVfOffsetFunc func(n int) nvml.Return + // SetMemoryLimits_v1Func mocks the SetMemoryLimits_v1 method. + SetMemoryLimits_v1Func func(s string, v1 uint64, v2 uint64) nvml.Return + // SetMemoryLockedClocksFunc mocks the SetMemoryLockedClocks method. SetMemoryLockedClocksFunc func(v1 uint32, v2 uint32) nvml.Return @@ -1531,6 +1594,9 @@ type Device struct { // SetNvlinkBwModeFunc mocks the SetNvlinkBwMode method. SetNvlinkBwModeFunc func(nvlinkSetBwMode *nvml.NvlinkSetBwMode) nvml.Return + // SetNvlinkBwModeAsync_v1Func mocks the SetNvlinkBwModeAsync_v1 method. + SetNvlinkBwModeAsync_v1Func func(nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return + // SetPersistenceModeFunc mocks the SetPersistenceMode method. SetPersistenceModeFunc func(enableState nvml.EnableState) nvml.Return @@ -1637,6 +1703,9 @@ type Device struct { // GetAdaptiveClockInfoStatus holds details about calls to the GetAdaptiveClockInfoStatus method. GetAdaptiveClockInfoStatus []struct { } + // GetAdaptiveTgpModeInfo_v1 holds details about calls to the GetAdaptiveTgpModeInfo_v1 method. + GetAdaptiveTgpModeInfo_v1 []struct { + } // GetAddressingMode holds details about calls to the GetAddressingMode method. GetAddressingMode []struct { } @@ -1657,6 +1726,15 @@ type Device struct { // GetBAR1MemoryInfo holds details about calls to the GetBAR1MemoryInfo method. GetBAR1MemoryInfo []struct { } +<<<<<<< HEAD +======= + // GetBBXTimeData_v1 holds details about calls to the GetBBXTimeData_v1 method. + GetBBXTimeData_v1 []struct { + } + // GetBankRemapperStatus_v1 holds details about calls to the GetBankRemapperStatus_v1 method. + GetBankRemapperStatus_v1 []struct { + } +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GetBoardId holds details about calls to the GetBoardId method. GetBoardId []struct { } @@ -1853,6 +1931,9 @@ type Device struct { // GetGpuFabricInfoV holds details about calls to the GetGpuFabricInfoV method. GetGpuFabricInfoV []struct { } + // GetGpuFabricInfo_v4 holds details about calls to the GetGpuFabricInfo_v4 method. + GetGpuFabricInfo_v4 []struct { + } // GetGpuInstanceById holds details about calls to the GetGpuInstanceById method. GetGpuInstanceById []struct { // N is the n argument value. @@ -1991,6 +2072,11 @@ type Device struct { // GetMemoryInfo_v2 holds details about calls to the GetMemoryInfo_v2 method. GetMemoryInfo_v2 []struct { } + // GetMemoryLimits_v1 holds details about calls to the GetMemoryLimits_v1 method. + GetMemoryLimits_v1 []struct { + // S is the s argument value. + S string + } // GetMigDeviceHandleByIndex holds details about calls to the GetMigDeviceHandleByIndex method. GetMigDeviceHandleByIndex []struct { // N is the n argument value. @@ -2062,6 +2148,11 @@ type Device struct { // N is the n argument value. N int } + // GetNvLinkTelemetrySamples_v1 holds details about calls to the GetNvLinkTelemetrySamples_v1 method. + GetNvLinkTelemetrySamples_v1 []struct { + // NvlinkTelemetrySamples_v1 is the nvlinkTelemetrySamples_v1 argument value. + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + } // GetNvLinkUtilizationControl holds details about calls to the GetNvLinkUtilizationControl method. GetNvLinkUtilizationControl []struct { // N1 is the n1 argument value. @@ -2373,6 +2464,9 @@ type Device struct { // Device is the device argument value. Device nvml.Device } + // PerfMetricsGetSamples_v1 holds details about calls to the PerfMetricsGetSamples_v1 method. + PerfMetricsGetSamples_v1 []struct { + } // PowerSmoothingActivatePresetProfile holds details about calls to the PowerSmoothingActivatePresetProfile method. PowerSmoothingActivatePresetProfile []struct { // PowerSmoothingProfile is the powerSmoothingProfile argument value. @@ -2433,6 +2527,11 @@ type Device struct { // EnableState is the enableState argument value. EnableState nvml.EnableState } + // SetAdaptiveTgpMode_v1 holds details about calls to the SetAdaptiveTgpMode_v1 method. + SetAdaptiveTgpMode_v1 []struct { + // EnableState is the enableState argument value. + EnableState nvml.EnableState + } // SetApplicationsClocks holds details about calls to the SetApplicationsClocks method. SetApplicationsClocks []struct { // V1 is the v1 argument value. @@ -2528,6 +2627,15 @@ type Device struct { // N is the n argument value. N int } + // SetMemoryLimits_v1 holds details about calls to the SetMemoryLimits_v1 method. + SetMemoryLimits_v1 []struct { + // S is the s argument value. + S string + // V1 is the v1 argument value. + V1 uint64 + // V2 is the v2 argument value. + V2 uint64 + } // SetMemoryLockedClocks holds details about calls to the SetMemoryLockedClocks method. SetMemoryLockedClocks []struct { // V1 is the v1 argument value. @@ -2561,6 +2669,11 @@ type Device struct { // NvlinkSetBwMode is the nvlinkSetBwMode argument value. NvlinkSetBwMode *nvml.NvlinkSetBwMode } + // SetNvlinkBwModeAsync_v1 holds details about calls to the SetNvlinkBwModeAsync_v1 method. + SetNvlinkBwModeAsync_v1 []struct { + // NvlinkSetBwModeAsync_v1 is the nvlinkSetBwModeAsync_v1 argument value. + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + } // SetPersistenceMode holds details about calls to the SetPersistenceMode method. SetPersistenceMode []struct { // EnableState is the enableState argument value. @@ -2644,12 +2757,18 @@ type Device struct { lockGetAccountingStats sync.RWMutex lockGetActiveVgpus sync.RWMutex lockGetAdaptiveClockInfoStatus sync.RWMutex + lockGetAdaptiveTgpModeInfo_v1 sync.RWMutex lockGetAddressingMode sync.RWMutex lockGetApplicationsClock sync.RWMutex lockGetArchitecture sync.RWMutex lockGetAttributes sync.RWMutex lockGetAutoBoostedClocksEnabled sync.RWMutex lockGetBAR1MemoryInfo sync.RWMutex +<<<<<<< HEAD +======= + lockGetBBXTimeData_v1 sync.RWMutex + lockGetBankRemapperStatus_v1 sync.RWMutex +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) lockGetBoardId sync.RWMutex lockGetBoardPartNumber sync.RWMutex lockGetBrand sync.RWMutex @@ -2706,6 +2825,7 @@ type Device struct { lockGetGpcClkVfOffset sync.RWMutex lockGetGpuFabricInfo sync.RWMutex lockGetGpuFabricInfoV sync.RWMutex + lockGetGpuFabricInfo_v4 sync.RWMutex lockGetGpuInstanceById sync.RWMutex lockGetGpuInstanceId sync.RWMutex lockGetGpuInstancePossiblePlacements sync.RWMutex @@ -2742,6 +2862,7 @@ type Device struct { lockGetMemoryErrorCounter sync.RWMutex lockGetMemoryInfo sync.RWMutex lockGetMemoryInfo_v2 sync.RWMutex + lockGetMemoryLimits_v1 sync.RWMutex lockGetMigDeviceHandleByIndex sync.RWMutex lockGetMigMode sync.RWMutex lockGetMinMaxClockOfPState sync.RWMutex @@ -2759,6 +2880,7 @@ type Device struct { lockGetNvLinkRemoteDeviceType sync.RWMutex lockGetNvLinkRemotePciInfo sync.RWMutex lockGetNvLinkState sync.RWMutex + lockGetNvLinkTelemetrySamples_v1 sync.RWMutex lockGetNvLinkUtilizationControl sync.RWMutex lockGetNvLinkUtilizationCounter sync.RWMutex lockGetNvLinkVersion sync.RWMutex @@ -2840,6 +2962,7 @@ type Device struct { lockGpmSetStreamingEnabled sync.RWMutex lockIsMigDeviceHandle sync.RWMutex lockOnSameBoard sync.RWMutex + lockPerfMetricsGetSamples_v1 sync.RWMutex lockPowerSmoothingActivatePresetProfile sync.RWMutex lockPowerSmoothingSetState sync.RWMutex lockPowerSmoothingUpdatePresetProfileParam sync.RWMutex @@ -2852,6 +2975,7 @@ type Device struct { lockResetNvLinkUtilizationCounter sync.RWMutex lockSetAPIRestriction sync.RWMutex lockSetAccountingMode sync.RWMutex + lockSetAdaptiveTgpMode_v1 sync.RWMutex lockSetApplicationsClocks sync.RWMutex lockSetAutoBoostedClocksEnabled sync.RWMutex lockSetClockOffsets sync.RWMutex @@ -2869,11 +2993,13 @@ type Device struct { lockSetGpuLockedClocks sync.RWMutex lockSetGpuOperationMode sync.RWMutex lockSetMemClkVfOffset sync.RWMutex + lockSetMemoryLimits_v1 sync.RWMutex lockSetMemoryLockedClocks sync.RWMutex lockSetMigMode sync.RWMutex lockSetNvLinkDeviceLowPowerThreshold sync.RWMutex lockSetNvLinkUtilizationControl sync.RWMutex lockSetNvlinkBwMode sync.RWMutex + lockSetNvlinkBwModeAsync_v1 sync.RWMutex lockSetPersistenceMode sync.RWMutex lockSetPowerManagementLimit sync.RWMutex lockSetPowerManagementLimit_v2 sync.RWMutex @@ -3315,6 +3441,33 @@ func (mock *Device) GetAdaptiveClockInfoStatusCalls() []struct { return calls } +// GetAdaptiveTgpModeInfo_v1 calls GetAdaptiveTgpModeInfo_v1Func. +func (mock *Device) GetAdaptiveTgpModeInfo_v1() (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) { + if mock.GetAdaptiveTgpModeInfo_v1Func == nil { + panic("Device.GetAdaptiveTgpModeInfo_v1Func: method is nil but Device.GetAdaptiveTgpModeInfo_v1 was just called") + } + callInfo := struct { + }{} + mock.lockGetAdaptiveTgpModeInfo_v1.Lock() + mock.calls.GetAdaptiveTgpModeInfo_v1 = append(mock.calls.GetAdaptiveTgpModeInfo_v1, callInfo) + mock.lockGetAdaptiveTgpModeInfo_v1.Unlock() + return mock.GetAdaptiveTgpModeInfo_v1Func() +} + +// GetAdaptiveTgpModeInfo_v1Calls gets all the calls that were made to GetAdaptiveTgpModeInfo_v1. +// Check the length with: +// +// len(mockedDevice.GetAdaptiveTgpModeInfo_v1Calls()) +func (mock *Device) GetAdaptiveTgpModeInfo_v1Calls() []struct { +} { + var calls []struct { + } + mock.lockGetAdaptiveTgpModeInfo_v1.RLock() + calls = mock.calls.GetAdaptiveTgpModeInfo_v1 + mock.lockGetAdaptiveTgpModeInfo_v1.RUnlock() + return calls +} + // GetAddressingMode calls GetAddressingModeFunc. func (mock *Device) GetAddressingMode() (nvml.DeviceAddressingMode, nvml.Return) { if mock.GetAddressingModeFunc == nil { @@ -3482,6 +3635,63 @@ func (mock *Device) GetBAR1MemoryInfoCalls() []struct { return calls } +<<<<<<< HEAD +======= +// GetBBXTimeData_v1 calls GetBBXTimeData_v1Func. +func (mock *Device) GetBBXTimeData_v1() (nvml.BBXTimeData_v1, nvml.Return) { + if mock.GetBBXTimeData_v1Func == nil { + panic("Device.GetBBXTimeData_v1Func: method is nil but Device.GetBBXTimeData_v1 was just called") + } + callInfo := struct { + }{} + mock.lockGetBBXTimeData_v1.Lock() + mock.calls.GetBBXTimeData_v1 = append(mock.calls.GetBBXTimeData_v1, callInfo) + mock.lockGetBBXTimeData_v1.Unlock() + return mock.GetBBXTimeData_v1Func() +} + +// GetBBXTimeData_v1Calls gets all the calls that were made to GetBBXTimeData_v1. +// Check the length with: +// +// len(mockedDevice.GetBBXTimeData_v1Calls()) +func (mock *Device) GetBBXTimeData_v1Calls() []struct { +} { + var calls []struct { + } + mock.lockGetBBXTimeData_v1.RLock() + calls = mock.calls.GetBBXTimeData_v1 + mock.lockGetBBXTimeData_v1.RUnlock() + return calls +} + +// GetBankRemapperStatus_v1 calls GetBankRemapperStatus_v1Func. +func (mock *Device) GetBankRemapperStatus_v1() (nvml.EccBankRemapperStatus_v1, nvml.Return) { + if mock.GetBankRemapperStatus_v1Func == nil { + panic("Device.GetBankRemapperStatus_v1Func: method is nil but Device.GetBankRemapperStatus_v1 was just called") + } + callInfo := struct { + }{} + mock.lockGetBankRemapperStatus_v1.Lock() + mock.calls.GetBankRemapperStatus_v1 = append(mock.calls.GetBankRemapperStatus_v1, callInfo) + mock.lockGetBankRemapperStatus_v1.Unlock() + return mock.GetBankRemapperStatus_v1Func() +} + +// GetBankRemapperStatus_v1Calls gets all the calls that were made to GetBankRemapperStatus_v1. +// Check the length with: +// +// len(mockedDevice.GetBankRemapperStatus_v1Calls()) +func (mock *Device) GetBankRemapperStatus_v1Calls() []struct { +} { + var calls []struct { + } + mock.lockGetBankRemapperStatus_v1.RLock() + calls = mock.calls.GetBankRemapperStatus_v1 + mock.lockGetBankRemapperStatus_v1.RUnlock() + return calls +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // GetBoardId calls GetBoardIdFunc. func (mock *Device) GetBoardId() (uint32, nvml.Return) { if mock.GetBoardIdFunc == nil { @@ -5061,6 +5271,33 @@ func (mock *Device) GetGpuFabricInfoVCalls() []struct { return calls } +// GetGpuFabricInfo_v4 calls GetGpuFabricInfo_v4Func. +func (mock *Device) GetGpuFabricInfo_v4() (nvml.GpuFabricInfo_v4, nvml.Return) { + if mock.GetGpuFabricInfo_v4Func == nil { + panic("Device.GetGpuFabricInfo_v4Func: method is nil but Device.GetGpuFabricInfo_v4 was just called") + } + callInfo := struct { + }{} + mock.lockGetGpuFabricInfo_v4.Lock() + mock.calls.GetGpuFabricInfo_v4 = append(mock.calls.GetGpuFabricInfo_v4, callInfo) + mock.lockGetGpuFabricInfo_v4.Unlock() + return mock.GetGpuFabricInfo_v4Func() +} + +// GetGpuFabricInfo_v4Calls gets all the calls that were made to GetGpuFabricInfo_v4. +// Check the length with: +// +// len(mockedDevice.GetGpuFabricInfo_v4Calls()) +func (mock *Device) GetGpuFabricInfo_v4Calls() []struct { +} { + var calls []struct { + } + mock.lockGetGpuFabricInfo_v4.RLock() + calls = mock.calls.GetGpuFabricInfo_v4 + mock.lockGetGpuFabricInfo_v4.RUnlock() + return calls +} + // GetGpuInstanceById calls GetGpuInstanceByIdFunc. func (mock *Device) GetGpuInstanceById(n int) (nvml.GpuInstance, nvml.Return) { if mock.GetGpuInstanceByIdFunc == nil { @@ -6105,6 +6342,38 @@ func (mock *Device) GetMemoryInfo_v2Calls() []struct { return calls } +// GetMemoryLimits_v1 calls GetMemoryLimits_v1Func. +func (mock *Device) GetMemoryLimits_v1(s string) (nvml.MemoryLimits_v1, nvml.Return) { + if mock.GetMemoryLimits_v1Func == nil { + panic("Device.GetMemoryLimits_v1Func: method is nil but Device.GetMemoryLimits_v1 was just called") + } + callInfo := struct { + S string + }{ + S: s, + } + mock.lockGetMemoryLimits_v1.Lock() + mock.calls.GetMemoryLimits_v1 = append(mock.calls.GetMemoryLimits_v1, callInfo) + mock.lockGetMemoryLimits_v1.Unlock() + return mock.GetMemoryLimits_v1Func(s) +} + +// GetMemoryLimits_v1Calls gets all the calls that were made to GetMemoryLimits_v1. +// Check the length with: +// +// len(mockedDevice.GetMemoryLimits_v1Calls()) +func (mock *Device) GetMemoryLimits_v1Calls() []struct { + S string +} { + var calls []struct { + S string + } + mock.lockGetMemoryLimits_v1.RLock() + calls = mock.calls.GetMemoryLimits_v1 + mock.lockGetMemoryLimits_v1.RUnlock() + return calls +} + // GetMigDeviceHandleByIndex calls GetMigDeviceHandleByIndexFunc. func (mock *Device) GetMigDeviceHandleByIndex(n int) (nvml.Device, nvml.Return) { if mock.GetMigDeviceHandleByIndexFunc == nil { @@ -6611,6 +6880,38 @@ func (mock *Device) GetNvLinkStateCalls() []struct { return calls } +// GetNvLinkTelemetrySamples_v1 calls GetNvLinkTelemetrySamples_v1Func. +func (mock *Device) GetNvLinkTelemetrySamples_v1(nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) { + if mock.GetNvLinkTelemetrySamples_v1Func == nil { + panic("Device.GetNvLinkTelemetrySamples_v1Func: method is nil but Device.GetNvLinkTelemetrySamples_v1 was just called") + } + callInfo := struct { + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + }{ + NvlinkTelemetrySamples_v1: nvlinkTelemetrySamples_v1, + } + mock.lockGetNvLinkTelemetrySamples_v1.Lock() + mock.calls.GetNvLinkTelemetrySamples_v1 = append(mock.calls.GetNvLinkTelemetrySamples_v1, callInfo) + mock.lockGetNvLinkTelemetrySamples_v1.Unlock() + return mock.GetNvLinkTelemetrySamples_v1Func(nvlinkTelemetrySamples_v1) +} + +// GetNvLinkTelemetrySamples_v1Calls gets all the calls that were made to GetNvLinkTelemetrySamples_v1. +// Check the length with: +// +// len(mockedDevice.GetNvLinkTelemetrySamples_v1Calls()) +func (mock *Device) GetNvLinkTelemetrySamples_v1Calls() []struct { + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 +} { + var calls []struct { + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + } + mock.lockGetNvLinkTelemetrySamples_v1.RLock() + calls = mock.calls.GetNvLinkTelemetrySamples_v1 + mock.lockGetNvLinkTelemetrySamples_v1.RUnlock() + return calls +} + // GetNvLinkUtilizationControl calls GetNvLinkUtilizationControlFunc. func (mock *Device) GetNvLinkUtilizationControl(n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) { if mock.GetNvLinkUtilizationControlFunc == nil { @@ -8962,6 +9263,33 @@ func (mock *Device) OnSameBoardCalls() []struct { return calls } +// PerfMetricsGetSamples_v1 calls PerfMetricsGetSamples_v1Func. +func (mock *Device) PerfMetricsGetSamples_v1() (nvml.PerfMetricsSamples_v1, nvml.Return) { + if mock.PerfMetricsGetSamples_v1Func == nil { + panic("Device.PerfMetricsGetSamples_v1Func: method is nil but Device.PerfMetricsGetSamples_v1 was just called") + } + callInfo := struct { + }{} + mock.lockPerfMetricsGetSamples_v1.Lock() + mock.calls.PerfMetricsGetSamples_v1 = append(mock.calls.PerfMetricsGetSamples_v1, callInfo) + mock.lockPerfMetricsGetSamples_v1.Unlock() + return mock.PerfMetricsGetSamples_v1Func() +} + +// PerfMetricsGetSamples_v1Calls gets all the calls that were made to PerfMetricsGetSamples_v1. +// Check the length with: +// +// len(mockedDevice.PerfMetricsGetSamples_v1Calls()) +func (mock *Device) PerfMetricsGetSamples_v1Calls() []struct { +} { + var calls []struct { + } + mock.lockPerfMetricsGetSamples_v1.RLock() + calls = mock.calls.PerfMetricsGetSamples_v1 + mock.lockPerfMetricsGetSamples_v1.RUnlock() + return calls +} + // PowerSmoothingActivatePresetProfile calls PowerSmoothingActivatePresetProfileFunc. func (mock *Device) PowerSmoothingActivatePresetProfile(powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return { if mock.PowerSmoothingActivatePresetProfileFunc == nil { @@ -9343,6 +9671,38 @@ func (mock *Device) SetAccountingModeCalls() []struct { return calls } +// SetAdaptiveTgpMode_v1 calls SetAdaptiveTgpMode_v1Func. +func (mock *Device) SetAdaptiveTgpMode_v1(enableState nvml.EnableState) nvml.Return { + if mock.SetAdaptiveTgpMode_v1Func == nil { + panic("Device.SetAdaptiveTgpMode_v1Func: method is nil but Device.SetAdaptiveTgpMode_v1 was just called") + } + callInfo := struct { + EnableState nvml.EnableState + }{ + EnableState: enableState, + } + mock.lockSetAdaptiveTgpMode_v1.Lock() + mock.calls.SetAdaptiveTgpMode_v1 = append(mock.calls.SetAdaptiveTgpMode_v1, callInfo) + mock.lockSetAdaptiveTgpMode_v1.Unlock() + return mock.SetAdaptiveTgpMode_v1Func(enableState) +} + +// SetAdaptiveTgpMode_v1Calls gets all the calls that were made to SetAdaptiveTgpMode_v1. +// Check the length with: +// +// len(mockedDevice.SetAdaptiveTgpMode_v1Calls()) +func (mock *Device) SetAdaptiveTgpMode_v1Calls() []struct { + EnableState nvml.EnableState +} { + var calls []struct { + EnableState nvml.EnableState + } + mock.lockSetAdaptiveTgpMode_v1.RLock() + calls = mock.calls.SetAdaptiveTgpMode_v1 + mock.lockSetAdaptiveTgpMode_v1.RUnlock() + return calls +} + // SetApplicationsClocks calls SetApplicationsClocksFunc. func (mock *Device) SetApplicationsClocks(v1 uint32, v2 uint32) nvml.Return { if mock.SetApplicationsClocksFunc == nil { @@ -9906,6 +10266,46 @@ func (mock *Device) SetMemClkVfOffsetCalls() []struct { return calls } +// SetMemoryLimits_v1 calls SetMemoryLimits_v1Func. +func (mock *Device) SetMemoryLimits_v1(s string, v1 uint64, v2 uint64) nvml.Return { + if mock.SetMemoryLimits_v1Func == nil { + panic("Device.SetMemoryLimits_v1Func: method is nil but Device.SetMemoryLimits_v1 was just called") + } + callInfo := struct { + S string + V1 uint64 + V2 uint64 + }{ + S: s, + V1: v1, + V2: v2, + } + mock.lockSetMemoryLimits_v1.Lock() + mock.calls.SetMemoryLimits_v1 = append(mock.calls.SetMemoryLimits_v1, callInfo) + mock.lockSetMemoryLimits_v1.Unlock() + return mock.SetMemoryLimits_v1Func(s, v1, v2) +} + +// SetMemoryLimits_v1Calls gets all the calls that were made to SetMemoryLimits_v1. +// Check the length with: +// +// len(mockedDevice.SetMemoryLimits_v1Calls()) +func (mock *Device) SetMemoryLimits_v1Calls() []struct { + S string + V1 uint64 + V2 uint64 +} { + var calls []struct { + S string + V1 uint64 + V2 uint64 + } + mock.lockSetMemoryLimits_v1.RLock() + calls = mock.calls.SetMemoryLimits_v1 + mock.lockSetMemoryLimits_v1.RUnlock() + return calls +} + // SetMemoryLockedClocks calls SetMemoryLockedClocksFunc. func (mock *Device) SetMemoryLockedClocks(v1 uint32, v2 uint32) nvml.Return { if mock.SetMemoryLockedClocksFunc == nil { @@ -10082,6 +10482,38 @@ func (mock *Device) SetNvlinkBwModeCalls() []struct { return calls } +// SetNvlinkBwModeAsync_v1 calls SetNvlinkBwModeAsync_v1Func. +func (mock *Device) SetNvlinkBwModeAsync_v1(nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return { + if mock.SetNvlinkBwModeAsync_v1Func == nil { + panic("Device.SetNvlinkBwModeAsync_v1Func: method is nil but Device.SetNvlinkBwModeAsync_v1 was just called") + } + callInfo := struct { + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + }{ + NvlinkSetBwModeAsync_v1: nvlinkSetBwModeAsync_v1, + } + mock.lockSetNvlinkBwModeAsync_v1.Lock() + mock.calls.SetNvlinkBwModeAsync_v1 = append(mock.calls.SetNvlinkBwModeAsync_v1, callInfo) + mock.lockSetNvlinkBwModeAsync_v1.Unlock() + return mock.SetNvlinkBwModeAsync_v1Func(nvlinkSetBwModeAsync_v1) +} + +// SetNvlinkBwModeAsync_v1Calls gets all the calls that were made to SetNvlinkBwModeAsync_v1. +// Check the length with: +// +// len(mockedDevice.SetNvlinkBwModeAsync_v1Calls()) +func (mock *Device) SetNvlinkBwModeAsync_v1Calls() []struct { + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 +} { + var calls []struct { + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + } + mock.lockSetNvlinkBwModeAsync_v1.RLock() + calls = mock.calls.SetNvlinkBwModeAsync_v1 + mock.lockSetNvlinkBwModeAsync_v1.RUnlock() + return calls +} + // SetPersistenceMode calls SetPersistenceModeFunc. func (mock *Device) SetPersistenceMode(enableState nvml.EnableState) nvml.Return { if mock.SetPersistenceModeFunc == nil { diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/eventset.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/eventset.go index d452c4d4..9c79bf42 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/eventset.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/eventset.go @@ -21,9 +21,27 @@ var _ nvml.EventSet = &EventSet{} // FreeFunc: func() nvml.Return { // panic("mock out the Free method") // }, +// GetContextCount_v1Func: func() (nvml.GetContextCount_v1, nvml.Return) { +// panic("mock out the GetContextCount_v1 method") +// }, +// GetContextData_v1Func: func(getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) { +// panic("mock out the GetContextData_v1 method") +// }, +// GetContextInfo_v1Func: func(v uint32) (nvml.GetContextInfo_v1, nvml.Return) { +// panic("mock out the GetContextInfo_v1 method") +// }, +// GetGpuOperationalEventContextLegacyXid_v1Func: func(v uint32) (uint32, nvml.Return) { +// panic("mock out the GetGpuOperationalEventContextLegacyXid_v1 method") +// }, +// RegisterGpuOperationalEvents_v1Func: func(gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return { +// panic("mock out the RegisterGpuOperationalEvents_v1 method") +// }, // WaitFunc: func(v uint32) (nvml.EventData, nvml.Return) { // panic("mock out the Wait method") // }, +// Wait_v3Func: func(v uint32) (nvml.EventSetWaitData_v3, nvml.Return) { +// panic("mock out the Wait_v3 method") +// }, // } // // // use mockedEventSet in code that requires nvml.EventSet @@ -34,22 +52,74 @@ type EventSet struct { // FreeFunc mocks the Free method. FreeFunc func() nvml.Return + // GetContextCount_v1Func mocks the GetContextCount_v1 method. + GetContextCount_v1Func func() (nvml.GetContextCount_v1, nvml.Return) + + // GetContextData_v1Func mocks the GetContextData_v1 method. + GetContextData_v1Func func(getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) + + // GetContextInfo_v1Func mocks the GetContextInfo_v1 method. + GetContextInfo_v1Func func(v uint32) (nvml.GetContextInfo_v1, nvml.Return) + + // GetGpuOperationalEventContextLegacyXid_v1Func mocks the GetGpuOperationalEventContextLegacyXid_v1 method. + GetGpuOperationalEventContextLegacyXid_v1Func func(v uint32) (uint32, nvml.Return) + + // RegisterGpuOperationalEvents_v1Func mocks the RegisterGpuOperationalEvents_v1 method. + RegisterGpuOperationalEvents_v1Func func(gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return + // WaitFunc mocks the Wait method. WaitFunc func(v uint32) (nvml.EventData, nvml.Return) + // Wait_v3Func mocks the Wait_v3 method. + Wait_v3Func func(v uint32) (nvml.EventSetWaitData_v3, nvml.Return) + // calls tracks calls to the methods. calls struct { // Free holds details about calls to the Free method. Free []struct { } + // GetContextCount_v1 holds details about calls to the GetContextCount_v1 method. + GetContextCount_v1 []struct { + } + // GetContextData_v1 holds details about calls to the GetContextData_v1 method. + GetContextData_v1 []struct { + // GetContextData_v1 is the getContextData_v1 argument value. + GetContextData_v1 nvml.GetContextData_v1 + } + // GetContextInfo_v1 holds details about calls to the GetContextInfo_v1 method. + GetContextInfo_v1 []struct { + // V is the v argument value. + V uint32 + } + // GetGpuOperationalEventContextLegacyXid_v1 holds details about calls to the GetGpuOperationalEventContextLegacyXid_v1 method. + GetGpuOperationalEventContextLegacyXid_v1 []struct { + // V is the v argument value. + V uint32 + } + // RegisterGpuOperationalEvents_v1 holds details about calls to the RegisterGpuOperationalEvents_v1 method. + RegisterGpuOperationalEvents_v1 []struct { + // GpuOperationalEventConfig_v1 is the gpuOperationalEventConfig_v1 argument value. + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + } // Wait holds details about calls to the Wait method. Wait []struct { // V is the v argument value. V uint32 } + // Wait_v3 holds details about calls to the Wait_v3 method. + Wait_v3 []struct { + // V is the v argument value. + V uint32 + } } - lockFree sync.RWMutex - lockWait sync.RWMutex + lockFree sync.RWMutex + lockGetContextCount_v1 sync.RWMutex + lockGetContextData_v1 sync.RWMutex + lockGetContextInfo_v1 sync.RWMutex + lockGetGpuOperationalEventContextLegacyXid_v1 sync.RWMutex + lockRegisterGpuOperationalEvents_v1 sync.RWMutex + lockWait sync.RWMutex + lockWait_v3 sync.RWMutex } // Free calls FreeFunc. @@ -79,6 +149,161 @@ func (mock *EventSet) FreeCalls() []struct { return calls } +// GetContextCount_v1 calls GetContextCount_v1Func. +func (mock *EventSet) GetContextCount_v1() (nvml.GetContextCount_v1, nvml.Return) { + if mock.GetContextCount_v1Func == nil { + panic("EventSet.GetContextCount_v1Func: method is nil but EventSet.GetContextCount_v1 was just called") + } + callInfo := struct { + }{} + mock.lockGetContextCount_v1.Lock() + mock.calls.GetContextCount_v1 = append(mock.calls.GetContextCount_v1, callInfo) + mock.lockGetContextCount_v1.Unlock() + return mock.GetContextCount_v1Func() +} + +// GetContextCount_v1Calls gets all the calls that were made to GetContextCount_v1. +// Check the length with: +// +// len(mockedEventSet.GetContextCount_v1Calls()) +func (mock *EventSet) GetContextCount_v1Calls() []struct { +} { + var calls []struct { + } + mock.lockGetContextCount_v1.RLock() + calls = mock.calls.GetContextCount_v1 + mock.lockGetContextCount_v1.RUnlock() + return calls +} + +// GetContextData_v1 calls GetContextData_v1Func. +func (mock *EventSet) GetContextData_v1(getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) { + if mock.GetContextData_v1Func == nil { + panic("EventSet.GetContextData_v1Func: method is nil but EventSet.GetContextData_v1 was just called") + } + callInfo := struct { + GetContextData_v1 nvml.GetContextData_v1 + }{ + GetContextData_v1: getContextData_v1, + } + mock.lockGetContextData_v1.Lock() + mock.calls.GetContextData_v1 = append(mock.calls.GetContextData_v1, callInfo) + mock.lockGetContextData_v1.Unlock() + return mock.GetContextData_v1Func(getContextData_v1) +} + +// GetContextData_v1Calls gets all the calls that were made to GetContextData_v1. +// Check the length with: +// +// len(mockedEventSet.GetContextData_v1Calls()) +func (mock *EventSet) GetContextData_v1Calls() []struct { + GetContextData_v1 nvml.GetContextData_v1 +} { + var calls []struct { + GetContextData_v1 nvml.GetContextData_v1 + } + mock.lockGetContextData_v1.RLock() + calls = mock.calls.GetContextData_v1 + mock.lockGetContextData_v1.RUnlock() + return calls +} + +// GetContextInfo_v1 calls GetContextInfo_v1Func. +func (mock *EventSet) GetContextInfo_v1(v uint32) (nvml.GetContextInfo_v1, nvml.Return) { + if mock.GetContextInfo_v1Func == nil { + panic("EventSet.GetContextInfo_v1Func: method is nil but EventSet.GetContextInfo_v1 was just called") + } + callInfo := struct { + V uint32 + }{ + V: v, + } + mock.lockGetContextInfo_v1.Lock() + mock.calls.GetContextInfo_v1 = append(mock.calls.GetContextInfo_v1, callInfo) + mock.lockGetContextInfo_v1.Unlock() + return mock.GetContextInfo_v1Func(v) +} + +// GetContextInfo_v1Calls gets all the calls that were made to GetContextInfo_v1. +// Check the length with: +// +// len(mockedEventSet.GetContextInfo_v1Calls()) +func (mock *EventSet) GetContextInfo_v1Calls() []struct { + V uint32 +} { + var calls []struct { + V uint32 + } + mock.lockGetContextInfo_v1.RLock() + calls = mock.calls.GetContextInfo_v1 + mock.lockGetContextInfo_v1.RUnlock() + return calls +} + +// GetGpuOperationalEventContextLegacyXid_v1 calls GetGpuOperationalEventContextLegacyXid_v1Func. +func (mock *EventSet) GetGpuOperationalEventContextLegacyXid_v1(v uint32) (uint32, nvml.Return) { + if mock.GetGpuOperationalEventContextLegacyXid_v1Func == nil { + panic("EventSet.GetGpuOperationalEventContextLegacyXid_v1Func: method is nil but EventSet.GetGpuOperationalEventContextLegacyXid_v1 was just called") + } + callInfo := struct { + V uint32 + }{ + V: v, + } + mock.lockGetGpuOperationalEventContextLegacyXid_v1.Lock() + mock.calls.GetGpuOperationalEventContextLegacyXid_v1 = append(mock.calls.GetGpuOperationalEventContextLegacyXid_v1, callInfo) + mock.lockGetGpuOperationalEventContextLegacyXid_v1.Unlock() + return mock.GetGpuOperationalEventContextLegacyXid_v1Func(v) +} + +// GetGpuOperationalEventContextLegacyXid_v1Calls gets all the calls that were made to GetGpuOperationalEventContextLegacyXid_v1. +// Check the length with: +// +// len(mockedEventSet.GetGpuOperationalEventContextLegacyXid_v1Calls()) +func (mock *EventSet) GetGpuOperationalEventContextLegacyXid_v1Calls() []struct { + V uint32 +} { + var calls []struct { + V uint32 + } + mock.lockGetGpuOperationalEventContextLegacyXid_v1.RLock() + calls = mock.calls.GetGpuOperationalEventContextLegacyXid_v1 + mock.lockGetGpuOperationalEventContextLegacyXid_v1.RUnlock() + return calls +} + +// RegisterGpuOperationalEvents_v1 calls RegisterGpuOperationalEvents_v1Func. +func (mock *EventSet) RegisterGpuOperationalEvents_v1(gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return { + if mock.RegisterGpuOperationalEvents_v1Func == nil { + panic("EventSet.RegisterGpuOperationalEvents_v1Func: method is nil but EventSet.RegisterGpuOperationalEvents_v1 was just called") + } + callInfo := struct { + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + }{ + GpuOperationalEventConfig_v1: gpuOperationalEventConfig_v1, + } + mock.lockRegisterGpuOperationalEvents_v1.Lock() + mock.calls.RegisterGpuOperationalEvents_v1 = append(mock.calls.RegisterGpuOperationalEvents_v1, callInfo) + mock.lockRegisterGpuOperationalEvents_v1.Unlock() + return mock.RegisterGpuOperationalEvents_v1Func(gpuOperationalEventConfig_v1) +} + +// RegisterGpuOperationalEvents_v1Calls gets all the calls that were made to RegisterGpuOperationalEvents_v1. +// Check the length with: +// +// len(mockedEventSet.RegisterGpuOperationalEvents_v1Calls()) +func (mock *EventSet) RegisterGpuOperationalEvents_v1Calls() []struct { + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 +} { + var calls []struct { + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + } + mock.lockRegisterGpuOperationalEvents_v1.RLock() + calls = mock.calls.RegisterGpuOperationalEvents_v1 + mock.lockRegisterGpuOperationalEvents_v1.RUnlock() + return calls +} + // Wait calls WaitFunc. func (mock *EventSet) Wait(v uint32) (nvml.EventData, nvml.Return) { if mock.WaitFunc == nil { @@ -110,3 +335,35 @@ func (mock *EventSet) WaitCalls() []struct { mock.lockWait.RUnlock() return calls } + +// Wait_v3 calls Wait_v3Func. +func (mock *EventSet) Wait_v3(v uint32) (nvml.EventSetWaitData_v3, nvml.Return) { + if mock.Wait_v3Func == nil { + panic("EventSet.Wait_v3Func: method is nil but EventSet.Wait_v3 was just called") + } + callInfo := struct { + V uint32 + }{ + V: v, + } + mock.lockWait_v3.Lock() + mock.calls.Wait_v3 = append(mock.calls.Wait_v3, callInfo) + mock.lockWait_v3.Unlock() + return mock.Wait_v3Func(v) +} + +// Wait_v3Calls gets all the calls that were made to Wait_v3. +// Check the length with: +// +// len(mockedEventSet.Wait_v3Calls()) +func (mock *EventSet) Wait_v3Calls() []struct { + V uint32 +} { + var calls []struct { + V uint32 + } + mock.lockWait_v3.RLock() + calls = mock.calls.Wait_v3 + mock.lockWait_v3.RUnlock() + return calls +} diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/interface.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/interface.go index dc25ce21..40e9cb8c 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/interface.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/interface.go @@ -69,6 +69,9 @@ var _ nvml.Interface = &Interface{} // DeviceGetAdaptiveClockInfoStatusFunc: func(device nvml.Device) (uint32, nvml.Return) { // panic("mock out the DeviceGetAdaptiveClockInfoStatus method") // }, +// DeviceGetAdaptiveTgpModeInfo_v1Func: func(device nvml.Device) (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) { +// panic("mock out the DeviceGetAdaptiveTgpModeInfo_v1 method") +// }, // DeviceGetAddressingModeFunc: func(device nvml.Device) (nvml.DeviceAddressingMode, nvml.Return) { // panic("mock out the DeviceGetAddressingMode method") // }, @@ -87,6 +90,15 @@ var _ nvml.Interface = &Interface{} // DeviceGetBAR1MemoryInfoFunc: func(device nvml.Device) (nvml.BAR1Memory, nvml.Return) { // panic("mock out the DeviceGetBAR1MemoryInfo method") // }, +<<<<<<< HEAD +======= +// DeviceGetBBXTimeData_v1Func: func(device nvml.Device) (nvml.BBXTimeData_v1, nvml.Return) { +// panic("mock out the DeviceGetBBXTimeData_v1 method") +// }, +// DeviceGetBankRemapperStatus_v1Func: func(device nvml.Device) (nvml.EccBankRemapperStatus_v1, nvml.Return) { +// panic("mock out the DeviceGetBankRemapperStatus_v1 method") +// }, +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // DeviceGetBoardIdFunc: func(device nvml.Device) (uint32, nvml.Return) { // panic("mock out the DeviceGetBoardId method") // }, @@ -258,6 +270,9 @@ var _ nvml.Interface = &Interface{} // DeviceGetGpuFabricInfoVFunc: func(device nvml.Device) nvml.GpuFabricInfoHandler { // panic("mock out the DeviceGetGpuFabricInfoV method") // }, +// DeviceGetGpuFabricInfo_v4Func: func(device nvml.Device) (nvml.GpuFabricInfo_v4, nvml.Return) { +// panic("mock out the DeviceGetGpuFabricInfo_v4 method") +// }, // DeviceGetGpuInstanceByIdFunc: func(device nvml.Device, n int) (nvml.GpuInstance, nvml.Return) { // panic("mock out the DeviceGetGpuInstanceById method") // }, @@ -381,6 +396,9 @@ var _ nvml.Interface = &Interface{} // DeviceGetMemoryInfo_v2Func: func(device nvml.Device) (nvml.Memory_v2, nvml.Return) { // panic("mock out the DeviceGetMemoryInfo_v2 method") // }, +// DeviceGetMemoryLimits_v1Func: func(device nvml.Device, s string) (nvml.MemoryLimits_v1, nvml.Return) { +// panic("mock out the DeviceGetMemoryLimits_v1 method") +// }, // DeviceGetMigDeviceHandleByIndexFunc: func(device nvml.Device, n int) (nvml.Device, nvml.Return) { // panic("mock out the DeviceGetMigDeviceHandleByIndex method") // }, @@ -432,6 +450,9 @@ var _ nvml.Interface = &Interface{} // DeviceGetNvLinkStateFunc: func(device nvml.Device, n int) (nvml.EnableState, nvml.Return) { // panic("mock out the DeviceGetNvLinkState method") // }, +// DeviceGetNvLinkTelemetrySamples_v1Func: func(device nvml.Device, nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) { +// panic("mock out the DeviceGetNvLinkTelemetrySamples_v1 method") +// }, // DeviceGetNvLinkUtilizationControlFunc: func(device nvml.Device, n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) { // panic("mock out the DeviceGetNvLinkUtilizationControl method") // }, @@ -660,6 +681,9 @@ var _ nvml.Interface = &Interface{} // DeviceOnSameBoardFunc: func(device1 nvml.Device, device2 nvml.Device) (int, nvml.Return) { // panic("mock out the DeviceOnSameBoard method") // }, +// DevicePerfMetricsGetSamples_v1Func: func(device nvml.Device) (nvml.PerfMetricsSamples_v1, nvml.Return) { +// panic("mock out the DevicePerfMetricsGetSamples_v1 method") +// }, // DevicePowerSmoothingActivatePresetProfileFunc: func(device nvml.Device, powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return { // panic("mock out the DevicePowerSmoothingActivatePresetProfile method") // }, @@ -705,6 +729,9 @@ var _ nvml.Interface = &Interface{} // DeviceSetAccountingModeFunc: func(device nvml.Device, enableState nvml.EnableState) nvml.Return { // panic("mock out the DeviceSetAccountingMode method") // }, +// DeviceSetAdaptiveTgpMode_v1Func: func(device nvml.Device, enableState nvml.EnableState) nvml.Return { +// panic("mock out the DeviceSetAdaptiveTgpMode_v1 method") +// }, // DeviceSetApplicationsClocksFunc: func(device nvml.Device, v1 uint32, v2 uint32) nvml.Return { // panic("mock out the DeviceSetApplicationsClocks method") // }, @@ -756,6 +783,9 @@ var _ nvml.Interface = &Interface{} // DeviceSetMemClkVfOffsetFunc: func(device nvml.Device, n int) nvml.Return { // panic("mock out the DeviceSetMemClkVfOffset method") // }, +// DeviceSetMemoryLimits_v1Func: func(device nvml.Device, s string, v1 uint64, v2 uint64) nvml.Return { +// panic("mock out the DeviceSetMemoryLimits_v1 method") +// }, // DeviceSetMemoryLockedClocksFunc: func(device nvml.Device, v1 uint32, v2 uint32) nvml.Return { // panic("mock out the DeviceSetMemoryLockedClocks method") // }, @@ -771,6 +801,9 @@ var _ nvml.Interface = &Interface{} // DeviceSetNvlinkBwModeFunc: func(device nvml.Device, nvlinkSetBwMode *nvml.NvlinkSetBwMode) nvml.Return { // panic("mock out the DeviceSetNvlinkBwMode method") // }, +// DeviceSetNvlinkBwModeAsync_v1Func: func(device nvml.Device, nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return { +// panic("mock out the DeviceSetNvlinkBwModeAsync_v1 method") +// }, // DeviceSetPersistenceModeFunc: func(device nvml.Device, enableState nvml.EnableState) nvml.Return { // panic("mock out the DeviceSetPersistenceMode method") // }, @@ -819,9 +852,27 @@ var _ nvml.Interface = &Interface{} // EventSetFreeFunc: func(eventSet nvml.EventSet) nvml.Return { // panic("mock out the EventSetFree method") // }, +// EventSetGetContextCount_v1Func: func(eventSet nvml.EventSet) (nvml.GetContextCount_v1, nvml.Return) { +// panic("mock out the EventSetGetContextCount_v1 method") +// }, +// EventSetGetContextData_v1Func: func(eventSet nvml.EventSet, getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) { +// panic("mock out the EventSetGetContextData_v1 method") +// }, +// EventSetGetContextInfo_v1Func: func(eventSet nvml.EventSet, v uint32) (nvml.GetContextInfo_v1, nvml.Return) { +// panic("mock out the EventSetGetContextInfo_v1 method") +// }, +// EventSetGetGpuOperationalEventContextLegacyXid_v1Func: func(eventSet nvml.EventSet, v uint32) (uint32, nvml.Return) { +// panic("mock out the EventSetGetGpuOperationalEventContextLegacyXid_v1 method") +// }, +// EventSetRegisterGpuOperationalEvents_v1Func: func(eventSet nvml.EventSet, gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return { +// panic("mock out the EventSetRegisterGpuOperationalEvents_v1 method") +// }, // EventSetWaitFunc: func(eventSet nvml.EventSet, v uint32) (nvml.EventData, nvml.Return) { // panic("mock out the EventSetWait method") // }, +// EventSetWait_v3Func: func(eventSet nvml.EventSet, v uint32) (nvml.EventSetWaitData_v3, nvml.Return) { +// panic("mock out the EventSetWait_v3 method") +// }, // ExtensionsFunc: func() nvml.ExtendedInterface { // panic("mock out the Extensions method") // }, @@ -1119,6 +1170,9 @@ var _ nvml.Interface = &Interface{} // VgpuTypeGetGpuInstanceProfileIdFunc: func(vgpuTypeId nvml.VgpuTypeId) (uint32, nvml.Return) { // panic("mock out the VgpuTypeGetGpuInstanceProfileId method") // }, +// VgpuTypeGetIDFunc: func(vgpuTypeId nvml.VgpuTypeId) uint32 { +// panic("mock out the VgpuTypeGetID method") +// }, // VgpuTypeGetLicenseFunc: func(vgpuTypeId nvml.VgpuTypeId) (string, nvml.Return) { // panic("mock out the VgpuTypeGetLicense method") // }, @@ -1198,6 +1252,9 @@ type Interface struct { // DeviceGetAdaptiveClockInfoStatusFunc mocks the DeviceGetAdaptiveClockInfoStatus method. DeviceGetAdaptiveClockInfoStatusFunc func(device nvml.Device) (uint32, nvml.Return) + // DeviceGetAdaptiveTgpModeInfo_v1Func mocks the DeviceGetAdaptiveTgpModeInfo_v1 method. + DeviceGetAdaptiveTgpModeInfo_v1Func func(device nvml.Device) (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) + // DeviceGetAddressingModeFunc mocks the DeviceGetAddressingMode method. DeviceGetAddressingModeFunc func(device nvml.Device) (nvml.DeviceAddressingMode, nvml.Return) @@ -1216,6 +1273,15 @@ type Interface struct { // DeviceGetBAR1MemoryInfoFunc mocks the DeviceGetBAR1MemoryInfo method. DeviceGetBAR1MemoryInfoFunc func(device nvml.Device) (nvml.BAR1Memory, nvml.Return) +<<<<<<< HEAD +======= + // DeviceGetBBXTimeData_v1Func mocks the DeviceGetBBXTimeData_v1 method. + DeviceGetBBXTimeData_v1Func func(device nvml.Device) (nvml.BBXTimeData_v1, nvml.Return) + + // DeviceGetBankRemapperStatus_v1Func mocks the DeviceGetBankRemapperStatus_v1 method. + DeviceGetBankRemapperStatus_v1Func func(device nvml.Device) (nvml.EccBankRemapperStatus_v1, nvml.Return) + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // DeviceGetBoardIdFunc mocks the DeviceGetBoardId method. DeviceGetBoardIdFunc func(device nvml.Device) (uint32, nvml.Return) @@ -1387,6 +1453,9 @@ type Interface struct { // DeviceGetGpuFabricInfoVFunc mocks the DeviceGetGpuFabricInfoV method. DeviceGetGpuFabricInfoVFunc func(device nvml.Device) nvml.GpuFabricInfoHandler + // DeviceGetGpuFabricInfo_v4Func mocks the DeviceGetGpuFabricInfo_v4 method. + DeviceGetGpuFabricInfo_v4Func func(device nvml.Device) (nvml.GpuFabricInfo_v4, nvml.Return) + // DeviceGetGpuInstanceByIdFunc mocks the DeviceGetGpuInstanceById method. DeviceGetGpuInstanceByIdFunc func(device nvml.Device, n int) (nvml.GpuInstance, nvml.Return) @@ -1510,6 +1579,9 @@ type Interface struct { // DeviceGetMemoryInfo_v2Func mocks the DeviceGetMemoryInfo_v2 method. DeviceGetMemoryInfo_v2Func func(device nvml.Device) (nvml.Memory_v2, nvml.Return) + // DeviceGetMemoryLimits_v1Func mocks the DeviceGetMemoryLimits_v1 method. + DeviceGetMemoryLimits_v1Func func(device nvml.Device, s string) (nvml.MemoryLimits_v1, nvml.Return) + // DeviceGetMigDeviceHandleByIndexFunc mocks the DeviceGetMigDeviceHandleByIndex method. DeviceGetMigDeviceHandleByIndexFunc func(device nvml.Device, n int) (nvml.Device, nvml.Return) @@ -1561,6 +1633,9 @@ type Interface struct { // DeviceGetNvLinkStateFunc mocks the DeviceGetNvLinkState method. DeviceGetNvLinkStateFunc func(device nvml.Device, n int) (nvml.EnableState, nvml.Return) + // DeviceGetNvLinkTelemetrySamples_v1Func mocks the DeviceGetNvLinkTelemetrySamples_v1 method. + DeviceGetNvLinkTelemetrySamples_v1Func func(device nvml.Device, nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) + // DeviceGetNvLinkUtilizationControlFunc mocks the DeviceGetNvLinkUtilizationControl method. DeviceGetNvLinkUtilizationControlFunc func(device nvml.Device, n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) @@ -1789,6 +1864,9 @@ type Interface struct { // DeviceOnSameBoardFunc mocks the DeviceOnSameBoard method. DeviceOnSameBoardFunc func(device1 nvml.Device, device2 nvml.Device) (int, nvml.Return) + // DevicePerfMetricsGetSamples_v1Func mocks the DevicePerfMetricsGetSamples_v1 method. + DevicePerfMetricsGetSamples_v1Func func(device nvml.Device) (nvml.PerfMetricsSamples_v1, nvml.Return) + // DevicePowerSmoothingActivatePresetProfileFunc mocks the DevicePowerSmoothingActivatePresetProfile method. DevicePowerSmoothingActivatePresetProfileFunc func(device nvml.Device, powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return @@ -1834,6 +1912,9 @@ type Interface struct { // DeviceSetAccountingModeFunc mocks the DeviceSetAccountingMode method. DeviceSetAccountingModeFunc func(device nvml.Device, enableState nvml.EnableState) nvml.Return + // DeviceSetAdaptiveTgpMode_v1Func mocks the DeviceSetAdaptiveTgpMode_v1 method. + DeviceSetAdaptiveTgpMode_v1Func func(device nvml.Device, enableState nvml.EnableState) nvml.Return + // DeviceSetApplicationsClocksFunc mocks the DeviceSetApplicationsClocks method. DeviceSetApplicationsClocksFunc func(device nvml.Device, v1 uint32, v2 uint32) nvml.Return @@ -1885,6 +1966,9 @@ type Interface struct { // DeviceSetMemClkVfOffsetFunc mocks the DeviceSetMemClkVfOffset method. DeviceSetMemClkVfOffsetFunc func(device nvml.Device, n int) nvml.Return + // DeviceSetMemoryLimits_v1Func mocks the DeviceSetMemoryLimits_v1 method. + DeviceSetMemoryLimits_v1Func func(device nvml.Device, s string, v1 uint64, v2 uint64) nvml.Return + // DeviceSetMemoryLockedClocksFunc mocks the DeviceSetMemoryLockedClocks method. DeviceSetMemoryLockedClocksFunc func(device nvml.Device, v1 uint32, v2 uint32) nvml.Return @@ -1900,6 +1984,9 @@ type Interface struct { // DeviceSetNvlinkBwModeFunc mocks the DeviceSetNvlinkBwMode method. DeviceSetNvlinkBwModeFunc func(device nvml.Device, nvlinkSetBwMode *nvml.NvlinkSetBwMode) nvml.Return + // DeviceSetNvlinkBwModeAsync_v1Func mocks the DeviceSetNvlinkBwModeAsync_v1 method. + DeviceSetNvlinkBwModeAsync_v1Func func(device nvml.Device, nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return + // DeviceSetPersistenceModeFunc mocks the DeviceSetPersistenceMode method. DeviceSetPersistenceModeFunc func(device nvml.Device, enableState nvml.EnableState) nvml.Return @@ -1948,9 +2035,27 @@ type Interface struct { // EventSetFreeFunc mocks the EventSetFree method. EventSetFreeFunc func(eventSet nvml.EventSet) nvml.Return + // EventSetGetContextCount_v1Func mocks the EventSetGetContextCount_v1 method. + EventSetGetContextCount_v1Func func(eventSet nvml.EventSet) (nvml.GetContextCount_v1, nvml.Return) + + // EventSetGetContextData_v1Func mocks the EventSetGetContextData_v1 method. + EventSetGetContextData_v1Func func(eventSet nvml.EventSet, getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) + + // EventSetGetContextInfo_v1Func mocks the EventSetGetContextInfo_v1 method. + EventSetGetContextInfo_v1Func func(eventSet nvml.EventSet, v uint32) (nvml.GetContextInfo_v1, nvml.Return) + + // EventSetGetGpuOperationalEventContextLegacyXid_v1Func mocks the EventSetGetGpuOperationalEventContextLegacyXid_v1 method. + EventSetGetGpuOperationalEventContextLegacyXid_v1Func func(eventSet nvml.EventSet, v uint32) (uint32, nvml.Return) + + // EventSetRegisterGpuOperationalEvents_v1Func mocks the EventSetRegisterGpuOperationalEvents_v1 method. + EventSetRegisterGpuOperationalEvents_v1Func func(eventSet nvml.EventSet, gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return + // EventSetWaitFunc mocks the EventSetWait method. EventSetWaitFunc func(eventSet nvml.EventSet, v uint32) (nvml.EventData, nvml.Return) + // EventSetWait_v3Func mocks the EventSetWait_v3 method. + EventSetWait_v3Func func(eventSet nvml.EventSet, v uint32) (nvml.EventSetWaitData_v3, nvml.Return) + // ExtensionsFunc mocks the Extensions method. ExtensionsFunc func() nvml.ExtendedInterface @@ -2248,6 +2353,9 @@ type Interface struct { // VgpuTypeGetGpuInstanceProfileIdFunc mocks the VgpuTypeGetGpuInstanceProfileId method. VgpuTypeGetGpuInstanceProfileIdFunc func(vgpuTypeId nvml.VgpuTypeId) (uint32, nvml.Return) + // VgpuTypeGetIDFunc mocks the VgpuTypeGetID method. + VgpuTypeGetIDFunc func(vgpuTypeId nvml.VgpuTypeId) uint32 + // VgpuTypeGetLicenseFunc mocks the VgpuTypeGetLicense method. VgpuTypeGetLicenseFunc func(vgpuTypeId nvml.VgpuTypeId) (string, nvml.Return) @@ -2374,6 +2482,11 @@ type Interface struct { // Device is the device argument value. Device nvml.Device } + // DeviceGetAdaptiveTgpModeInfo_v1 holds details about calls to the DeviceGetAdaptiveTgpModeInfo_v1 method. + DeviceGetAdaptiveTgpModeInfo_v1 []struct { + // Device is the device argument value. + Device nvml.Device + } // DeviceGetAddressingMode holds details about calls to the DeviceGetAddressingMode method. DeviceGetAddressingMode []struct { // Device is the device argument value. @@ -2406,6 +2519,19 @@ type Interface struct { // Device is the device argument value. Device nvml.Device } +<<<<<<< HEAD +======= + // DeviceGetBBXTimeData_v1 holds details about calls to the DeviceGetBBXTimeData_v1 method. + DeviceGetBBXTimeData_v1 []struct { + // Device is the device argument value. + Device nvml.Device + } + // DeviceGetBankRemapperStatus_v1 holds details about calls to the DeviceGetBankRemapperStatus_v1 method. + DeviceGetBankRemapperStatus_v1 []struct { + // Device is the device argument value. + Device nvml.Device + } +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // DeviceGetBoardId holds details about calls to the DeviceGetBoardId method. DeviceGetBoardId []struct { // Device is the device argument value. @@ -2717,6 +2843,11 @@ type Interface struct { // Device is the device argument value. Device nvml.Device } + // DeviceGetGpuFabricInfo_v4 holds details about calls to the DeviceGetGpuFabricInfo_v4 method. + DeviceGetGpuFabricInfo_v4 []struct { + // Device is the device argument value. + Device nvml.Device + } // DeviceGetGpuInstanceById holds details about calls to the DeviceGetGpuInstanceById method. DeviceGetGpuInstanceById []struct { // Device is the device argument value. @@ -2952,6 +3083,13 @@ type Interface struct { // Device is the device argument value. Device nvml.Device } + // DeviceGetMemoryLimits_v1 holds details about calls to the DeviceGetMemoryLimits_v1 method. + DeviceGetMemoryLimits_v1 []struct { + // Device is the device argument value. + Device nvml.Device + // S is the s argument value. + S string + } // DeviceGetMigDeviceHandleByIndex holds details about calls to the DeviceGetMigDeviceHandleByIndex method. DeviceGetMigDeviceHandleByIndex []struct { // Device is the device argument value. @@ -3057,6 +3195,13 @@ type Interface struct { // N is the n argument value. N int } + // DeviceGetNvLinkTelemetrySamples_v1 holds details about calls to the DeviceGetNvLinkTelemetrySamples_v1 method. + DeviceGetNvLinkTelemetrySamples_v1 []struct { + // Device is the device argument value. + Device nvml.Device + // NvlinkTelemetrySamples_v1 is the nvlinkTelemetrySamples_v1 argument value. + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + } // DeviceGetNvLinkUtilizationControl holds details about calls to the DeviceGetNvLinkUtilizationControl method. DeviceGetNvLinkUtilizationControl []struct { // Device is the device argument value. @@ -3499,6 +3644,11 @@ type Interface struct { // Device2 is the device2 argument value. Device2 nvml.Device } + // DevicePerfMetricsGetSamples_v1 holds details about calls to the DevicePerfMetricsGetSamples_v1 method. + DevicePerfMetricsGetSamples_v1 []struct { + // Device is the device argument value. + Device nvml.Device + } // DevicePowerSmoothingActivatePresetProfile holds details about calls to the DevicePowerSmoothingActivatePresetProfile method. DevicePowerSmoothingActivatePresetProfile []struct { // Device is the device argument value. @@ -3602,6 +3752,13 @@ type Interface struct { // EnableState is the enableState argument value. EnableState nvml.EnableState } + // DeviceSetAdaptiveTgpMode_v1 holds details about calls to the DeviceSetAdaptiveTgpMode_v1 method. + DeviceSetAdaptiveTgpMode_v1 []struct { + // Device is the device argument value. + Device nvml.Device + // EnableState is the enableState argument value. + EnableState nvml.EnableState + } // DeviceSetApplicationsClocks holds details about calls to the DeviceSetApplicationsClocks method. DeviceSetApplicationsClocks []struct { // Device is the device argument value. @@ -3731,6 +3888,17 @@ type Interface struct { // N is the n argument value. N int } + // DeviceSetMemoryLimits_v1 holds details about calls to the DeviceSetMemoryLimits_v1 method. + DeviceSetMemoryLimits_v1 []struct { + // Device is the device argument value. + Device nvml.Device + // S is the s argument value. + S string + // V1 is the v1 argument value. + V1 uint64 + // V2 is the v2 argument value. + V2 uint64 + } // DeviceSetMemoryLockedClocks holds details about calls to the DeviceSetMemoryLockedClocks method. DeviceSetMemoryLockedClocks []struct { // Device is the device argument value. @@ -3774,6 +3942,13 @@ type Interface struct { // NvlinkSetBwMode is the nvlinkSetBwMode argument value. NvlinkSetBwMode *nvml.NvlinkSetBwMode } + // DeviceSetNvlinkBwModeAsync_v1 holds details about calls to the DeviceSetNvlinkBwModeAsync_v1 method. + DeviceSetNvlinkBwModeAsync_v1 []struct { + // Device is the device argument value. + Device nvml.Device + // NvlinkSetBwModeAsync_v1 is the nvlinkSetBwModeAsync_v1 argument value. + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + } // DeviceSetPersistenceMode holds details about calls to the DeviceSetPersistenceMode method. DeviceSetPersistenceMode []struct { // Device is the device argument value. @@ -3876,6 +4051,39 @@ type Interface struct { // EventSet is the eventSet argument value. EventSet nvml.EventSet } + // EventSetGetContextCount_v1 holds details about calls to the EventSetGetContextCount_v1 method. + EventSetGetContextCount_v1 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + } + // EventSetGetContextData_v1 holds details about calls to the EventSetGetContextData_v1 method. + EventSetGetContextData_v1 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + // GetContextData_v1 is the getContextData_v1 argument value. + GetContextData_v1 nvml.GetContextData_v1 + } + // EventSetGetContextInfo_v1 holds details about calls to the EventSetGetContextInfo_v1 method. + EventSetGetContextInfo_v1 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + // V is the v argument value. + V uint32 + } + // EventSetGetGpuOperationalEventContextLegacyXid_v1 holds details about calls to the EventSetGetGpuOperationalEventContextLegacyXid_v1 method. + EventSetGetGpuOperationalEventContextLegacyXid_v1 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + // V is the v argument value. + V uint32 + } + // EventSetRegisterGpuOperationalEvents_v1 holds details about calls to the EventSetRegisterGpuOperationalEvents_v1 method. + EventSetRegisterGpuOperationalEvents_v1 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + // GpuOperationalEventConfig_v1 is the gpuOperationalEventConfig_v1 argument value. + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + } // EventSetWait holds details about calls to the EventSetWait method. EventSetWait []struct { // EventSet is the eventSet argument value. @@ -3883,6 +4091,13 @@ type Interface struct { // V is the v argument value. V uint32 } + // EventSetWait_v3 holds details about calls to the EventSetWait_v3 method. + EventSetWait_v3 []struct { + // EventSet is the eventSet argument value. + EventSet nvml.EventSet + // V is the v argument value. + V uint32 + } // Extensions holds details about calls to the Extensions method. Extensions []struct { } @@ -4386,6 +4601,11 @@ type Interface struct { // VgpuTypeId is the vgpuTypeId argument value. VgpuTypeId nvml.VgpuTypeId } + // VgpuTypeGetID holds details about calls to the VgpuTypeGetID method. + VgpuTypeGetID []struct { + // VgpuTypeId is the vgpuTypeId argument value. + VgpuTypeId nvml.VgpuTypeId + } // VgpuTypeGetLicense holds details about calls to the VgpuTypeGetLicense method. VgpuTypeGetLicense []struct { // VgpuTypeId is the vgpuTypeId argument value. @@ -4426,6 +4646,7 @@ type Interface struct { N int } } +<<<<<<< HEAD lockComputeInstanceDestroy sync.RWMutex lockComputeInstanceGetInfo sync.RWMutex lockDeviceClearAccountingPids sync.RWMutex @@ -4800,6 +5021,415 @@ type Interface struct { lockVgpuTypeGetName sync.RWMutex lockVgpuTypeGetNumDisplayHeads sync.RWMutex lockVgpuTypeGetResolution sync.RWMutex +======= + lockComputeInstanceDestroy sync.RWMutex + lockComputeInstanceGetInfo sync.RWMutex + lockDeviceClearAccountingPids sync.RWMutex + lockDeviceClearCpuAffinity sync.RWMutex + lockDeviceClearEccErrorCounts sync.RWMutex + lockDeviceClearFieldValues sync.RWMutex + lockDeviceCreateGpuInstance sync.RWMutex + lockDeviceCreateGpuInstanceWithPlacement sync.RWMutex + lockDeviceDiscoverGpus sync.RWMutex + lockDeviceFreezeNvLinkUtilizationCounter sync.RWMutex + lockDeviceGetAPIRestriction sync.RWMutex + lockDeviceGetAccountingBufferSize sync.RWMutex + lockDeviceGetAccountingMode sync.RWMutex + lockDeviceGetAccountingPids sync.RWMutex + lockDeviceGetAccountingStats sync.RWMutex + lockDeviceGetAccountingStats_v2 sync.RWMutex + lockDeviceGetActiveVgpus sync.RWMutex + lockDeviceGetAdaptiveClockInfoStatus sync.RWMutex + lockDeviceGetAdaptiveTgpModeInfo_v1 sync.RWMutex + lockDeviceGetAddressingMode sync.RWMutex + lockDeviceGetApplicationsClock sync.RWMutex + lockDeviceGetArchitecture sync.RWMutex + lockDeviceGetAttributes sync.RWMutex + lockDeviceGetAutoBoostedClocksEnabled sync.RWMutex + lockDeviceGetBAR1MemoryInfo sync.RWMutex + lockDeviceGetBBXTimeData_v1 sync.RWMutex + lockDeviceGetBankRemapperStatus_v1 sync.RWMutex + lockDeviceGetBoardId sync.RWMutex + lockDeviceGetBoardPartNumber sync.RWMutex + lockDeviceGetBrand sync.RWMutex + lockDeviceGetBridgeChipInfo sync.RWMutex + lockDeviceGetBusType sync.RWMutex + lockDeviceGetC2cModeInfoV sync.RWMutex + lockDeviceGetCapabilities sync.RWMutex + lockDeviceGetClkMonStatus sync.RWMutex + lockDeviceGetClock sync.RWMutex + lockDeviceGetClockInfo sync.RWMutex + lockDeviceGetClockOffsets sync.RWMutex + lockDeviceGetComputeInstanceId sync.RWMutex + lockDeviceGetComputeMode sync.RWMutex + lockDeviceGetComputeRunningProcesses sync.RWMutex + lockDeviceGetConfComputeGpuAttestationReport sync.RWMutex + lockDeviceGetConfComputeGpuCertificate sync.RWMutex + lockDeviceGetConfComputeMemSizeInfo sync.RWMutex + lockDeviceGetConfComputeProtectedMemoryUsage sync.RWMutex + lockDeviceGetCoolerInfo sync.RWMutex + lockDeviceGetCount sync.RWMutex + lockDeviceGetCpuAffinity sync.RWMutex + lockDeviceGetCpuAffinityWithinScope sync.RWMutex + lockDeviceGetCreatableVgpus sync.RWMutex + lockDeviceGetCudaComputeCapability sync.RWMutex + lockDeviceGetCurrPcieLinkGeneration sync.RWMutex + lockDeviceGetCurrPcieLinkWidth sync.RWMutex + lockDeviceGetCurrentClockFreqs sync.RWMutex + lockDeviceGetCurrentClocksEventReasons sync.RWMutex + lockDeviceGetCurrentClocksThrottleReasons sync.RWMutex + lockDeviceGetDecoderUtilization sync.RWMutex + lockDeviceGetDefaultApplicationsClock sync.RWMutex + lockDeviceGetDefaultEccMode sync.RWMutex + lockDeviceGetDetailedEccErrors sync.RWMutex + lockDeviceGetDeviceHandleFromMigDeviceHandle sync.RWMutex + lockDeviceGetDisplayActive sync.RWMutex + lockDeviceGetDisplayMode sync.RWMutex + lockDeviceGetDramEncryptionMode sync.RWMutex + lockDeviceGetDriverModel sync.RWMutex + lockDeviceGetDriverModel_v2 sync.RWMutex + lockDeviceGetDynamicPstatesInfo sync.RWMutex + lockDeviceGetEccMode sync.RWMutex + lockDeviceGetEncoderCapacity sync.RWMutex + lockDeviceGetEncoderSessions sync.RWMutex + lockDeviceGetEncoderStats sync.RWMutex + lockDeviceGetEncoderUtilization sync.RWMutex + lockDeviceGetEnforcedPowerLimit sync.RWMutex + lockDeviceGetFBCSessions sync.RWMutex + lockDeviceGetFBCStats sync.RWMutex + lockDeviceGetFanControlPolicy_v2 sync.RWMutex + lockDeviceGetFanSpeed sync.RWMutex + lockDeviceGetFanSpeedRPM sync.RWMutex + lockDeviceGetFanSpeed_v2 sync.RWMutex + lockDeviceGetFieldValues sync.RWMutex + lockDeviceGetGpcClkMinMaxVfOffset sync.RWMutex + lockDeviceGetGpcClkVfOffset sync.RWMutex + lockDeviceGetGpuFabricInfo sync.RWMutex + lockDeviceGetGpuFabricInfoV sync.RWMutex + lockDeviceGetGpuFabricInfo_v4 sync.RWMutex + lockDeviceGetGpuInstanceById sync.RWMutex + lockDeviceGetGpuInstanceId sync.RWMutex + lockDeviceGetGpuInstancePossiblePlacements sync.RWMutex + lockDeviceGetGpuInstanceProfileInfo sync.RWMutex + lockDeviceGetGpuInstanceProfileInfoByIdV sync.RWMutex + lockDeviceGetGpuInstanceProfileInfoV sync.RWMutex + lockDeviceGetGpuInstanceRemainingCapacity sync.RWMutex + lockDeviceGetGpuInstances sync.RWMutex + lockDeviceGetGpuMaxPcieLinkGeneration sync.RWMutex + lockDeviceGetGpuOperationMode sync.RWMutex + lockDeviceGetGraphicsRunningProcesses sync.RWMutex + lockDeviceGetGridLicensableFeatures sync.RWMutex + lockDeviceGetGspFirmwareMode sync.RWMutex + lockDeviceGetGspFirmwareVersion sync.RWMutex + lockDeviceGetHandleByIndex sync.RWMutex + lockDeviceGetHandleByPciBusId sync.RWMutex + lockDeviceGetHandleBySerial sync.RWMutex + lockDeviceGetHandleByUUID sync.RWMutex + lockDeviceGetHandleByUUIDV sync.RWMutex + lockDeviceGetHostVgpuMode sync.RWMutex + lockDeviceGetHostname_v1 sync.RWMutex + lockDeviceGetIndex sync.RWMutex + lockDeviceGetInforomConfigurationChecksum sync.RWMutex + lockDeviceGetInforomImageVersion sync.RWMutex + lockDeviceGetInforomVersion sync.RWMutex + lockDeviceGetIrqNum sync.RWMutex + lockDeviceGetJpgUtilization sync.RWMutex + lockDeviceGetLastBBXFlushTime sync.RWMutex + lockDeviceGetMPSComputeRunningProcesses sync.RWMutex + lockDeviceGetMarginTemperature sync.RWMutex + lockDeviceGetMaxClockInfo sync.RWMutex + lockDeviceGetMaxCustomerBoostClock sync.RWMutex + lockDeviceGetMaxMigDeviceCount sync.RWMutex + lockDeviceGetMaxPcieLinkGeneration sync.RWMutex + lockDeviceGetMaxPcieLinkWidth sync.RWMutex + lockDeviceGetMemClkMinMaxVfOffset sync.RWMutex + lockDeviceGetMemClkVfOffset sync.RWMutex + lockDeviceGetMemoryAffinity sync.RWMutex + lockDeviceGetMemoryBusWidth sync.RWMutex + lockDeviceGetMemoryErrorCounter sync.RWMutex + lockDeviceGetMemoryInfo sync.RWMutex + lockDeviceGetMemoryInfo_v2 sync.RWMutex + lockDeviceGetMemoryLimits_v1 sync.RWMutex + lockDeviceGetMigDeviceHandleByIndex sync.RWMutex + lockDeviceGetMigMode sync.RWMutex + lockDeviceGetMinMaxClockOfPState sync.RWMutex + lockDeviceGetMinMaxFanSpeed sync.RWMutex + lockDeviceGetMinorNumber sync.RWMutex + lockDeviceGetModuleId sync.RWMutex + lockDeviceGetMultiGpuBoard sync.RWMutex + lockDeviceGetName sync.RWMutex + lockDeviceGetNumFans sync.RWMutex + lockDeviceGetNumGpuCores sync.RWMutex + lockDeviceGetNumaNodeId sync.RWMutex + lockDeviceGetNvLinkCapability sync.RWMutex + lockDeviceGetNvLinkErrorCounter sync.RWMutex + lockDeviceGetNvLinkInfo sync.RWMutex + lockDeviceGetNvLinkRemoteDeviceType sync.RWMutex + lockDeviceGetNvLinkRemotePciInfo sync.RWMutex + lockDeviceGetNvLinkState sync.RWMutex + lockDeviceGetNvLinkTelemetrySamples_v1 sync.RWMutex + lockDeviceGetNvLinkUtilizationControl sync.RWMutex + lockDeviceGetNvLinkUtilizationCounter sync.RWMutex + lockDeviceGetNvLinkVersion sync.RWMutex + lockDeviceGetNvlinkBwMode sync.RWMutex + lockDeviceGetNvlinkSupportedBwModes sync.RWMutex + lockDeviceGetOfaUtilization sync.RWMutex + lockDeviceGetP2PStatus sync.RWMutex + lockDeviceGetPciInfo sync.RWMutex + lockDeviceGetPciInfoExt sync.RWMutex + lockDeviceGetPcieLinkMaxSpeed sync.RWMutex + lockDeviceGetPcieReplayCounter sync.RWMutex + lockDeviceGetPcieSpeed sync.RWMutex + lockDeviceGetPcieThroughput sync.RWMutex + lockDeviceGetPdi sync.RWMutex + lockDeviceGetPerformanceModes sync.RWMutex + lockDeviceGetPerformanceState sync.RWMutex + lockDeviceGetPersistenceMode sync.RWMutex + lockDeviceGetPgpuMetadataString sync.RWMutex + lockDeviceGetPlatformInfo sync.RWMutex + lockDeviceGetPowerManagementDefaultLimit sync.RWMutex + lockDeviceGetPowerManagementLimit sync.RWMutex + lockDeviceGetPowerManagementLimitConstraints sync.RWMutex + lockDeviceGetPowerManagementMode sync.RWMutex + lockDeviceGetPowerMizerMode_v1 sync.RWMutex + lockDeviceGetPowerSource sync.RWMutex + lockDeviceGetPowerState sync.RWMutex + lockDeviceGetPowerUsage sync.RWMutex + lockDeviceGetProcessUtilization sync.RWMutex + lockDeviceGetProcessesUtilizationInfo sync.RWMutex + lockDeviceGetRemappedRows sync.RWMutex + lockDeviceGetRemappedRows_v2 sync.RWMutex + lockDeviceGetRepairStatus sync.RWMutex + lockDeviceGetRetiredPages sync.RWMutex + lockDeviceGetRetiredPagesPendingStatus sync.RWMutex + lockDeviceGetRetiredPages_v2 sync.RWMutex + lockDeviceGetRowRemapperHistogram sync.RWMutex + lockDeviceGetRunningProcessDetailList sync.RWMutex + lockDeviceGetSamples sync.RWMutex + lockDeviceGetSerial sync.RWMutex + lockDeviceGetSramEccErrorStatus sync.RWMutex + lockDeviceGetSramUniqueUncorrectedEccErrorCounts sync.RWMutex + lockDeviceGetSupportedClocksEventReasons sync.RWMutex + lockDeviceGetSupportedClocksThrottleReasons sync.RWMutex + lockDeviceGetSupportedEventTypes sync.RWMutex + lockDeviceGetSupportedGraphicsClocks sync.RWMutex + lockDeviceGetSupportedMemoryClocks sync.RWMutex + lockDeviceGetSupportedPerformanceStates sync.RWMutex + lockDeviceGetSupportedVgpus sync.RWMutex + lockDeviceGetTargetFanSpeed sync.RWMutex + lockDeviceGetTemperature sync.RWMutex + lockDeviceGetTemperatureThreshold sync.RWMutex + lockDeviceGetTemperatureV sync.RWMutex + lockDeviceGetThermalSettings sync.RWMutex + lockDeviceGetTopologyCommonAncestor sync.RWMutex + lockDeviceGetTopologyNearestGpus sync.RWMutex + lockDeviceGetTotalEccErrors sync.RWMutex + lockDeviceGetTotalEnergyConsumption sync.RWMutex + lockDeviceGetUUID sync.RWMutex + lockDeviceGetUnrepairableMemoryFlag_v1 sync.RWMutex + lockDeviceGetUtilizationRates sync.RWMutex + lockDeviceGetVbiosVersion sync.RWMutex + lockDeviceGetVgpuCapabilities sync.RWMutex + lockDeviceGetVgpuHeterogeneousMode sync.RWMutex + lockDeviceGetVgpuInstancesUtilizationInfo sync.RWMutex + lockDeviceGetVgpuMetadata sync.RWMutex + lockDeviceGetVgpuProcessUtilization sync.RWMutex + lockDeviceGetVgpuProcessesUtilizationInfo sync.RWMutex + lockDeviceGetVgpuSchedulerCapabilities sync.RWMutex + lockDeviceGetVgpuSchedulerLog sync.RWMutex + lockDeviceGetVgpuSchedulerLog_v2 sync.RWMutex + lockDeviceGetVgpuSchedulerState sync.RWMutex + lockDeviceGetVgpuSchedulerState_v2 sync.RWMutex + lockDeviceGetVgpuTypeCreatablePlacements sync.RWMutex + lockDeviceGetVgpuTypeSupportedPlacements sync.RWMutex + lockDeviceGetVgpuUtilization sync.RWMutex + lockDeviceGetViolationStatus sync.RWMutex + lockDeviceGetVirtualizationMode sync.RWMutex + lockDeviceIsMigDeviceHandle sync.RWMutex + lockDeviceModifyDrainState sync.RWMutex + lockDeviceOnSameBoard sync.RWMutex + lockDevicePerfMetricsGetSamples_v1 sync.RWMutex + lockDevicePowerSmoothingActivatePresetProfile sync.RWMutex + lockDevicePowerSmoothingSetState sync.RWMutex + lockDevicePowerSmoothingUpdatePresetProfileParam sync.RWMutex + lockDeviceQueryDrainState sync.RWMutex + lockDeviceReadPRMCounters_v1 sync.RWMutex + lockDeviceReadWritePRM_v1 sync.RWMutex + lockDeviceRegisterEvents sync.RWMutex + lockDeviceRemoveGpu sync.RWMutex + lockDeviceRemoveGpu_v2 sync.RWMutex + lockDeviceResetApplicationsClocks sync.RWMutex + lockDeviceResetGpuLockedClocks sync.RWMutex + lockDeviceResetMemoryLockedClocks sync.RWMutex + lockDeviceResetNvLinkErrorCounters sync.RWMutex + lockDeviceResetNvLinkUtilizationCounter sync.RWMutex + lockDeviceSetAPIRestriction sync.RWMutex + lockDeviceSetAccountingMode sync.RWMutex + lockDeviceSetAdaptiveTgpMode_v1 sync.RWMutex + lockDeviceSetApplicationsClocks sync.RWMutex + lockDeviceSetAutoBoostedClocksEnabled sync.RWMutex + lockDeviceSetClockOffsets sync.RWMutex + lockDeviceSetComputeMode sync.RWMutex + lockDeviceSetConfComputeUnprotectedMemSize sync.RWMutex + lockDeviceSetCpuAffinity sync.RWMutex + lockDeviceSetDefaultAutoBoostedClocksEnabled sync.RWMutex + lockDeviceSetDefaultFanSpeed_v2 sync.RWMutex + lockDeviceSetDramEncryptionMode sync.RWMutex + lockDeviceSetDriverModel sync.RWMutex + lockDeviceSetEccMode sync.RWMutex + lockDeviceSetFanControlPolicy sync.RWMutex + lockDeviceSetFanSpeed_v2 sync.RWMutex + lockDeviceSetGpcClkVfOffset sync.RWMutex + lockDeviceSetGpuLockedClocks sync.RWMutex + lockDeviceSetGpuOperationMode sync.RWMutex + lockDeviceSetHostname_v1 sync.RWMutex + lockDeviceSetMemClkVfOffset sync.RWMutex + lockDeviceSetMemoryLimits_v1 sync.RWMutex + lockDeviceSetMemoryLockedClocks sync.RWMutex + lockDeviceSetMigMode sync.RWMutex + lockDeviceSetNvLinkDeviceLowPowerThreshold sync.RWMutex + lockDeviceSetNvLinkUtilizationControl sync.RWMutex + lockDeviceSetNvlinkBwMode sync.RWMutex + lockDeviceSetNvlinkBwModeAsync_v1 sync.RWMutex + lockDeviceSetPersistenceMode sync.RWMutex + lockDeviceSetPowerManagementLimit sync.RWMutex + lockDeviceSetPowerManagementLimit_v2 sync.RWMutex + lockDeviceSetRusdSettings_v1 sync.RWMutex + lockDeviceSetTemperatureThreshold sync.RWMutex + lockDeviceSetVgpuCapabilities sync.RWMutex + lockDeviceSetVgpuHeterogeneousMode sync.RWMutex + lockDeviceSetVgpuSchedulerState sync.RWMutex + lockDeviceSetVgpuSchedulerState_v2 sync.RWMutex + lockDeviceSetVirtualizationMode sync.RWMutex + lockDeviceValidateInforom sync.RWMutex + lockDeviceVgpuForceGspUnload sync.RWMutex + lockDeviceWorkloadPowerProfileClearRequestedProfiles sync.RWMutex + lockDeviceWorkloadPowerProfileGetCurrentProfiles sync.RWMutex + lockDeviceWorkloadPowerProfileGetProfilesInfo sync.RWMutex + lockDeviceWorkloadPowerProfileSetRequestedProfiles sync.RWMutex + lockDeviceWorkloadPowerProfileUpdateProfiles_v1 sync.RWMutex + lockErrorString sync.RWMutex + lockEventSetCreate sync.RWMutex + lockEventSetFree sync.RWMutex + lockEventSetGetContextCount_v1 sync.RWMutex + lockEventSetGetContextData_v1 sync.RWMutex + lockEventSetGetContextInfo_v1 sync.RWMutex + lockEventSetGetGpuOperationalEventContextLegacyXid_v1 sync.RWMutex + lockEventSetRegisterGpuOperationalEvents_v1 sync.RWMutex + lockEventSetWait sync.RWMutex + lockEventSetWait_v3 sync.RWMutex + lockExtensions sync.RWMutex + lockGetExcludedDeviceCount sync.RWMutex + lockGetExcludedDeviceInfoByIndex sync.RWMutex + lockGetVgpuCompatibility sync.RWMutex + lockGetVgpuDriverCapabilities sync.RWMutex + lockGetVgpuVersion sync.RWMutex + lockGpmMetricsGet sync.RWMutex + lockGpmMetricsGetV sync.RWMutex + lockGpmMigSampleGet sync.RWMutex + lockGpmQueryDeviceSupport sync.RWMutex + lockGpmQueryDeviceSupportV sync.RWMutex + lockGpmQueryIfStreamingEnabled sync.RWMutex + lockGpmSampleAlloc sync.RWMutex + lockGpmSampleFree sync.RWMutex + lockGpmSampleGet sync.RWMutex + lockGpmSetStreamingEnabled sync.RWMutex + lockGpuInstanceCreateComputeInstance sync.RWMutex + lockGpuInstanceCreateComputeInstanceWithPlacement sync.RWMutex + lockGpuInstanceDestroy sync.RWMutex + lockGpuInstanceGetActiveVgpus sync.RWMutex + lockGpuInstanceGetComputeInstanceById sync.RWMutex + lockGpuInstanceGetComputeInstancePossiblePlacements sync.RWMutex + lockGpuInstanceGetComputeInstanceProfileInfo sync.RWMutex + lockGpuInstanceGetComputeInstanceProfileInfoV sync.RWMutex + lockGpuInstanceGetComputeInstanceRemainingCapacity sync.RWMutex + lockGpuInstanceGetComputeInstances sync.RWMutex + lockGpuInstanceGetCreatableVgpus sync.RWMutex + lockGpuInstanceGetInfo sync.RWMutex + lockGpuInstanceGetVgpuHeterogeneousMode sync.RWMutex + lockGpuInstanceGetVgpuSchedulerLog sync.RWMutex + lockGpuInstanceGetVgpuSchedulerLog_v2 sync.RWMutex + lockGpuInstanceGetVgpuSchedulerState sync.RWMutex + lockGpuInstanceGetVgpuSchedulerState_v2 sync.RWMutex + lockGpuInstanceGetVgpuTypeCreatablePlacements sync.RWMutex + lockGpuInstanceSetVgpuHeterogeneousMode sync.RWMutex + lockGpuInstanceSetVgpuSchedulerState sync.RWMutex + lockGpuInstanceSetVgpuSchedulerState_v2 sync.RWMutex + lockInit sync.RWMutex + lockInitWithFlags sync.RWMutex + lockSetVgpuVersion sync.RWMutex + lockShutdown sync.RWMutex + lockSystemEventSetCreate sync.RWMutex + lockSystemEventSetFree sync.RWMutex + lockSystemEventSetWait sync.RWMutex + lockSystemGetCPER_v1 sync.RWMutex + lockSystemGetConfComputeCapabilities sync.RWMutex + lockSystemGetConfComputeGpusReadyState sync.RWMutex + lockSystemGetConfComputeKeyRotationThresholdInfo sync.RWMutex + lockSystemGetConfComputeSettings sync.RWMutex + lockSystemGetConfComputeState sync.RWMutex + lockSystemGetCudaDriverVersion sync.RWMutex + lockSystemGetCudaDriverVersion_v2 sync.RWMutex + lockSystemGetDriverBranch sync.RWMutex + lockSystemGetDriverVersion sync.RWMutex + lockSystemGetHicVersion sync.RWMutex + lockSystemGetNVMLVersion sync.RWMutex + lockSystemGetNvlinkBwMode sync.RWMutex + lockSystemGetProcessName sync.RWMutex + lockSystemGetTopologyGpuSet sync.RWMutex + lockSystemRegisterEvents sync.RWMutex + lockSystemSetConfComputeGpusReadyState sync.RWMutex + lockSystemSetConfComputeKeyRotationThresholdInfo sync.RWMutex + lockSystemSetNvlinkBwMode sync.RWMutex + lockUnitGetCount sync.RWMutex + lockUnitGetDevices sync.RWMutex + lockUnitGetFanSpeedInfo sync.RWMutex + lockUnitGetHandleByIndex sync.RWMutex + lockUnitGetLedState sync.RWMutex + lockUnitGetPsuInfo sync.RWMutex + lockUnitGetTemperature sync.RWMutex + lockUnitGetUnitInfo sync.RWMutex + lockUnitSetLedState sync.RWMutex + lockVgpuInstanceClearAccountingPids sync.RWMutex + lockVgpuInstanceGetAccountingMode sync.RWMutex + lockVgpuInstanceGetAccountingPids sync.RWMutex + lockVgpuInstanceGetAccountingStats sync.RWMutex + lockVgpuInstanceGetEccMode sync.RWMutex + lockVgpuInstanceGetEncoderCapacity sync.RWMutex + lockVgpuInstanceGetEncoderSessions sync.RWMutex + lockVgpuInstanceGetEncoderStats sync.RWMutex + lockVgpuInstanceGetFBCSessions sync.RWMutex + lockVgpuInstanceGetFBCStats sync.RWMutex + lockVgpuInstanceGetFbUsage sync.RWMutex + lockVgpuInstanceGetFrameRateLimit sync.RWMutex + lockVgpuInstanceGetGpuInstanceId sync.RWMutex + lockVgpuInstanceGetGpuPciId sync.RWMutex + lockVgpuInstanceGetLicenseInfo sync.RWMutex + lockVgpuInstanceGetLicenseStatus sync.RWMutex + lockVgpuInstanceGetMdevUUID sync.RWMutex + lockVgpuInstanceGetMetadata sync.RWMutex + lockVgpuInstanceGetRuntimeStateSize sync.RWMutex + lockVgpuInstanceGetType sync.RWMutex + lockVgpuInstanceGetUUID sync.RWMutex + lockVgpuInstanceGetVmDriverVersion sync.RWMutex + lockVgpuInstanceGetVmID sync.RWMutex + lockVgpuInstanceSetEncoderCapacity sync.RWMutex + lockVgpuTypeGetBAR1Info sync.RWMutex + lockVgpuTypeGetCapabilities sync.RWMutex + lockVgpuTypeGetClass sync.RWMutex + lockVgpuTypeGetDeviceID sync.RWMutex + lockVgpuTypeGetFrameRateLimit sync.RWMutex + lockVgpuTypeGetFramebufferSize sync.RWMutex + lockVgpuTypeGetGpuInstanceProfileId sync.RWMutex + lockVgpuTypeGetID sync.RWMutex + lockVgpuTypeGetLicense sync.RWMutex + lockVgpuTypeGetMaxInstances sync.RWMutex + lockVgpuTypeGetMaxInstancesPerGpuInstance sync.RWMutex + lockVgpuTypeGetMaxInstancesPerVm sync.RWMutex + lockVgpuTypeGetName sync.RWMutex + lockVgpuTypeGetNumDisplayHeads sync.RWMutex + lockVgpuTypeGetResolution sync.RWMutex +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) } // ComputeInstanceDestroy calls ComputeInstanceDestroyFunc. @@ -5381,6 +6011,38 @@ func (mock *Interface) DeviceGetAdaptiveClockInfoStatusCalls() []struct { return calls } +// DeviceGetAdaptiveTgpModeInfo_v1 calls DeviceGetAdaptiveTgpModeInfo_v1Func. +func (mock *Interface) DeviceGetAdaptiveTgpModeInfo_v1(device nvml.Device) (nvml.AdaptiveTgpModeInfo_v1, nvml.Return) { + if mock.DeviceGetAdaptiveTgpModeInfo_v1Func == nil { + panic("Interface.DeviceGetAdaptiveTgpModeInfo_v1Func: method is nil but Interface.DeviceGetAdaptiveTgpModeInfo_v1 was just called") + } + callInfo := struct { + Device nvml.Device + }{ + Device: device, + } + mock.lockDeviceGetAdaptiveTgpModeInfo_v1.Lock() + mock.calls.DeviceGetAdaptiveTgpModeInfo_v1 = append(mock.calls.DeviceGetAdaptiveTgpModeInfo_v1, callInfo) + mock.lockDeviceGetAdaptiveTgpModeInfo_v1.Unlock() + return mock.DeviceGetAdaptiveTgpModeInfo_v1Func(device) +} + +// DeviceGetAdaptiveTgpModeInfo_v1Calls gets all the calls that were made to DeviceGetAdaptiveTgpModeInfo_v1. +// Check the length with: +// +// len(mockedInterface.DeviceGetAdaptiveTgpModeInfo_v1Calls()) +func (mock *Interface) DeviceGetAdaptiveTgpModeInfo_v1Calls() []struct { + Device nvml.Device +} { + var calls []struct { + Device nvml.Device + } + mock.lockDeviceGetAdaptiveTgpModeInfo_v1.RLock() + calls = mock.calls.DeviceGetAdaptiveTgpModeInfo_v1 + mock.lockDeviceGetAdaptiveTgpModeInfo_v1.RUnlock() + return calls +} + // DeviceGetAddressingMode calls DeviceGetAddressingModeFunc. func (mock *Interface) DeviceGetAddressingMode(device nvml.Device) (nvml.DeviceAddressingMode, nvml.Return) { if mock.DeviceGetAddressingModeFunc == nil { @@ -5577,6 +6239,73 @@ func (mock *Interface) DeviceGetBAR1MemoryInfoCalls() []struct { return calls } +<<<<<<< HEAD +======= +// DeviceGetBBXTimeData_v1 calls DeviceGetBBXTimeData_v1Func. +func (mock *Interface) DeviceGetBBXTimeData_v1(device nvml.Device) (nvml.BBXTimeData_v1, nvml.Return) { + if mock.DeviceGetBBXTimeData_v1Func == nil { + panic("Interface.DeviceGetBBXTimeData_v1Func: method is nil but Interface.DeviceGetBBXTimeData_v1 was just called") + } + callInfo := struct { + Device nvml.Device + }{ + Device: device, + } + mock.lockDeviceGetBBXTimeData_v1.Lock() + mock.calls.DeviceGetBBXTimeData_v1 = append(mock.calls.DeviceGetBBXTimeData_v1, callInfo) + mock.lockDeviceGetBBXTimeData_v1.Unlock() + return mock.DeviceGetBBXTimeData_v1Func(device) +} + +// DeviceGetBBXTimeData_v1Calls gets all the calls that were made to DeviceGetBBXTimeData_v1. +// Check the length with: +// +// len(mockedInterface.DeviceGetBBXTimeData_v1Calls()) +func (mock *Interface) DeviceGetBBXTimeData_v1Calls() []struct { + Device nvml.Device +} { + var calls []struct { + Device nvml.Device + } + mock.lockDeviceGetBBXTimeData_v1.RLock() + calls = mock.calls.DeviceGetBBXTimeData_v1 + mock.lockDeviceGetBBXTimeData_v1.RUnlock() + return calls +} + +// DeviceGetBankRemapperStatus_v1 calls DeviceGetBankRemapperStatus_v1Func. +func (mock *Interface) DeviceGetBankRemapperStatus_v1(device nvml.Device) (nvml.EccBankRemapperStatus_v1, nvml.Return) { + if mock.DeviceGetBankRemapperStatus_v1Func == nil { + panic("Interface.DeviceGetBankRemapperStatus_v1Func: method is nil but Interface.DeviceGetBankRemapperStatus_v1 was just called") + } + callInfo := struct { + Device nvml.Device + }{ + Device: device, + } + mock.lockDeviceGetBankRemapperStatus_v1.Lock() + mock.calls.DeviceGetBankRemapperStatus_v1 = append(mock.calls.DeviceGetBankRemapperStatus_v1, callInfo) + mock.lockDeviceGetBankRemapperStatus_v1.Unlock() + return mock.DeviceGetBankRemapperStatus_v1Func(device) +} + +// DeviceGetBankRemapperStatus_v1Calls gets all the calls that were made to DeviceGetBankRemapperStatus_v1. +// Check the length with: +// +// len(mockedInterface.DeviceGetBankRemapperStatus_v1Calls()) +func (mock *Interface) DeviceGetBankRemapperStatus_v1Calls() []struct { + Device nvml.Device +} { + var calls []struct { + Device nvml.Device + } + mock.lockDeviceGetBankRemapperStatus_v1.RLock() + calls = mock.calls.DeviceGetBankRemapperStatus_v1 + mock.lockDeviceGetBankRemapperStatus_v1.RUnlock() + return calls +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // DeviceGetBoardId calls DeviceGetBoardIdFunc. func (mock *Interface) DeviceGetBoardId(device nvml.Device) (uint32, nvml.Return) { if mock.DeviceGetBoardIdFunc == nil { @@ -7452,6 +8181,38 @@ func (mock *Interface) DeviceGetGpuFabricInfoVCalls() []struct { return calls } +// DeviceGetGpuFabricInfo_v4 calls DeviceGetGpuFabricInfo_v4Func. +func (mock *Interface) DeviceGetGpuFabricInfo_v4(device nvml.Device) (nvml.GpuFabricInfo_v4, nvml.Return) { + if mock.DeviceGetGpuFabricInfo_v4Func == nil { + panic("Interface.DeviceGetGpuFabricInfo_v4Func: method is nil but Interface.DeviceGetGpuFabricInfo_v4 was just called") + } + callInfo := struct { + Device nvml.Device + }{ + Device: device, + } + mock.lockDeviceGetGpuFabricInfo_v4.Lock() + mock.calls.DeviceGetGpuFabricInfo_v4 = append(mock.calls.DeviceGetGpuFabricInfo_v4, callInfo) + mock.lockDeviceGetGpuFabricInfo_v4.Unlock() + return mock.DeviceGetGpuFabricInfo_v4Func(device) +} + +// DeviceGetGpuFabricInfo_v4Calls gets all the calls that were made to DeviceGetGpuFabricInfo_v4. +// Check the length with: +// +// len(mockedInterface.DeviceGetGpuFabricInfo_v4Calls()) +func (mock *Interface) DeviceGetGpuFabricInfo_v4Calls() []struct { + Device nvml.Device +} { + var calls []struct { + Device nvml.Device + } + mock.lockDeviceGetGpuFabricInfo_v4.RLock() + calls = mock.calls.DeviceGetGpuFabricInfo_v4 + mock.lockDeviceGetGpuFabricInfo_v4.RUnlock() + return calls +} + // DeviceGetGpuInstanceById calls DeviceGetGpuInstanceByIdFunc. func (mock *Interface) DeviceGetGpuInstanceById(device nvml.Device, n int) (nvml.GpuInstance, nvml.Return) { if mock.DeviceGetGpuInstanceByIdFunc == nil { @@ -8824,6 +9585,42 @@ func (mock *Interface) DeviceGetMemoryInfo_v2Calls() []struct { return calls } +// DeviceGetMemoryLimits_v1 calls DeviceGetMemoryLimits_v1Func. +func (mock *Interface) DeviceGetMemoryLimits_v1(device nvml.Device, s string) (nvml.MemoryLimits_v1, nvml.Return) { + if mock.DeviceGetMemoryLimits_v1Func == nil { + panic("Interface.DeviceGetMemoryLimits_v1Func: method is nil but Interface.DeviceGetMemoryLimits_v1 was just called") + } + callInfo := struct { + Device nvml.Device + S string + }{ + Device: device, + S: s, + } + mock.lockDeviceGetMemoryLimits_v1.Lock() + mock.calls.DeviceGetMemoryLimits_v1 = append(mock.calls.DeviceGetMemoryLimits_v1, callInfo) + mock.lockDeviceGetMemoryLimits_v1.Unlock() + return mock.DeviceGetMemoryLimits_v1Func(device, s) +} + +// DeviceGetMemoryLimits_v1Calls gets all the calls that were made to DeviceGetMemoryLimits_v1. +// Check the length with: +// +// len(mockedInterface.DeviceGetMemoryLimits_v1Calls()) +func (mock *Interface) DeviceGetMemoryLimits_v1Calls() []struct { + Device nvml.Device + S string +} { + var calls []struct { + Device nvml.Device + S string + } + mock.lockDeviceGetMemoryLimits_v1.RLock() + calls = mock.calls.DeviceGetMemoryLimits_v1 + mock.lockDeviceGetMemoryLimits_v1.RUnlock() + return calls +} + // DeviceGetMigDeviceHandleByIndex calls DeviceGetMigDeviceHandleByIndexFunc. func (mock *Interface) DeviceGetMigDeviceHandleByIndex(device nvml.Device, n int) (nvml.Device, nvml.Return) { if mock.DeviceGetMigDeviceHandleByIndexFunc == nil { @@ -9408,6 +10205,42 @@ func (mock *Interface) DeviceGetNvLinkStateCalls() []struct { return calls } +// DeviceGetNvLinkTelemetrySamples_v1 calls DeviceGetNvLinkTelemetrySamples_v1Func. +func (mock *Interface) DeviceGetNvLinkTelemetrySamples_v1(device nvml.Device, nvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1) (nvml.NvlinkTelemetrySamples_v1, nvml.Return) { + if mock.DeviceGetNvLinkTelemetrySamples_v1Func == nil { + panic("Interface.DeviceGetNvLinkTelemetrySamples_v1Func: method is nil but Interface.DeviceGetNvLinkTelemetrySamples_v1 was just called") + } + callInfo := struct { + Device nvml.Device + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + }{ + Device: device, + NvlinkTelemetrySamples_v1: nvlinkTelemetrySamples_v1, + } + mock.lockDeviceGetNvLinkTelemetrySamples_v1.Lock() + mock.calls.DeviceGetNvLinkTelemetrySamples_v1 = append(mock.calls.DeviceGetNvLinkTelemetrySamples_v1, callInfo) + mock.lockDeviceGetNvLinkTelemetrySamples_v1.Unlock() + return mock.DeviceGetNvLinkTelemetrySamples_v1Func(device, nvlinkTelemetrySamples_v1) +} + +// DeviceGetNvLinkTelemetrySamples_v1Calls gets all the calls that were made to DeviceGetNvLinkTelemetrySamples_v1. +// Check the length with: +// +// len(mockedInterface.DeviceGetNvLinkTelemetrySamples_v1Calls()) +func (mock *Interface) DeviceGetNvLinkTelemetrySamples_v1Calls() []struct { + Device nvml.Device + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 +} { + var calls []struct { + Device nvml.Device + NvlinkTelemetrySamples_v1 nvml.NvlinkTelemetrySamples_v1 + } + mock.lockDeviceGetNvLinkTelemetrySamples_v1.RLock() + calls = mock.calls.DeviceGetNvLinkTelemetrySamples_v1 + mock.lockDeviceGetNvLinkTelemetrySamples_v1.RUnlock() + return calls +} + // DeviceGetNvLinkUtilizationControl calls DeviceGetNvLinkUtilizationControlFunc. func (mock *Interface) DeviceGetNvLinkUtilizationControl(device nvml.Device, n1 int, n2 int) (nvml.NvLinkUtilizationControl, nvml.Return) { if mock.DeviceGetNvLinkUtilizationControlFunc == nil { @@ -11964,6 +12797,38 @@ func (mock *Interface) DeviceOnSameBoardCalls() []struct { return calls } +// DevicePerfMetricsGetSamples_v1 calls DevicePerfMetricsGetSamples_v1Func. +func (mock *Interface) DevicePerfMetricsGetSamples_v1(device nvml.Device) (nvml.PerfMetricsSamples_v1, nvml.Return) { + if mock.DevicePerfMetricsGetSamples_v1Func == nil { + panic("Interface.DevicePerfMetricsGetSamples_v1Func: method is nil but Interface.DevicePerfMetricsGetSamples_v1 was just called") + } + callInfo := struct { + Device nvml.Device + }{ + Device: device, + } + mock.lockDevicePerfMetricsGetSamples_v1.Lock() + mock.calls.DevicePerfMetricsGetSamples_v1 = append(mock.calls.DevicePerfMetricsGetSamples_v1, callInfo) + mock.lockDevicePerfMetricsGetSamples_v1.Unlock() + return mock.DevicePerfMetricsGetSamples_v1Func(device) +} + +// DevicePerfMetricsGetSamples_v1Calls gets all the calls that were made to DevicePerfMetricsGetSamples_v1. +// Check the length with: +// +// len(mockedInterface.DevicePerfMetricsGetSamples_v1Calls()) +func (mock *Interface) DevicePerfMetricsGetSamples_v1Calls() []struct { + Device nvml.Device +} { + var calls []struct { + Device nvml.Device + } + mock.lockDevicePerfMetricsGetSamples_v1.RLock() + calls = mock.calls.DevicePerfMetricsGetSamples_v1 + mock.lockDevicePerfMetricsGetSamples_v1.RUnlock() + return calls +} + // DevicePowerSmoothingActivatePresetProfile calls DevicePowerSmoothingActivatePresetProfileFunc. func (mock *Interface) DevicePowerSmoothingActivatePresetProfile(device nvml.Device, powerSmoothingProfile *nvml.PowerSmoothingProfile) nvml.Return { if mock.DevicePowerSmoothingActivatePresetProfileFunc == nil { @@ -12500,6 +13365,42 @@ func (mock *Interface) DeviceSetAccountingModeCalls() []struct { return calls } +// DeviceSetAdaptiveTgpMode_v1 calls DeviceSetAdaptiveTgpMode_v1Func. +func (mock *Interface) DeviceSetAdaptiveTgpMode_v1(device nvml.Device, enableState nvml.EnableState) nvml.Return { + if mock.DeviceSetAdaptiveTgpMode_v1Func == nil { + panic("Interface.DeviceSetAdaptiveTgpMode_v1Func: method is nil but Interface.DeviceSetAdaptiveTgpMode_v1 was just called") + } + callInfo := struct { + Device nvml.Device + EnableState nvml.EnableState + }{ + Device: device, + EnableState: enableState, + } + mock.lockDeviceSetAdaptiveTgpMode_v1.Lock() + mock.calls.DeviceSetAdaptiveTgpMode_v1 = append(mock.calls.DeviceSetAdaptiveTgpMode_v1, callInfo) + mock.lockDeviceSetAdaptiveTgpMode_v1.Unlock() + return mock.DeviceSetAdaptiveTgpMode_v1Func(device, enableState) +} + +// DeviceSetAdaptiveTgpMode_v1Calls gets all the calls that were made to DeviceSetAdaptiveTgpMode_v1. +// Check the length with: +// +// len(mockedInterface.DeviceSetAdaptiveTgpMode_v1Calls()) +func (mock *Interface) DeviceSetAdaptiveTgpMode_v1Calls() []struct { + Device nvml.Device + EnableState nvml.EnableState +} { + var calls []struct { + Device nvml.Device + EnableState nvml.EnableState + } + mock.lockDeviceSetAdaptiveTgpMode_v1.RLock() + calls = mock.calls.DeviceSetAdaptiveTgpMode_v1 + mock.lockDeviceSetAdaptiveTgpMode_v1.RUnlock() + return calls +} + // DeviceSetApplicationsClocks calls DeviceSetApplicationsClocksFunc. func (mock *Interface) DeviceSetApplicationsClocks(device nvml.Device, v1 uint32, v2 uint32) nvml.Return { if mock.DeviceSetApplicationsClocksFunc == nil { @@ -13132,6 +14033,50 @@ func (mock *Interface) DeviceSetMemClkVfOffsetCalls() []struct { return calls } +// DeviceSetMemoryLimits_v1 calls DeviceSetMemoryLimits_v1Func. +func (mock *Interface) DeviceSetMemoryLimits_v1(device nvml.Device, s string, v1 uint64, v2 uint64) nvml.Return { + if mock.DeviceSetMemoryLimits_v1Func == nil { + panic("Interface.DeviceSetMemoryLimits_v1Func: method is nil but Interface.DeviceSetMemoryLimits_v1 was just called") + } + callInfo := struct { + Device nvml.Device + S string + V1 uint64 + V2 uint64 + }{ + Device: device, + S: s, + V1: v1, + V2: v2, + } + mock.lockDeviceSetMemoryLimits_v1.Lock() + mock.calls.DeviceSetMemoryLimits_v1 = append(mock.calls.DeviceSetMemoryLimits_v1, callInfo) + mock.lockDeviceSetMemoryLimits_v1.Unlock() + return mock.DeviceSetMemoryLimits_v1Func(device, s, v1, v2) +} + +// DeviceSetMemoryLimits_v1Calls gets all the calls that were made to DeviceSetMemoryLimits_v1. +// Check the length with: +// +// len(mockedInterface.DeviceSetMemoryLimits_v1Calls()) +func (mock *Interface) DeviceSetMemoryLimits_v1Calls() []struct { + Device nvml.Device + S string + V1 uint64 + V2 uint64 +} { + var calls []struct { + Device nvml.Device + S string + V1 uint64 + V2 uint64 + } + mock.lockDeviceSetMemoryLimits_v1.RLock() + calls = mock.calls.DeviceSetMemoryLimits_v1 + mock.lockDeviceSetMemoryLimits_v1.RUnlock() + return calls +} + // DeviceSetMemoryLockedClocks calls DeviceSetMemoryLockedClocksFunc. func (mock *Interface) DeviceSetMemoryLockedClocks(device nvml.Device, v1 uint32, v2 uint32) nvml.Return { if mock.DeviceSetMemoryLockedClocksFunc == nil { @@ -13328,6 +14273,42 @@ func (mock *Interface) DeviceSetNvlinkBwModeCalls() []struct { return calls } +// DeviceSetNvlinkBwModeAsync_v1 calls DeviceSetNvlinkBwModeAsync_v1Func. +func (mock *Interface) DeviceSetNvlinkBwModeAsync_v1(device nvml.Device, nvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1) nvml.Return { + if mock.DeviceSetNvlinkBwModeAsync_v1Func == nil { + panic("Interface.DeviceSetNvlinkBwModeAsync_v1Func: method is nil but Interface.DeviceSetNvlinkBwModeAsync_v1 was just called") + } + callInfo := struct { + Device nvml.Device + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + }{ + Device: device, + NvlinkSetBwModeAsync_v1: nvlinkSetBwModeAsync_v1, + } + mock.lockDeviceSetNvlinkBwModeAsync_v1.Lock() + mock.calls.DeviceSetNvlinkBwModeAsync_v1 = append(mock.calls.DeviceSetNvlinkBwModeAsync_v1, callInfo) + mock.lockDeviceSetNvlinkBwModeAsync_v1.Unlock() + return mock.DeviceSetNvlinkBwModeAsync_v1Func(device, nvlinkSetBwModeAsync_v1) +} + +// DeviceSetNvlinkBwModeAsync_v1Calls gets all the calls that were made to DeviceSetNvlinkBwModeAsync_v1. +// Check the length with: +// +// len(mockedInterface.DeviceSetNvlinkBwModeAsync_v1Calls()) +func (mock *Interface) DeviceSetNvlinkBwModeAsync_v1Calls() []struct { + Device nvml.Device + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 +} { + var calls []struct { + Device nvml.Device + NvlinkSetBwModeAsync_v1 *nvml.NvlinkSetBwModeAsync_v1 + } + mock.lockDeviceSetNvlinkBwModeAsync_v1.RLock() + calls = mock.calls.DeviceSetNvlinkBwModeAsync_v1 + mock.lockDeviceSetNvlinkBwModeAsync_v1.RUnlock() + return calls +} + // DeviceSetPersistenceMode calls DeviceSetPersistenceModeFunc. func (mock *Interface) DeviceSetPersistenceMode(device nvml.Device, enableState nvml.EnableState) nvml.Return { if mock.DeviceSetPersistenceModeFunc == nil { @@ -13883,6 +14864,182 @@ func (mock *Interface) EventSetFreeCalls() []struct { return calls } +// EventSetGetContextCount_v1 calls EventSetGetContextCount_v1Func. +func (mock *Interface) EventSetGetContextCount_v1(eventSet nvml.EventSet) (nvml.GetContextCount_v1, nvml.Return) { + if mock.EventSetGetContextCount_v1Func == nil { + panic("Interface.EventSetGetContextCount_v1Func: method is nil but Interface.EventSetGetContextCount_v1 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + }{ + EventSet: eventSet, + } + mock.lockEventSetGetContextCount_v1.Lock() + mock.calls.EventSetGetContextCount_v1 = append(mock.calls.EventSetGetContextCount_v1, callInfo) + mock.lockEventSetGetContextCount_v1.Unlock() + return mock.EventSetGetContextCount_v1Func(eventSet) +} + +// EventSetGetContextCount_v1Calls gets all the calls that were made to EventSetGetContextCount_v1. +// Check the length with: +// +// len(mockedInterface.EventSetGetContextCount_v1Calls()) +func (mock *Interface) EventSetGetContextCount_v1Calls() []struct { + EventSet nvml.EventSet +} { + var calls []struct { + EventSet nvml.EventSet + } + mock.lockEventSetGetContextCount_v1.RLock() + calls = mock.calls.EventSetGetContextCount_v1 + mock.lockEventSetGetContextCount_v1.RUnlock() + return calls +} + +// EventSetGetContextData_v1 calls EventSetGetContextData_v1Func. +func (mock *Interface) EventSetGetContextData_v1(eventSet nvml.EventSet, getContextData_v1 nvml.GetContextData_v1) (nvml.GetContextData_v1, nvml.Return) { + if mock.EventSetGetContextData_v1Func == nil { + panic("Interface.EventSetGetContextData_v1Func: method is nil but Interface.EventSetGetContextData_v1 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + GetContextData_v1 nvml.GetContextData_v1 + }{ + EventSet: eventSet, + GetContextData_v1: getContextData_v1, + } + mock.lockEventSetGetContextData_v1.Lock() + mock.calls.EventSetGetContextData_v1 = append(mock.calls.EventSetGetContextData_v1, callInfo) + mock.lockEventSetGetContextData_v1.Unlock() + return mock.EventSetGetContextData_v1Func(eventSet, getContextData_v1) +} + +// EventSetGetContextData_v1Calls gets all the calls that were made to EventSetGetContextData_v1. +// Check the length with: +// +// len(mockedInterface.EventSetGetContextData_v1Calls()) +func (mock *Interface) EventSetGetContextData_v1Calls() []struct { + EventSet nvml.EventSet + GetContextData_v1 nvml.GetContextData_v1 +} { + var calls []struct { + EventSet nvml.EventSet + GetContextData_v1 nvml.GetContextData_v1 + } + mock.lockEventSetGetContextData_v1.RLock() + calls = mock.calls.EventSetGetContextData_v1 + mock.lockEventSetGetContextData_v1.RUnlock() + return calls +} + +// EventSetGetContextInfo_v1 calls EventSetGetContextInfo_v1Func. +func (mock *Interface) EventSetGetContextInfo_v1(eventSet nvml.EventSet, v uint32) (nvml.GetContextInfo_v1, nvml.Return) { + if mock.EventSetGetContextInfo_v1Func == nil { + panic("Interface.EventSetGetContextInfo_v1Func: method is nil but Interface.EventSetGetContextInfo_v1 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + V uint32 + }{ + EventSet: eventSet, + V: v, + } + mock.lockEventSetGetContextInfo_v1.Lock() + mock.calls.EventSetGetContextInfo_v1 = append(mock.calls.EventSetGetContextInfo_v1, callInfo) + mock.lockEventSetGetContextInfo_v1.Unlock() + return mock.EventSetGetContextInfo_v1Func(eventSet, v) +} + +// EventSetGetContextInfo_v1Calls gets all the calls that were made to EventSetGetContextInfo_v1. +// Check the length with: +// +// len(mockedInterface.EventSetGetContextInfo_v1Calls()) +func (mock *Interface) EventSetGetContextInfo_v1Calls() []struct { + EventSet nvml.EventSet + V uint32 +} { + var calls []struct { + EventSet nvml.EventSet + V uint32 + } + mock.lockEventSetGetContextInfo_v1.RLock() + calls = mock.calls.EventSetGetContextInfo_v1 + mock.lockEventSetGetContextInfo_v1.RUnlock() + return calls +} + +// EventSetGetGpuOperationalEventContextLegacyXid_v1 calls EventSetGetGpuOperationalEventContextLegacyXid_v1Func. +func (mock *Interface) EventSetGetGpuOperationalEventContextLegacyXid_v1(eventSet nvml.EventSet, v uint32) (uint32, nvml.Return) { + if mock.EventSetGetGpuOperationalEventContextLegacyXid_v1Func == nil { + panic("Interface.EventSetGetGpuOperationalEventContextLegacyXid_v1Func: method is nil but Interface.EventSetGetGpuOperationalEventContextLegacyXid_v1 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + V uint32 + }{ + EventSet: eventSet, + V: v, + } + mock.lockEventSetGetGpuOperationalEventContextLegacyXid_v1.Lock() + mock.calls.EventSetGetGpuOperationalEventContextLegacyXid_v1 = append(mock.calls.EventSetGetGpuOperationalEventContextLegacyXid_v1, callInfo) + mock.lockEventSetGetGpuOperationalEventContextLegacyXid_v1.Unlock() + return mock.EventSetGetGpuOperationalEventContextLegacyXid_v1Func(eventSet, v) +} + +// EventSetGetGpuOperationalEventContextLegacyXid_v1Calls gets all the calls that were made to EventSetGetGpuOperationalEventContextLegacyXid_v1. +// Check the length with: +// +// len(mockedInterface.EventSetGetGpuOperationalEventContextLegacyXid_v1Calls()) +func (mock *Interface) EventSetGetGpuOperationalEventContextLegacyXid_v1Calls() []struct { + EventSet nvml.EventSet + V uint32 +} { + var calls []struct { + EventSet nvml.EventSet + V uint32 + } + mock.lockEventSetGetGpuOperationalEventContextLegacyXid_v1.RLock() + calls = mock.calls.EventSetGetGpuOperationalEventContextLegacyXid_v1 + mock.lockEventSetGetGpuOperationalEventContextLegacyXid_v1.RUnlock() + return calls +} + +// EventSetRegisterGpuOperationalEvents_v1 calls EventSetRegisterGpuOperationalEvents_v1Func. +func (mock *Interface) EventSetRegisterGpuOperationalEvents_v1(eventSet nvml.EventSet, gpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1) nvml.Return { + if mock.EventSetRegisterGpuOperationalEvents_v1Func == nil { + panic("Interface.EventSetRegisterGpuOperationalEvents_v1Func: method is nil but Interface.EventSetRegisterGpuOperationalEvents_v1 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + }{ + EventSet: eventSet, + GpuOperationalEventConfig_v1: gpuOperationalEventConfig_v1, + } + mock.lockEventSetRegisterGpuOperationalEvents_v1.Lock() + mock.calls.EventSetRegisterGpuOperationalEvents_v1 = append(mock.calls.EventSetRegisterGpuOperationalEvents_v1, callInfo) + mock.lockEventSetRegisterGpuOperationalEvents_v1.Unlock() + return mock.EventSetRegisterGpuOperationalEvents_v1Func(eventSet, gpuOperationalEventConfig_v1) +} + +// EventSetRegisterGpuOperationalEvents_v1Calls gets all the calls that were made to EventSetRegisterGpuOperationalEvents_v1. +// Check the length with: +// +// len(mockedInterface.EventSetRegisterGpuOperationalEvents_v1Calls()) +func (mock *Interface) EventSetRegisterGpuOperationalEvents_v1Calls() []struct { + EventSet nvml.EventSet + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 +} { + var calls []struct { + EventSet nvml.EventSet + GpuOperationalEventConfig_v1 *nvml.GpuOperationalEventConfig_v1 + } + mock.lockEventSetRegisterGpuOperationalEvents_v1.RLock() + calls = mock.calls.EventSetRegisterGpuOperationalEvents_v1 + mock.lockEventSetRegisterGpuOperationalEvents_v1.RUnlock() + return calls +} + // EventSetWait calls EventSetWaitFunc. func (mock *Interface) EventSetWait(eventSet nvml.EventSet, v uint32) (nvml.EventData, nvml.Return) { if mock.EventSetWaitFunc == nil { @@ -13919,6 +15076,42 @@ func (mock *Interface) EventSetWaitCalls() []struct { return calls } +// EventSetWait_v3 calls EventSetWait_v3Func. +func (mock *Interface) EventSetWait_v3(eventSet nvml.EventSet, v uint32) (nvml.EventSetWaitData_v3, nvml.Return) { + if mock.EventSetWait_v3Func == nil { + panic("Interface.EventSetWait_v3Func: method is nil but Interface.EventSetWait_v3 was just called") + } + callInfo := struct { + EventSet nvml.EventSet + V uint32 + }{ + EventSet: eventSet, + V: v, + } + mock.lockEventSetWait_v3.Lock() + mock.calls.EventSetWait_v3 = append(mock.calls.EventSetWait_v3, callInfo) + mock.lockEventSetWait_v3.Unlock() + return mock.EventSetWait_v3Func(eventSet, v) +} + +// EventSetWait_v3Calls gets all the calls that were made to EventSetWait_v3. +// Check the length with: +// +// len(mockedInterface.EventSetWait_v3Calls()) +func (mock *Interface) EventSetWait_v3Calls() []struct { + EventSet nvml.EventSet + V uint32 +} { + var calls []struct { + EventSet nvml.EventSet + V uint32 + } + mock.lockEventSetWait_v3.RLock() + calls = mock.calls.EventSetWait_v3 + mock.lockEventSetWait_v3.RUnlock() + return calls +} + // Extensions calls ExtensionsFunc. func (mock *Interface) Extensions() nvml.ExtendedInterface { if mock.ExtensionsFunc == nil { @@ -17084,6 +18277,38 @@ func (mock *Interface) VgpuTypeGetGpuInstanceProfileIdCalls() []struct { return calls } +// VgpuTypeGetID calls VgpuTypeGetIDFunc. +func (mock *Interface) VgpuTypeGetID(vgpuTypeId nvml.VgpuTypeId) uint32 { + if mock.VgpuTypeGetIDFunc == nil { + panic("Interface.VgpuTypeGetIDFunc: method is nil but Interface.VgpuTypeGetID was just called") + } + callInfo := struct { + VgpuTypeId nvml.VgpuTypeId + }{ + VgpuTypeId: vgpuTypeId, + } + mock.lockVgpuTypeGetID.Lock() + mock.calls.VgpuTypeGetID = append(mock.calls.VgpuTypeGetID, callInfo) + mock.lockVgpuTypeGetID.Unlock() + return mock.VgpuTypeGetIDFunc(vgpuTypeId) +} + +// VgpuTypeGetIDCalls gets all the calls that were made to VgpuTypeGetID. +// Check the length with: +// +// len(mockedInterface.VgpuTypeGetIDCalls()) +func (mock *Interface) VgpuTypeGetIDCalls() []struct { + VgpuTypeId nvml.VgpuTypeId +} { + var calls []struct { + VgpuTypeId nvml.VgpuTypeId + } + mock.lockVgpuTypeGetID.RLock() + calls = mock.calls.VgpuTypeGetID + mock.lockVgpuTypeGetID.RUnlock() + return calls +} + // VgpuTypeGetLicense calls VgpuTypeGetLicenseFunc. func (mock *Interface) VgpuTypeGetLicense(vgpuTypeId nvml.VgpuTypeId) (string, nvml.Return) { if mock.VgpuTypeGetLicenseFunc == nil { diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/vgputypeid.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/vgputypeid.go index 467d7468..aa5f1745 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/vgputypeid.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/mock/vgputypeid.go @@ -42,6 +42,9 @@ var _ nvml.VgpuTypeId = &VgpuTypeId{} // GetGpuInstanceProfileIdFunc: func() (uint32, nvml.Return) { // panic("mock out the GetGpuInstanceProfileId method") // }, +// GetIDFunc: func() uint32 { +// panic("mock out the GetID method") +// }, // GetLicenseFunc: func() (string, nvml.Return) { // panic("mock out the GetLicense method") // }, @@ -94,6 +97,9 @@ type VgpuTypeId struct { // GetGpuInstanceProfileIdFunc mocks the GetGpuInstanceProfileId method. GetGpuInstanceProfileIdFunc func() (uint32, nvml.Return) + // GetIDFunc mocks the GetID method. + GetIDFunc func() uint32 + // GetLicenseFunc mocks the GetLicense method. GetLicenseFunc func() (string, nvml.Return) @@ -145,6 +151,9 @@ type VgpuTypeId struct { // GetGpuInstanceProfileId holds details about calls to the GetGpuInstanceProfileId method. GetGpuInstanceProfileId []struct { } + // GetID holds details about calls to the GetID method. + GetID []struct { + } // GetLicense holds details about calls to the GetLicense method. GetLicense []struct { } @@ -181,6 +190,7 @@ type VgpuTypeId struct { lockGetFrameRateLimit sync.RWMutex lockGetFramebufferSize sync.RWMutex lockGetGpuInstanceProfileId sync.RWMutex + lockGetID sync.RWMutex lockGetLicense sync.RWMutex lockGetMaxInstances sync.RWMutex lockGetMaxInstancesPerVm sync.RWMutex @@ -416,6 +426,33 @@ func (mock *VgpuTypeId) GetGpuInstanceProfileIdCalls() []struct { return calls } +// GetID calls GetIDFunc. +func (mock *VgpuTypeId) GetID() uint32 { + if mock.GetIDFunc == nil { + panic("VgpuTypeId.GetIDFunc: method is nil but VgpuTypeId.GetID was just called") + } + callInfo := struct { + }{} + mock.lockGetID.Lock() + mock.calls.GetID = append(mock.calls.GetID, callInfo) + mock.lockGetID.Unlock() + return mock.GetIDFunc() +} + +// GetIDCalls gets all the calls that were made to GetID. +// Check the length with: +// +// len(mockedVgpuTypeId.GetIDCalls()) +func (mock *VgpuTypeId) GetIDCalls() []struct { +} { + var calls []struct { + } + mock.lockGetID.RLock() + calls = mock.calls.GetID + mock.lockGetID.RUnlock() + return calls +} + // GetLicense calls GetLicenseFunc. func (mock *VgpuTypeId) GetLicense() (string, nvml.Return) { if mock.GetLicenseFunc == nil { diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go index 38123a96..77950a3b 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.go @@ -1071,6 +1071,24 @@ func nvmlDeviceGetEnforcedPowerLimit(nvmlDevice nvmlDevice, Limit *uint32) Retur return __v } +// nvmlDeviceSetAdaptiveTgpMode_v1 function as declared in nvml/nvml.h +func nvmlDeviceSetAdaptiveTgpMode_v1(nvmlDevice nvmlDevice, Mode EnableState) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cMode, _ := (C.nvmlEnableState_t)(Mode), cgoAllocsUnknown + __ret := C.nvmlDeviceSetAdaptiveTgpMode_v1(cnvmlDevice, cMode) + __v := (Return)(__ret) + return __v +} + +// nvmlDeviceGetAdaptiveTgpModeInfo_v1 function as declared in nvml/nvml.h +func nvmlDeviceGetAdaptiveTgpModeInfo_v1(nvmlDevice nvmlDevice, Info *AdaptiveTgpModeInfo_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cInfo, _ := (*C.nvmlAdaptiveTgpModeInfo_v1_t)(unsafe.Pointer(Info)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetAdaptiveTgpModeInfo_v1(cnvmlDevice, cInfo) + __v := (Return)(__ret) + return __v +} + // nvmlDeviceGetGpuOperationMode function as declared in nvml/nvml.h func nvmlDeviceGetGpuOperationMode(nvmlDevice nvmlDevice, Current *GpuOperationMode, Pending *GpuOperationMode) Return { cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown @@ -1099,6 +1117,24 @@ func nvmlDeviceGetMemoryInfo_v2(nvmlDevice nvmlDevice, Memory *Memory_v2) Return return __v } +// nvmlDeviceSetMemoryLimits_v1 function as declared in nvml/nvml.h +func nvmlDeviceSetMemoryLimits_v1(nvmlDevice nvmlDevice, Limits *SetMemoryLimits_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cLimits, _ := (*C.nvmlSetMemoryLimits_v1_t)(unsafe.Pointer(Limits)), cgoAllocsUnknown + __ret := C.nvmlDeviceSetMemoryLimits_v1(cnvmlDevice, cLimits) + __v := (Return)(__ret) + return __v +} + +// nvmlDeviceGetMemoryLimits_v1 function as declared in nvml/nvml.h +func nvmlDeviceGetMemoryLimits_v1(nvmlDevice nvmlDevice, Limits *GetMemoryLimits_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cLimits, _ := (*C.nvmlGetMemoryLimits_v1_t)(unsafe.Pointer(Limits)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetMemoryLimits_v1(cnvmlDevice, cLimits) + __v := (Return)(__ret) + return __v +} + // nvmlDeviceGetComputeMode function as declared in nvml/nvml.h func nvmlDeviceGetComputeMode(nvmlDevice nvmlDevice, Mode *ComputeMode) Return { cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown @@ -1517,6 +1553,15 @@ func nvmlDeviceGetGpuFabricInfoV(nvmlDevice nvmlDevice, GpuFabricInfo *GpuFabric return __v } +// nvmlDeviceGetGpuFabricInfo_v4 function as declared in nvml/nvml.h +func nvmlDeviceGetGpuFabricInfo_v4(nvmlDevice nvmlDevice, GpuFabricInfo *GpuFabricInfo_v4) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cGpuFabricInfo, _ := (*C.nvmlGpuFabricInfo_v4_t)(unsafe.Pointer(GpuFabricInfo)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetGpuFabricInfo_v4(cnvmlDevice, cGpuFabricInfo) + __v := (Return)(__ret) + return __v +} + // nvmlSystemGetConfComputeCapabilities function as declared in nvml/nvml.h func nvmlSystemGetConfComputeCapabilities(Capabilities *ConfComputeSystemCaps) Return { cCapabilities, _ := (*C.nvmlConfComputeSystemCaps_t)(unsafe.Pointer(Capabilities)), cgoAllocsUnknown @@ -1802,6 +1847,36 @@ func nvmlDeviceGetPdi(nvmlDevice nvmlDevice, Pdi *Pdi) Return { return __v } +<<<<<<< HEAD +======= +// nvmlDeviceSetHostname_v1 function as declared in nvml/nvml.h +func nvmlDeviceSetHostname_v1(nvmlDevice nvmlDevice, Hostname *Hostname_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cHostname, _ := (*C.nvmlHostname_v1_t)(unsafe.Pointer(Hostname)), cgoAllocsUnknown + __ret := C.nvmlDeviceSetHostname_v1(cnvmlDevice, cHostname) + __v := (Return)(__ret) + return __v +} + +// nvmlDeviceGetHostname_v1 function as declared in nvml/nvml.h +func nvmlDeviceGetHostname_v1(nvmlDevice nvmlDevice, Hostname *Hostname_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cHostname, _ := (*C.nvmlHostname_v1_t)(unsafe.Pointer(Hostname)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetHostname_v1(cnvmlDevice, cHostname) + __v := (Return)(__ret) + return __v +} + +// nvmlDevicePerfMetricsGetSamples_v1 function as declared in nvml/nvml.h +func nvmlDevicePerfMetricsGetSamples_v1(nvmlDevice nvmlDevice, Samples *PerfMetricsSamples_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cSamples, _ := (*C.nvmlPerfMetricsSamples_v1_t)(unsafe.Pointer(Samples)), cgoAllocsUnknown + __ret := C.nvmlDevicePerfMetricsGetSamples_v1(cnvmlDevice, cSamples) + __v := (Return)(__ret) + return __v +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // nvmlUnitSetLedState function as declared in nvml/nvml.h func nvmlUnitSetLedState(nvmlUnit nvmlUnit, Color LedColor) Return { cnvmlUnit, _ := *(*C.nvmlUnit_t)(unsafe.Pointer(&nvmlUnit)), cgoAllocsUnknown @@ -2211,6 +2286,15 @@ func nvmlDeviceSetNvlinkBwMode(nvmlDevice nvmlDevice, SetBwMode *NvlinkSetBwMode return __v } +// nvmlDeviceSetNvlinkBwModeAsync_v1 function as declared in nvml/nvml.h +func nvmlDeviceSetNvlinkBwModeAsync_v1(nvmlDevice nvmlDevice, SetBwModeAsync *NvlinkSetBwModeAsync_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cSetBwModeAsync, _ := (*C.nvmlNvlinkSetBwModeAsync_v1_t)(unsafe.Pointer(SetBwModeAsync)), cgoAllocsUnknown + __ret := C.nvmlDeviceSetNvlinkBwModeAsync_v1(cnvmlDevice, cSetBwModeAsync) + __v := (Return)(__ret) + return __v +} + // nvmlDeviceGetNvLinkInfo function as declared in nvml/nvml.h func nvmlDeviceGetNvLinkInfo(nvmlDevice nvmlDevice, Info *NvLinkInfo) Return { cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown @@ -2220,6 +2304,15 @@ func nvmlDeviceGetNvLinkInfo(nvmlDevice nvmlDevice, Info *NvLinkInfo) Return { return __v } +// nvmlDeviceGetNvLinkTelemetrySamples_v1 function as declared in nvml/nvml.h +func nvmlDeviceGetNvLinkTelemetrySamples_v1(nvmlDevice nvmlDevice, Samples *NvlinkTelemetrySamples_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cSamples, _ := (*C.nvmlNvlinkTelemetrySamples_v1_t)(unsafe.Pointer(Samples)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetNvLinkTelemetrySamples_v1(cnvmlDevice, cSamples) + __v := (Return)(__ret) + return __v +} + // nvmlEventSetCreate function as declared in nvml/nvml.h func nvmlEventSetCreate(Set *nvmlEventSet) Return { cSet, _ := (*C.nvmlEventSet_t)(unsafe.Pointer(Set)), cgoAllocsUnknown @@ -2257,6 +2350,60 @@ func nvmlEventSetWait_v2(Set nvmlEventSet, Data *nvmlEventData, Timeoutms uint32 return __v } +// nvmlEventSetRegisterGpuOperationalEvents_v1 function as declared in nvml/nvml.h +func nvmlEventSetRegisterGpuOperationalEvents_v1(nvmlEventSet nvmlEventSet, Config *GpuOperationalEventConfig_v1) Return { + cnvmlEventSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&nvmlEventSet)), cgoAllocsUnknown + cConfig, _ := (*C.nvmlGpuOperationalEventConfig_v1_t)(unsafe.Pointer(Config)), cgoAllocsUnknown + __ret := C.nvmlEventSetRegisterGpuOperationalEvents_v1(cnvmlEventSet, cConfig) + __v := (Return)(__ret) + return __v +} + +// nvmlEventSetWait_v3 function as declared in nvml/nvml.h +func nvmlEventSetWait_v3(Set nvmlEventSet, Params *EventSetWaitData_v3) Return { + cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown + cParams, _ := (*C.nvmlEventSetWait_v3_t)(unsafe.Pointer(Params)), cgoAllocsUnknown + __ret := C.nvmlEventSetWait_v3(cSet, cParams) + __v := (Return)(__ret) + return __v +} + +// nvmlEventSetGetContextCount_v1 function as declared in nvml/nvml.h +func nvmlEventSetGetContextCount_v1(Set nvmlEventSet, Params *GetContextCount_v1) Return { + cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown + cParams, _ := (*C.nvmlEventSetGetContextCount_v1_t)(unsafe.Pointer(Params)), cgoAllocsUnknown + __ret := C.nvmlEventSetGetContextCount_v1(cSet, cParams) + __v := (Return)(__ret) + return __v +} + +// nvmlEventSetGetContextInfo_v1 function as declared in nvml/nvml.h +func nvmlEventSetGetContextInfo_v1(Set nvmlEventSet, Params *GetContextInfo_v1) Return { + cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown + cParams, _ := (*C.nvmlEventSetGetContextInfo_v1_t)(unsafe.Pointer(Params)), cgoAllocsUnknown + __ret := C.nvmlEventSetGetContextInfo_v1(cSet, cParams) + __v := (Return)(__ret) + return __v +} + +// nvmlEventSetGetContextData_v1 function as declared in nvml/nvml.h +func nvmlEventSetGetContextData_v1(Set nvmlEventSet, Params *GetContextData_v1) Return { + cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown + cParams, _ := (*C.nvmlEventSetGetContextData_v1_t)(unsafe.Pointer(Params)), cgoAllocsUnknown + __ret := C.nvmlEventSetGetContextData_v1(cSet, cParams) + __v := (Return)(__ret) + return __v +} + +// nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1 function as declared in nvml/nvml.h +func nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1(Set nvmlEventSet, Params *GetGpuOperationalEventContextLegacyXid_v1) Return { + cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown + cParams, _ := (*C.nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1_t)(unsafe.Pointer(Params)), cgoAllocsUnknown + __ret := C.nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1(cSet, cParams) + __v := (Return)(__ret) + return __v +} + // nvmlEventSetFree function as declared in nvml/nvml.h func nvmlEventSetFree(Set nvmlEventSet) Return { cSet, _ := *(*C.nvmlEventSet_t)(unsafe.Pointer(&Set)), cgoAllocsUnknown @@ -3534,6 +3681,36 @@ func nvmlDeviceGetSramUniqueUncorrectedEccErrorCounts(nvmlDevice nvmlDevice, Err return __v } +<<<<<<< HEAD +======= +// nvmlDeviceGetRemappedRows_v2 function as declared in nvml/nvml.h +func nvmlDeviceGetRemappedRows_v2(nvmlDevice nvmlDevice, Info *RemappedRowsInfo_v2) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cInfo, _ := (*C.nvmlRemappedRowsInfo_v2_t)(unsafe.Pointer(Info)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetRemappedRows_v2(cnvmlDevice, cInfo) + __v := (Return)(__ret) + return __v +} + +// nvmlDeviceSetRusdSettings_v1 function as declared in nvml/nvml.h +func nvmlDeviceSetRusdSettings_v1(nvmlDevice nvmlDevice, Settings *RusdSettings_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cSettings, _ := (*C.nvmlRusdSettings_v1_t)(unsafe.Pointer(Settings)), cgoAllocsUnknown + __ret := C.nvmlDeviceSetRusdSettings_v1(cnvmlDevice, cSettings) + __v := (Return)(__ret) + return __v +} + +// nvmlDeviceGetBankRemapperStatus_v1 function as declared in nvml/nvml.h +func nvmlDeviceGetBankRemapperStatus_v1(nvmlDevice nvmlDevice, PBankRemapperStatus *EccBankRemapperStatus_v1) Return { + cnvmlDevice, _ := *(*C.nvmlDevice_t)(unsafe.Pointer(&nvmlDevice)), cgoAllocsUnknown + cPBankRemapperStatus, _ := (*C.nvmlEccBankRemapperStatus_v1_t)(unsafe.Pointer(PBankRemapperStatus)), cgoAllocsUnknown + __ret := C.nvmlDeviceGetBankRemapperStatus_v1(cnvmlDevice, cPBankRemapperStatus) + __v := (Return)(__ret) + return __v +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) // nvmlInit_v1 function as declared in nvml/nvml.h func nvmlInit_v1() Return { __ret := C.nvmlInit() diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h index 917a8c93..71d9c2e6 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/nvml.h @@ -1,5 +1,10 @@ +<<<<<<< HEAD /*** NVML VERSION: 13.0.39 ***/ /*** From https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-13.0.39-archive.tar.xz ***/ +======= +/*** NVML VERSION: 13.4.61 ***/ +/*** From https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-13.4.61-archive.tar.xz ***/ +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /* * Copyright 1993-2025 NVIDIA Corporation. All rights reserved. * @@ -283,6 +288,59 @@ typedef struct nvmlMemory_v2_st #define nvmlMemory_v2 NVML_STRUCT_VERSION(Memory, 2) +/** + * Value for "maximum" memory limit. + */ +#define NVML_DEVICE_MEMORY_LIMIT_MAX 0xFFFFFFFFFFFFFFFF + +/** + * @brief Describes the memory limits that can be set for the device + * + * This structure holds the necessary information that can be used to set the soft + * and hard memory limits of a device. + * + * The softLimit is the amount of memory that is guaranteed before allocations + * may fail due to memory pressure. + * + * The hardLimit is the maximum amount of memory that can be allocated. + * + * This should be cross-referenced with \ref nvmlDeviceGetMemoryInfo_v2 while in + * that cgroup to see how much memory is actually available to allocate for the device. + * + * To clear the limits, set softLimit to 0, and hardLimit to \ref NVML_DEVICE_MEMORY_LIMIT_MAX. + * Removing the cgroup will also clear any limits. + */ +typedef struct +{ + const char* nameSpace; //!<[in] Full path to sysfs cgroup file name + unsigned long long softLimit; //!<[in] Soft memory limit in Bytes. + unsigned long long hardLimit; //!<[in] Hard memory limit in Bytes. +} nvmlSetMemoryLimits_v1_t; + +/** + * @brief Describes the current memory limits that are set for the device + * + * This structure holds the necessary information that can be used to get the + * current soft and hard memory limits of a device. + * + * The softLimit is the amount of memory that is guaranteed before allocations + * may fail due to memory pressure. + * + * The hardLimit is the maximum amount of memory that can be allocated. + * + * This should be cross-referenced with \ref nvmlDeviceGetMemoryInfo_v2 while in + * that cgroup to see how much memory is actually available to allocate for the device. + * + * No limit is set when softLimit is 0 and hardLimit is \ref NVML_DEVICE_MEMORY_LIMIT_MAX. + */ +typedef struct +{ + const char* nameSpace; //!<[in] Full path to sysfs cgroup file name + unsigned long long softLimit; //!<[out] Currently set soft memory limit in Bytes. + unsigned long long hardLimit; //!<[out] Currently set hard memory limit in Bytes. + unsigned long long currentUsed; //!<[out] Currently used memory in Bytes. +} nvmlGetMemoryLimits_v1_t; + /** * BAR1 Memory allocation Information for a device */ @@ -746,6 +804,17 @@ typedef enum /** * Struct to hold the thermal sensor settings */ +<<<<<<< HEAD +======= +typedef struct { + nvmlThermalController_t controller; + int defaultMinTemp; + int defaultMaxTemp; + int currentTemp; + nvmlThermalTarget_t target; +} nvmlGpuThermalSettingsSensor_t; + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) typedef struct { unsigned int count; @@ -848,12 +917,182 @@ typedef struct } nvmlPdi_v1_t; typedef nvmlPdi_v1_t nvmlPdi_t; +<<<<<<< HEAD #define nvmlPdi_v1 NVML_STRUCT_VERSION(Pdi, 1) +======= +#define nvmlPdi_v1 NVML_STRUCT_VERSION(Pdi, 1) //!< Version macro for \a nvmlPdi_v1_t + +#define NVML_PERF_METRICS_PWR_MODEL_DLPPM_1X_MAX_CORE_RAILS 2 //!< Maximum number of core rails for DLPPM 1x power model +#define NVML_PERF_METRICS_NNE_DESC_INFERENCE_LOOPS_MAX 8 //!< Maximum number of NNE descriptor inference loops +#define NVML_PERF_METRICS_PWR_MODEL_METRICS_DLPPM_1X_OBESRVED_INTIAL_DRAMCLK_ESTIMATES_MAX 3 //!< Maximum number of initial DRAMCLK estimates for DLPPM 1x observed metrics +#define NVML_PERF_METRICS_CONTROLLER_DLPPC_2X_PWR_POLICY_RELATIONSHIP_SET_LIMITS_MAX 4 //!< Maximum number of power policy relationship set limits for DLPPC 2x controller +#define NVML_PERF_METRICS_CONTROLLER_STATUS_DLPPC_2X_DRAMCLK_NUM 3 //!< Number of DRAMCLK frequencies tracked by DLPPC 2x controller status +#define NVML_PERF_METRICS_CONTROLLER_SAMPLE_CONTROLLER_MAX_NUM 4 //!< Maximum number of controllers that can be sampled +#define NVML_PERF_METRICS_SAMPLE_COUNT 13 //!< Total number of performance metrics samples that can be collected +#define NVML_PERF_METRICS_PWR_MODEL_SCALE_LOOPS_MAX_PFPP_1X 32 //!< Maximum number of power model scale loops for PFPP 1x +#define NVML_PERF_METRICS_PWR_MODEL_SCALE_METRICS_INPUT_MAX 16 //!< Maximum number of power model scale metrics inputs +#define NVML_PERF_METRICS_CONTROLLER_TYPE_DLPPC_2X 0 //!< Controller type identifier for DLPPC 2x +#define NVML_PERF_METRICS_CONTROLLER_TYPE_PFPP_1X 1 //!< Controller type identifier for PFPP 1x +#define NVML_PERF_METRICS_PWR_MODEL_SCALE_METRICS_PFPP_1X_GPCCLK_IDX 0 //!< Index for GPCCLK frequency in PFPP 1x scale metrics +#define NVML_PERF_CF_PM_SENSOR_MAX_SIGNALS 1024 //!< Maximum number of BA PM sensor signals + +/** + * Power tuple containing power consumption in milliwatts. + */ +typedef struct +{ + unsigned int pwrmW; //!< Power consumption in milliwatts +} nvmlPmgrPwrTuple_t; + +/** + * Metrics for a single power rail, including frequency and utilization. + */ +typedef struct +{ + unsigned int freqkHz; //!< Frequency in kilohertz + unsigned long long utilPct; //!< Utilization percentage (fixed-point) +} nvmlRailMetrics_t; + +/** + * Metrics for all core rails in the system. + */ +typedef struct +{ + nvmlRailMetrics_t rails[NVML_PERF_METRICS_PWR_MODEL_DLPPM_1X_MAX_CORE_RAILS]; //!< Array of core rail metrics +} nvmlCoreRailMetrics_t; + +/** + * Performance metrics for DLPPM 1x power model. + */ +typedef struct +{ + unsigned int perfms; //!< Performance metric in milliseconds +} nvmlPwrModelMetricsDlppm1xPerf_t; + +/** + * Complete power model metrics for DLPPM 1x, including rail metrics and TGP power. + */ +typedef struct +{ + unsigned char bValid; //!< Validity flag: non-zero if metrics are valid + nvmlCoreRailMetrics_t coreRail; //!< Core rail metrics + nvmlRailMetrics_t fbRail; //!< Fb rail metrics + nvmlPmgrPwrTuple_t tgpPwrTuple; //!< Total Graphics Power (TGP) in milliwatts + nvmlPwrModelMetricsDlppm1xPerf_t perfMetrics; //!< Performance metrics +} nvmlPwrModelMetricsDlppm1x_t; + +/** + * DRAMCLK estimates containing multiple estimated metrics for different DRAMCLK frequencies. + */ +typedef struct +{ + nvmlPwrModelMetricsDlppm1x_t estimatedMetrics[NVML_PERF_METRICS_NNE_DESC_INFERENCE_LOOPS_MAX]; //!< Array of estimated metrics for each inference loop + unsigned char numEstimatedMetrics; //!< Number of valid entries in estimatedMetrics array +} nvmlPwrModelMetricsDlppm1xDramclkEstimates_t; + +/** + * Observed metrics from the power model, including initial DRAMCLK estimates and current measurements. + */ +typedef struct +{ + nvmlPwrModelMetricsDlppm1xDramclkEstimates_t initialDramclkEst[NVML_PERF_METRICS_PWR_MODEL_METRICS_DLPPM_1X_OBESRVED_INTIAL_DRAMCLK_ESTIMATES_MAX]; //!< Initial DRAMCLK estimates for different scenarios + unsigned char bValid; //!< Validity flag: non-zero if observed metrics are valid + nvmlCoreRailMetrics_t coreRail; //!< Observed core rail metrics + nvmlRailMetrics_t fbRail; //!< Observed fb rail metrics + nvmlPmgrPwrTuple_t tgpPwrTuple; //!< Observed Total Graphics Power (TGP) in milliwatts + nvmlPwrModelMetricsDlppm1xPerf_t perfMetrics; //!< Observed performance metrics +} nvmlObservedMetrics_t; + +/** + * Performance metrics sample for DLPPC 2x controller. + */ +typedef struct +{ + nvmlObservedMetrics_t observedMetrics; //!< Observed metrics from the DLPPC 2x controller +} nvmlPerfMetricsDlppc2xSample_t; + +/** + * Power model metrics sample for PFPP 1x, containing frequency inputs and estimated TGP. + */ +typedef struct +{ + unsigned int freqkHz[NVML_PERF_METRICS_PWR_MODEL_SCALE_METRICS_INPUT_MAX]; //!< Array of input frequencies in kilohertz for each domain + unsigned int estTgpPwrmW; //!< Estimated Total Graphics Power in milliwatts +} nvmlPwrModelMetricsSamplePfpp1x_t; + +/** + * Operating point for PFPP 1x power model, defining a frequency-power pair. + */ +typedef struct +{ + unsigned int freqkHz; //!< Operating frequency in kilohertz + unsigned int pwrmW; //!< Power consumption at this frequency in milliwatts +} nvmlPwrModelOperatingPointPfpp1x_t; + +/** + * Complete power model metrics for PFPP 1x, including estimated metrics and key operating points. + */ +typedef struct +{ + unsigned char numVfPoints; //!< Number of valid vf points + nvmlPwrModelMetricsSamplePfpp1x_t estimatedMetrics[NVML_PERF_METRICS_PWR_MODEL_SCALE_LOOPS_MAX_PFPP_1X]; //!< Array of estimated metrics for different operating points + unsigned char bValid; //!< Validity flag: non-zero if metrics are valid + nvmlPwrModelOperatingPointPfpp1x_t maxPerfPerWattPoint; //!< Operating point with maximum performance per watt + nvmlPwrModelOperatingPointPfpp1x_t fmaxAtVmaxPoint; //!< Operating point at maximum frequency and voltage + unsigned int tgpHeadroommW; //!< TGP headroom in milliwatts +} nvmlPwrModelMetricsPfpp1x_t; + +/** + * Performance metrics sample for PFPP 1x controller. + */ +typedef struct +{ + nvmlPwrModelMetricsPfpp1x_t estimatedMetrics; //!< Estimated metrics from the PFPP 1x controller +} nvmlPerfMetricsPfpp1xSample_t; + +/** + * Performance metrics sample from a controller, which can be either DLPPC 2x or PFPP 1x. + */ +typedef struct +{ + unsigned int controllerType; //!< Controller type: NVML_PERF_METRICS_CONTROLLER_TYPE_DLPPC_2X or NVML_PERF_METRICS_CONTROLLER_TYPE_PFPP_1X + union{ + nvmlPerfMetricsDlppc2xSample_t dlppc2x; //!< DLPPC 2x controller sample data + nvmlPerfMetricsPfpp1xSample_t pfpp1x; //!< PFPP 1x controller sample data + } data; //!< Union containing controller-specific data +} nvmlPerfMetricControllerSample_t; + +/** + * Single performance metrics sample containing data from one or more controllers. + */ +typedef struct +{ + unsigned char numControllerData; //!< Number of valid controller samples in this sample + nvmlPerfMetricControllerSample_t controllerData[NVML_PERF_METRICS_CONTROLLER_SAMPLE_CONTROLLER_MAX_NUM]; //!< Array of controller samples +} nvmlPerfMetricsSample_t; + +/** + * Collection of performance metrics samples (version 1). + * This structure contains multiple samples for performance monitoring and profiling. + */ +typedef struct +{ + unsigned int numSamples; //!< Number of samples in the samples array + nvmlPerfMetricsSample_t samples[NVML_PERF_METRICS_SAMPLE_COUNT]; //!< Array of performance metrics samples +} nvmlPerfMetricsSamples_v1_t; + +/** + * BBX Time Data + */ + typedef struct { + unsigned int timeRun; //!< [out] Cumulative number of seconds the GPU has had the driver loaded +} nvmlBBXTimeData_v1_t; +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** @} */ /***************************************************************************************************/ -/** @defgroup nvmlDeviceEnumvs Device Enums +/** @defgroup nvmlDeviceEnums Device Enums * @{ */ /***************************************************************************************************/ @@ -907,8 +1146,11 @@ typedef enum nvmlBrandType_enum NVML_BRAND_NVIDIA = 14, NVML_BRAND_GEFORCE_RTX = 15, // Unused NVML_BRAND_TITAN_RTX = 16, // Unused + NVML_BRAND_NVIDIA_DLA = 17, // Deprecated NVIDIA Deep Learning Accelerator + NVML_BRAND_NVIDIA_VGAMEDEV = 18, // NVIDIA RTX Virtual Game Dev + NVML_BRAND_NVIDIA_NPU = 19, // NVIDIA NPU // Keep this last - NVML_BRAND_COUNT = 18, + NVML_BRAND_COUNT = 20, } nvmlBrandType_t; /** @@ -916,22 +1158,22 @@ typedef enum nvmlBrandType_enum */ typedef enum nvmlTemperatureThresholds_enum { - NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0, // Temperature at which the GPU will - // shut down for HW protection - NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1, // Temperature at which the GPU will - // begin HW slowdown - NVML_TEMPERATURE_THRESHOLD_MEM_MAX = 2, // Memory Temperature at which the GPU will - // begin SW slowdown - NVML_TEMPERATURE_THRESHOLD_GPU_MAX = 3, // GPU Temperature at which the GPU - // can be throttled below base clock - NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN = 4, // Minimum GPU Temperature that can be - // set as acoustic threshold - NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR = 5, // Current temperature that is set as - // acoustic threshold. - NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX = 6, // Maximum GPU temperature that can be - // set as acoustic threshold. - NVML_TEMPERATURE_THRESHOLD_GPS_CURR = 7, // Current temperature that is set as - // gps threshold. + NVML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0, //!< Temperature at which the GPU will + //!< shut down for HW protection + NVML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1, //!< Temperature at which the GPU will + //!< begin HW slowdown + NVML_TEMPERATURE_THRESHOLD_MEM_MAX = 2, //!< Memory Temperature at which the GPU will + //!< begin SW slowdown + NVML_TEMPERATURE_THRESHOLD_GPU_MAX = 3, //!< GPU Temperature at which the GPU + //!< can be throttled below base clock + NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MIN = 4, //!< Minimum GPU Temperature that can be + //!< set as acoustic threshold + NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_CURR = 5, //!< Current temperature that is set as + //!< acoustic threshold. + NVML_TEMPERATURE_THRESHOLD_ACOUSTIC_MAX = 6, //!< Maximum GPU temperature that can be + //!< set as acoustic threshold. + NVML_TEMPERATURE_THRESHOLD_GPS_CURR = 7, //!< Current temperature that is set as + //!< gps threshold. // Keep this last NVML_TEMPERATURE_THRESHOLD_COUNT } nvmlTemperatureThresholds_t; @@ -943,6 +1185,8 @@ typedef enum nvmlTemperatureSensors_enum { NVML_TEMPERATURE_GPU = 0, //!< Temperature sensor for the GPU die + NVML_TEMPERATURE_GPU_MAX = 1, //!< Temperature from the hottest part of the GPU die + // Keep this last NVML_TEMPERATURE_COUNT } nvmlTemperatureSensors_t; @@ -1496,7 +1740,18 @@ typedef nvmlEccSramUniqueUncorrectedErrorCounts_v1_t nvmlEccSramUniqueUncorrecte #define NVML_DEVICE_ARCH_BLACKWELL 10 // Devices based on the NVIDIA Blackwell architecture +<<<<<<< HEAD #define NVML_DEVICE_ARCH_UNKNOWN 0xffffffff // Anything else, presumably something newer +======= +#define NVML_DEVICE_ARCH_DLA 11 //!< Devices based on the NVIDIA DLA architecture. +#define NVML_DEVICE_ARCH_DLA2 12 //!< Devices based on the NVIDIA DLA2 architecture. + +#define NVML_DEVICE_ARCH_RUBIN 13 //!< Devices based on the NVIDIA Rubin architecture. + +#define NVML_DEVICE_ARCH_NPU3 15 //!< Devices based on the NVIDIA NPU3 architecture. + +#define NVML_DEVICE_ARCH_UNKNOWN 0xffffffff //!< Anything else, presumably something newer +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) typedef unsigned int nvmlDeviceArchitecture_t; @@ -1607,6 +1862,15 @@ typedef struct #define nvmlPowerValue_v2 NVML_STRUCT_VERSION(PowerValue, 2) +typedef struct +{ + nvmlEnableState_t inBandEnableRequest; //!< [out] In-band enable requested (NVML_FEATURE_ENABLED) or not requested (NVML_FEATURE_DISABLED) + nvmlEnableState_t featureAllowedByAdmin; //!< [out] Feature allowed by out-of-band/admin (NVML_FEATURE_ENABLED) or not allowed (NVML_FEATURE_DISABLED) + nvmlEnableState_t adminOverrideEnabled; //!< [out] Out-of-band/admin override active (NVML_FEATURE_ENABLED) or inactive (NVML_FEATURE_DISABLED) + nvmlEnableState_t enablementStatus; //!< [out] Enablement after arbitration: active (NVML_FEATURE_ENABLED) or inactive (NVML_FEATURE_DISABLED) + unsigned int adjustedLimitMw; //!< [out] Adjusted TGP limit in milliwatts (valid only when feature is enabled) +} nvmlAdaptiveTgpModeInfo_v1_t; + /** @} */ /***************************************************************************************************/ @@ -1665,7 +1929,8 @@ typedef enum { NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX = 2, //!< Nvidia RTX NVML_GRID_LICENSE_FEATURE_CODE_VWORKSTATION = NVML_GRID_LICENSE_FEATURE_CODE_NVIDIA_RTX, //!< Deprecated, do not use. NVML_GRID_LICENSE_FEATURE_CODE_GAMING = 3, //!< Gaming - NVML_GRID_LICENSE_FEATURE_CODE_COMPUTE = 4 //!< Compute + NVML_GRID_LICENSE_FEATURE_CODE_COMPUTE = 4, //!< Compute + NVML_GRID_LICENSE_FEATURE_CODE_VGAMEDEV = 5 //!< vGameDev } nvmlGridLicenseFeatureCode_t; /** @@ -1955,11 +2220,26 @@ typedef nvmlVgpuRuntimeState_v1_t nvmlVgpuRuntimeState_t; /** * vGPU scheduler engine types */ +<<<<<<< HEAD #define NVML_VGPU_SCHEDULER_ENGINE_TYPE_GRAPHICS 1 +======= +#define NVML_VGPU_SCHEDULER_ENGINE_TYPE_GRAPHICS 1 //!< Graphics engine. +#define NVML_VGPU_SCHEDULER_ENGINE_TYPE_NVENC1 2 //!< NVENC1 +#define NVML_VGPU_SCHEDULER_ENGINE_TYPE_NVENC0 3 //!< NVENC0 /** * Union to represent the vGPU Scheduler Parameters */ +typedef struct { + unsigned int avgFactor; + unsigned int timeslice; +} nvmlVgpuSchedulerParamsVgpuSchedDataWithARR_t; + +typedef struct { + unsigned int timeslice; +} nvmlVgpuSchedulerParamsVgpuSchedData_t; +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) + typedef union { struct @@ -2014,6 +2294,18 @@ typedef struct nvmlVgpuSchedulerGetState_st /** * Union to represent the vGPU Scheduler set Parameters */ +<<<<<<< HEAD +======= +typedef struct { + unsigned int avgFactor; + unsigned int frequency; +} nvmlVgpuSchedulerSetParamsVgpuSchedDataWithARR_t; + +typedef struct { + unsigned int timeslice; +} nvmlVgpuSchedulerSetParamsVgpuSchedData_t; + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) typedef union { struct @@ -2126,11 +2418,22 @@ typedef struct nvmlGridLicensableFeatures_st * Enum describing the GPU Recovery Action */ typedef enum nvmlDeviceGpuRecoveryAction_s { +<<<<<<< HEAD NVML_GPU_RECOVERY_ACTION_NONE = 0, NVML_GPU_RECOVERY_ACTION_GPU_RESET = 1, NVML_GPU_RECOVERY_ACTION_NODE_REBOOT = 2, NVML_GPU_RECOVERY_ACTION_DRAIN_P2P = 3, NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESET = 4, +======= + NVML_GPU_RECOVERY_ACTION_NONE = 0, //!< No action needed + NVML_GPU_RECOVERY_ACTION_GPU_RESET = 1, //!< Reset Gpu + NVML_GPU_RECOVERY_ACTION_NODE_REBOOT = 2, //!< Reboot Node + NVML_GPU_RECOVERY_ACTION_DRAIN_P2P = 3, //!< Drain P2P + NVML_GPU_RECOVERY_ACTION_DRAIN_AND_RESET = 4, //!< Drain P2P and Reset Gpu + NVML_GPU_RECOVERY_ACTION_RECOVER_IMEX_DOMAIN = 5, //!< Recover IMEX Domain. + NVML_GPU_RECOVERY_ACTION_BUS_RESET = 6, //!< Reset the GPU's PCIe bus + NVML_GPU_RECOVERY_ACTION_SYSTEM_REBOOT = 7, //!< Reboot the system +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) } nvmlDeviceGpuRecoveryAction_t; /** @@ -2557,7 +2860,7 @@ typedef nvmlVgpuCreatablePlacementInfo_v1_t nvmlVgpuCreatablePlacementInfo_t; * Link ID needs to be specified in the scopeId field in nvmlFieldValue_t. */ #define NVML_FI_DEV_NVLINK_GET_SPEED 164 //!< NVLink Speed in MBps -#define NVML_FI_DEV_NVLINK_GET_STATE 165 //!< NVLink State - Active,Inactive +#define NVML_FI_DEV_NVLINK_GET_STATE 165 //!< NVLink State - one of NVML_NVLINK_STATE_* values #define NVML_FI_DEV_NVLINK_GET_VERSION 166 //!< NVLink Version #define NVML_FI_DEV_NVLINK_GET_POWER_STATE 167 //!< NVLink Power state. 0=HIGH_SPEED 1=LOW_SPEED @@ -2675,7 +2978,7 @@ typedef nvmlVgpuCreatablePlacementInfo_v1_t nvmlVgpuCreatablePlacementInfo_t; #define NVML_FI_DEV_DRAIN_AND_RESET_STATUS 227 //!< Deprecated, do not use (use NVML_FI_DEV_GET_GPU_RECOVERY_ACTION instead) #define NVML_FI_DEV_PCIE_OUTBOUND_ATOMICS_MASK 228 #define NVML_FI_DEV_PCIE_INBOUND_ATOMICS_MASK 229 -#define NVML_FI_DEV_GET_GPU_RECOVERY_ACTION 230 //!< GPU Recovery action - None/Reset/Reboot/Drain P2P/Drain and Reset +#define NVML_FI_DEV_GET_GPU_RECOVERY_ACTION 230 //!< GPU Recovery action. See \ref nvmlDeviceGpuRecoveryAction_t #define NVML_FI_DEV_C2C_LINK_ERROR_INTR 231 //!< C2C Link CRC Error Counter #define NVML_FI_DEV_C2C_LINK_ERROR_REPLAY 232 //!< C2C Link Replay Error Counter #define NVML_FI_DEV_C2C_LINK_ERROR_REPLAY_B2B 233 //!< C2C Link Back to Back Replay Error Counter @@ -2707,6 +3010,7 @@ typedef nvmlVgpuCreatablePlacementInfo_v1_t nvmlVgpuCreatablePlacementInfo_t; */ #define NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_POWER_CAP NVML_FI_DEV_PERF_POLICY_POWER //!< Throttling to not exceed currently set power limits in ns #define NVML_FI_DEV_CLOCKS_EVENT_REASON_SYNC_BOOST NVML_FI_DEV_PERF_POLICY_SYNC_BOOST //!< Throttling to match minimum possible clock across Sync Boost Group in ns +<<<<<<< HEAD #define NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_THERM_SLOWDOWN 251 //!< Throttling to ensure ((GPU temp < GPU Max Operating Temp) && (Memory Temp < Memory Max Operating Temp)) in ns #define NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_THERM_SLOWDOWN 252 //!< Throttling due to temperature being too high (reducing core clocks by a factor of 2 or more) in ns #define NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_POWER_BRAKE_SLOWDOWN 253 //!< Throttling due to external power brake assertion trigger (reducing core clocks by a factor of 2 or more) in ns @@ -2732,6 +3036,134 @@ typedef nvmlVgpuCreatablePlacementInfo_v1_t nvmlVgpuCreatablePlacementInfo_t; #define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_RATE 272 //!< Ramp down rate in mW/s for a given profile #define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_RAMP_DOWN_HYST_VAL 273 //!< Ramp down hysteresis value in ms for a given profile #define NVML_FI_MAX 274 //!< One greater than the largest field ID defined above +======= +#define NVML_FI_DEV_CLOCKS_EVENT_REASON_SW_THERM_SLOWDOWN 269 //!< Throttling to ensure ((GPU temp < GPU Max Operating Temp) && (Memory Temp < Memory Max Operating Temp)) in ns +#define NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_THERM_SLOWDOWN 270 //!< Throttling due to temperature being too high (reducing core clocks by a factor of 2 or more) in ns +#define NVML_FI_DEV_CLOCKS_EVENT_REASON_HW_POWER_BRAKE_SLOWDOWN 271 //!< Throttling due to external power brake assertion trigger (reducing core clocks by a factor of 2 or more) in ns +#define NVML_FI_DEV_POWER_SYNC_BALANCING_FREQ 272 //!< Accumulated frequency of the GPU to be used for averaging +#define NVML_FI_DEV_POWER_SYNC_BALANCING_AF 273 //!< Accumulated activity factor of the GPU to be used for averaging +#define NVML_FI_DEV_EDPP_MULTIPLIER 274 //!< EDPp multiplier expressed as a percentage +/** + * Current primary power floor value in Watts. + * This value is calculated by doing "TMP ceiling value * (% TMP floor value)". + */ +#define NVML_FI_PWR_SMOOTHING_PRIMARY_POWER_FLOOR 275 +/** + * Current secondary power floor value in Watts. + * This is the power floor that is applied during active workload periods on the GPU when primary + * floor activation window multiplier is set to a non-zero value. + */ +#define NVML_FI_PWR_SMOOTHING_SECONDARY_POWER_FLOOR 276 +/** + * Minimum primary floor activation offset value in Watts. + * This is the minimum primary floor activation offset accepted by the driver specified in Watts. + * This is a static field. + */ +#define NVML_FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_OFFSET 277 +/** + * Minimum primary floor activation point value in Watts. + * This is the minimum absolute raw value specified in Watts that the driver will use for switching + * between primary and secondary floor. This point is calculated as "secondary power floor + + * primary floor activation offset", and then computed value is floored to "min primary floor + * activation point" by the driver at run time. This value is used to avoid setting of switch point + * too low accidentally. + */ +#define NVML_FI_PWR_SMOOTHING_MIN_PRIMARY_FLOOR_ACT_POINT 278 +/** + * Window Multiplier value in ms. + * This is the multiplier unit specified in ms for other multipliers in the profile (primary floor + * activation window multiplier and primary floor target window multiplier). This is a static field. + */ +#define NVML_FI_PWR_SMOOTHING_WINDOW_MULTIPLIER 279 +/** + * Support (0/Not Supported or 1/Supported) for delayed power smoothing. + */ +#define NVML_FI_PWR_SMOOTHING_DELAYED_PWR_SMOOTHING_SUPPORTED 280 +/** + * Current secondary power floor value in Watts for a given profile. + * This is the power floor that will be applied during active workload periods on the GPU when + * primary floor activation window multiplier is set to a non-zero value. + */ +#define NVML_FI_PWR_SMOOTHING_PROFILE_SECONDARY_POWER_FLOOR 281 +/** + * Current primary floor activation window multiplier value for a given profile. + * This is the "X" ms time multiplier for the activation moving average window size. The activation + * moving average is compared against the (secondary floor + primary floor activation offset value) + * to determine if the controller should switch from the secondary floor to the primary floor. + * Setting this to 0 will disable switching to the secondary floor. + */ +#define NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_WIN_MULT 282 +/** + * Current primary floor target window multiplier value for a given profile. + * This is the "X" ms time multiplier for the target moving average window size. When set to + * non-zero value, the target moving average power determines the primary floor. When set to 0, + * driver will use the Floor percentage instead to derive the primary floor. + */ +#define NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_TAR_WIN_MULT 283 +/** + * Current primary floor activation offset value in Watts for a given profile. + * If the target moving average falls below the secondary floor plus this offset, the primary floor + * will be activated. + */ +#define NVML_FI_PWR_SMOOTHING_PROFILE_PRIMARY_FLOOR_ACT_OFFSET 284 +/** + * Current secondary power floor value in Watts for admin override. + * This is the power floor that will be applied during active workload periods on the GPU when + * primary floor activation window multiplier is set to a non-zero value. + */ +#define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_SECONDARY_POWER_FLOOR 285 +/** + * Current primary floor activation window multiplier value for admin override. + * This is the "X" ms time multiplier for the activation moving average window size. The activation + * moving average is compared against the (secondary floor + primary floor activation offset value) + * to determine if the controller should switch from the secondary floor to the primary floor. + * Setting this to 0 will disable switching to the secondary floor. + */ +#define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_WIN_MULT 286 +/** + * Current primary floor target window multiplier value for admin override. + * This is the "X" ms time multiplier for the target moving average window size. When set to + * non-zero value, the target moving average power determines the primary floor. When set to 0, + * driver will use the Floor percentage instead to derive the primary floor. + */ +#define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_TAR_WIN_MULT 287 +/** + * Current primary floor activation offset value in Watts for admin override. + * If the target moving average falls below the secondary floor plus this offset, the primary floor + * will be activated. + */ +#define NVML_FI_PWR_SMOOTHING_ADMIN_OVERRIDE_PRIMARY_FLOOR_ACT_OFFSET 288 +#define NVML_FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE0 289 //!< NVLINK raw error count for lane 0 +#define NVML_FI_DEV_NVLINK_COUNT_RAW_ERRORS_LANE1 290 //!< NVLINK raw error count for lane 1 +#define NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE0_V2 291 //!< NVLINK raw BER for lane 0 +#define NVML_FI_DEV_NVLINK_COUNT_RAW_BER_LANE1_V2 292 //!< NVLINK raw BER for lane 1 +#define NVML_FI_DEV_NVLINK_COUNT_RAW_BER_V2 293 //!< NVLINK total raw BER +#define NVML_FI_DEV_NVLINK_PLR_XMIT_BLOCKS 294 //!< NVLINK PLR Xmit Blocks +#define NVML_FI_DEV_NVLINK_PLR_XMIT_RETRY_BLOCKS 295 //!< NVLINK PLR Xmit Retry Blocks +#define NVML_FI_DEV_NVLINK_GET_DATA_RATE 296 //!< The Effective Nvlink Data rate available for transactions after accounting for FEC overhead +#define NVML_FI_DEV_MMA_STALL_PERCENT 297 //!< MMA (Matrix Multiply Accumulate) stall percentage +#define NVML_FI_DEV_MCLK_SWITCH_TYPE 298 //!< See NVML_MCLK_SWITCH_TYPE_ for all enumerations +#define NVML_FI_DEV_MCLK_MIN_SWITCH_INTERVAL_MILLISECONDS 299 //!< minimum required elapsed time between runtime mclk switches, 0 = no rate limit +#define NVML_FI_PWR_SMOOTHING_SOC_POWER_SMOOTHING_ENABLED 300 //!< State-Of-Charge Power Smoothing Enabled (0/DISABLED or 1/ENABLED) + +#define NVML_FI_DEV_REMAPPED_ROWS_COR_INACTIVE 301 //!< Number of inactive row remappings due to correctable errors +#define NVML_FI_DEV_REMAPPED_ROWS_UNC_INACTIVE 302 //!< Number of inactive row remappings due to uncorrectable errors + +/* Bank Remapper */ +#define NVML_FI_DEV_ACTIVE_BANK_REMAPPINGS 303 //!< Number of active bank remappings +#define NVML_FI_DEV_INACTIVE_BANK_REMAPPINGS 304 //!< Number of inactive bank remappings +#define NVML_FI_DEV_BANK_REMAPPER_HISTOGRAM_MAX 305 //!< Number of groups with full bank remap availability. +#define NVML_FI_DEV_BANK_REMAPPER_HISTOGRAM_NONE 306 //!< Number of groups with no spare bankremap availability. +#define NVML_FI_DEV_PENDING_BANK_REMAPPING 307 //!< If any banks are pending remapping. 1=yes 0=no +#define NVML_FI_MAX 308 //!< One greater than the largest field ID defined above + +/** + * NVML_FI_DEV_MCLK_SWITCH_TYPE enumerations + */ +#define NVML_MCLK_SWITCH_TYPE_NOT_SUPPORTED 0x0 //!< switching is not supported +#define NVML_MCLK_SWITCH_TYPE_DEFERRED 0x1 //!< deferred switching (driver reload) +#define NVML_MCLK_SWITCH_TYPE_RUNTIME 0x2 //!< runtime switching +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** * NVML_FI_DEV_NVLINK_GET_POWER_THRESHOLD_UNITS @@ -3012,6 +3444,119 @@ typedef struct nvmlEventData_st // 0xFFFFFFFF otherwise. } nvmlEventData_t; +/** + * @brief Log-level values used by GPU Operational Events. + * + * These values are used both for event reporting in \ref nvmlEventSetWait_v3_t and for subscription + * filtering in \ref nvmlGpuOperationalEventConfig_v1_t. Higher numeric values represent more + * selective log levels. \c NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_ALL disables log-level filtering + * when used as a subscription threshold. Event data may contain newer log-level values that are + * not named in this header; clients should handle unrecognized numeric values. + */ +typedef enum +{ + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_ALL = 0, //!< Matches all GPU Operational Event log levels. + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_TELEMETRY = 10, //!< High-volume telemetry events. + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_DIAG = 20, //!< Diagnostic events. + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_NOTICE = 30, //!< Notable operational events. + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_WARNING = 40, //!< Warning events. + NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_ERROR = 50, //!< Error events. +} nvmlGpuOperationalEventLogLevel_t; + +/** + * @brief Severity values used by Operational Events. + * + * These values are used both for event reporting in \ref nvmlEventSetWait_v3_t and for subscription + * filtering in \ref nvmlGpuOperationalEventConfig_v1_t. Higher numeric values represent more + * selective severities. \c NVML_OPERATIONAL_EVENT_SEVERITY_ALL disables severity filtering when + * used as a subscription threshold. Event data may contain newer severity values that are not + * named in this header; clients should handle unrecognized numeric values. + */ +typedef enum +{ + NVML_OPERATIONAL_EVENT_SEVERITY_ALL = 0, //!< Matches all Operational Event severities. + NVML_OPERATIONAL_EVENT_SEVERITY_INFORMATIONAL = 10, //!< Informational event. + NVML_OPERATIONAL_EVENT_SEVERITY_CORRECTED = 20, //!< Corrected error event. + NVML_OPERATIONAL_EVENT_SEVERITY_RECOVERABLE = 30, //!< Recoverable error event. + NVML_OPERATIONAL_EVENT_SEVERITY_FATAL = 40, //!< Fatal error event. +} nvmlOperationalEventSeverity_t; + +/** + * @brief Event data formats returned by \ref nvmlEventSetWait_v3. + */ +typedef enum +{ + NVML_EVENT_DATA_TYPE_NVML_EVENT = 0, //!< NVML event-bit data. \c eventType contains an NVML event bit. + NVML_EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT = 1, //!< Structured GPU Operational Event data. +} nvmlEventDataType_t; + +#define NVML_GPU_INSTANCE_ID_ANY 0xFFFFFFFFU //!< Sentinel value used when no MIG GPU instance ID applies. +#define NVML_COMPUTE_INSTANCE_ID_ANY 0xFFFFFFFFU //!< Sentinel value used when no MIG compute instance ID applies. + +#define NVML_OPERATIONAL_EVENT_ATTR_UNCONTAINED (1u << 0) //!< Event reports an uncontained condition. +#define NVML_OPERATIONAL_EVENT_ATTR_LATENT (1u << 1) //!< Event reports a latent condition. +#define NVML_OPERATIONAL_EVENT_ATTR_PROPAGATED (1u << 2) //!< Event was propagated from another source. +#define NVML_OPERATIONAL_EVENT_ATTR_COMPONENT_RESET (1u << 3) //!< Event involved a component reset. +#define NVML_OPERATIONAL_EVENT_ATTR_THRESHOLD_EXCEEDED (1u << 4) //!< Event reports an exceeded threshold. +#define NVML_OPERATIONAL_EVENT_ATTR_PRIMARY (1u << 5) //!< Event is the primary event in its group. +#define NVML_OPERATIONAL_EVENT_ATTR_OVERFLOW (1u << 6) //!< One or more events or associated payloads were dropped before this event was returned. + +#define NVML_OPERATIONAL_EVENT_GROUP_ATTR_RECOVERED (1u << 0) //!< Event group reports a recovered condition. +#define NVML_OPERATIONAL_EVENT_GROUP_ATTR_PREVERR (1u << 1) //!< Event group reports a previous error condition. +#define NVML_OPERATIONAL_EVENT_GROUP_ATTR_SIMULATED (1u << 2) //!< Event group was generated by simulation or testing. + +/** + * @brief NVML-defined GPU Operational Event context classifications. + * + * These values describe the NVML public interpretation of a context payload. The + * original source-defined context type is returned separately in + * \ref nvmlEventSetGetContextInfo_v1_t::sourceEventContextType. + */ +typedef enum +{ + NVML_GPU_OPERATIONAL_EVENT_CONTEXT_TYPE_UNKNOWN = 0, //!< No NVML public interpretation is defined for this context payload. + NVML_GPU_OPERATIONAL_EVENT_CONTEXT_TYPE_LEGACY_XID = 1, //!< Context payload can be decoded with \ref nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1. +} nvmlGpuOperationalEventContextType_t; + +/** + * @brief Parameters for retrieving the number of context records associated with the most recent event. + */ +typedef struct +{ + unsigned int count; //!< [out] Number of context records associated with the most recent event. +} nvmlEventSetGetContextCount_v1_t; + +/** + * @brief Parameters for retrieving context metadata associated with the most recent event. + */ +typedef struct +{ + unsigned int index; //!< [in] Zero-based context index. + unsigned int nvmlGpuOperationalEventContextType; //!< [out] \ref nvmlGpuOperationalEventContextType_t value describing the NVML public interpretation of the context payload. + unsigned int sourceEventContextType; //!< [out] Source-defined context payload type identifier carried by the event. + unsigned int dataSize; //!< [out] Context payload size in bytes, excluding alignment padding. + unsigned short dataFormatVersion; //!< [out] Payload format version for \c sourceEventContextType. +} nvmlEventSetGetContextInfo_v1_t; + +/** + * @brief Parameters for retrieving raw context data associated with the most recent event. + */ +typedef struct +{ + void *data; //!< [in] Optional caller-owned buffer that receives the raw context payload. + unsigned int index; //!< [in] Zero-based context index. + unsigned int dataSize; //!< [in,out] Size of \c data on input; actual or required size on output. +} nvmlEventSetGetContextData_v1_t; + +/** + * @brief Parameters for retrieving decoded GPU legacy-Xid context data. + */ +typedef struct +{ + unsigned int index; //!< [in] Zero-based context index. + unsigned int xidCode; //!< [out] Legacy Xid code carried in a GPU Operational Event context. +} nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1_t; + /** * System Event Set */ @@ -3182,6 +3727,20 @@ typedef nvmlSystemEventSetWaitRequest_v1_t nvmlSystemEventSetWaitRequest_t; */ #define nvmlClocksEventReasonDisplayClockSetting 0x0000000000000100LL +/** Board limit + * + * The board limit (operating) policy is currently limiting the GPU clocks. + * + */ +#define nvmlClocksEventReasonBoardLimit 0x0000000000000200LL //!< Board limit policy is limiting clocks. + +/** Reliability + * + * The reliability policy is currently limiting the GPU clocks. + * + */ +#define nvmlClocksEventReasonReliability 0x0000000000000400LL //!< Reliability policy is limiting clocks. + /** Bit mask representing no clocks throttling * * Clocks are as high as possible. @@ -3195,13 +3754,19 @@ typedef nvmlSystemEventSetWaitRequest_v1_t nvmlSystemEventSetWaitRequest_t; | nvmlClocksEventReasonGpuIdle \ | nvmlClocksEventReasonApplicationsClocksSetting \ | nvmlClocksEventReasonSwPowerCap \ - | nvmlClocksThrottleReasonHwSlowdown \ + | nvmlClocksThrottleReasonHwSlowdown \ | nvmlClocksEventReasonSyncBoost \ | nvmlClocksEventReasonSwThermalSlowdown \ - | nvmlClocksThrottleReasonHwThermalSlowdown \ - | nvmlClocksThrottleReasonHwPowerBrakeSlowdown \ + | nvmlClocksThrottleReasonHwThermalSlowdown \ + | nvmlClocksThrottleReasonHwPowerBrakeSlowdown \ | nvmlClocksEventReasonDisplayClockSetting \ +<<<<<<< HEAD ) +======= + | nvmlClocksEventReasonBoardLimit \ + | nvmlClocksEventReasonReliability \ +) //!< Bitmask of all clock event reasons. +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** * @deprecated Use \ref nvmlClocksEventReasonGpuIdle instead @@ -3620,6 +4185,29 @@ typedef struct #define NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_INCORRECT_CONFIGURATION 0xf //!< Fabric Health Mask Width for Incorrect Configuration /** +<<<<<<< HEAD +======= + * Fabric Partition Assigned + */ +#define NVML_GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_NOT_SUPPORTED 0 //!< Fabric Health Mask: Partition Assigned not supported +#define NVML_GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_TRUE 1 //!< Fabric Health Mask: Partition is Assigned +#define NVML_GPU_FABRIC_HEALTH_MASK_PARTITION_ASSIGNED_FALSE 2 //!< Fabric Health Mask: Partition is not Assigned + +#define NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_PARTITION_ASSIGNED 12 //!< Fabric Health Mask Bit Shift for Partition Assigned +#define NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_PARTITION_ASSIGNED 0x3 //!< Fabric Health Mask Width for Partition Assigned + +/** + * Global Fabric Manager State + */ +#define NVML_GPU_FABRIC_HEALTH_MASK_GFM_STATE_NOT_SUPPORTED 0 //!< Fabric Health Mask: Global Fabric Manager State not supported +#define NVML_GPU_FABRIC_HEALTH_MASK_GFM_STATE_CONNECTED 1 //!< Fabric Health Mask: Global Fabric Manager State is Connected +#define NVML_GPU_FABRIC_HEALTH_MASK_GFM_STATE_DISCONNECTED 2 //!< Fabric Health Mask: Global Fabric Manager State is Disconnected + +#define NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_GFM_STATE 14 //!< Fabric Health Mask Bit Shift for Global Fabric Manager State +#define NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_GFM_STATE 0x3 //!< Fabric Health Mask Width for Global Fabric Manager State + +/** +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) * Fabric Health */ #define NVML_GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED 0 //!< Fabric Health Summary: Not supported @@ -3672,11 +4260,14 @@ typedef struct #define nvmlGpuFabricInfo_v2 NVML_STRUCT_VERSION(GpuFabricInfo, 2) /** -* GPU Fabric information (v3). -*/ + * GPU Fabric information (v3). + * + * @deprecated nvmlGpuFabricInfo_v3_t is deprecated and will be removed in a future release. + * Use nvmlGpuFabricInfo_v4_t instead. + */ typedef struct { - unsigned int version; //!< Structure version identifier (set to nvmlGpuFabricInfo_v2) + unsigned int version; //!< Structure version identifier (set to nvmlGpuFabricInfo_v3) unsigned char clusterUuid[NVML_GPU_FABRIC_UUID_LEN]; //!< Uuid of the cluster to which this GPU belongs nvmlReturn_t status; //!< Probe Error status, if any. Must be checked only if Probe state returns "complete". unsigned int cliqueId; //!< ID of the fabric clique to which this GPU belongs @@ -3692,80 +4283,139 @@ typedef nvmlGpuFabricInfo_v3_t nvmlGpuFabricInfoV_t; */ #define nvmlGpuFabricInfo_v3 NVML_STRUCT_VERSION(GpuFabricInfo, 3) -/** @} */ - -/***************************************************************************************************/ -/** @defgroup nvmlInitializationAndCleanup Initialization and Cleanup - * This chapter describes the methods that handle NVML initialization and cleanup. - * It is the user's responsibility to call \ref nvmlInit_v2() before calling any other methods, and - * nvmlShutdown() once NVML is no longer being used. - * @{ +/** + * Maximum number of fabric clique entries. */ -/***************************************************************************************************/ +#define NVML_GPU_FABRIC_CLIQUE_MAX 64 +<<<<<<< HEAD #define NVML_INIT_FLAG_NO_GPUS 1 //!< Don't fail nvmlInit() when no GPUs are found #define NVML_INIT_FLAG_NO_ATTACH 2 //!< Don't attach GPUs +======= +#define NVML_GPU_FABRIC_CLIQUE_TYPE_UNICAST_POINTER 0 //!< Unicast pointer-based access +#define NVML_GPU_FABRIC_CLIQUE_TYPE_MULTICAST_POINTER 1 //!< Multicast pointer-based access +#define NVML_GPU_FABRIC_CLIQUE_TYPE_UNICAST_LOGICAL_ENDPOINT 2 //!< Unicast logical-endpoint-based access +#define NVML_GPU_FABRIC_CLIQUE_TYPE_MULTICAST_LOGICAL_ENDPOINT 3 //!< Multicast logical-endpoint-based access +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** - * Initialize NVML, but don't initialize any GPUs yet. + * Fabric clique entry. Each entry represents a single (type, id) pair + * describing a clique assignment for a given fabric operation type. + */ +typedef struct +{ + unsigned char type; //!< Clique type. See NVML_GPU_FABRIC_CLIQUE_TYPE_* + unsigned int id; //!< Clique ID assigned by the Fabric Manager +} nvmlGpuFabricClique_v1_t; + +/** + * GPU Fabric information (v4). * - * \note nvmlInit_v3 introduces a "flags" argument, that allows passing boolean values - * modifying the behaviour of nvmlInit(). - * \note In NVML 5.319 new nvmlInit_v2 has replaced nvmlInit"_v1" (default in NVML 4.304 and older) that - * did initialize all GPU devices in the system. + * Extends v3 by replacing the single \a cliqueId field with a flat array + * of (type, id) clique entries. The legacy v3 \a cliqueId maps to the + * \a id of the first \ref NVML_GPU_FABRIC_CLIQUE_TYPE_UNICAST_POINTER entry. + */ +typedef struct +{ + unsigned char clusterUuid[NVML_GPU_FABRIC_UUID_LEN]; //!< Uuid of the cluster to which this GPU belongs + nvmlReturn_t status; //!< Probe Error status, if any. Must be checked only if state returns "complete". + nvmlGpuFabricClique_v1_t cliques[NVML_GPU_FABRIC_CLIQUE_MAX]; //!< Clique entries, sorted by ascending type then ascending id + unsigned int numCliques; //!< Number of valid entries in \a cliques[] + nvmlGpuFabricState_t state; //!< Current Probe State. See NVML_GPU_FABRIC_STATE_* + unsigned int healthMask; //!< GPU Fabric health Status Mask. See NVML_GPU_FABRIC_HEALTH_MASK_* + unsigned char healthSummary; //!< GPU Fabric health summary. See NVML_GPU_FABRIC_HEALTH_SUMMARY_* +} nvmlGpuFabricInfo_v4_t; + +/** @} */ + +/** + * @defgroup nvmlInitializationAndCleanup Initialization and Cleanup + * @brief NVML Methods that handle the NVML Library initialization and cleanup. + * + * This chapter describes the methods that handle NVML initialization and cleanup. + * It is the user's responsibility to call \ref nvmlInit_v2() before calling any + * other methods, and \ref nvmlShutdown() once NVML is no longer being used. + * @{ + */ + +#define NVML_INIT_FLAG_NO_GPUS (1 << 0) //!< Initialize the NVML Library even when no devices are found. +#define NVML_INIT_FLAG_NO_ATTACH (1 << 1) //!< Initialize the NVML Library without attaching any discovered devices. +#define NVML_INIT_FLAG_FORCE_INIT (1 << 2) //!< Force device initialization even when a previous nvmlInit was called with the NO_GPUS and NO_ATTACH flags. + +/** + * @brief Initialize the NVML Library lazily, without allocating any device state. * - * This allows NVML to communicate with a GPU - * when other GPUs in the system are unstable or in a bad state. When using this API, GPUs are - * discovered and initialized in nvmlDeviceGetHandleBy* functions instead. + * This will initialize the NVML Library state without enumerating any discovered + * devices. This will allow NVML to communicate with a device, even if other devices + * are in an unstable or bad state. Enumeration of a device can be done by obtaining + * the device handle via the nvmlDeviceGetHandleBy* class of APIs. * - * \note To contrast nvmlInit_v2 with nvmlInit"_v1", NVML 4.304 nvmlInit"_v1" will fail when any detected GPU is in - * a bad or unstable state. + * This method needs to be called once before any usage of NVML Library APIs. * * For all products. * - * This method, should be called once before invoking any other methods in the library. - * A reference count of the number of initializations is maintained. Shutdown only occurs - * when the reference count reaches zero. - * * @return - * - \ref NVML_SUCCESS if NVML has been properly initialized - * - \ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running - * - \ref NVML_ERROR_NO_PERMISSION if NVML does not have permission to talk to the driver - * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * - \ref NVML_SUCCESS if the NVML Library was properly initialized. + * - \ref NVML_ERROR_DRIVER_NOT_LOADED if the NVIDIA driver is not running. + * - \ref NVML_ERROR_NO_PERMISSION if the NVML Library does not have permission to talk to the driver. + * - \ref NVML_ERROR_UNKNOWN if there is an unexpected error. + * + * @note A reference count of the number of initializations is maintained, and + * a corresponding call to \ref nvmlShutdown() needs to be issued once usage + * of the NVML Library is complete. Shutdown will only occur after the + * reference count reaches zero. + * + * @see nvmlShutdown() */ nvmlReturn_t DECLDIR nvmlInit_v2(void); /** - * nvmlInitWithFlags is a variant of nvmlInit(), that allows passing a set of boolean values - * modifying the behaviour of nvmlInit(). - * Other than the "flags" parameter it is completely similar to \ref nvmlInit_v2. + * @brief Initialize the NVML Library lazily, without allocating any device state, with additional init flags. + * + * A variant of \ref nvmlInit_v2(), this will initialize the NVML Library state without + * enumerating any discovered devices. An option to pass in additional flags + * is provided to modify the behavior of NVML Library init. The usage of these + * flags can be obtained from NVML_INIT_FLAG_*. These flags can be combined together. + * + * Other than the "flags" parameter, this method is completely identical to \ref nvmlInit_v2(). * * For all products. * - * @param flags behaviour modifier flags + * @param[in] flags NVML_INIT_FLAG_* flags that can modify NVML Init behavior. * * @return - * - \ref NVML_SUCCESS if NVML has been properly initialized - * - \ref NVML_ERROR_DRIVER_NOT_LOADED if NVIDIA driver is not running - * - \ref NVML_ERROR_NO_PERMISSION if NVML does not have permission to talk to the driver - * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * - \ref NVML_SUCCESS if the NVML Library was properly initialized. + * - \ref NVML_ERROR_DRIVER_NOT_LOADED if the NVIDIA driver is not running. + * - \ref NVML_ERROR_NO_PERMISSION if the NVML Library does not have permission to talk to the driver. + * - \ref NVML_ERROR_UNKNOWN if there is an unexpected error. + * + * @note A reference count of the number of initializations is maintained, and + * a corresponding call to \ref nvmlShutdown() needs to be issued once usage + * of the NVML Library is complete. Shutdown will only occur after the + * reference count reaches zero. + * + * @see nvmlShutdown() */ nvmlReturn_t DECLDIR nvmlInitWithFlags(unsigned int flags); /** - * Shut down NVML by releasing all GPU resources previously allocated with \ref nvmlInit_v2(). + * @brief Shut down and cleanup NVML Library state. * - * For all products. + * This will shut down and cleanup NVML Library state by releasing all device and + * library resources previously allocated with \ref nvmlInit_v2() or \ref nvmlInitWithFlags(). + * This should be called after all NVML work is done, and once for each call to + * \ref nvmlInit_v2() or \ref nvmlInitWithFlags(). * - * This method should be called after NVML work is done, once for each call to \ref nvmlInit_v2() - * A reference count of the number of initializations is maintained. Shutdown only occurs - * when the reference count reaches zero. For backwards compatibility, no error is reported if - * nvmlShutdown() is called more times than nvmlInit(). + * Complete shutdown will only occur when the reference count of all prior NVML + * initializations reaches zero. No error will be reported if this is called + * more times than \ref nvmlInit_v2() or \ref nvmlInitWithFlags(). + * + * For all products. * * @return - * - \ref NVML_SUCCESS if NVML has been properly shut down - * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * - \ref NVML_SUCCESS if the NVML Library was properly shut down. + * - \ref NVML_ERROR_UNINITIALIZED if the NVML Library was not previously initialized. + * - \ref NVML_ERROR_UNKNOWN if there is an unexpected error. */ nvmlReturn_t DECLDIR nvmlShutdown(void); @@ -3850,6 +4500,65 @@ const DECLDIR char* nvmlErrorString(nvmlReturn_t result); /** @} */ +/** + * @brief Configuration for registering structured GPU Operational Events with + * \ref nvmlEventSetRegisterGpuOperationalEvents_v1. + * + * Initialize the structure to zero and then set \c uuid to select the target GPU. Default values + * register new device-wide events with log-level and severity filters disabled. + */ +typedef struct nvmlGpuOperationalEventConfig_v1_st +{ + char uuid[NVML_DEVICE_UUID_V2_BUFFER_SIZE]; //!< [in] Target GPU UUID string. Must be a NULL-terminated "GPU-..." UUID. + unsigned int minLogLevel; //!< [in] \ref nvmlGpuOperationalEventLogLevel_t value for the minimum GPU Operational Event log level. \c NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_ALL means no filter. + unsigned int minSeverity; //!< [in] \ref nvmlOperationalEventSeverity_t value for the minimum Operational Event severity threshold. \c NVML_OPERATIONAL_EVENT_SEVERITY_ALL means no filter. +} nvmlGpuOperationalEventConfig_v1_t; + +/** + * @brief Parameters for waiting on an event set with \ref nvmlEventSetWait_v3. + * + * This structure supplies the wait timeout and returns either NVML event-bit or structured event data. + * For NVML event-bit data, + * \c dataType is \ref NVML_EVENT_DATA_TYPE_NVML_EVENT, \c eventType contains the NVML event bit, + * fields such as \c eventData, \c gpuInstanceId, and \c computeInstanceId preserve existing + * semantics, and structured-only fields are set to 0 or empty values. For structured GPU Operational + * Events, \c dataType is \ref NVML_EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT, \c eventType is set to + * \ref nvmlEventTypeNone, and the structured metadata fields are populated. + * + * Clients that subscribe to both NVML event-bit and structured formats on the same event set should branch + * on \c dataType to determine which format was returned. During the transition period, the + * same underlying incident may generate both an NVML event-bit notification and a structured notification. + * + */ +typedef struct +{ + unsigned int timeoutMs; //!< [in] Maximum amount of time to wait, in milliseconds. + unsigned int dataType; //!< [out] \ref nvmlEventDataType_t value indicating which event-data format is populated. + char uuid[NVML_DEVICE_UUID_V2_BUFFER_SIZE]; //!< [out] UUID for the GPU where the event occurred. Empty if unavailable. + char sourceModule[16]; //!< [out] Source module signature for structured events. Not guaranteed to be NULL-terminated. Empty for NVML event-bit events. + unsigned long long eventType; //!< [out] NVML event bit for \ref NVML_EVENT_DATA_TYPE_NVML_EVENT events; \ref nvmlEventTypeNone for structured events. + unsigned long long eventData; //!< [out] Xid code for \ref nvmlEventTypeXidCriticalError, or 0 when not applicable. + unsigned long long groupCursor; //!< [out] Structured event group identifier. 0 for NVML event-bit events. + unsigned long long instanceId; //!< [out] Structured event sequence identifier. 0 for NVML event-bit events. + unsigned long long timestampUsec; //!< [out] Event timestamp in microseconds. 0 if unavailable. + unsigned long long traceId; //!< [out] Structured event trace identifier. 0 for NVML event-bit events. + unsigned int gpuInstanceId; //!< [out] MIG GPU instance ID for NVML event-bit data, or \c NVML_GPU_INSTANCE_ID_ANY when not applicable. + unsigned int computeInstanceId; //!< [out] MIG compute instance ID for NVML event-bit data, or \c NVML_COMPUTE_INSTANCE_ID_ANY when not applicable. + unsigned int severity; //!< [out] \ref nvmlOperationalEventSeverity_t value for structured events. May contain newer severity values not named in this header. \c NVML_OPERATIONAL_EVENT_SEVERITY_ALL for NVML event-bit events. + unsigned int categoryId; //!< [out] Source-defined structured event category identifier. 0 for NVML event-bit events. + unsigned int moduleEventCode; //!< [out] Source-module-defined event code. Interpret with \c sourceModule. 0 for NVML event-bit events. + unsigned int scope; //!< [out] Structured event scope identifier. 0 for NVML event-bit events. + unsigned int originator; //!< [out] Structured event originator identifier. 0 for NVML event-bit events. + unsigned int moduleInstance; //!< [out] Structured event module instance identifier. 0 for NVML event-bit events. + unsigned int chipletId; //!< [out] Structured event chiplet identifier. 0 for NVML event-bit events. + unsigned int logLevel; //!< [out] \ref nvmlGpuOperationalEventLogLevel_t value for structured GPU Operational Events. May contain newer log-level values not named in this header. \c NVML_GPU_OPERATIONAL_EVENT_LOG_LEVEL_ALL for NVML event-bit events. + unsigned int attributes; //!< [out] Bitmask of \c NVML_OPERATIONAL_EVENT_ATTR_* values for structured events. May contain newer bits not named in this header. 0 for NVML event-bit events. May include \c NVML_OPERATIONAL_EVENT_ATTR_OVERFLOW if events or associated payloads were dropped. + unsigned int groupCperSize; //!< [out] Associated CPER record size in bytes. 0 when unavailable. + unsigned int groupAttributes; //!< [out] Bitmask of \c NVML_OPERATIONAL_EVENT_GROUP_ATTR_* values for structured events. May contain newer bits not named in this header. 0 for NVML event-bit events. + unsigned char groupSize; //!< [out] Total number of events in the structured event group. 0 for NVML event-bit events. + unsigned char groupIndex; //!< [out] Zero-based index within the structured event group. 0 for NVML event-bit events. +} nvmlEventSetWait_v3_t; + /***************************************************************************************************/ /** @defgroup nvmlSystemQueries System Queries * This chapter describes the queries that NVML can perform against the local system. These queries @@ -6224,7 +6933,6 @@ nvmlReturn_t DECLDIR nvmlDeviceGetPowerMizerMode_v1(nvmlDevice_t device, nvmlDev nvmlReturn_t DECLDIR nvmlDeviceSetPowerMizerMode_v1(nvmlDevice_t device, nvmlDevicePowerMizerModes_v1_t *powerMizerMode); - /** * Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded * @@ -6264,6 +6972,58 @@ nvmlReturn_t DECLDIR nvmlDeviceGetTotalEnergyConsumption(nvmlDevice_t device, un */ nvmlReturn_t DECLDIR nvmlDeviceGetEnforcedPowerLimit(nvmlDevice_t device, unsigned int *limit); +/** + * Request to enable or disable Adaptive TGP Mode for a GPU. + * + * %RUBIN_OR_NEWER% + * Requires root/admin privileges. + * + * Adaptive TGP Mode assigns tailored power budgets to two binned GPU parts within the same + * module, reducing node-to-node and rack-to-rack performance variation. + * An out-of-band administrator policy may override the in-band request; + * use \ref nvmlDeviceGetAdaptiveTgpModeInfo_v1 to query the arbitrated state. + * + * @param device The identifier of the target device + * @param mode NVML_FEATURE_ENABLED or NVML_FEATURE_DISABLED + * + * @return + * - \ref NVML_SUCCESS if the request was accepted + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a mode is not a valid \ref nvmlEnableState_t + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support Adaptive TGP Mode + * - \ref NVML_ERROR_NO_PERMISSION if the caller lacks root/admin privileges + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlDeviceGetAdaptiveTgpModeInfo_v1() + */ +nvmlReturn_t DECLDIR nvmlDeviceSetAdaptiveTgpMode_v1(nvmlDevice_t device, nvmlEnableState_t mode); + +/** + * Retrieves Adaptive TGP Mode state and telemetry for a GPU. + * + * %RUBIN_OR_NEWER% + * + * Populates \a info with the in-band request, out-of-band enablement status, out-of-band + * override status, arbitrated enablement state, and adjusted base power limit. The adjusted base + * power is valid only when feature is enabled. + * See \ref nvmlAdaptiveTgpModeInfo_v1_t for field details. + * + * @param device The identifier of the target device + * @param info Reference in which to return the Adaptive TGP Mode information + * + * @return + * - \ref NVML_SUCCESS if \a info has been populated + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a info is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support Adaptive TGP Mode + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlDeviceSetAdaptiveTgpMode_v1() + */ +nvmlReturn_t DECLDIR nvmlDeviceGetAdaptiveTgpModeInfo_v1(nvmlDevice_t device, nvmlAdaptiveTgpModeInfo_v1_t *info); + /** * Retrieves the current GOM and pending GOM (the one that GPU will switch to after reboot). * @@ -6335,7 +7095,65 @@ nvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo(nvmlDevice_t device, nvmlMemory_t * nvmlReturn_t DECLDIR nvmlDeviceGetMemoryInfo_v2(nvmlDevice_t device, nvmlMemory_v2_t *memory); /** +<<<<<<< HEAD * Retrieves the current compute mode for the device. +======= + * @brief Set the memory limits of the device for the cgroup partition. + * + * This method will set the memory limits of the device for the specified cgroup + * partition. The limits will indicate the amount of memory that can be allocated + * for the device for use of an application in that cgroup. + * + * For all products. + * For Linux only. + * Requires root/admin permissions. + * + * @param[in] device The identifier of the target device + * @param[in] limits A pointer to \ref nvmlSetMemoryLimits_v1_t where the limits can be set + * + * @return + * - \ref NVML_SUCCESS if the operation was successful + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_NO_PERMISSION if the user doesn't have permission to perform this operation + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid, \a limits is NULL, + * the softLimit exceeds the hardLimit, or a limit + * exceeds total device memory + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_OPERATING_SYSTEM if the cgroup path cannot be opened + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @note MIG handles are not supported + */ +nvmlReturn_t DECLDIR nvmlDeviceSetMemoryLimits_v1(nvmlDevice_t device, nvmlSetMemoryLimits_v1_t *limits); + +/** + * @brief Get the memory limits of the device for the cgroup partition. + * + * This method will get the current memory limits of the device for the specified + * cgroup partition, as well as the current memory used against the limits. + * + * For all products. + * For Linux only. + * + * @param[in] device The identifier of the target device + * @param[in,out] limits A pointer to \ref nvmlGetMemoryLimits_v1_t + * + * @return + * - \ref NVML_SUCCESS if the operation was successful + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a limits is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_NOT_FOUND if the limits were not found for this device and cgroup + * - \ref NVML_ERROR_OPERATING_SYSTEM if the cgroup path cannot be opened + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @note MIG handles are not supported + */ +nvmlReturn_t DECLDIR nvmlDeviceGetMemoryLimits_v1(nvmlDevice_t device, nvmlGetMemoryLimits_v1_t *limits); + +/** + * Retrieves the current compute mode for the device or MIG device. +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) * * For all products. * @@ -6880,6 +7698,8 @@ nvmlReturn_t DECLDIR nvmlDeviceGetFBCSessions(nvmlDevice_t device, unsigned int * * On Windows platforms the device driver can run in either WDDM, MCDM or WDM (TCC) modes. If a display is attached * to the device it must run in WDDM mode. MCDM mode is preferred if a display is not attached. TCC mode is deprecated. + * Driver-model availability is architecture-specific; attempting to set an unsupported driver model returns + * NVML_ERROR_NOT_SUPPORTED. * * See \ref nvmlDriverModel_t for details on available driver models. * @@ -7435,6 +8255,37 @@ DEPRECATED(13.0) nvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfo(nvmlDevice_t de nvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfoV(nvmlDevice_t device, nvmlGpuFabricInfoV_t *gpuFabricInfo); +/** + * Retrieves GPU fabric information including per-type clique assignments. + * + * Returns fabric clique data via \ref nvmlGpuFabricInfo_v4_t. + * Each entry in the \a cliques array is a (type, id) pair representing a single + * clique assignment. The number of valid entries is given by \a numCliques. + * Entries are sorted by ascending type (NVML_GPU_FABRIC_CLIQUE_TYPE_*), then by + * ascending clique id within each type. + * + * On Hopper systems, the driver reports Unicast Pointer and Multicast Pointer cliques. + * On Blackwell and Rubin, Unicast Logical Endpoint and Multicast Logical Endpoint + * are additionally reported. + * + * \code + * nvmlGpuFabricInfo_v4_t fabricInfo = {0}; + * nvmlReturn_t result = nvmlDeviceGetGpuFabricInfo_v4(device, &fabricInfo); + * \endcode + * + * For Hopper &tm; or newer fully supported devices. + * + * @param device The identifier of the target device + * @param gpuFabricInfo Information about GPU fabric state including per-type cliques + * + * @return + * - \ref NVML_SUCCESS Upon success + * - \ref NVML_ERROR_NOT_SUPPORTED If \a device doesn't support gpu fabric + * - \ref NVML_ERROR_INVALID_ARGUMENT If \a device or \a gpuFabricInfo is invalid + */ +nvmlReturn_t DECLDIR nvmlDeviceGetGpuFabricInfo_v4(nvmlDevice_t device, + nvmlGpuFabricInfo_v4_t *gpuFabricInfo); + /** * Get Conf Computing System capabilities. * @@ -8122,44 +8973,111 @@ nvmlReturn_t DECLDIR nvmlDeviceGetProcessesUtilizationInfo(nvmlDevice_t device, /** * Get platform information of this device. * - * %BLACKWELL_OR_NEWER% + * %BLACKWELL_OR_NEWER% + * + * See \ref nvmlPlatformInfo_v2_t for more information on the struct. + * + * @param device The identifier of the target device + * @param platformInfo Pointer to the caller-provided structure of nvmlPlatformInfo_t. + * + * @return + * - \ref NVML_SUCCESS If \a platformInfo has been retrieved + * - \ref NVML_ERROR_INVALID_ARGUMENT If \a device is invalid or \a platformInfo is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED If the device does not support this feature + * - \ref NVML_ERROR_MEMORY if system memory is insufficient + * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH If the version of \a nvmlPlatformInfo_t is invalid + * - \ref NVML_ERROR_UNKNOWN On any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetPlatformInfo(nvmlDevice_t device, nvmlPlatformInfo_t *platformInfo); + +/** + * Retrieves the Per Device Identifier (PDI) associated with this device. + * + * For Pascal &tm; or newer fully supported devices. + * + * See \ref nvmlPdi_v1_t for more information on the struct. + * + * @param[in] device The identifier of the target device + * @param[out] pdi Reference to the caller-provided structure to return the GPU PDI + * + * @return + * - \ref NVML_SUCCESS if \a pdi has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid, or \a pdi is NULL + * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH if the version is invalid/unsupported + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetPdi(nvmlDevice_t device, nvmlPdi_t *pdi); + +<<<<<<< HEAD +======= +/** + * Set the hostname for the device. + * + * For Blackwell &tm; or newer fully supported devices. + * Requires root/admin permissions. + * Supported on Linux only. + * + * Sets a hostname string for the GPU device. This operation takes effect immediately. * - * See \ref nvmlPlatformInfo_v2_t for more information on the struct. + * The hostname is not stored persistently across GPU resets or driver reloads. * * @param device The identifier of the target device - * @param platformInfo Pointer to the caller-provided structure of nvmlPlatformInfo_t. + * @param hostname Reference to the caller-provided \ref nvmlHostname_v1_t struct containing the hostname * * @return - * - \ref NVML_SUCCESS If \a platformInfo has been retrieved - * - \ref NVML_ERROR_INVALID_ARGUMENT If \a device is invalid or \a platformInfo is NULL - * - \ref NVML_ERROR_NOT_SUPPORTED If the device does not support this feature - * - \ref NVML_ERROR_MEMORY if system memory is insufficient - * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH If the version of \a nvmlPlatformInfo_t is invalid - * - \ref NVML_ERROR_UNKNOWN On any unexpected error + * - \ref NVML_SUCCESS if the hostname was set successfully + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a hostname is NULL or contains invalid characters + * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature + * - \ref NVML_ERROR_NO_PERMISSION if the user doesn't have permission to perform this operation + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlDeviceGetHostname_v1() */ -nvmlReturn_t DECLDIR nvmlDeviceGetPlatformInfo(nvmlDevice_t device, nvmlPlatformInfo_t *platformInfo); +nvmlReturn_t DECLDIR nvmlDeviceSetHostname_v1(nvmlDevice_t device, nvmlHostname_v1_t *hostname); /** - * Retrieves the Per Device Identifier (PDI) associated with this device. + * Get the hostname for the device. * - * For Pascal &tm; or newer fully supported devices. + * For Blackwell &tm; or newer fully supported devices. + * Supported on Linux only. * - * See \ref nvmlPdi_v1_t for more information on the struct. + * Retrieves the hostname string for the GPU device that was set using \ref nvmlDeviceSetHostname_v1(). * - * @param[in] device The identifier of the target device - * @param[out] pdi Reference to the caller-provided structure to return the GPU PDI + * @param device The identifier of the target device + * @param hostname Reference to the caller-provided \ref nvmlHostname_v1_t struct to return the hostname * * @return - * - \ref NVML_SUCCESS if \a pdi has been set + * - \ref NVML_SUCCESS if the hostname was retrieved successfully * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid, or \a pdi is NULL - * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH if the version is invalid/unsupported + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a hostname is NULL * - \ref NVML_ERROR_NOT_SUPPORTED if the device does not support this feature * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlDeviceSetHostname_v1() */ -nvmlReturn_t DECLDIR nvmlDeviceGetPdi(nvmlDevice_t device, nvmlPdi_t *pdi); +nvmlReturn_t DECLDIR nvmlDeviceGetHostname_v1(nvmlDevice_t device, nvmlHostname_v1_t *hostname); + +/** + * Get Performance Metric samples + * + * See \ref nvmlPerfMetricsSamples_v1_t for more information on the struct. + * + * @param[in] device The identifier of the target device + * @param[out] samples Reference to \a nvmlPerfMetricsSamples_v1_t. + * + * @return + * - \ref NVML_SUCCESS if the query is successful + * - \ref NVML_ERROR_NOT_SUPPORTED if this query is not supported by the device + **/ +nvmlReturn_t DECLDIR nvmlDevicePerfMetricsGetSamples_v1(nvmlDevice_t device, nvmlPerfMetricsSamples_v1_t *samples); +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** @} */ /***************************************************************************************************/ @@ -8356,6 +9274,9 @@ nvmlReturn_t DECLDIR nvmlDeviceClearEccErrorCounts(nvmlDevice_t device, nvmlEccC * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached * to the device it must run in WDDM mode. * + * Driver-model availability is architecture-specific; attempting to set an unsupported driver model returns + * NVML_ERROR_NOT_SUPPORTED. + * * It is possible to force the change to WDM (TCC) while the display is still attached with a force flag (nvmlFlagForce). * This should only be done if the host is subsequently powered down and the display is detached from the device * before the next reboot. @@ -8883,9 +9804,16 @@ nvmlReturn_t DECLDIR nvmlDeviceClearAccountingPids(nvmlDevice_t device); /* * NVML_FI_DEV_NVLINK_GET_STATE state enums */ +<<<<<<< HEAD #define NVML_NVLINK_STATE_INACTIVE 0x0 #define NVML_NVLINK_STATE_ACTIVE 0x1 #define NVML_NVLINK_STATE_SLEEP 0x2 +======= +#define NVML_NVLINK_STATE_INACTIVE 0x0 //!< NVLink is inactive. +#define NVML_NVLINK_STATE_ACTIVE 0x1 //!< NVLink is active. +#define NVML_NVLINK_STATE_SLEEP 0x2 //!< NVLink is in sleep state. +#define NVML_NVLINK_STATE_ACTIVE_TRAFFIC_DISABLED 0x3 //!< NVLink is active, but not usable for traffic +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) #define NVML_NVLINK_TOTAL_SUPPORTED_BW_MODES 23 @@ -8916,6 +9844,21 @@ typedef struct typedef nvmlNvlinkSetBwMode_v1_t nvmlNvlinkSetBwMode_t; #define nvmlNvlinkSetBwMode_v1 NVML_STRUCT_VERSION(NvlinkSetBwMode, 1) +/** + * @brief Describes the parameters involved to setting Nvlink RBM mode asynchronously. + * + * This structure holds the parameters needed to correctly set a Device's Nvlink + * Reduced Bandwidth Mode asynchronously. Polling for NVML_GPU_FABRIC_STATE_COMPLETED + * from \ref nvmlDeviceGetGpuFabricInfoV() is needed to check if the setting was applied. + * + */ +typedef struct +{ + unsigned int bSetBest; //!< [in] - Set to the best available Bandwidth mode + unsigned int bwMode; //!< [in] - Requested Bandwidth mode to set. Values can be found from \ref nvmlDeviceGetNvlinkSupportedBwModes() + unsigned int asyncPollTimeoutMs; //!< [out] - Time in ms to poll to validate bandwidth setting. +} nvmlNvlinkSetBwModeAsync_v1_t; + /** * Struct to represent per device NVLINK information v1 */ @@ -9317,6 +10260,26 @@ nvmlReturn_t DECLDIR nvmlDeviceGetNvlinkBwMode(nvmlDevice_t device, nvmlReturn_t DECLDIR nvmlDeviceSetNvlinkBwMode(nvmlDevice_t device, nvmlNvlinkSetBwMode_t *setBwMode); +/** + * Set the NvLink Reduced Bandwidth Mode asynchronously for the device. Polling should be + * done by checking for \a NVML_GPU_FABRIC_STATE_COMPLETED from \ref nvmlDeviceGetGpuFabricInfoV(). + * + * %RUBIN_OR_NEWER% + * + * @param[in] device The identifier of the target device + * @param[in,out] setBwModeAsync Reference to \ref nvmlNvlinkSetBwModeAsync_v1_t + * + * @return + * - \ref NVML_SUCCESS if the Bandwidth mode was successfully set + * - \ref NVML_ERROR_INVALID_ARGUMENT if device or \p setBwModeAsync is invalid + * - \ref NVML_ERROR_NO_PERMISSION if user does not have permission to change Bandwidth mode + * - \ref NVML_ERROR_NOT_SUPPORTED if this feature is not supported by the device + * + * @see nvmlDeviceGetGpuFabricInfoV() + * + **/ +nvmlReturn_t DECLDIR nvmlDeviceSetNvlinkBwModeAsync_v1(nvmlDevice_t device, nvmlNvlinkSetBwModeAsync_v1_t *setBwModeAsync); + /** * Query NVLINK information associated with this device. * @@ -9334,6 +10297,66 @@ nvmlReturn_t DECLDIR nvmlDeviceSetNvlinkBwMode(nvmlDevice_t device, */ nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkInfo(nvmlDevice_t device, nvmlNvLinkInfo_t *info); +/** + * Per-link NVLink telemetry sample types. + */ +typedef enum +{ + NVML_NVLINK_TELEMETRY_SAMPLE_TYPE_THROUGHPUT_RAW_TX = 0, //!< Raw TX flit counter for a single link + NVML_NVLINK_TELEMETRY_SAMPLE_TYPE_THROUGHPUT_RAW_RX = 1, //!< Raw RX flit counter for a single link + NVML_NVLINK_TELEMETRY_SAMPLE_TYPE_COUNT = 2 //!< Number of valid sample types +} nvmlNvlinkTelemetrySampleType_t; + +/** + * Struct representing one (link, metric) telemetry request / response slot. + */ +typedef struct +{ + unsigned int linkId; //!<[in] LinkId + unsigned int sampleType; //!<[in] Type of telemetry to sample, specified by `nvmlNvlinkTelemetrySampleType_t` + unsigned int sampleCount; //!<[in,out]: Number of samples users need to allocate. If set to 0, will return max + //! supported count of samples without touching the `samples` pointer. + unsigned long long *samples; //!<[in,out]: Array of samples allocated by the user. Can be set to NULL when getting count + nvmlReturn_t nvmlReturn; //!<[out]: Return code for retrieving this sample. This must be checked by the client + //! before looking at any output values, as they are invalid if `nvmlReturn != NVML_SUCCESS`. +} nvmlNvlinkTelemetrySample_v1_t; + +/** + * Batched NVLink telemetry request. + */ +typedef struct +{ + unsigned int telemetryCount; //!<[in] Number of valid entries in \a telemetrySamples + nvmlNvlinkTelemetrySample_v1_t *telemetrySamples; //!<[in,out] Caller-allocated array of \a telemetryCount request slots +} nvmlNvlinkTelemetrySamples_v1_t; + +/** + * \brief Retrieve a batch of historical NVLink per-link telemetry samples. + * + * Samples are taken at approximately 100 ms intervals. + * Intended for use with periodic polling every ~2 seconds. + * Longer polling intervals are possible, but can result in dropped samples + * if the supported `sampleCount` is too low for the given polling interval. + * + * %RUBIN_OR_NEWER% + * + * @param[in] device The device handle of the GPU to retrieve samples for + * @param[in,out] samples Request/response batch (see \ref nvmlNvlinkTelemetrySamples_v1_t) + * + * @return + * - \ref NVML_SUCCESS If the call succeeded. + * - \ref NVML_ERROR_INVALID_ARGUMENT If any required pointer is NULL, + * a given enum value is out of range, + * a slot's `linkId` is out of range, + * a slot's `sampleCount` is non-zero with a NULL `samples` pointer, or + * a slot's `sampleCount` is greater than the supported `sampleCount` for the given link. + * - \ref NVML_ERROR_GPU_IS_LOST If the target GPU has fallen off the bus or is otherwise inaccessible. + * - \ref NVML_ERROR_NOT_SUPPORTED If the given device does not support this API. + * - \ref NVML_ERROR_UNKNOWN On any unexpected error. + */ +nvmlReturn_t DECLDIR nvmlDeviceGetNvLinkTelemetrySamples_v1(nvmlDevice_t device, + nvmlNvlinkTelemetrySamples_v1_t *samples); + /** @} */ // @defgroup NvLink NvLink Methods /***************************************************************************************************/ @@ -9448,7 +10471,7 @@ nvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes(nvmlDevice_t device, unsig * @return * - \ref NVML_SUCCESS if the data has been set * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized - * - \ref NVML_ERROR_INVALID_ARGUMENT if \a data is NULL + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a set or \a data is NULL * - \ref NVML_ERROR_TIMEOUT if no event arrived in specified timeout or interrupt arrived * - \ref NVML_ERROR_GPU_IS_LOST if a GPU has fallen off the bus or is otherwise inaccessible * - \ref NVML_ERROR_UNKNOWN on any unexpected error @@ -9458,6 +10481,223 @@ nvmlReturn_t DECLDIR nvmlDeviceGetSupportedEventTypes(nvmlDevice_t device, unsig */ nvmlReturn_t DECLDIR nvmlEventSetWait_v2(nvmlEventSet_t set, nvmlEventData_t * data, unsigned int timeoutms); +/** + * @brief Adds a GPU Operational Event subscription to an event set. + * + * This API is separate from \ref nvmlDeviceRegisterEvents. Calling this API opts the event set into + * the structured GPU Operational Event format for the target GPU UUID. Subscriptions are identified + * by \a config; registering the same subscription more than once is treated as success. + * + * \ref nvmlDeviceRegisterEvents and \ref nvmlEventSetRegisterGpuOperationalEvents_v1 may both be used on the same + * event set. In that mixed-subscription model, NVML event-bit subscriptions continue to deliver event + * bits such as \ref nvmlEventTypeXidCriticalError, while GPU Operational Event subscriptions deliver + * \ref NVML_EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT records through \ref nvmlEventSetWait_v3 with + * \c eventType set to \ref nvmlEventTypeNone. The same underlying incident may generate both an NVML + * event-bit notification and a structured notification. + * + * This API supports GPU UUID subscriptions. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] eventSet Event set created by \ref nvmlEventSetCreate + * @param[in] config GPU Operational Event subscription configuration + * + * @return + * - \ref NVML_SUCCESS if the GPU Operational Event subscription was registered + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a eventSet or \a config is invalid + * - \ref NVML_ERROR_NOT_SUPPORTED if structured GPU Operational Events are not supported on this platform, + * or if the requested subscription is not supported + * - \ref NVML_ERROR_NO_PERMISSION if the caller lacks permission for the requested scope + * - \ref NVML_ERROR_INSUFFICIENT_RESOURCES + * if the event set cannot accept another subscription + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlGpuOperationalEventConfig_v1_t + * @see nvmlEventSetWait_v3 + * @see nvmlEventSetFree + */ +nvmlReturn_t DECLDIR nvmlEventSetRegisterGpuOperationalEvents_v1(nvmlEventSet_t eventSet, + const nvmlGpuOperationalEventConfig_v1_t *config); + +/** + * @brief Waits on an event set and returns the next event in the extended event format. + * + * This API is the unified wait surface for NVML event-bit subscriptions registered with + * \ref nvmlDeviceRegisterEvents and structured GPU Operational Event subscriptions registered with + * \ref nvmlEventSetRegisterGpuOperationalEvents_v1. + * + * The returned format is distinguished by \c dataType in \a params. If \c dataType is + * \ref NVML_EVENT_DATA_TYPE_NVML_EVENT, the event came from the \ref nvmlDeviceRegisterEvents path, + * \c eventType is an NVML event bit such as \ref nvmlEventTypeXidCriticalError, and the existing + * fields preserve their historical semantics. If \c dataType is + * \ref NVML_EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT, the event came from the structured format, + * \c eventType is \ref nvmlEventTypeNone, and the structured metadata fields are populated. + * + * When an event set contains only NVML event-bit subscriptions, this API normalizes those events into + * \ref nvmlEventSetWait_v3_t. When an event set contains both NVML event-bit and structured subscriptions, + * each successful call returns the next available event from either path. Clients should branch on + * \c dataType to determine which format was returned. An event set is not required to have + * structured GPU Operational Event subscriptions to be used with this API. + * + * Context records for the returned event, if any, are made available through + * \ref nvmlEventSetGetContextCount_v1, \ref nvmlEventSetGetContextInfo_v1, and + * \ref nvmlEventSetGetContextData_v1. Context records remain associated with the event set until the + * next successful call to \ref nvmlEventSetWait_v3 on the same event set or until the event set is freed. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] set Reference to set of events to wait on + * @param[in,out] params Wait parameters and returned event data + * + * @return + * - \ref NVML_SUCCESS if the event data has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a set or \a params is NULL + * - \ref NVML_ERROR_TIMEOUT if no event arrived in specified timeout or interrupt arrived + * - \ref NVML_ERROR_NOT_SUPPORTED if this API is not available on the platform or driver + * - \ref NVML_ERROR_MEMORY if system memory is insufficient + * - \ref NVML_ERROR_GPU_IS_LOST if a GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlEventSetWait_v3_t + * @see nvmlDeviceRegisterEvents + * @see nvmlEventSetRegisterGpuOperationalEvents_v1 + * @see nvmlEventSetGetContextCount_v1 + */ +nvmlReturn_t DECLDIR nvmlEventSetWait_v3(nvmlEventSet_t set, nvmlEventSetWait_v3_t *params); + +/** + * @brief Gets the number of context records for the most recent event returned by + * \ref nvmlEventSetWait_v3 on this event set. + * + * This count is tied to the event set, not to a caller-owned copy of \ref nvmlEventSetWait_v3_t. It is + * replaced by the next successful call to \ref nvmlEventSetWait_v3 on the same event set. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] set Event set previously used with \ref nvmlEventSetWait_v3 + * @param[out] params Parameters in which to return the number of context records + * + * @return + * - \ref NVML_SUCCESS if \a params has been set + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a set or \a params is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if this API is not available on the platform or driver + * - \ref NVML_ERROR_NOT_FOUND if no event has been returned by \ref nvmlEventSetWait_v3 + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlEventSetWait_v3 + * @see nvmlEventSetGetContextInfo_v1 + * @see nvmlEventSetGetContextData_v1 + */ +nvmlReturn_t DECLDIR nvmlEventSetGetContextCount_v1(nvmlEventSet_t set, + nvmlEventSetGetContextCount_v1_t *params); + +/** + * @brief Gets metadata for a context record from the most recent event returned by + * \ref nvmlEventSetWait_v3. + * + * The returned metadata identifies the NVML public interpretation, the source-defined context payload + * type, payload size, and payload format version. The raw payload for any context record can be + * copied with \ref nvmlEventSetGetContextData_v1 and decoded using the public operational event + * schema or documentation for + * \ref nvmlEventSetGetContextInfo_v1_t::sourceEventContextType. When + * \c nvmlGpuOperationalEventContextType names a type-specific accessor, callers may use that + * accessor instead. Metadata is replaced by the next successful call to \ref nvmlEventSetWait_v3 + * on the same event set. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] set Event set previously used with \ref nvmlEventSetWait_v3 + * @param[in,out] params Context index and returned context metadata + * + * @return + * - \ref NVML_SUCCESS if the context metadata has been returned + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if arguments are invalid or \c params->index is out of range + * - \ref NVML_ERROR_NOT_FOUND if no event has been returned by \ref nvmlEventSetWait_v3 + * - \ref NVML_ERROR_NOT_SUPPORTED if this API is not available on the platform or driver + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlEventSetGetContextInfo_v1_t + * @see nvmlEventSetGetContextCount_v1 + * @see nvmlEventSetGetContextData_v1 + */ +nvmlReturn_t DECLDIR nvmlEventSetGetContextInfo_v1(nvmlEventSet_t set, + nvmlEventSetGetContextInfo_v1_t *params); + +/** + * @brief Copies the raw payload for a context record from the most recent event returned by + * \ref nvmlEventSetWait_v3. + * + * Passing \c params->data as NULL performs a size query. In that case \c params->dataSize is set to the required + * payload size and the function returns \ref NVML_ERROR_INSUFFICIENT_SIZE when the payload is + * non-empty. If the context payload is empty, \c params->dataSize is set to 0 and the function returns + * \ref NVML_SUCCESS. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] set Event set previously used with \ref nvmlEventSetWait_v3 + * @param[in,out] params Context index, optional data buffer, and buffer size + * + * @return + * - \ref NVML_SUCCESS if the raw context payload has been copied + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if arguments are invalid or \c params->index is out of range + * - \ref NVML_ERROR_NOT_FOUND if no event has been returned by \ref nvmlEventSetWait_v3 + * - \ref NVML_ERROR_INSUFFICIENT_SIZE if \c params->data is NULL or too small for a non-empty payload + * - \ref NVML_ERROR_NOT_SUPPORTED if this API is not available on the platform or driver + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlEventSetWait_v3 + * @see nvmlEventSetGetContextCount_v1 + * @see nvmlEventSetGetContextInfo_v1 + */ +nvmlReturn_t DECLDIR nvmlEventSetGetContextData_v1(nvmlEventSet_t set, + nvmlEventSetGetContextData_v1_t *params); + +/** + * @brief Gets decoded GPU legacy-Xid context data for a context record from the most recent event returned + * by \ref nvmlEventSetWait_v3. + * + * This helper succeeds only for context records whose \c nvmlGpuOperationalEventContextType is + * \ref NVML_GPU_OPERATIONAL_EVENT_CONTEXT_TYPE_LEGACY_XID. Other context records remain available + * through \ref nvmlEventSetGetContextData_v1. + * + * For Turing &tm; or newer fully supported devices. + * + * For Linux only. + * + * @param[in] set Event set previously used with \ref nvmlEventSetWait_v3 + * @param[in,out] params Context index and returned legacy-Xid data + * + * @return + * - \ref NVML_SUCCESS if the GPU legacy-Xid context has been returned + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if arguments are invalid or \c params->index is out of range + * - \ref NVML_ERROR_NOT_FOUND if no event has been returned or the context is not a GPU legacy-Xid context + * - \ref NVML_ERROR_NOT_SUPPORTED if this API is not available on the platform or driver + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + * + * @see nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1_t + * @see nvmlEventSetGetContextInfo_v1 + * @see nvmlEventSetGetContextData_v1 + */ +nvmlReturn_t DECLDIR nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1(nvmlEventSet_t set, + nvmlEventSetGetGpuOperationalEventContextLegacyXid_v1_t *params); + /** * Releases events in the set * @@ -11706,6 +12946,106 @@ typedef struct */ nvmlReturn_t DECLDIR nvmlDeviceReadWritePRM_v1(nvmlDevice_t device, nvmlPRMTLV_v1_t *buffer); +<<<<<<< HEAD +======= +/** + * PRM Counter IDs + */ +typedef enum +{ + NVML_PRM_COUNTER_ID_NONE = 0, //!< Sentinel + // + /* Physical Layer Counters (PPCNT group 0x12) */ + NVML_PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_LINK_DOWN_EVENTS = 1, //!< PPCNT group 0x12, link_down_events + NVML_PRM_COUNTER_ID_PPCNT_PHYSICAL_LAYER_CTRS_SUCCESSFUL_RECOVERY_EVENTS = 2, //!< PPCNT group 0x12, successful_recovery_events + + /* Recovery counters (PPCNT group 0x1A) */ + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_SUCCESSFUL_RECOVERY_EVENTS = 101, //!< PPCNT group 0x1A, total_successful_recovery_events + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_SINCE_LAST_RECOVERY = 102, //!< PPCNT group 0x1A, time_since_last_recovery + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_BETWEEN_LAST_TWO_RECOVERIES = 103, //!< PPCNT group 0x1A, time_between_last_two_recoveries + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TIME_IN_LAST_HOST_SERDES_FEQ_RECOVERY = 104, //!< PPCNT group 0x1A, time_in_last_host_serdes_feq_recovery + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_TIME_IN_HOST_SERDES_FEQ_RECOVERY = 105, //!< PPCNT group 0x1A, total_time_in_host_serdes_feq_recovery + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_HOST_SERDES_FEQ_RECOVERY_COUNT = 106, //!< PPCNT group 0x1A, total_host_serdes_feq_recovery_count + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_HOST_SERDES_FEQ_SUCCESSFUL_RECOVERY_COUNT = 107, //!< PPCNT group 0x1A, total_host_serdes_feq_successful_recovery_count + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_HOST_SERDES_FEQ_ATTEMPTS_COUNT = 108, //!< PPCNT group 0x1A, last_host_serdes_feq_attempts_count + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_SUCCESSFUL_RECOVERY_STEP_ATTEMPTS = 109, //!< PPCNT group 0x1A, last_successful_recovery_step_attempts + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_LAST_SUCCESSFUL_RECOVERY_TIME = 110, //!< PPCNT group 0x1A, last_successful_recovery_time + NVML_PRM_COUNTER_ID_PPCNT_RECOVERY_CTRS_TOTAL_SUCCESSFUL_RECOVERY_TIME = 111, //!< PPCNT group 0x1A, total_successful_recovery_time + + /* Infiniband PortCounters Attribute (PPCNT group 0x20) */ + NVML_PRM_COUNTER_ID_PPCNT_PORTCOUNTERS_PORT_XMIT_WAIT = 201, //!< PPCNT group 0x20, port_xmit_wait + + /* PLR counters (PPCNT group 0x22) */ + NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_CODES = 301, //!< PPCNT group 0x22, plr_rcv_codes + NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_CODE_ERR = 302, //!< PPCNT group 0x22, plr_rcv_code_err + NVML_PRM_COUNTER_ID_PPCNT_PLR_RCV_UNCORRECTABLE_CODE = 303, //!< PPCNT group 0x22, plr_rcv_uncorrectable_code + NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_CODES = 304, //!< PPCNT group 0x22, plr_xmit_codes + NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_CODES = 305, //!< PPCNT group 0x22, plr_xmit_retry_codes + NVML_PRM_COUNTER_ID_PPCNT_PLR_XMIT_RETRY_EVENTS = 306, //!< PPCNT group 0x22, plr_xmit_retry_events + NVML_PRM_COUNTER_ID_PPCNT_PLR_SYNC_EVENTS = 307, //!< PPCNT group 0x22, plr_sync_events + + /* PPRM counters */ + NVML_PRM_COUNTER_ID_PPRM_OPER_RECOVERY = 1001, //!< PPRM, oper_recovery +} nvmlPRMCounterId_t; + +/** + * PRM counter input values + */ +typedef struct +{ + unsigned int localPort; //!< Local port number +} nvmlPRMCounterInput_v1_t; + +/** + * PRM Counter Value Structure + */ +typedef struct +{ + nvmlReturn_t status; //!< Status of the PRM counter read + nvmlValueType_t outputType; //!< Output value type + nvmlValue_t outputValue; //!< Output value +} nvmlPRMCounterValue_v1_t; + +/** + * PRM Counter Structure v1 + */ +typedef struct +{ + unsigned int counterId; //!< Counter ID, one of \ref nvmlPRMCounterId_t + /* Input data */ + nvmlPRMCounterInput_v1_t inData; //!< PRM input values + /* Output counter value */ + nvmlPRMCounterValue_v1_t counterValue; //!< Counter value +} nvmlPRMCounter_v1_t; + +/** + * PRM Counter List Structure v1 + */ +typedef struct +{ + unsigned int numCounters; //!< Number of counters + nvmlPRMCounter_v1_t *counters; //!< Pointer to array of PRM counters +} nvmlPRMCounterList_v1_t; + +/** + * Read a list of GPU PRM Counters. + * + * For Blackwell &tm; or newer fully supported devices. + * + * Supported on Linux only. + * + * @param device Identifer of target GPU device + * @param counterList Structure holding the input parameters as well as the retrieved counter values + * + * @return + * - \ref NVML_SUCCESS on success + * - \ref NVML_ERROR_INVALID_ARGUMENT if \p device is invalid or \p counterList is NULL + * - \ref NVML_ERROR_NO_PERMISSION if user does not have permission to perform this operation + * - \ref NVML_ERROR_NOT_SUPPORTED if this feature is not supported by the device + * - \ref NVML_ERROR_UNKNOWN on any other error + */ +nvmlReturn_t DECLDIR nvmlDeviceReadPRMCounters_v1(nvmlDevice_t device, nvmlPRMCounterList_v1_t *counterList); +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** @} */ /***************************************************************************************************/ @@ -12784,6 +14124,7 @@ typedef enum NVML_GPM_METRIC_NVLINK_L16_TX_PER_SEC = 95, //!< NvLink write bandwidth for link 16 in MiB/sec NVML_GPM_METRIC_NVLINK_L17_RX_PER_SEC = 96, //!< NvLink read bandwidth for link 17 in MiB/sec NVML_GPM_METRIC_NVLINK_L17_TX_PER_SEC = 97, //!< NvLink write bandwidth for link 17 in MiB/sec +<<<<<<< HEAD //Put new metrics for BLACKWELL here... NVML_GPM_METRIC_C2C_TOTAL_TX_PER_SEC = 100, NVML_GPM_METRIC_C2C_TOTAL_RX_PER_SEC = 101, @@ -12896,6 +14237,384 @@ typedef enum NVML_GPM_METRIC_GR7_CTXSW_CYCLES_PER_REQ = 208, NVML_GPM_METRIC_GR7_CTXSW_ACTIVE_PCT = 209, NVML_GPM_METRIC_MAX = 210, //!< Maximum value above +1. Note that changing this should also change NVML_GPM_METRICS_GET_VERSION due to struct size change +======= + NVML_GPM_METRIC_C2C_TOTAL_TX_PER_SEC = 100, //!< C2C total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_TOTAL_RX_PER_SEC = 101, //!< C2C total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_DATA_TX_PER_SEC = 102, //!< C2C data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_DATA_RX_PER_SEC = 103, //!< C2C data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK0_TOTAL_TX_PER_SEC = 104, //!< C2C link 0 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK0_TOTAL_RX_PER_SEC = 105, //!< C2C link 0 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK0_DATA_TX_PER_SEC = 106, //!< C2C link 0 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK0_DATA_RX_PER_SEC = 107, //!< C2C link 0 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK1_TOTAL_TX_PER_SEC = 108, //!< C2C link 1 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK1_TOTAL_RX_PER_SEC = 109, //!< C2C link 1 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK1_DATA_TX_PER_SEC = 110, //!< C2C link 1 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK1_DATA_RX_PER_SEC = 111, //!< C2C link 1 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK2_TOTAL_TX_PER_SEC = 112, //!< C2C link 2 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK2_TOTAL_RX_PER_SEC = 113, //!< C2C link 2 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK2_DATA_TX_PER_SEC = 114, //!< C2C link 2 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK2_DATA_RX_PER_SEC = 115, //!< C2C link 2 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK3_TOTAL_TX_PER_SEC = 116, //!< C2C link 3 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK3_TOTAL_RX_PER_SEC = 117, //!< C2C link 3 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK3_DATA_TX_PER_SEC = 118, //!< C2C link 3 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK3_DATA_RX_PER_SEC = 119, //!< C2C link 3 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK4_TOTAL_TX_PER_SEC = 120, //!< C2C link 4 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK4_TOTAL_RX_PER_SEC = 121, //!< C2C link 4 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK4_DATA_TX_PER_SEC = 122, //!< C2C link 4 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK4_DATA_RX_PER_SEC = 123, //!< C2C link 4 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK5_TOTAL_TX_PER_SEC = 124, //!< C2C link 5 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK5_TOTAL_RX_PER_SEC = 125, //!< C2C link 5 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK5_DATA_TX_PER_SEC = 126, //!< C2C link 5 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK5_DATA_RX_PER_SEC = 127, //!< C2C link 5 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK6_TOTAL_TX_PER_SEC = 128, //!< C2C link 6 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK6_TOTAL_RX_PER_SEC = 129, //!< C2C link 6 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK6_DATA_TX_PER_SEC = 130, //!< C2C link 6 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK6_DATA_RX_PER_SEC = 131, //!< C2C link 6 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK7_TOTAL_TX_PER_SEC = 132, //!< C2C link 7 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK7_TOTAL_RX_PER_SEC = 133, //!< C2C link 7 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK7_DATA_TX_PER_SEC = 134, //!< C2C link 7 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK7_DATA_RX_PER_SEC = 135, //!< C2C link 7 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK8_TOTAL_TX_PER_SEC = 136, //!< C2C link 8 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK8_TOTAL_RX_PER_SEC = 137, //!< C2C link 8 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK8_DATA_TX_PER_SEC = 138, //!< C2C link 8 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK8_DATA_RX_PER_SEC = 139, //!< C2C link 8 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK9_TOTAL_TX_PER_SEC = 140, //!< C2C link 9 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK9_TOTAL_RX_PER_SEC = 141, //!< C2C link 9 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK9_DATA_TX_PER_SEC = 142, //!< C2C link 9 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK9_DATA_RX_PER_SEC = 143, //!< C2C link 9 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK10_TOTAL_TX_PER_SEC = 144, //!< C2C link 10 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK10_TOTAL_RX_PER_SEC = 145, //!< C2C link 10 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK10_DATA_TX_PER_SEC = 146, //!< C2C link 10 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK10_DATA_RX_PER_SEC = 147, //!< C2C link 10 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK11_TOTAL_TX_PER_SEC = 148, //!< C2C link 11 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK11_TOTAL_RX_PER_SEC = 149, //!< C2C link 11 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK11_DATA_TX_PER_SEC = 150, //!< C2C link 11 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK11_DATA_RX_PER_SEC = 151, //!< C2C link 11 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK12_TOTAL_TX_PER_SEC = 152, //!< C2C link 12 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK12_TOTAL_RX_PER_SEC = 153, //!< C2C link 12 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK12_DATA_TX_PER_SEC = 154, //!< C2C link 12 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK12_DATA_RX_PER_SEC = 155, //!< C2C link 12 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK13_TOTAL_TX_PER_SEC = 156, //!< C2C link 13 total transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK13_TOTAL_RX_PER_SEC = 157, //!< C2C link 13 total receive bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK13_DATA_TX_PER_SEC = 158, //!< C2C link 13 data transmit bandwidth in MiB/sec + NVML_GPM_METRIC_C2C_LINK13_DATA_RX_PER_SEC = 159, //!< C2C link 13 data receive bandwidth in MiB/sec + NVML_GPM_METRIC_HOSTMEM_CACHE_HIT = 160, //!< Percentage of host memory cache hits. 0.0 - 100.0 + NVML_GPM_METRIC_HOSTMEM_CACHE_MISS = 161, //!< Percentage of host memory cache misses. 0.0 - 100.0 + NVML_GPM_METRIC_PEERMEM_CACHE_HIT = 162, //!< Percentage of peer memory cache hits. 0.0 - 100.0 + NVML_GPM_METRIC_PEERMEM_CACHE_MISS = 163, //!< Percentage of peer memory cache misses. 0.0 - 100.0 + NVML_GPM_METRIC_DRAM_CACHE_HIT = 164, //!< Percentage of DRAM cache hits. 0.0 - 100.0 + NVML_GPM_METRIC_DRAM_CACHE_MISS = 165, //!< Percentage of DRAM cache misses. 0.0 - 100.0 + NVML_GPM_METRIC_NVENC_0_UTIL = 166, //!< Percent utilization of NVENC 0. 0.0 - 100.0 + NVML_GPM_METRIC_NVENC_1_UTIL = 167, //!< Percent utilization of NVENC 1. 0.0 - 100.0 + NVML_GPM_METRIC_NVENC_2_UTIL = 168, //!< Percent utilization of NVENC 2. 0.0 - 100.0 + NVML_GPM_METRIC_NVENC_3_UTIL = 169, //!< Percent utilization of NVENC 3. 0.0 - 100.0 + NVML_GPM_METRIC_GR0_CTXSW_CYCLES_ELAPSED = 170, //!< Total context switch cycles elapsed for GR engine 0 + NVML_GPM_METRIC_GR0_CTXSW_CYCLES_ACTIVE = 171, //!< Active context switch cycles for GR engine 0 + NVML_GPM_METRIC_GR0_CTXSW_REQUESTS = 172, //!< Number of context switch requests for GR engine 0 + NVML_GPM_METRIC_GR0_CTXSW_CYCLES_PER_REQ = 173, //!< Average context switch cycles per request for GR engine 0 + NVML_GPM_METRIC_GR0_CTXSW_ACTIVE_PCT = 174, //!< Percentage of time GR engine 0 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR1_CTXSW_CYCLES_ELAPSED = 175, //!< Total context switch cycles elapsed for GR engine 1 + NVML_GPM_METRIC_GR1_CTXSW_CYCLES_ACTIVE = 176, //!< Active context switch cycles for GR engine 1 + NVML_GPM_METRIC_GR1_CTXSW_REQUESTS = 177, //!< Number of context switch requests for GR engine 1 + NVML_GPM_METRIC_GR1_CTXSW_CYCLES_PER_REQ = 178, //!< Average context switch cycles per request for GR engine 1 + NVML_GPM_METRIC_GR1_CTXSW_ACTIVE_PCT = 179, //!< Percentage of time GR engine 1 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR2_CTXSW_CYCLES_ELAPSED = 180, //!< Total context switch cycles elapsed for GR engine 2 + NVML_GPM_METRIC_GR2_CTXSW_CYCLES_ACTIVE = 181, //!< Active context switch cycles for GR engine 2 + NVML_GPM_METRIC_GR2_CTXSW_REQUESTS = 182, //!< Number of context switch requests for GR engine 2 + NVML_GPM_METRIC_GR2_CTXSW_CYCLES_PER_REQ = 183, //!< Average context switch cycles per request for GR engine 2 + NVML_GPM_METRIC_GR2_CTXSW_ACTIVE_PCT = 184, //!< Percentage of time GR engine 2 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR3_CTXSW_CYCLES_ELAPSED = 185, //!< Total context switch cycles elapsed for GR engine 3 + NVML_GPM_METRIC_GR3_CTXSW_CYCLES_ACTIVE = 186, //!< Active context switch cycles for GR engine 3 + NVML_GPM_METRIC_GR3_CTXSW_REQUESTS = 187, //!< Number of context switch requests for GR engine 3 + NVML_GPM_METRIC_GR3_CTXSW_CYCLES_PER_REQ = 188, //!< Average context switch cycles per request for GR engine 3 + NVML_GPM_METRIC_GR3_CTXSW_ACTIVE_PCT = 189, //!< Percentage of time GR engine 3 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR4_CTXSW_CYCLES_ELAPSED = 190, //!< Total context switch cycles elapsed for GR engine 4 + NVML_GPM_METRIC_GR4_CTXSW_CYCLES_ACTIVE = 191, //!< Active context switch cycles for GR engine 4 + NVML_GPM_METRIC_GR4_CTXSW_REQUESTS = 192, //!< Number of context switch requests for GR engine 4 + NVML_GPM_METRIC_GR4_CTXSW_CYCLES_PER_REQ = 193, //!< Average context switch cycles per request for GR engine 4 + NVML_GPM_METRIC_GR4_CTXSW_ACTIVE_PCT = 194, //!< Percentage of time GR engine 4 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR5_CTXSW_CYCLES_ELAPSED = 195, //!< Total context switch cycles elapsed for GR engine 5 + NVML_GPM_METRIC_GR5_CTXSW_CYCLES_ACTIVE = 196, //!< Active context switch cycles for GR engine 5 + NVML_GPM_METRIC_GR5_CTXSW_REQUESTS = 197, //!< Number of context switch requests for GR engine 5 + NVML_GPM_METRIC_GR5_CTXSW_CYCLES_PER_REQ = 198, //!< Average context switch cycles per request for GR engine 5 + NVML_GPM_METRIC_GR5_CTXSW_ACTIVE_PCT = 199, //!< Percentage of time GR engine 5 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR6_CTXSW_CYCLES_ELAPSED = 200, //!< Total context switch cycles elapsed for GR engine 6 + NVML_GPM_METRIC_GR6_CTXSW_CYCLES_ACTIVE = 201, //!< Active context switch cycles for GR engine 6 + NVML_GPM_METRIC_GR6_CTXSW_REQUESTS = 202, //!< Number of context switch requests for GR engine 6 + NVML_GPM_METRIC_GR6_CTXSW_CYCLES_PER_REQ = 203, //!< Average context switch cycles per request for GR engine 6 + NVML_GPM_METRIC_GR6_CTXSW_ACTIVE_PCT = 204, //!< Percentage of time GR engine 6 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_GR7_CTXSW_CYCLES_ELAPSED = 205, //!< Total context switch cycles elapsed for GR engine 7 + NVML_GPM_METRIC_GR7_CTXSW_CYCLES_ACTIVE = 206, //!< Active context switch cycles for GR engine 7 + NVML_GPM_METRIC_GR7_CTXSW_REQUESTS = 207, //!< Number of context switch requests for GR engine 7 + NVML_GPM_METRIC_GR7_CTXSW_CYCLES_PER_REQ = 208, //!< Average context switch cycles per request for GR engine 7 + NVML_GPM_METRIC_GR7_CTXSW_ACTIVE_PCT = 209, //!< Percentage of time GR engine 7 context switches were active. 0.0 - 100.0 + NVML_GPM_METRIC_NVLINK_L18_RX_PER_SEC = 212, //!< NvLink read bandwidth for link 18 in MiB/sec + NVML_GPM_METRIC_NVLINK_L18_TX_PER_SEC = 213, //!< NvLink write bandwidth for link 18 in MiB/sec + NVML_GPM_METRIC_NVLINK_L19_RX_PER_SEC = 214, //!< NvLink read bandwidth for link 19 in MiB/sec + NVML_GPM_METRIC_NVLINK_L19_TX_PER_SEC = 215, //!< NvLink write bandwidth for link 19 in MiB/sec + NVML_GPM_METRIC_NVLINK_L20_RX_PER_SEC = 216, //!< NvLink read bandwidth for link 20 in MiB/sec + NVML_GPM_METRIC_NVLINK_L20_TX_PER_SEC = 217, //!< NvLink write bandwidth for link 20 in MiB/sec + NVML_GPM_METRIC_NVLINK_L21_RX_PER_SEC = 218, //!< NvLink read bandwidth for link 21 in MiB/sec + NVML_GPM_METRIC_NVLINK_L21_TX_PER_SEC = 219, //!< NvLink write bandwidth for link 21 in MiB/sec + NVML_GPM_METRIC_NVLINK_L22_RX_PER_SEC = 220, //!< NvLink read bandwidth for link 22 in MiB/sec + NVML_GPM_METRIC_NVLINK_L22_TX_PER_SEC = 221, //!< NvLink write bandwidth for link 22 in MiB/sec + NVML_GPM_METRIC_NVLINK_L23_RX_PER_SEC = 222, //!< NvLink read bandwidth for link 23 in MiB/sec + NVML_GPM_METRIC_NVLINK_L23_TX_PER_SEC = 223, //!< NvLink write bandwidth for link 23 in MiB/sec + NVML_GPM_METRIC_NVLINK_L24_RX_PER_SEC = 224, //!< NvLink read bandwidth for link 24 in MiB/sec + NVML_GPM_METRIC_NVLINK_L24_TX_PER_SEC = 225, //!< NvLink write bandwidth for link 24 in MiB/sec + NVML_GPM_METRIC_NVLINK_L25_RX_PER_SEC = 226, //!< NvLink read bandwidth for link 25 in MiB/sec + NVML_GPM_METRIC_NVLINK_L25_TX_PER_SEC = 227, //!< NvLink write bandwidth for link 25 in MiB/sec + NVML_GPM_METRIC_NVLINK_L26_RX_PER_SEC = 228, //!< NvLink read bandwidth for link 26 in MiB/sec + NVML_GPM_METRIC_NVLINK_L26_TX_PER_SEC = 229, //!< NvLink write bandwidth for link 26 in MiB/sec + NVML_GPM_METRIC_NVLINK_L27_RX_PER_SEC = 230, //!< NvLink read bandwidth for link 27 in MiB/sec + NVML_GPM_METRIC_NVLINK_L27_TX_PER_SEC = 231, //!< NvLink write bandwidth for link 27 in MiB/sec + NVML_GPM_METRIC_NVLINK_L28_RX_PER_SEC = 232, //!< NvLink read bandwidth for link 28 in MiB/sec + NVML_GPM_METRIC_NVLINK_L28_TX_PER_SEC = 233, //!< NvLink write bandwidth for link 28 in MiB/sec + NVML_GPM_METRIC_NVLINK_L29_RX_PER_SEC = 234, //!< NvLink read bandwidth for link 29 in MiB/sec + NVML_GPM_METRIC_NVLINK_L29_TX_PER_SEC = 235, //!< NvLink write bandwidth for link 29 in MiB/sec + NVML_GPM_METRIC_NVLINK_L30_RX_PER_SEC = 236, //!< NvLink read bandwidth for link 30 in MiB/sec + NVML_GPM_METRIC_NVLINK_L30_TX_PER_SEC = 237, //!< NvLink write bandwidth for link 30 in MiB/sec + NVML_GPM_METRIC_NVLINK_L31_RX_PER_SEC = 238, //!< NvLink read bandwidth for link 31 in MiB/sec + NVML_GPM_METRIC_NVLINK_L31_TX_PER_SEC = 239, //!< NvLink write bandwidth for link 31 in MiB/sec + NVML_GPM_METRIC_NVLINK_L32_RX_PER_SEC = 240, //!< NvLink read bandwidth for link 32 in MiB/sec + NVML_GPM_METRIC_NVLINK_L32_TX_PER_SEC = 241, //!< NvLink write bandwidth for link 32 in MiB/sec + NVML_GPM_METRIC_NVLINK_L33_RX_PER_SEC = 242, //!< NvLink read bandwidth for link 33 in MiB/sec + NVML_GPM_METRIC_NVLINK_L33_TX_PER_SEC = 243, //!< NvLink write bandwidth for link 33 in MiB/sec + NVML_GPM_METRIC_NVLINK_L34_RX_PER_SEC = 244, //!< NvLink read bandwidth for link 34 in MiB/sec + NVML_GPM_METRIC_NVLINK_L34_TX_PER_SEC = 245, //!< NvLink write bandwidth for link 34 in MiB/sec + NVML_GPM_METRIC_NVLINK_L35_RX_PER_SEC = 246, //!< NvLink read bandwidth for link 35 in MiB/sec + NVML_GPM_METRIC_NVLINK_L35_TX_PER_SEC = 247, //!< NvLink write bandwidth for link 35 in MiB/sec + NVML_GPM_METRIC_SM_CYCLES_ELAPSED = 248, //!< The GPU's SM cycles elapsed since reboot + NVML_GPM_METRIC_SM_CYCLES_ACTIVE = 249, //!< The GPU's SM activity since reboot + NVML_GPM_METRIC_MMA_CYCLES_ACTIVE = 250, //!< The GPU's SM MMA tensor activity since reboot + NVML_GPM_METRIC_DMMA_CYCLES_ACTIVE = 251, //!< The GPU's SM DMMA tensor activity since reboot + NVML_GPM_METRIC_HMMA_CYCLES_ACTIVE = 252, //!< The GPU's SM HMMA tensor activity since reboot + NVML_GPM_METRIC_IMMA_CYCLES_ACTIVE = 253, //!< The GPU's SM IMMA tensor activity since reboot + NVML_GPM_METRIC_DFMA_CYCLES_ACTIVE = 254, //!< The GPU's SM DFMA tensor activity since reboot + NVML_GPM_METRIC_PCIE_TX = 255, //!< The PCIe TX traffic since reboot + NVML_GPM_METRIC_PCIE_RX = 256, //!< The PCIe RX traffic since reboot + NVML_GPM_METRIC_INTEGER_CYCLES_ACTIVE = 257, //!< The GPU's SM integer activity since reboot + NVML_GPM_METRIC_FP64_CYCLES_ACTIVE = 258, //!< The GPU's SM FP64 activity since reboot + NVML_GPM_METRIC_FP32_CYCLES_ACTIVE = 259, //!< The GPU's SM FP32 activity since reboot + NVML_GPM_METRIC_FP16_CYCLES_ACTIVE = 260, //!< The GPU's SM FP16 activity since reboot + NVML_GPM_METRIC_NVLINK_L0_RX = 261, //!< NvLink read for link 0 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L0_TX = 262, //!< NvLink write for link 0 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L1_RX = 263, //!< NvLink read for link 1 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L1_TX = 264, //!< NvLink write for link 1 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L2_RX = 265, //!< NvLink read for link 2 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L2_TX = 266, //!< NvLink write for link 2 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L3_RX = 267, //!< NvLink read for link 3 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L3_TX = 268, //!< NvLink write for link 3 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L4_RX = 269, //!< NvLink read for link 4 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L4_TX = 270, //!< NvLink write for link 4 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L5_RX = 271, //!< NvLink read for link 5 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L5_TX = 272, //!< NvLink write for link 5 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L6_RX = 273, //!< NvLink read for link 6 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L6_TX = 274, //!< NvLink write for link 6 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L7_RX = 275, //!< NvLink read for link 7 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L7_TX = 276, //!< NvLink write for link 7 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L8_RX = 277, //!< NvLink read for link 8 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L8_TX = 278, //!< NvLink write for link 8 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L9_RX = 279, //!< NvLink read for link 9 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L9_TX = 280, //!< NvLink write for link 9 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L10_RX = 281, //!< NvLink read for link 10 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L10_TX = 282, //!< NvLink write for link 10 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L11_RX = 283, //!< NvLink read for link 11 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L11_TX = 284, //!< NvLink write for link 11 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L12_RX = 285, //!< NvLink read for link 12 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L12_TX = 286, //!< NvLink write for link 12 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L13_RX = 287, //!< NvLink read for link 13 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L13_TX = 288, //!< NvLink write for link 13 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L14_RX = 289, //!< NvLink read for link 14 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L14_TX = 290, //!< NvLink write for link 14 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L15_RX = 291, //!< NvLink read for link 15 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L15_TX = 292, //!< NvLink write for link 15 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L16_RX = 293, //!< NvLink read for link 16 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L16_TX = 294, //!< NvLink write for link 16 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L17_RX = 295, //!< NvLink read for link 17 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L17_TX = 296, //!< NvLink write for link 17 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L18_RX = 297, //!< NvLink read for link 18 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L18_TX = 298, //!< NvLink write for link 18 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L19_RX = 299, //!< NvLink read for link 19 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L19_TX = 300, //!< NvLink write for link 19 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L20_RX = 301, //!< NvLink read for link 20 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L20_TX = 302, //!< NvLink write for link 20 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L21_RX = 303, //!< NvLink read for link 21 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L21_TX = 304, //!< NvLink write for link 21 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L22_RX = 305, //!< NvLink read for link 22 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L22_TX = 306, //!< NvLink write for link 22 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L23_RX = 307, //!< NvLink read for link 23 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L23_TX = 308, //!< NvLink write for link 23 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L24_RX = 309, //!< NvLink read for link 24 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L24_TX = 310, //!< NvLink write for link 24 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L25_RX = 311, //!< NvLink read for link 25 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L25_TX = 312, //!< NvLink write for link 25 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L26_RX = 313, //!< NvLink read for link 26 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L26_TX = 314, //!< NvLink write for link 26 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L27_RX = 315, //!< NvLink read for link 27 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L27_TX = 316, //!< NvLink write for link 27 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L28_RX = 317, //!< NvLink read for link 28 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L28_TX = 318, //!< NvLink write for link 28 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L29_RX = 319, //!< NvLink read for link 29 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L29_TX = 320, //!< NvLink write for link 29 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L30_RX = 321, //!< NvLink read for link 30 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L30_TX = 322, //!< NvLink write for link 30 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L31_RX = 323, //!< NvLink read for link 31 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L31_TX = 324, //!< NvLink write for link 31 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L32_RX = 325, //!< NvLink read for link 32 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L32_TX = 326, //!< NvLink write for link 32 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L33_RX = 327, //!< NvLink read for link 33 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L33_TX = 328, //!< NvLink write for link 33 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L34_RX = 329, //!< NvLink read for link 34 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L34_TX = 330, //!< NvLink write for link 34 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L35_RX = 331, //!< NvLink read for link 35 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L35_TX = 332, //!< NvLink write for link 35 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L36_RX = 333, //!< NvLink read for link 36 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L36_TX = 334, //!< NvLink write for link 36 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L37_RX = 335, //!< NvLink read for link 37 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L37_TX = 336, //!< NvLink write for link 37 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L38_RX = 337, //!< NvLink read for link 38 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L38_TX = 338, //!< NvLink write for link 38 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L39_RX = 339, //!< NvLink read for link 39 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L39_TX = 340, //!< NvLink write for link 39 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L40_RX = 341, //!< NvLink read for link 40 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L40_TX = 342, //!< NvLink write for link 40 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L41_RX = 343, //!< NvLink read for link 41 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L41_TX = 344, //!< NvLink write for link 41 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L42_RX = 345, //!< NvLink read for link 42 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L42_TX = 346, //!< NvLink write for link 42 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L43_RX = 347, //!< NvLink read for link 43 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L43_TX = 348, //!< NvLink write for link 43 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L44_RX = 349, //!< NvLink read for link 44 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L44_TX = 350, //!< NvLink write for link 44 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L45_RX = 351, //!< NvLink read for link 45 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L45_TX = 352, //!< NvLink write for link 45 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L46_RX = 353, //!< NvLink read for link 46 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L46_TX = 354, //!< NvLink write for link 46 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L47_RX = 355, //!< NvLink read for link 47 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L47_TX = 356, //!< NvLink write for link 47 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L48_RX = 357, //!< NvLink read for link 48 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L48_TX = 358, //!< NvLink write for link 48 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L49_RX = 359, //!< NvLink read for link 49 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L49_TX = 360, //!< NvLink write for link 49 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L50_RX = 361, //!< NvLink read for link 50 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L50_TX = 362, //!< NvLink write for link 50 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L51_RX = 363, //!< NvLink read for link 51 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L51_TX = 364, //!< NvLink write for link 51 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L52_RX = 365, //!< NvLink read for link 52 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L52_TX = 366, //!< NvLink write for link 52 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L53_RX = 367, //!< NvLink read for link 53 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L53_TX = 368, //!< NvLink write for link 53 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L54_RX = 369, //!< NvLink read for link 54 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L54_TX = 370, //!< NvLink write for link 54 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L55_RX = 371, //!< NvLink read for link 55 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L55_TX = 372, //!< NvLink write for link 55 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L56_RX = 373, //!< NvLink read for link 56 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L56_TX = 374, //!< NvLink write for link 56 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L57_RX = 375, //!< NvLink read for link 57 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L57_TX = 376, //!< NvLink write for link 57 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L58_RX = 377, //!< NvLink read for link 58 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L58_TX = 378, //!< NvLink write for link 58 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L59_RX = 379, //!< NvLink read for link 59 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L59_TX = 380, //!< NvLink write for link 59 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L60_RX = 381, //!< NvLink read for link 60 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L60_TX = 382, //!< NvLink write for link 60 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L61_RX = 383, //!< NvLink read for link 61 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L61_TX = 384, //!< NvLink write for link 61 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L62_RX = 385, //!< NvLink read for link 62 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L62_TX = 386, //!< NvLink write for link 62 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L63_RX = 387, //!< NvLink read for link 63 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L63_TX = 388, //!< NvLink write for link 63 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L64_RX = 389, //!< NvLink read for link 64 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L64_TX = 390, //!< NvLink write for link 64 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L65_RX = 391, //!< NvLink read for link 65 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L65_TX = 392, //!< NvLink write for link 65 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L66_RX = 393, //!< NvLink read for link 66 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L66_TX = 394, //!< NvLink write for link 66 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L67_RX = 395, //!< NvLink read for link 67 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L67_TX = 396, //!< NvLink write for link 67 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L68_RX = 397, //!< NvLink read for link 68 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L68_TX = 398, //!< NvLink write for link 68 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L69_RX = 399, //!< NvLink read for link 69 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L69_TX = 400, //!< NvLink write for link 69 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L70_RX = 401, //!< NvLink read for link 70 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L70_TX = 402, //!< NvLink write for link 70 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L71_RX = 403, //!< NvLink read for link 71 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L71_TX = 404, //!< NvLink write for link 71 in bytes since reboot + NVML_GPM_METRIC_NVLINK_L36_RX_PER_SEC = 405, //!< NvLink read bandwidth for link 36 in MiB/sec + NVML_GPM_METRIC_NVLINK_L36_TX_PER_SEC = 406, //!< NvLink write bandwidth for link 36 in MiB/sec + NVML_GPM_METRIC_NVLINK_L37_RX_PER_SEC = 407, //!< NvLink read bandwidth for link 37 in MiB/sec + NVML_GPM_METRIC_NVLINK_L37_TX_PER_SEC = 408, //!< NvLink write bandwidth for link 37 in MiB/sec + NVML_GPM_METRIC_NVLINK_L38_RX_PER_SEC = 409, //!< NvLink read bandwidth for link 38 in MiB/sec + NVML_GPM_METRIC_NVLINK_L38_TX_PER_SEC = 410, //!< NvLink write bandwidth for link 38 in MiB/sec + NVML_GPM_METRIC_NVLINK_L39_RX_PER_SEC = 411, //!< NvLink read bandwidth for link 39 in MiB/sec + NVML_GPM_METRIC_NVLINK_L39_TX_PER_SEC = 412, //!< NvLink write bandwidth for link 39 in MiB/sec + NVML_GPM_METRIC_NVLINK_L40_RX_PER_SEC = 413, //!< NvLink read bandwidth for link 40 in MiB/sec + NVML_GPM_METRIC_NVLINK_L40_TX_PER_SEC = 414, //!< NvLink write bandwidth for link 40 in MiB/sec + NVML_GPM_METRIC_NVLINK_L41_RX_PER_SEC = 415, //!< NvLink read bandwidth for link 41 in MiB/sec + NVML_GPM_METRIC_NVLINK_L41_TX_PER_SEC = 416, //!< NvLink write bandwidth for link 41 in MiB/sec + NVML_GPM_METRIC_NVLINK_L42_RX_PER_SEC = 417, //!< NvLink read bandwidth for link 42 in MiB/sec + NVML_GPM_METRIC_NVLINK_L42_TX_PER_SEC = 418, //!< NvLink write bandwidth for link 42 in MiB/sec + NVML_GPM_METRIC_NVLINK_L43_RX_PER_SEC = 419, //!< NvLink read bandwidth for link 43 in MiB/sec + NVML_GPM_METRIC_NVLINK_L43_TX_PER_SEC = 420, //!< NvLink write bandwidth for link 43 in MiB/sec + NVML_GPM_METRIC_NVLINK_L44_RX_PER_SEC = 421, //!< NvLink read bandwidth for link 44 in MiB/sec + NVML_GPM_METRIC_NVLINK_L44_TX_PER_SEC = 422, //!< NvLink write bandwidth for link 44 in MiB/sec + NVML_GPM_METRIC_NVLINK_L45_RX_PER_SEC = 423, //!< NvLink read bandwidth for link 45 in MiB/sec + NVML_GPM_METRIC_NVLINK_L45_TX_PER_SEC = 424, //!< NvLink write bandwidth for link 45 in MiB/sec + NVML_GPM_METRIC_NVLINK_L46_RX_PER_SEC = 425, //!< NvLink read bandwidth for link 46 in MiB/sec + NVML_GPM_METRIC_NVLINK_L46_TX_PER_SEC = 426, //!< NvLink write bandwidth for link 46 in MiB/sec + NVML_GPM_METRIC_NVLINK_L47_RX_PER_SEC = 427, //!< NvLink read bandwidth for link 47 in MiB/sec + NVML_GPM_METRIC_NVLINK_L47_TX_PER_SEC = 428, //!< NvLink write bandwidth for link 47 in MiB/sec + NVML_GPM_METRIC_NVLINK_L48_RX_PER_SEC = 429, //!< NvLink read bandwidth for link 48 in MiB/sec + NVML_GPM_METRIC_NVLINK_L48_TX_PER_SEC = 430, //!< NvLink write bandwidth for link 48 in MiB/sec + NVML_GPM_METRIC_NVLINK_L49_RX_PER_SEC = 431, //!< NvLink read bandwidth for link 49 in MiB/sec + NVML_GPM_METRIC_NVLINK_L49_TX_PER_SEC = 432, //!< NvLink write bandwidth for link 49 in MiB/sec + NVML_GPM_METRIC_NVLINK_L50_RX_PER_SEC = 433, //!< NvLink read bandwidth for link 50 in MiB/sec + NVML_GPM_METRIC_NVLINK_L50_TX_PER_SEC = 434, //!< NvLink write bandwidth for link 50 in MiB/sec + NVML_GPM_METRIC_NVLINK_L51_RX_PER_SEC = 435, //!< NvLink read bandwidth for link 51 in MiB/sec + NVML_GPM_METRIC_NVLINK_L51_TX_PER_SEC = 436, //!< NvLink write bandwidth for link 51 in MiB/sec + NVML_GPM_METRIC_NVLINK_L52_RX_PER_SEC = 437, //!< NvLink read bandwidth for link 52 in MiB/sec + NVML_GPM_METRIC_NVLINK_L52_TX_PER_SEC = 438, //!< NvLink write bandwidth for link 52 in MiB/sec + NVML_GPM_METRIC_NVLINK_L53_RX_PER_SEC = 439, //!< NvLink read bandwidth for link 53 in MiB/sec + NVML_GPM_METRIC_NVLINK_L53_TX_PER_SEC = 440, //!< NvLink write bandwidth for link 53 in MiB/sec + NVML_GPM_METRIC_NVLINK_L54_RX_PER_SEC = 441, //!< NvLink read bandwidth for link 54 in MiB/sec + NVML_GPM_METRIC_NVLINK_L54_TX_PER_SEC = 442, //!< NvLink write bandwidth for link 54 in MiB/sec + NVML_GPM_METRIC_NVLINK_L55_RX_PER_SEC = 443, //!< NvLink read bandwidth for link 55 in MiB/sec + NVML_GPM_METRIC_NVLINK_L55_TX_PER_SEC = 444, //!< NvLink write bandwidth for link 55 in MiB/sec + NVML_GPM_METRIC_NVLINK_L56_RX_PER_SEC = 445, //!< NvLink read bandwidth for link 56 in MiB/sec + NVML_GPM_METRIC_NVLINK_L56_TX_PER_SEC = 446, //!< NvLink write bandwidth for link 56 in MiB/sec + NVML_GPM_METRIC_NVLINK_L57_RX_PER_SEC = 447, //!< NvLink read bandwidth for link 57 in MiB/sec + NVML_GPM_METRIC_NVLINK_L57_TX_PER_SEC = 448, //!< NvLink write bandwidth for link 57 in MiB/sec + NVML_GPM_METRIC_NVLINK_L58_RX_PER_SEC = 449, //!< NvLink read bandwidth for link 58 in MiB/sec + NVML_GPM_METRIC_NVLINK_L58_TX_PER_SEC = 450, //!< NvLink write bandwidth for link 58 in MiB/sec + NVML_GPM_METRIC_NVLINK_L59_RX_PER_SEC = 451, //!< NvLink read bandwidth for link 59 in MiB/sec + NVML_GPM_METRIC_NVLINK_L59_TX_PER_SEC = 452, //!< NvLink write bandwidth for link 59 in MiB/sec + NVML_GPM_METRIC_NVLINK_L60_RX_PER_SEC = 453, //!< NvLink read bandwidth for link 60 in MiB/sec + NVML_GPM_METRIC_NVLINK_L60_TX_PER_SEC = 454, //!< NvLink write bandwidth for link 60 in MiB/sec + NVML_GPM_METRIC_NVLINK_L61_RX_PER_SEC = 455, //!< NvLink read bandwidth for link 61 in MiB/sec + NVML_GPM_METRIC_NVLINK_L61_TX_PER_SEC = 456, //!< NvLink write bandwidth for link 61 in MiB/sec + NVML_GPM_METRIC_NVLINK_L62_RX_PER_SEC = 457, //!< NvLink read bandwidth for link 62 in MiB/sec + NVML_GPM_METRIC_NVLINK_L62_TX_PER_SEC = 458, //!< NvLink write bandwidth for link 62 in MiB/sec + NVML_GPM_METRIC_NVLINK_L63_RX_PER_SEC = 459, //!< NvLink read bandwidth for link 63 in MiB/sec + NVML_GPM_METRIC_NVLINK_L63_TX_PER_SEC = 460, //!< NvLink write bandwidth for link 63 in MiB/sec + NVML_GPM_METRIC_NVLINK_L64_RX_PER_SEC = 461, //!< NvLink read bandwidth for link 64 in MiB/sec + NVML_GPM_METRIC_NVLINK_L64_TX_PER_SEC = 462, //!< NvLink write bandwidth for link 64 in MiB/sec + NVML_GPM_METRIC_NVLINK_L65_RX_PER_SEC = 463, //!< NvLink read bandwidth for link 65 in MiB/sec + NVML_GPM_METRIC_NVLINK_L65_TX_PER_SEC = 464, //!< NvLink write bandwidth for link 65 in MiB/sec + NVML_GPM_METRIC_NVLINK_L66_RX_PER_SEC = 465, //!< NvLink read bandwidth for link 66 in MiB/sec + NVML_GPM_METRIC_NVLINK_L66_TX_PER_SEC = 466, //!< NvLink write bandwidth for link 66 in MiB/sec + NVML_GPM_METRIC_NVLINK_L67_RX_PER_SEC = 467, //!< NvLink read bandwidth for link 67 in MiB/sec + NVML_GPM_METRIC_NVLINK_L67_TX_PER_SEC = 468, //!< NvLink write bandwidth for link 67 in MiB/sec + NVML_GPM_METRIC_NVLINK_L68_RX_PER_SEC = 469, //!< NvLink read bandwidth for link 68 in MiB/sec + NVML_GPM_METRIC_NVLINK_L68_TX_PER_SEC = 470, //!< NvLink write bandwidth for link 68 in MiB/sec + NVML_GPM_METRIC_NVLINK_L69_RX_PER_SEC = 471, //!< NvLink read bandwidth for link 69 in MiB/sec + NVML_GPM_METRIC_NVLINK_L69_TX_PER_SEC = 472, //!< NvLink write bandwidth for link 69 in MiB/sec + NVML_GPM_METRIC_NVLINK_L70_RX_PER_SEC = 473, //!< NvLink read bandwidth for link 70 in MiB/sec + NVML_GPM_METRIC_NVLINK_L70_TX_PER_SEC = 474, //!< NvLink write bandwidth for link 70 in MiB/sec + NVML_GPM_METRIC_NVLINK_L71_RX_PER_SEC = 475, //!< NvLink read bandwidth for link 71 in MiB/sec + NVML_GPM_METRIC_NVLINK_L71_TX_PER_SEC = 476, //!< NvLink write bandwidth for link 71 in MiB/sec + NVML_GPM_METRIC_MAX = 477, //!< Maximum value above +1 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) } nvmlGpmMetricId_t; /** @} */ // @defgroup nvmlGpmEnums @@ -12918,6 +14637,15 @@ typedef struct /** * GPM metric information. */ +<<<<<<< HEAD +======= +typedef struct { + char *shortName; + char *longName; + char *unit; +} nvmlGpmMetricMetricInfo_t; + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) typedef struct { unsigned int metricId; //!< IN: NVML_GPM_METRIC_? define of which metric to retrieve @@ -13173,23 +14901,33 @@ typedef struct #define NVML_WORKLOAD_POWER_MAX_PROFILES (255) typedef enum { - NVML_POWER_PROFILE_MAX_P = 0, - NVML_POWER_PROFILE_MAX_Q = 1, - NVML_POWER_PROFILE_COMPUTE = 2, - NVML_POWER_PROFILE_MEMORY_BOUND = 3, - NVML_POWER_PROFILE_NETWORK = 4, - NVML_POWER_PROFILE_BALANCED = 5, - NVML_POWER_PROFILE_LLM_INFERENCE = 6, - NVML_POWER_PROFILE_LLM_TRAINING = 7, - NVML_POWER_PROFILE_RBM = 8, - NVML_POWER_PROFILE_DCPCIE = 9, - NVML_POWER_PROFILE_HMMA_SPARSE = 10, - NVML_POWER_PROFILE_HMMA_DENSE = 11, - NVML_POWER_PROFILE_SYNC_BALANCED = 12, - NVML_POWER_PROFILE_HPC = 13, - NVML_POWER_PROFILE_MIG = 14, - - NVML_POWER_PROFILE_MAX = 15, + NVML_POWER_PROFILE_MAX_P = 0, + NVML_POWER_PROFILE_MAX_Q = 1, + NVML_POWER_PROFILE_COMPUTE = 2, + NVML_POWER_PROFILE_MEMORY_BOUND = 3, + NVML_POWER_PROFILE_NETWORK = 4, + NVML_POWER_PROFILE_BALANCED = 5, + NVML_POWER_PROFILE_LLM_INFERENCE = 6, + NVML_POWER_PROFILE_LLM_TRAINING = 7, + NVML_POWER_PROFILE_RBM = 8, + NVML_POWER_PROFILE_DCPCIE = 9, + NVML_POWER_PROFILE_HMMA_SPARSE = 10, + NVML_POWER_PROFILE_HMMA_DENSE = 11, + NVML_POWER_PROFILE_SYNC_BALANCED = 12, + NVML_POWER_PROFILE_HPC = 13, + NVML_POWER_PROFILE_MIG = 14, + NVML_POWER_PROFILE_MAX_Q_1 = 15, + NVML_POWER_PROFILE_NETWORK_BOUND = 16, + NVML_POWER_PROFILE_HIGH_THROUGHPUT_INFERENCE = 17, + NVML_POWER_PROFILE_MEDIUM_THROUGHPUT_INFERENCE = 18, + NVML_POWER_PROFILE_LOW_LATENCY_INFERENCE = 19, + NVML_POWER_PROFILE_TRAINING = 20, + NVML_POWER_PROFILE_INFERENCE = 21, + NVML_POWER_PROFILE_MAX_Q_2 = 22, + NVML_POWER_PROFILE_MAX_Q_3 = 23, + NVML_POWER_PROFILE_LOW_PRIORITY_BACKGROUND = 24, + + NVML_POWER_PROFILE_MAX = 25, } nvmlPowerProfileType_t; /** @@ -13297,7 +15035,7 @@ nvmlReturn_t DECLDIR nvmlDeviceWorkloadPowerProfileGetCurrentProfiles(nvmlDevice * * %BLACKWELL_OR_NEWER% * See \ref nvmlWorkloadPowerProfileRequestedProfiles_v1_t for more information on the struct. - * Reuqest one or more performance profiles be activated using the input bitmask + * Request one or more performance profiles be activated using the input bitmask * \a requestedProfilesMask, where each bit set corresponds to a supported bit from * the \a perfProfilesMask. These profiles will be added to existing list of * currently requested profiles. @@ -13340,8 +15078,39 @@ nvmlReturn_t DECLDIR nvmlDeviceWorkloadPowerProfileSetRequestedProfiles(nvmlDevi * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH If the provided version is invalid/unsupported * - \ref NVML_ERROR_UNKNOWN On any unexpected error */ +<<<<<<< HEAD nvmlReturn_t DECLDIR nvmlDeviceWorkloadPowerProfileClearRequestedProfiles(nvmlDevice_t device, nvmlWorkloadPowerProfileRequestedProfiles_t *requestedProfiles); +======= +DEPRECATED(13.1) nvmlReturn_t DECLDIR nvmlDeviceWorkloadPowerProfileClearRequestedProfiles(nvmlDevice_t device, + nvmlWorkloadPowerProfileRequestedProfiles_t *requestedProfiles); + +/** + * Update Requested Performance Profiles + * + * For Blackwell &tm; or newer fully supported devices. + * See \ref nvmlWorkloadPowerProfileUpdateProfiles_v1_t for more information on the struct. + * Update the requested performance profiles using the input bitmask + * \a updateProfilesMask, where each bit set corresponds to a supported bit from + * the \a perfProfilesMask. + * The \a operation parameter specifies the operation to perform, see \ref nvmlPowerProfileOperation_t for more information. + * Requires root/admin permissions or access to the NVIDIA WPPS capability. + * + * @param device The identifier of the target device + * @param updateProfiles Reference to struct \a nvmlWorkloadPowerProfileUpdateProfiles_v1_t + * + * @return + * - \ref NVML_SUCCESS If the query is successful + * - \ref NVML_ERROR_UNINITIALIZED If the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT If \a device is invalid or \a pointer to struct is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED If the device does not support this feature + * - \ref NVML_ERROR_GPU_IS_LOST If the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN On any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceWorkloadPowerProfileUpdateProfiles_v1(nvmlDevice_t device, + nvmlWorkloadPowerProfileUpdateProfiles_v1_t *updateProfiles); + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) /** @} */ // @defgroup /***************************************************************************************************/ @@ -13493,6 +15262,84 @@ nvmlReturn_t DECLDIR nvmlDeviceGetSramUniqueUncorrectedEccErrorCounts(nvmlDevice nvmlEccSramUniqueUncorrectedErrorCounts_t *errorCounts); /** +<<<<<<< HEAD +======= + * Get the status of row remapper. + * + * @note On MIG-enabled GPUs with active instances, querying the number of + * remapped rows is not supported + * + * For Ampere &tm; or newer fully supported devices. + * + * @param device The identifier of the target device + * @param info Reference for \a nvmlRemappedRowsInfo_v2_t + * + * @return + * - \ref NVML_SUCCESS Upon success + * - \ref NVML_ERROR_INVALID_ARGUMENT If \a info is invalid + * - \ref NVML_ERROR_NOT_SUPPORTED If MIG is enabled or if the device doesn't support this feature + * - \ref NVML_ERROR_UNKNOWN Unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetRemappedRows_v2(nvmlDevice_t device, nvmlRemappedRowsInfo_v2_t *info); + +/** + * Set Read-only user shared data (RUSD) settings for GPU. + * Requires root/admin permissions. + * + * @param device The identifier of the target device + * @param settings Reference to \ref nvmlRusdSettings_v1_t struct + * + * @return + * - \ref NVML_SUCCESS if the RUSD setting was successfully set + * - \ref NVML_ERROR_INVALID_ARGUMENT if device is invalid or state is NULL + * - \ref NVML_ERROR_NO_PERMISSION if user does not have permission to change feature state + * - \ref NVML_ERROR_NOT_SUPPORTED if this feature is not supported by NVIDIA kernel driver + * - \ref NVML_ERROR_ARGUMENT_VERSION_MISMATCH if the input version is not supported + * + **/ +nvmlReturn_t DECLDIR nvmlDeviceSetRusdSettings_v1(nvmlDevice_t device, nvmlRusdSettings_v1_t *settings); + +/** + * Structure to store bank remapper histogram + */ +typedef struct +{ + unsigned int maxSpareGroupCount; //!< Number of groups that have maximum spare. + unsigned int noSpareGroupCount; //!< Number of groups that have not spare. +} nvmlEccBankRemapperHistogram_v1_t; + +/** + * Structure to store bank remapper status + */ +typedef struct +{ + unsigned int activeRemappings; //!< Number of active remappings + unsigned int inactiveRemappings; //!< Number of inactive remappings + unsigned int bPending; //!< Whether there exists any pending bank remapping. 0 for no pending remapping, 1 for pending remapping. + nvmlEccBankRemapperHistogram_v1_t histogram; //!< Bank remapper histogram +} nvmlEccBankRemapperStatus_v1_t; + +/** + * Get bank remapper status. + * + * %RUBIN_OR_NEWER% + * + * @param device The identifier of the target device + * @param pBankRemapperStatus Reference to \a nvmlEccBankRemapperStatus_t + * + * @return + * - \ref NVML_SUCCESS if \a pBankRemapperStatus was populated + * - \ref NVML_ERROR_UNINITIALIZED if the library has not been successfully initialized + * - \ref NVML_ERROR_INVALID_ARGUMENT if \a device is invalid or \a pBankRemapperStatus is NULL + * - \ref NVML_ERROR_NOT_SUPPORTED if the device doesn't support this feature + * - \ref NVML_ERROR_GPU_IS_LOST if the target GPU has fallen off the bus or is otherwise inaccessible + * - \ref NVML_ERROR_UNKNOWN on any unexpected error + */ +nvmlReturn_t DECLDIR nvmlDeviceGetBankRemapperStatus_v1(nvmlDevice_t device, + nvmlEccBankRemapperStatus_v1_t *pBankRemapperStatus); + +/** +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) * NVML API versioning support */ diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go index f8247102..90eac32b 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/system.go @@ -136,6 +136,7 @@ func (l *library) SystemGetConfComputeSettings() (SystemConfComputeSettings, Ret // nvml.SystemSetConfComputeKeyRotationThresholdInfo() func (l *library) SystemSetConfComputeKeyRotationThresholdInfo(keyRotationThresholdInfo ConfComputeSetKeyRotationThresholdInfo) Return { + keyRotationThresholdInfo.Version = STRUCT_VERSION(keyRotationThresholdInfo, 1) return nvmlSystemSetConfComputeKeyRotationThresholdInfo(&keyRotationThresholdInfo) } diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go index efa58637..e4421bbc 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/types_gen.go @@ -73,6 +73,19 @@ type Memory_v2 struct { Used uint64 } +type SetMemoryLimits_v1 struct { + NameSpace *int8 + SoftLimit uint64 + HardLimit uint64 +} + +type GetMemoryLimits_v1 struct { + NameSpace *int8 + SoftLimit uint64 + HardLimit uint64 + CurrentUsed uint64 +} + type BAR1Memory struct { Bar1Total uint64 Bar1Free uint64 @@ -242,6 +255,98 @@ type Pdi struct { Value uint64 } +<<<<<<< HEAD +======= +type PmgrPwrTuple struct { + PwrmW uint32 +} + +type RailMetrics struct { + FreqkHz uint32 + UtilPct uint64 +} + +type CoreRailMetrics struct { + Rails [2]RailMetrics +} + +type PwrModelMetricsDlppm1xPerf struct { + Perfms uint32 +} + +type PwrModelMetricsDlppm1x struct { + BValid uint8 + CoreRail CoreRailMetrics + FbRail RailMetrics + TgpPwrTuple PmgrPwrTuple + PerfMetrics PwrModelMetricsDlppm1xPerf +} + +type PwrModelMetricsDlppm1xDramclkEstimates struct { + EstimatedMetrics [8]PwrModelMetricsDlppm1x + NumEstimatedMetrics uint8 + Pad_cgo_0 [7]byte +} + +type ObservedMetrics struct { + InitialDramclkEst [3]PwrModelMetricsDlppm1xDramclkEstimates + BValid uint8 + CoreRail CoreRailMetrics + FbRail RailMetrics + TgpPwrTuple PmgrPwrTuple + PerfMetrics PwrModelMetricsDlppm1xPerf +} + +type PerfMetricsDlppc2xSample struct { + ObservedMetrics ObservedMetrics +} + +type PwrModelMetricsSamplePfpp1x struct { + FreqkHz [16]uint32 + EstTgpPwrmW uint32 +} + +type PwrModelOperatingPointPfpp1x struct { + FreqkHz uint32 + PwrmW uint32 +} + +type PwrModelMetricsPfpp1x struct { + NumVfPoints uint8 + EstimatedMetrics [32]PwrModelMetricsSamplePfpp1x + BValid uint8 + MaxPerfPerWattPoint PwrModelOperatingPointPfpp1x + FmaxAtVmaxPoint PwrModelOperatingPointPfpp1x + TgpHeadroommW uint32 +} + +type PerfMetricsPfpp1xSample struct { + EstimatedMetrics PwrModelMetricsPfpp1x +} + +type PerfMetricControllerSample struct { + ControllerType uint32 + Pad_cgo_0 [4]byte + Data [2208]byte +} + +type PerfMetricsSample struct { + NumControllerData uint8 + Pad_cgo_0 [7]byte + ControllerData [4]PerfMetricControllerSample +} + +type PerfMetricsSamples_v1 struct { + NumSamples uint32 + Pad_cgo_0 [4]byte + Samples [13]PerfMetricsSample +} + +type BBXTimeData_v1 struct { + TimeRun uint32 +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) type DramEncryptionInfo_v1 struct { Version uint32 EncryptionState uint32 @@ -477,6 +582,14 @@ type PowerValue_v2 struct { PowerValueMw uint32 } +type AdaptiveTgpModeInfo_v1 struct { + InBandEnableRequest uint32 + FeatureAllowedByAdmin uint32 + AdminOverrideEnabled uint32 + EnablementStatus uint32 + AdjustedLimitMw uint32 +} + type nvmlVgpuTypeId uint32 type nvmlVgpuInstance uint32 @@ -883,6 +996,30 @@ type nvmlEventData struct { ComputeInstanceId uint32 } +type GetContextCount_v1 struct { + Count uint32 +} + +type GetContextInfo_v1 struct { + Index uint32 + NvmlGpuOperationalEventContextType uint32 + SourceEventContextType uint32 + DataSize uint32 + DataFormatVersion uint16 + Pad_cgo_0 [2]byte +} + +type GetContextData_v1 struct { + Data *byte + Index uint32 + DataSize uint32 +} + +type GetGpuOperationalEventContextLegacyXid_v1 struct { + Index uint32 + XidCode uint32 +} + type SystemEventSet struct { Handle *_Ctype_struct_nvmlSystemEventSet_st } @@ -1094,6 +1231,75 @@ type GpuFabricInfoV struct { Pad_cgo_0 [3]byte } +<<<<<<< HEAD +======= +type GpuFabricClique_v1 struct { + Type uint8 + Id uint32 +} + +type GpuFabricInfo_v4 struct { + ClusterUuid [16]uint8 + Status uint32 + Cliques [64]GpuFabricClique_v1 + NumCliques uint32 + State uint8 + HealthMask uint32 + HealthSummary uint8 + Pad_cgo_0 [3]byte +} + +type GpuOperationalEventConfig_v1 struct { + Uuid [96]int8 + MinLogLevel uint32 + MinSeverity uint32 +} + +type EventSetWaitData_v3 struct { + TimeoutMs uint32 + DataType uint32 + Uuid [96]int8 + SourceModule [16]int8 + EventType uint64 + EventData uint64 + GroupCursor uint64 + InstanceId uint64 + TimestampUsec uint64 + TraceId uint64 + GpuInstanceId uint32 + ComputeInstanceId uint32 + Severity uint32 + CategoryId uint32 + ModuleEventCode uint32 + Scope uint32 + Originator uint32 + ModuleInstance uint32 + ChipletId uint32 + LogLevel uint32 + Attributes uint32 + GroupCperSize uint32 + GroupAttributes uint32 + GroupSize uint8 + GroupIndex uint8 + Pad_cgo_0 [2]byte +} + +type CPERCursorHandle uint64 + +type CPERCursor_v1 struct { + CperTypeMask uint32 + Uuid [80]int8 + Handle uint64 +} + +type GetCPER_v1 struct { + Cursor CPERCursor_v1 + Buffer *uint8 + BufferSize uint32 + Pad_cgo_0 [4]byte +} + +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) type SystemDriverBranchInfo_v1 struct { Version uint32 Branch [80]uint8 @@ -1158,6 +1364,12 @@ type NvlinkSetBwMode struct { Pad_cgo_0 [3]byte } +type NvlinkSetBwModeAsync_v1 struct { + BSetBest uint32 + BwMode uint32 + AsyncPollTimeoutMs uint32 +} + type NvLinkInfo_v1 struct { Version uint32 IsNvleEnabled uint32 @@ -1187,6 +1399,20 @@ type NvLinkInfo struct { FirmwareInfo NvlinkFirmwareInfo } +type NvlinkTelemetrySample_v1 struct { + LinkId uint32 + SampleType uint32 + SampleCount uint32 + Samples *uint64 + NvmlReturn uint32 + Pad_cgo_0 [4]byte +} + +type NvlinkTelemetrySamples_v1 struct { + TelemetryCount uint32 + TelemetrySamples *NvlinkTelemetrySample_v1 +} + type VgpuVersion struct { MinVersion uint32 MaxVersion uint32 @@ -1365,7 +1591,11 @@ type nvmlGpmMetricsGetType struct { NumMetrics uint32 Sample1 nvmlGpmSample Sample2 nvmlGpmSample +<<<<<<< HEAD Metrics [210]GpmMetric +======= + Metrics [477]GpmMetric +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) } type GpmSupport struct { @@ -1460,3 +1690,15 @@ type PowerSmoothingState struct { Version uint32 State uint32 } + +type EccBankRemapperHistogram_v1 struct { + MaxSpareGroupCount uint32 + NoSpareGroupCount uint32 +} + +type EccBankRemapperStatus_v1 struct { + ActiveRemappings uint32 + InactiveRemappings uint32 + BPending uint32 + Histogram EccBankRemapperHistogram_v1 +} diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go index 9ab649a4..0fc71f48 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/vgpu.go @@ -42,6 +42,19 @@ func (vgpuTypeId nvmlVgpuTypeId) GetClass() (string, Return) { return string(vgpuTypeClass[:clen(vgpuTypeClass)]), ret } +// nvml.VgpuTypeGetID() +// It doesn't have an NVML C API symbol because the base type `nvmlVgpuTypeId` +// is a non-exported type defined as `uint32`. When using the `VgpuTypeId` type, +// it is not possible to read the underlying value without using reflection. +// This method adds an idiomatic Go getter to access the type's value. +func (l *library) VgpuTypeGetID(vgpuTypeId VgpuTypeId) uint32 { + return vgpuTypeId.GetID() +} + +func (vgpuTypeId nvmlVgpuTypeId) GetID() uint32 { + return uint32(vgpuTypeId) +} + // nvml.VgpuTypeGetName() func (l *library) VgpuTypeGetName(vgpuTypeId VgpuTypeId) (string, Return) { return vgpuTypeId.GetName() diff --git a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/zz_generated.api.go b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/zz_generated.api.go index f4930ffd..59bfcc16 100644 --- a/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/zz_generated.api.go +++ b/vendor/github.com/NVIDIA/go-nvml/pkg/nvml/zz_generated.api.go @@ -20,6 +20,7 @@ package nvml // The variables below represent package level methods from the library type. var ( +<<<<<<< HEAD ComputeInstanceDestroy = libnvml.ComputeInstanceDestroy ComputeInstanceGetInfo = libnvml.ComputeInstanceGetInfo DeviceClearAccountingPids = libnvml.DeviceClearAccountingPids @@ -394,6 +395,415 @@ var ( VgpuTypeGetName = libnvml.VgpuTypeGetName VgpuTypeGetNumDisplayHeads = libnvml.VgpuTypeGetNumDisplayHeads VgpuTypeGetResolution = libnvml.VgpuTypeGetResolution +======= + ComputeInstanceDestroy = libnvml.ComputeInstanceDestroy + ComputeInstanceGetInfo = libnvml.ComputeInstanceGetInfo + DeviceClearAccountingPids = libnvml.DeviceClearAccountingPids + DeviceClearCpuAffinity = libnvml.DeviceClearCpuAffinity + DeviceClearEccErrorCounts = libnvml.DeviceClearEccErrorCounts + DeviceClearFieldValues = libnvml.DeviceClearFieldValues + DeviceCreateGpuInstance = libnvml.DeviceCreateGpuInstance + DeviceCreateGpuInstanceWithPlacement = libnvml.DeviceCreateGpuInstanceWithPlacement + DeviceDiscoverGpus = libnvml.DeviceDiscoverGpus + DeviceFreezeNvLinkUtilizationCounter = libnvml.DeviceFreezeNvLinkUtilizationCounter + DeviceGetAPIRestriction = libnvml.DeviceGetAPIRestriction + DeviceGetAccountingBufferSize = libnvml.DeviceGetAccountingBufferSize + DeviceGetAccountingMode = libnvml.DeviceGetAccountingMode + DeviceGetAccountingPids = libnvml.DeviceGetAccountingPids + DeviceGetAccountingStats = libnvml.DeviceGetAccountingStats + DeviceGetAccountingStats_v2 = libnvml.DeviceGetAccountingStats_v2 + DeviceGetActiveVgpus = libnvml.DeviceGetActiveVgpus + DeviceGetAdaptiveClockInfoStatus = libnvml.DeviceGetAdaptiveClockInfoStatus + DeviceGetAdaptiveTgpModeInfo_v1 = libnvml.DeviceGetAdaptiveTgpModeInfo_v1 + DeviceGetAddressingMode = libnvml.DeviceGetAddressingMode + DeviceGetApplicationsClock = libnvml.DeviceGetApplicationsClock + DeviceGetArchitecture = libnvml.DeviceGetArchitecture + DeviceGetAttributes = libnvml.DeviceGetAttributes + DeviceGetAutoBoostedClocksEnabled = libnvml.DeviceGetAutoBoostedClocksEnabled + DeviceGetBAR1MemoryInfo = libnvml.DeviceGetBAR1MemoryInfo + DeviceGetBBXTimeData_v1 = libnvml.DeviceGetBBXTimeData_v1 + DeviceGetBankRemapperStatus_v1 = libnvml.DeviceGetBankRemapperStatus_v1 + DeviceGetBoardId = libnvml.DeviceGetBoardId + DeviceGetBoardPartNumber = libnvml.DeviceGetBoardPartNumber + DeviceGetBrand = libnvml.DeviceGetBrand + DeviceGetBridgeChipInfo = libnvml.DeviceGetBridgeChipInfo + DeviceGetBusType = libnvml.DeviceGetBusType + DeviceGetC2cModeInfoV = libnvml.DeviceGetC2cModeInfoV + DeviceGetCapabilities = libnvml.DeviceGetCapabilities + DeviceGetClkMonStatus = libnvml.DeviceGetClkMonStatus + DeviceGetClock = libnvml.DeviceGetClock + DeviceGetClockInfo = libnvml.DeviceGetClockInfo + DeviceGetClockOffsets = libnvml.DeviceGetClockOffsets + DeviceGetComputeInstanceId = libnvml.DeviceGetComputeInstanceId + DeviceGetComputeMode = libnvml.DeviceGetComputeMode + DeviceGetComputeRunningProcesses = libnvml.DeviceGetComputeRunningProcesses + DeviceGetConfComputeGpuAttestationReport = libnvml.DeviceGetConfComputeGpuAttestationReport + DeviceGetConfComputeGpuCertificate = libnvml.DeviceGetConfComputeGpuCertificate + DeviceGetConfComputeMemSizeInfo = libnvml.DeviceGetConfComputeMemSizeInfo + DeviceGetConfComputeProtectedMemoryUsage = libnvml.DeviceGetConfComputeProtectedMemoryUsage + DeviceGetCoolerInfo = libnvml.DeviceGetCoolerInfo + DeviceGetCount = libnvml.DeviceGetCount + DeviceGetCpuAffinity = libnvml.DeviceGetCpuAffinity + DeviceGetCpuAffinityWithinScope = libnvml.DeviceGetCpuAffinityWithinScope + DeviceGetCreatableVgpus = libnvml.DeviceGetCreatableVgpus + DeviceGetCudaComputeCapability = libnvml.DeviceGetCudaComputeCapability + DeviceGetCurrPcieLinkGeneration = libnvml.DeviceGetCurrPcieLinkGeneration + DeviceGetCurrPcieLinkWidth = libnvml.DeviceGetCurrPcieLinkWidth + DeviceGetCurrentClockFreqs = libnvml.DeviceGetCurrentClockFreqs + DeviceGetCurrentClocksEventReasons = libnvml.DeviceGetCurrentClocksEventReasons + DeviceGetCurrentClocksThrottleReasons = libnvml.DeviceGetCurrentClocksThrottleReasons + DeviceGetDecoderUtilization = libnvml.DeviceGetDecoderUtilization + DeviceGetDefaultApplicationsClock = libnvml.DeviceGetDefaultApplicationsClock + DeviceGetDefaultEccMode = libnvml.DeviceGetDefaultEccMode + DeviceGetDetailedEccErrors = libnvml.DeviceGetDetailedEccErrors + DeviceGetDeviceHandleFromMigDeviceHandle = libnvml.DeviceGetDeviceHandleFromMigDeviceHandle + DeviceGetDisplayActive = libnvml.DeviceGetDisplayActive + DeviceGetDisplayMode = libnvml.DeviceGetDisplayMode + DeviceGetDramEncryptionMode = libnvml.DeviceGetDramEncryptionMode + DeviceGetDriverModel = libnvml.DeviceGetDriverModel + DeviceGetDriverModel_v2 = libnvml.DeviceGetDriverModel_v2 + DeviceGetDynamicPstatesInfo = libnvml.DeviceGetDynamicPstatesInfo + DeviceGetEccMode = libnvml.DeviceGetEccMode + DeviceGetEncoderCapacity = libnvml.DeviceGetEncoderCapacity + DeviceGetEncoderSessions = libnvml.DeviceGetEncoderSessions + DeviceGetEncoderStats = libnvml.DeviceGetEncoderStats + DeviceGetEncoderUtilization = libnvml.DeviceGetEncoderUtilization + DeviceGetEnforcedPowerLimit = libnvml.DeviceGetEnforcedPowerLimit + DeviceGetFBCSessions = libnvml.DeviceGetFBCSessions + DeviceGetFBCStats = libnvml.DeviceGetFBCStats + DeviceGetFanControlPolicy_v2 = libnvml.DeviceGetFanControlPolicy_v2 + DeviceGetFanSpeed = libnvml.DeviceGetFanSpeed + DeviceGetFanSpeedRPM = libnvml.DeviceGetFanSpeedRPM + DeviceGetFanSpeed_v2 = libnvml.DeviceGetFanSpeed_v2 + DeviceGetFieldValues = libnvml.DeviceGetFieldValues + DeviceGetGpcClkMinMaxVfOffset = libnvml.DeviceGetGpcClkMinMaxVfOffset + DeviceGetGpcClkVfOffset = libnvml.DeviceGetGpcClkVfOffset + DeviceGetGpuFabricInfo = libnvml.DeviceGetGpuFabricInfo + DeviceGetGpuFabricInfoV = libnvml.DeviceGetGpuFabricInfoV + DeviceGetGpuFabricInfo_v4 = libnvml.DeviceGetGpuFabricInfo_v4 + DeviceGetGpuInstanceById = libnvml.DeviceGetGpuInstanceById + DeviceGetGpuInstanceId = libnvml.DeviceGetGpuInstanceId + DeviceGetGpuInstancePossiblePlacements = libnvml.DeviceGetGpuInstancePossiblePlacements + DeviceGetGpuInstanceProfileInfo = libnvml.DeviceGetGpuInstanceProfileInfo + DeviceGetGpuInstanceProfileInfoByIdV = libnvml.DeviceGetGpuInstanceProfileInfoByIdV + DeviceGetGpuInstanceProfileInfoV = libnvml.DeviceGetGpuInstanceProfileInfoV + DeviceGetGpuInstanceRemainingCapacity = libnvml.DeviceGetGpuInstanceRemainingCapacity + DeviceGetGpuInstances = libnvml.DeviceGetGpuInstances + DeviceGetGpuMaxPcieLinkGeneration = libnvml.DeviceGetGpuMaxPcieLinkGeneration + DeviceGetGpuOperationMode = libnvml.DeviceGetGpuOperationMode + DeviceGetGraphicsRunningProcesses = libnvml.DeviceGetGraphicsRunningProcesses + DeviceGetGridLicensableFeatures = libnvml.DeviceGetGridLicensableFeatures + DeviceGetGspFirmwareMode = libnvml.DeviceGetGspFirmwareMode + DeviceGetGspFirmwareVersion = libnvml.DeviceGetGspFirmwareVersion + DeviceGetHandleByIndex = libnvml.DeviceGetHandleByIndex + DeviceGetHandleByPciBusId = libnvml.DeviceGetHandleByPciBusId + DeviceGetHandleBySerial = libnvml.DeviceGetHandleBySerial + DeviceGetHandleByUUID = libnvml.DeviceGetHandleByUUID + DeviceGetHandleByUUIDV = libnvml.DeviceGetHandleByUUIDV + DeviceGetHostVgpuMode = libnvml.DeviceGetHostVgpuMode + DeviceGetHostname_v1 = libnvml.DeviceGetHostname_v1 + DeviceGetIndex = libnvml.DeviceGetIndex + DeviceGetInforomConfigurationChecksum = libnvml.DeviceGetInforomConfigurationChecksum + DeviceGetInforomImageVersion = libnvml.DeviceGetInforomImageVersion + DeviceGetInforomVersion = libnvml.DeviceGetInforomVersion + DeviceGetIrqNum = libnvml.DeviceGetIrqNum + DeviceGetJpgUtilization = libnvml.DeviceGetJpgUtilization + DeviceGetLastBBXFlushTime = libnvml.DeviceGetLastBBXFlushTime + DeviceGetMPSComputeRunningProcesses = libnvml.DeviceGetMPSComputeRunningProcesses + DeviceGetMarginTemperature = libnvml.DeviceGetMarginTemperature + DeviceGetMaxClockInfo = libnvml.DeviceGetMaxClockInfo + DeviceGetMaxCustomerBoostClock = libnvml.DeviceGetMaxCustomerBoostClock + DeviceGetMaxMigDeviceCount = libnvml.DeviceGetMaxMigDeviceCount + DeviceGetMaxPcieLinkGeneration = libnvml.DeviceGetMaxPcieLinkGeneration + DeviceGetMaxPcieLinkWidth = libnvml.DeviceGetMaxPcieLinkWidth + DeviceGetMemClkMinMaxVfOffset = libnvml.DeviceGetMemClkMinMaxVfOffset + DeviceGetMemClkVfOffset = libnvml.DeviceGetMemClkVfOffset + DeviceGetMemoryAffinity = libnvml.DeviceGetMemoryAffinity + DeviceGetMemoryBusWidth = libnvml.DeviceGetMemoryBusWidth + DeviceGetMemoryErrorCounter = libnvml.DeviceGetMemoryErrorCounter + DeviceGetMemoryInfo = libnvml.DeviceGetMemoryInfo + DeviceGetMemoryInfo_v2 = libnvml.DeviceGetMemoryInfo_v2 + DeviceGetMemoryLimits_v1 = libnvml.DeviceGetMemoryLimits_v1 + DeviceGetMigDeviceHandleByIndex = libnvml.DeviceGetMigDeviceHandleByIndex + DeviceGetMigMode = libnvml.DeviceGetMigMode + DeviceGetMinMaxClockOfPState = libnvml.DeviceGetMinMaxClockOfPState + DeviceGetMinMaxFanSpeed = libnvml.DeviceGetMinMaxFanSpeed + DeviceGetMinorNumber = libnvml.DeviceGetMinorNumber + DeviceGetModuleId = libnvml.DeviceGetModuleId + DeviceGetMultiGpuBoard = libnvml.DeviceGetMultiGpuBoard + DeviceGetName = libnvml.DeviceGetName + DeviceGetNumFans = libnvml.DeviceGetNumFans + DeviceGetNumGpuCores = libnvml.DeviceGetNumGpuCores + DeviceGetNumaNodeId = libnvml.DeviceGetNumaNodeId + DeviceGetNvLinkCapability = libnvml.DeviceGetNvLinkCapability + DeviceGetNvLinkErrorCounter = libnvml.DeviceGetNvLinkErrorCounter + DeviceGetNvLinkInfo = libnvml.DeviceGetNvLinkInfo + DeviceGetNvLinkRemoteDeviceType = libnvml.DeviceGetNvLinkRemoteDeviceType + DeviceGetNvLinkRemotePciInfo = libnvml.DeviceGetNvLinkRemotePciInfo + DeviceGetNvLinkState = libnvml.DeviceGetNvLinkState + DeviceGetNvLinkTelemetrySamples_v1 = libnvml.DeviceGetNvLinkTelemetrySamples_v1 + DeviceGetNvLinkUtilizationControl = libnvml.DeviceGetNvLinkUtilizationControl + DeviceGetNvLinkUtilizationCounter = libnvml.DeviceGetNvLinkUtilizationCounter + DeviceGetNvLinkVersion = libnvml.DeviceGetNvLinkVersion + DeviceGetNvlinkBwMode = libnvml.DeviceGetNvlinkBwMode + DeviceGetNvlinkSupportedBwModes = libnvml.DeviceGetNvlinkSupportedBwModes + DeviceGetOfaUtilization = libnvml.DeviceGetOfaUtilization + DeviceGetP2PStatus = libnvml.DeviceGetP2PStatus + DeviceGetPciInfo = libnvml.DeviceGetPciInfo + DeviceGetPciInfoExt = libnvml.DeviceGetPciInfoExt + DeviceGetPcieLinkMaxSpeed = libnvml.DeviceGetPcieLinkMaxSpeed + DeviceGetPcieReplayCounter = libnvml.DeviceGetPcieReplayCounter + DeviceGetPcieSpeed = libnvml.DeviceGetPcieSpeed + DeviceGetPcieThroughput = libnvml.DeviceGetPcieThroughput + DeviceGetPdi = libnvml.DeviceGetPdi + DeviceGetPerformanceModes = libnvml.DeviceGetPerformanceModes + DeviceGetPerformanceState = libnvml.DeviceGetPerformanceState + DeviceGetPersistenceMode = libnvml.DeviceGetPersistenceMode + DeviceGetPgpuMetadataString = libnvml.DeviceGetPgpuMetadataString + DeviceGetPlatformInfo = libnvml.DeviceGetPlatformInfo + DeviceGetPowerManagementDefaultLimit = libnvml.DeviceGetPowerManagementDefaultLimit + DeviceGetPowerManagementLimit = libnvml.DeviceGetPowerManagementLimit + DeviceGetPowerManagementLimitConstraints = libnvml.DeviceGetPowerManagementLimitConstraints + DeviceGetPowerManagementMode = libnvml.DeviceGetPowerManagementMode + DeviceGetPowerMizerMode_v1 = libnvml.DeviceGetPowerMizerMode_v1 + DeviceGetPowerSource = libnvml.DeviceGetPowerSource + DeviceGetPowerState = libnvml.DeviceGetPowerState + DeviceGetPowerUsage = libnvml.DeviceGetPowerUsage + DeviceGetProcessUtilization = libnvml.DeviceGetProcessUtilization + DeviceGetProcessesUtilizationInfo = libnvml.DeviceGetProcessesUtilizationInfo + DeviceGetRemappedRows = libnvml.DeviceGetRemappedRows + DeviceGetRemappedRows_v2 = libnvml.DeviceGetRemappedRows_v2 + DeviceGetRepairStatus = libnvml.DeviceGetRepairStatus + DeviceGetRetiredPages = libnvml.DeviceGetRetiredPages + DeviceGetRetiredPagesPendingStatus = libnvml.DeviceGetRetiredPagesPendingStatus + DeviceGetRetiredPages_v2 = libnvml.DeviceGetRetiredPages_v2 + DeviceGetRowRemapperHistogram = libnvml.DeviceGetRowRemapperHistogram + DeviceGetRunningProcessDetailList = libnvml.DeviceGetRunningProcessDetailList + DeviceGetSamples = libnvml.DeviceGetSamples + DeviceGetSerial = libnvml.DeviceGetSerial + DeviceGetSramEccErrorStatus = libnvml.DeviceGetSramEccErrorStatus + DeviceGetSramUniqueUncorrectedEccErrorCounts = libnvml.DeviceGetSramUniqueUncorrectedEccErrorCounts + DeviceGetSupportedClocksEventReasons = libnvml.DeviceGetSupportedClocksEventReasons + DeviceGetSupportedClocksThrottleReasons = libnvml.DeviceGetSupportedClocksThrottleReasons + DeviceGetSupportedEventTypes = libnvml.DeviceGetSupportedEventTypes + DeviceGetSupportedGraphicsClocks = libnvml.DeviceGetSupportedGraphicsClocks + DeviceGetSupportedMemoryClocks = libnvml.DeviceGetSupportedMemoryClocks + DeviceGetSupportedPerformanceStates = libnvml.DeviceGetSupportedPerformanceStates + DeviceGetSupportedVgpus = libnvml.DeviceGetSupportedVgpus + DeviceGetTargetFanSpeed = libnvml.DeviceGetTargetFanSpeed + DeviceGetTemperature = libnvml.DeviceGetTemperature + DeviceGetTemperatureThreshold = libnvml.DeviceGetTemperatureThreshold + DeviceGetTemperatureV = libnvml.DeviceGetTemperatureV + DeviceGetThermalSettings = libnvml.DeviceGetThermalSettings + DeviceGetTopologyCommonAncestor = libnvml.DeviceGetTopologyCommonAncestor + DeviceGetTopologyNearestGpus = libnvml.DeviceGetTopologyNearestGpus + DeviceGetTotalEccErrors = libnvml.DeviceGetTotalEccErrors + DeviceGetTotalEnergyConsumption = libnvml.DeviceGetTotalEnergyConsumption + DeviceGetUUID = libnvml.DeviceGetUUID + DeviceGetUnrepairableMemoryFlag_v1 = libnvml.DeviceGetUnrepairableMemoryFlag_v1 + DeviceGetUtilizationRates = libnvml.DeviceGetUtilizationRates + DeviceGetVbiosVersion = libnvml.DeviceGetVbiosVersion + DeviceGetVgpuCapabilities = libnvml.DeviceGetVgpuCapabilities + DeviceGetVgpuHeterogeneousMode = libnvml.DeviceGetVgpuHeterogeneousMode + DeviceGetVgpuInstancesUtilizationInfo = libnvml.DeviceGetVgpuInstancesUtilizationInfo + DeviceGetVgpuMetadata = libnvml.DeviceGetVgpuMetadata + DeviceGetVgpuProcessUtilization = libnvml.DeviceGetVgpuProcessUtilization + DeviceGetVgpuProcessesUtilizationInfo = libnvml.DeviceGetVgpuProcessesUtilizationInfo + DeviceGetVgpuSchedulerCapabilities = libnvml.DeviceGetVgpuSchedulerCapabilities + DeviceGetVgpuSchedulerLog = libnvml.DeviceGetVgpuSchedulerLog + DeviceGetVgpuSchedulerLog_v2 = libnvml.DeviceGetVgpuSchedulerLog_v2 + DeviceGetVgpuSchedulerState = libnvml.DeviceGetVgpuSchedulerState + DeviceGetVgpuSchedulerState_v2 = libnvml.DeviceGetVgpuSchedulerState_v2 + DeviceGetVgpuTypeCreatablePlacements = libnvml.DeviceGetVgpuTypeCreatablePlacements + DeviceGetVgpuTypeSupportedPlacements = libnvml.DeviceGetVgpuTypeSupportedPlacements + DeviceGetVgpuUtilization = libnvml.DeviceGetVgpuUtilization + DeviceGetViolationStatus = libnvml.DeviceGetViolationStatus + DeviceGetVirtualizationMode = libnvml.DeviceGetVirtualizationMode + DeviceIsMigDeviceHandle = libnvml.DeviceIsMigDeviceHandle + DeviceModifyDrainState = libnvml.DeviceModifyDrainState + DeviceOnSameBoard = libnvml.DeviceOnSameBoard + DevicePerfMetricsGetSamples_v1 = libnvml.DevicePerfMetricsGetSamples_v1 + DevicePowerSmoothingActivatePresetProfile = libnvml.DevicePowerSmoothingActivatePresetProfile + DevicePowerSmoothingSetState = libnvml.DevicePowerSmoothingSetState + DevicePowerSmoothingUpdatePresetProfileParam = libnvml.DevicePowerSmoothingUpdatePresetProfileParam + DeviceQueryDrainState = libnvml.DeviceQueryDrainState + DeviceReadPRMCounters_v1 = libnvml.DeviceReadPRMCounters_v1 + DeviceReadWritePRM_v1 = libnvml.DeviceReadWritePRM_v1 + DeviceRegisterEvents = libnvml.DeviceRegisterEvents + DeviceRemoveGpu = libnvml.DeviceRemoveGpu + DeviceRemoveGpu_v2 = libnvml.DeviceRemoveGpu_v2 + DeviceResetApplicationsClocks = libnvml.DeviceResetApplicationsClocks + DeviceResetGpuLockedClocks = libnvml.DeviceResetGpuLockedClocks + DeviceResetMemoryLockedClocks = libnvml.DeviceResetMemoryLockedClocks + DeviceResetNvLinkErrorCounters = libnvml.DeviceResetNvLinkErrorCounters + DeviceResetNvLinkUtilizationCounter = libnvml.DeviceResetNvLinkUtilizationCounter + DeviceSetAPIRestriction = libnvml.DeviceSetAPIRestriction + DeviceSetAccountingMode = libnvml.DeviceSetAccountingMode + DeviceSetAdaptiveTgpMode_v1 = libnvml.DeviceSetAdaptiveTgpMode_v1 + DeviceSetApplicationsClocks = libnvml.DeviceSetApplicationsClocks + DeviceSetAutoBoostedClocksEnabled = libnvml.DeviceSetAutoBoostedClocksEnabled + DeviceSetClockOffsets = libnvml.DeviceSetClockOffsets + DeviceSetComputeMode = libnvml.DeviceSetComputeMode + DeviceSetConfComputeUnprotectedMemSize = libnvml.DeviceSetConfComputeUnprotectedMemSize + DeviceSetCpuAffinity = libnvml.DeviceSetCpuAffinity + DeviceSetDefaultAutoBoostedClocksEnabled = libnvml.DeviceSetDefaultAutoBoostedClocksEnabled + DeviceSetDefaultFanSpeed_v2 = libnvml.DeviceSetDefaultFanSpeed_v2 + DeviceSetDramEncryptionMode = libnvml.DeviceSetDramEncryptionMode + DeviceSetDriverModel = libnvml.DeviceSetDriverModel + DeviceSetEccMode = libnvml.DeviceSetEccMode + DeviceSetFanControlPolicy = libnvml.DeviceSetFanControlPolicy + DeviceSetFanSpeed_v2 = libnvml.DeviceSetFanSpeed_v2 + DeviceSetGpcClkVfOffset = libnvml.DeviceSetGpcClkVfOffset + DeviceSetGpuLockedClocks = libnvml.DeviceSetGpuLockedClocks + DeviceSetGpuOperationMode = libnvml.DeviceSetGpuOperationMode + DeviceSetHostname_v1 = libnvml.DeviceSetHostname_v1 + DeviceSetMemClkVfOffset = libnvml.DeviceSetMemClkVfOffset + DeviceSetMemoryLimits_v1 = libnvml.DeviceSetMemoryLimits_v1 + DeviceSetMemoryLockedClocks = libnvml.DeviceSetMemoryLockedClocks + DeviceSetMigMode = libnvml.DeviceSetMigMode + DeviceSetNvLinkDeviceLowPowerThreshold = libnvml.DeviceSetNvLinkDeviceLowPowerThreshold + DeviceSetNvLinkUtilizationControl = libnvml.DeviceSetNvLinkUtilizationControl + DeviceSetNvlinkBwMode = libnvml.DeviceSetNvlinkBwMode + DeviceSetNvlinkBwModeAsync_v1 = libnvml.DeviceSetNvlinkBwModeAsync_v1 + DeviceSetPersistenceMode = libnvml.DeviceSetPersistenceMode + DeviceSetPowerManagementLimit = libnvml.DeviceSetPowerManagementLimit + DeviceSetPowerManagementLimit_v2 = libnvml.DeviceSetPowerManagementLimit_v2 + DeviceSetRusdSettings_v1 = libnvml.DeviceSetRusdSettings_v1 + DeviceSetTemperatureThreshold = libnvml.DeviceSetTemperatureThreshold + DeviceSetVgpuCapabilities = libnvml.DeviceSetVgpuCapabilities + DeviceSetVgpuHeterogeneousMode = libnvml.DeviceSetVgpuHeterogeneousMode + DeviceSetVgpuSchedulerState = libnvml.DeviceSetVgpuSchedulerState + DeviceSetVgpuSchedulerState_v2 = libnvml.DeviceSetVgpuSchedulerState_v2 + DeviceSetVirtualizationMode = libnvml.DeviceSetVirtualizationMode + DeviceValidateInforom = libnvml.DeviceValidateInforom + DeviceVgpuForceGspUnload = libnvml.DeviceVgpuForceGspUnload + DeviceWorkloadPowerProfileClearRequestedProfiles = libnvml.DeviceWorkloadPowerProfileClearRequestedProfiles + DeviceWorkloadPowerProfileGetCurrentProfiles = libnvml.DeviceWorkloadPowerProfileGetCurrentProfiles + DeviceWorkloadPowerProfileGetProfilesInfo = libnvml.DeviceWorkloadPowerProfileGetProfilesInfo + DeviceWorkloadPowerProfileSetRequestedProfiles = libnvml.DeviceWorkloadPowerProfileSetRequestedProfiles + DeviceWorkloadPowerProfileUpdateProfiles_v1 = libnvml.DeviceWorkloadPowerProfileUpdateProfiles_v1 + ErrorString = libnvml.ErrorString + EventSetCreate = libnvml.EventSetCreate + EventSetFree = libnvml.EventSetFree + EventSetGetContextCount_v1 = libnvml.EventSetGetContextCount_v1 + EventSetGetContextData_v1 = libnvml.EventSetGetContextData_v1 + EventSetGetContextInfo_v1 = libnvml.EventSetGetContextInfo_v1 + EventSetGetGpuOperationalEventContextLegacyXid_v1 = libnvml.EventSetGetGpuOperationalEventContextLegacyXid_v1 + EventSetRegisterGpuOperationalEvents_v1 = libnvml.EventSetRegisterGpuOperationalEvents_v1 + EventSetWait = libnvml.EventSetWait + EventSetWait_v3 = libnvml.EventSetWait_v3 + Extensions = libnvml.Extensions + GetExcludedDeviceCount = libnvml.GetExcludedDeviceCount + GetExcludedDeviceInfoByIndex = libnvml.GetExcludedDeviceInfoByIndex + GetVgpuCompatibility = libnvml.GetVgpuCompatibility + GetVgpuDriverCapabilities = libnvml.GetVgpuDriverCapabilities + GetVgpuVersion = libnvml.GetVgpuVersion + GpmMetricsGet = libnvml.GpmMetricsGet + GpmMetricsGetV = libnvml.GpmMetricsGetV + GpmMigSampleGet = libnvml.GpmMigSampleGet + GpmQueryDeviceSupport = libnvml.GpmQueryDeviceSupport + GpmQueryDeviceSupportV = libnvml.GpmQueryDeviceSupportV + GpmQueryIfStreamingEnabled = libnvml.GpmQueryIfStreamingEnabled + GpmSampleAlloc = libnvml.GpmSampleAlloc + GpmSampleFree = libnvml.GpmSampleFree + GpmSampleGet = libnvml.GpmSampleGet + GpmSetStreamingEnabled = libnvml.GpmSetStreamingEnabled + GpuInstanceCreateComputeInstance = libnvml.GpuInstanceCreateComputeInstance + GpuInstanceCreateComputeInstanceWithPlacement = libnvml.GpuInstanceCreateComputeInstanceWithPlacement + GpuInstanceDestroy = libnvml.GpuInstanceDestroy + GpuInstanceGetActiveVgpus = libnvml.GpuInstanceGetActiveVgpus + GpuInstanceGetComputeInstanceById = libnvml.GpuInstanceGetComputeInstanceById + GpuInstanceGetComputeInstancePossiblePlacements = libnvml.GpuInstanceGetComputeInstancePossiblePlacements + GpuInstanceGetComputeInstanceProfileInfo = libnvml.GpuInstanceGetComputeInstanceProfileInfo + GpuInstanceGetComputeInstanceProfileInfoV = libnvml.GpuInstanceGetComputeInstanceProfileInfoV + GpuInstanceGetComputeInstanceRemainingCapacity = libnvml.GpuInstanceGetComputeInstanceRemainingCapacity + GpuInstanceGetComputeInstances = libnvml.GpuInstanceGetComputeInstances + GpuInstanceGetCreatableVgpus = libnvml.GpuInstanceGetCreatableVgpus + GpuInstanceGetInfo = libnvml.GpuInstanceGetInfo + GpuInstanceGetVgpuHeterogeneousMode = libnvml.GpuInstanceGetVgpuHeterogeneousMode + GpuInstanceGetVgpuSchedulerLog = libnvml.GpuInstanceGetVgpuSchedulerLog + GpuInstanceGetVgpuSchedulerLog_v2 = libnvml.GpuInstanceGetVgpuSchedulerLog_v2 + GpuInstanceGetVgpuSchedulerState = libnvml.GpuInstanceGetVgpuSchedulerState + GpuInstanceGetVgpuSchedulerState_v2 = libnvml.GpuInstanceGetVgpuSchedulerState_v2 + GpuInstanceGetVgpuTypeCreatablePlacements = libnvml.GpuInstanceGetVgpuTypeCreatablePlacements + GpuInstanceSetVgpuHeterogeneousMode = libnvml.GpuInstanceSetVgpuHeterogeneousMode + GpuInstanceSetVgpuSchedulerState = libnvml.GpuInstanceSetVgpuSchedulerState + GpuInstanceSetVgpuSchedulerState_v2 = libnvml.GpuInstanceSetVgpuSchedulerState_v2 + Init = libnvml.Init + InitWithFlags = libnvml.InitWithFlags + SetVgpuVersion = libnvml.SetVgpuVersion + Shutdown = libnvml.Shutdown + SystemEventSetCreate = libnvml.SystemEventSetCreate + SystemEventSetFree = libnvml.SystemEventSetFree + SystemEventSetWait = libnvml.SystemEventSetWait + SystemGetCPER_v1 = libnvml.SystemGetCPER_v1 + SystemGetConfComputeCapabilities = libnvml.SystemGetConfComputeCapabilities + SystemGetConfComputeGpusReadyState = libnvml.SystemGetConfComputeGpusReadyState + SystemGetConfComputeKeyRotationThresholdInfo = libnvml.SystemGetConfComputeKeyRotationThresholdInfo + SystemGetConfComputeSettings = libnvml.SystemGetConfComputeSettings + SystemGetConfComputeState = libnvml.SystemGetConfComputeState + SystemGetCudaDriverVersion = libnvml.SystemGetCudaDriverVersion + SystemGetCudaDriverVersion_v2 = libnvml.SystemGetCudaDriverVersion_v2 + SystemGetDriverBranch = libnvml.SystemGetDriverBranch + SystemGetDriverVersion = libnvml.SystemGetDriverVersion + SystemGetHicVersion = libnvml.SystemGetHicVersion + SystemGetNVMLVersion = libnvml.SystemGetNVMLVersion + SystemGetNvlinkBwMode = libnvml.SystemGetNvlinkBwMode + SystemGetProcessName = libnvml.SystemGetProcessName + SystemGetTopologyGpuSet = libnvml.SystemGetTopologyGpuSet + SystemRegisterEvents = libnvml.SystemRegisterEvents + SystemSetConfComputeGpusReadyState = libnvml.SystemSetConfComputeGpusReadyState + SystemSetConfComputeKeyRotationThresholdInfo = libnvml.SystemSetConfComputeKeyRotationThresholdInfo + SystemSetNvlinkBwMode = libnvml.SystemSetNvlinkBwMode + UnitGetCount = libnvml.UnitGetCount + UnitGetDevices = libnvml.UnitGetDevices + UnitGetFanSpeedInfo = libnvml.UnitGetFanSpeedInfo + UnitGetHandleByIndex = libnvml.UnitGetHandleByIndex + UnitGetLedState = libnvml.UnitGetLedState + UnitGetPsuInfo = libnvml.UnitGetPsuInfo + UnitGetTemperature = libnvml.UnitGetTemperature + UnitGetUnitInfo = libnvml.UnitGetUnitInfo + UnitSetLedState = libnvml.UnitSetLedState + VgpuInstanceClearAccountingPids = libnvml.VgpuInstanceClearAccountingPids + VgpuInstanceGetAccountingMode = libnvml.VgpuInstanceGetAccountingMode + VgpuInstanceGetAccountingPids = libnvml.VgpuInstanceGetAccountingPids + VgpuInstanceGetAccountingStats = libnvml.VgpuInstanceGetAccountingStats + VgpuInstanceGetEccMode = libnvml.VgpuInstanceGetEccMode + VgpuInstanceGetEncoderCapacity = libnvml.VgpuInstanceGetEncoderCapacity + VgpuInstanceGetEncoderSessions = libnvml.VgpuInstanceGetEncoderSessions + VgpuInstanceGetEncoderStats = libnvml.VgpuInstanceGetEncoderStats + VgpuInstanceGetFBCSessions = libnvml.VgpuInstanceGetFBCSessions + VgpuInstanceGetFBCStats = libnvml.VgpuInstanceGetFBCStats + VgpuInstanceGetFbUsage = libnvml.VgpuInstanceGetFbUsage + VgpuInstanceGetFrameRateLimit = libnvml.VgpuInstanceGetFrameRateLimit + VgpuInstanceGetGpuInstanceId = libnvml.VgpuInstanceGetGpuInstanceId + VgpuInstanceGetGpuPciId = libnvml.VgpuInstanceGetGpuPciId + VgpuInstanceGetLicenseInfo = libnvml.VgpuInstanceGetLicenseInfo + VgpuInstanceGetLicenseStatus = libnvml.VgpuInstanceGetLicenseStatus + VgpuInstanceGetMdevUUID = libnvml.VgpuInstanceGetMdevUUID + VgpuInstanceGetMetadata = libnvml.VgpuInstanceGetMetadata + VgpuInstanceGetRuntimeStateSize = libnvml.VgpuInstanceGetRuntimeStateSize + VgpuInstanceGetType = libnvml.VgpuInstanceGetType + VgpuInstanceGetUUID = libnvml.VgpuInstanceGetUUID + VgpuInstanceGetVmDriverVersion = libnvml.VgpuInstanceGetVmDriverVersion + VgpuInstanceGetVmID = libnvml.VgpuInstanceGetVmID + VgpuInstanceSetEncoderCapacity = libnvml.VgpuInstanceSetEncoderCapacity + VgpuTypeGetBAR1Info = libnvml.VgpuTypeGetBAR1Info + VgpuTypeGetCapabilities = libnvml.VgpuTypeGetCapabilities + VgpuTypeGetClass = libnvml.VgpuTypeGetClass + VgpuTypeGetDeviceID = libnvml.VgpuTypeGetDeviceID + VgpuTypeGetFrameRateLimit = libnvml.VgpuTypeGetFrameRateLimit + VgpuTypeGetFramebufferSize = libnvml.VgpuTypeGetFramebufferSize + VgpuTypeGetGpuInstanceProfileId = libnvml.VgpuTypeGetGpuInstanceProfileId + VgpuTypeGetID = libnvml.VgpuTypeGetID + VgpuTypeGetLicense = libnvml.VgpuTypeGetLicense + VgpuTypeGetMaxInstances = libnvml.VgpuTypeGetMaxInstances + VgpuTypeGetMaxInstancesPerGpuInstance = libnvml.VgpuTypeGetMaxInstancesPerGpuInstance + VgpuTypeGetMaxInstancesPerVm = libnvml.VgpuTypeGetMaxInstancesPerVm + VgpuTypeGetName = libnvml.VgpuTypeGetName + VgpuTypeGetNumDisplayHeads = libnvml.VgpuTypeGetNumDisplayHeads + VgpuTypeGetResolution = libnvml.VgpuTypeGetResolution +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) ) // Interface represents the interface for the library type. @@ -417,12 +827,18 @@ type Interface interface { DeviceGetAccountingStats(Device, uint32) (AccountingStats, Return) DeviceGetActiveVgpus(Device) ([]VgpuInstance, Return) DeviceGetAdaptiveClockInfoStatus(Device) (uint32, Return) + DeviceGetAdaptiveTgpModeInfo_v1(Device) (AdaptiveTgpModeInfo_v1, Return) DeviceGetAddressingMode(Device) (DeviceAddressingMode, Return) DeviceGetApplicationsClock(Device, ClockType) (uint32, Return) DeviceGetArchitecture(Device) (DeviceArchitecture, Return) DeviceGetAttributes(Device) (DeviceAttributes, Return) DeviceGetAutoBoostedClocksEnabled(Device) (EnableState, EnableState, Return) DeviceGetBAR1MemoryInfo(Device) (BAR1Memory, Return) +<<<<<<< HEAD +======= + DeviceGetBBXTimeData_v1(Device) (BBXTimeData_v1, Return) + DeviceGetBankRemapperStatus_v1(Device) (EccBankRemapperStatus_v1, Return) +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) DeviceGetBoardId(Device) (uint32, Return) DeviceGetBoardPartNumber(Device) (string, Return) DeviceGetBrand(Device) (BrandType, Return) @@ -480,6 +896,7 @@ type Interface interface { DeviceGetGpcClkVfOffset(Device) (int, Return) DeviceGetGpuFabricInfo(Device) (GpuFabricInfo, Return) DeviceGetGpuFabricInfoV(Device) GpuFabricInfoHandler + DeviceGetGpuFabricInfo_v4(Device) (GpuFabricInfo_v4, Return) DeviceGetGpuInstanceById(Device, int) (GpuInstance, Return) DeviceGetGpuInstanceId(Device) (int, Return) DeviceGetGpuInstancePossiblePlacements(Device, *GpuInstanceProfileInfo) ([]GpuInstancePlacement, Return) @@ -521,6 +938,7 @@ type Interface interface { DeviceGetMemoryErrorCounter(Device, MemoryErrorType, EccCounterType, MemoryLocation) (uint64, Return) DeviceGetMemoryInfo(Device) (Memory, Return) DeviceGetMemoryInfo_v2(Device) (Memory_v2, Return) + DeviceGetMemoryLimits_v1(Device, string) (MemoryLimits_v1, Return) DeviceGetMigDeviceHandleByIndex(Device, int) (Device, Return) DeviceGetMigMode(Device) (int, int, Return) DeviceGetMinMaxClockOfPState(Device, ClockType, Pstates) (uint32, uint32, Return) @@ -538,6 +956,7 @@ type Interface interface { DeviceGetNvLinkRemoteDeviceType(Device, int) (IntNvLinkDeviceType, Return) DeviceGetNvLinkRemotePciInfo(Device, int) (PciInfo, Return) DeviceGetNvLinkState(Device, int) (EnableState, Return) + DeviceGetNvLinkTelemetrySamples_v1(Device, NvlinkTelemetrySamples_v1) (NvlinkTelemetrySamples_v1, Return) DeviceGetNvLinkUtilizationControl(Device, int, int) (NvLinkUtilizationControl, Return) DeviceGetNvLinkUtilizationCounter(Device, int, int) (uint64, uint64, Return) DeviceGetNvLinkVersion(Device, int) (uint32, Return) @@ -614,6 +1033,7 @@ type Interface interface { DeviceIsMigDeviceHandle(Device) (bool, Return) DeviceModifyDrainState(*PciInfo, EnableState) Return DeviceOnSameBoard(Device, Device) (int, Return) + DevicePerfMetricsGetSamples_v1(Device) (PerfMetricsSamples_v1, Return) DevicePowerSmoothingActivatePresetProfile(Device, *PowerSmoothingProfile) Return DevicePowerSmoothingSetState(Device, *PowerSmoothingState) Return DevicePowerSmoothingUpdatePresetProfileParam(Device, *PowerSmoothingProfile) Return @@ -629,6 +1049,7 @@ type Interface interface { DeviceResetNvLinkUtilizationCounter(Device, int, int) Return DeviceSetAPIRestriction(Device, RestrictedAPI, EnableState) Return DeviceSetAccountingMode(Device, EnableState) Return + DeviceSetAdaptiveTgpMode_v1(Device, EnableState) Return DeviceSetApplicationsClocks(Device, uint32, uint32) Return DeviceSetAutoBoostedClocksEnabled(Device, EnableState) Return DeviceSetClockOffsets(Device, ClockOffset) Return @@ -646,11 +1067,13 @@ type Interface interface { DeviceSetGpuLockedClocks(Device, uint32, uint32) Return DeviceSetGpuOperationMode(Device, GpuOperationMode) Return DeviceSetMemClkVfOffset(Device, int) Return + DeviceSetMemoryLimits_v1(Device, string, uint64, uint64) Return DeviceSetMemoryLockedClocks(Device, uint32, uint32) Return DeviceSetMigMode(Device, int) (Return, Return) DeviceSetNvLinkDeviceLowPowerThreshold(Device, *NvLinkPowerThres) Return DeviceSetNvLinkUtilizationControl(Device, int, int, *NvLinkUtilizationControl, bool) Return DeviceSetNvlinkBwMode(Device, *NvlinkSetBwMode) Return + DeviceSetNvlinkBwModeAsync_v1(Device, *NvlinkSetBwModeAsync_v1) Return DeviceSetPersistenceMode(Device, EnableState) Return DeviceSetPowerManagementLimit(Device, uint32) Return DeviceSetPowerManagementLimit_v2(Device, *PowerValue_v2) Return @@ -667,7 +1090,13 @@ type Interface interface { ErrorString(Return) string EventSetCreate() (EventSet, Return) EventSetFree(EventSet) Return + EventSetGetContextCount_v1(EventSet) (GetContextCount_v1, Return) + EventSetGetContextData_v1(EventSet, GetContextData_v1) (GetContextData_v1, Return) + EventSetGetContextInfo_v1(EventSet, uint32) (GetContextInfo_v1, Return) + EventSetGetGpuOperationalEventContextLegacyXid_v1(EventSet, uint32) (uint32, Return) + EventSetRegisterGpuOperationalEvents_v1(EventSet, *GpuOperationalEventConfig_v1) Return EventSetWait(EventSet, uint32) (EventData, Return) + EventSetWait_v3(EventSet, uint32) (EventSetWaitData_v3, Return) Extensions() ExtendedInterface GetExcludedDeviceCount() (int, Return) GetExcludedDeviceInfoByIndex(int) (ExcludedDeviceInfo, Return) @@ -767,6 +1196,7 @@ type Interface interface { VgpuTypeGetFrameRateLimit(VgpuTypeId) (uint32, Return) VgpuTypeGetFramebufferSize(VgpuTypeId) (uint64, Return) VgpuTypeGetGpuInstanceProfileId(VgpuTypeId) (uint32, Return) + VgpuTypeGetID(VgpuTypeId) uint32 VgpuTypeGetLicense(VgpuTypeId) (string, Return) VgpuTypeGetMaxInstances(Device, VgpuTypeId) (int, Return) VgpuTypeGetMaxInstancesPerGpuInstance(*VgpuTypeMaxInstance) Return @@ -794,12 +1224,18 @@ type Device interface { GetAccountingStats(uint32) (AccountingStats, Return) GetActiveVgpus() ([]VgpuInstance, Return) GetAdaptiveClockInfoStatus() (uint32, Return) + GetAdaptiveTgpModeInfo_v1() (AdaptiveTgpModeInfo_v1, Return) GetAddressingMode() (DeviceAddressingMode, Return) GetApplicationsClock(ClockType) (uint32, Return) GetArchitecture() (DeviceArchitecture, Return) GetAttributes() (DeviceAttributes, Return) GetAutoBoostedClocksEnabled() (EnableState, EnableState, Return) GetBAR1MemoryInfo() (BAR1Memory, Return) +<<<<<<< HEAD +======= + GetBBXTimeData_v1() (BBXTimeData_v1, Return) + GetBankRemapperStatus_v1() (EccBankRemapperStatus_v1, Return) +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) GetBoardId() (uint32, Return) GetBoardPartNumber() (string, Return) GetBrand() (BrandType, Return) @@ -856,6 +1292,7 @@ type Device interface { GetGpcClkVfOffset() (int, Return) GetGpuFabricInfo() (GpuFabricInfo, Return) GetGpuFabricInfoV() GpuFabricInfoHandler + GetGpuFabricInfo_v4() (GpuFabricInfo_v4, Return) GetGpuInstanceById(int) (GpuInstance, Return) GetGpuInstanceId() (int, Return) GetGpuInstancePossiblePlacements(*GpuInstanceProfileInfo) ([]GpuInstancePlacement, Return) @@ -892,6 +1329,7 @@ type Device interface { GetMemoryErrorCounter(MemoryErrorType, EccCounterType, MemoryLocation) (uint64, Return) GetMemoryInfo() (Memory, Return) GetMemoryInfo_v2() (Memory_v2, Return) + GetMemoryLimits_v1(string) (MemoryLimits_v1, Return) GetMigDeviceHandleByIndex(int) (Device, Return) GetMigMode() (int, int, Return) GetMinMaxClockOfPState(ClockType, Pstates) (uint32, uint32, Return) @@ -909,6 +1347,7 @@ type Device interface { GetNvLinkRemoteDeviceType(int) (IntNvLinkDeviceType, Return) GetNvLinkRemotePciInfo(int) (PciInfo, Return) GetNvLinkState(int) (EnableState, Return) + GetNvLinkTelemetrySamples_v1(NvlinkTelemetrySamples_v1) (NvlinkTelemetrySamples_v1, Return) GetNvLinkUtilizationControl(int, int) (NvLinkUtilizationControl, Return) GetNvLinkUtilizationCounter(int, int) (uint64, uint64, Return) GetNvLinkVersion(int) (uint32, Return) @@ -990,6 +1429,7 @@ type Device interface { GpmSetStreamingEnabled(uint32) Return IsMigDeviceHandle() (bool, Return) OnSameBoard(Device) (int, Return) + PerfMetricsGetSamples_v1() (PerfMetricsSamples_v1, Return) PowerSmoothingActivatePresetProfile(*PowerSmoothingProfile) Return PowerSmoothingSetState(*PowerSmoothingState) Return PowerSmoothingUpdatePresetProfileParam(*PowerSmoothingProfile) Return @@ -1002,6 +1442,7 @@ type Device interface { ResetNvLinkUtilizationCounter(int, int) Return SetAPIRestriction(RestrictedAPI, EnableState) Return SetAccountingMode(EnableState) Return + SetAdaptiveTgpMode_v1(EnableState) Return SetApplicationsClocks(uint32, uint32) Return SetAutoBoostedClocksEnabled(EnableState) Return SetClockOffsets(ClockOffset) Return @@ -1019,11 +1460,13 @@ type Device interface { SetGpuLockedClocks(uint32, uint32) Return SetGpuOperationMode(GpuOperationMode) Return SetMemClkVfOffset(int) Return + SetMemoryLimits_v1(string, uint64, uint64) Return SetMemoryLockedClocks(uint32, uint32) Return SetMigMode(int) (Return, Return) SetNvLinkDeviceLowPowerThreshold(*NvLinkPowerThres) Return SetNvLinkUtilizationControl(int, int, *NvLinkUtilizationControl, bool) Return SetNvlinkBwMode(*NvlinkSetBwMode) Return + SetNvlinkBwModeAsync_v1(*NvlinkSetBwModeAsync_v1) Return SetPersistenceMode(EnableState) Return SetPowerManagementLimit(uint32) Return SetPowerManagementLimit_v2(*PowerValue_v2) Return @@ -1077,7 +1520,13 @@ type ComputeInstance interface { //go:generate moq -out mock/eventset.go -pkg mock . EventSet:EventSet type EventSet interface { Free() Return + GetContextCount_v1() (GetContextCount_v1, Return) + GetContextData_v1(GetContextData_v1) (GetContextData_v1, Return) + GetContextInfo_v1(uint32) (GetContextInfo_v1, Return) + GetGpuOperationalEventContextLegacyXid_v1(uint32) (uint32, Return) + RegisterGpuOperationalEvents_v1(*GpuOperationalEventConfig_v1) Return Wait(uint32) (EventData, Return) + Wait_v3(uint32) (EventSetWaitData_v3, Return) } // GpmSample represents the interface for the nvmlGpmSample type. @@ -1144,6 +1593,7 @@ type VgpuTypeId interface { GetFrameRateLimit() (uint32, Return) GetFramebufferSize() (uint64, Return) GetGpuInstanceProfileId() (uint32, Return) + GetID() uint32 GetLicense() (string, Return) GetMaxInstances(Device) (int, Return) GetMaxInstancesPerVm() (int, Return) diff --git a/vendor/modules.txt b/vendor/modules.txt index 8c29a6c6..cbbdfb04 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -5,7 +5,11 @@ github.com/NVIDIA/go-nvlib/pkg/nvpci github.com/NVIDIA/go-nvlib/pkg/nvpci/bytes github.com/NVIDIA/go-nvlib/pkg/nvpci/mmio github.com/NVIDIA/go-nvlib/pkg/pciids +<<<<<<< HEAD # github.com/NVIDIA/go-nvml v0.13.0-1 +======= +# github.com/NVIDIA/go-nvml v0.13.4-0 +>>>>>>> f2a8e6d9 (Bump github.com/NVIDIA/go-nvml from 0.13.3-1 to 0.13.4-0) ## explicit; go 1.20 github.com/NVIDIA/go-nvml/pkg/dl github.com/NVIDIA/go-nvml/pkg/nvml