cuda-bindings unreleased changes#
New Features#
Before a source build compiles anything, it now checks that the CUDA Toolkit’s
cuda.hhas the major.minor the source tree was generated from. A mismatch stops the build with a message that names the header found and the version needed. Previously a mismatch surfaced as a long list of C++ redefinition errors. (PR #2920)Creating class instances in
cuda-bindingsshould now be faster in most cases, because it requires 1 heap allocation rather than 2. (PR #2821)cuda-bindingsdocstrings now include the full documentation from the upstream CTK, not just the first paragraph. (PR #2816)The following functions now accept
Nonefor their buffer-like pointer argument (an integer address or an object supporting the buffer protocol), which is treated asNULL.cudla.module_load_from_memory(p_module)nvfatbin.add_cubin,nvfatbin.add_index,nvfatbin.add_ltoir,nvfatbin.add_ptx,nvfatbin.add_reloc,nvfatbin.add_tile_ir(code)nvfatbin.get(buffer)nvjitlink.add_data(data)nvjitlink.get_error_log,nvjitlink.get_info_log(log)nvjitlink.get_linked_cubin(cubin)nvjitlink.get_linked_ltoir(ltoir)nvjitlink.get_linked_ptx(ptx)nvvm.add_module_to_program,nvvm.lazy_add_module_to_program,nvvm.get_compiled_result,nvvm.get_program_log(buffer)
(PR #2818)
Experimental: A new version of the
nvrtcAPI is available ascuda.bindings._v2.nvrtc. The primary improvements are: (1) raising exceptions rather than returning error codes, (2) uses PEP8-compliant naming, and (3) more performance. This API is still experimental and subject to change. (PR #2398)For all
cuda-bindingsAPIs, functions that accept a struct wrapper will accept the struct wrapper directly, rather than requiring getting the.ptrproperty. (PR #2819)
Breaking Changes#
Many
cuda.bindings.cudlaandcuda.bindings.nvmlenum members had a redundant prefix stripped from their name, e.g.nvml.BrandType.BRAND_GEFORCEis nownvml.BrandType.GEFORCE. The old, longer names remain available as backward-compatible aliases and will continue to work. The full list of renames, excluding the 447 similarly-renamednvml.GpmMetricIdmembers (which had theirGPM_METRIC_prefix stripped the same way), is below.Table 1 Enum member renames (old names remain available as backward-compatible aliases)# Module
Enum class
New name
Deprecated alias
cudla
FenceType
FENCE
NVSCISYNC_FENCE
cudla
FenceType
FENCE_SOF
NVSCISYNC_FENCE_SOF
cudla
ModuleLoadFlags
DEFAULT
MODULE_DEFAULT
cudla
ModuleLoadFlags
ENABLE_FAULT_DIAGNOSTICS
MODULE_ENABLE_FAULT_DIAGNOSTICS
cudla
ScratchMemoryConfig
CONFIG_MAX
MAX
cudla
ScratchMemoryConfig
DEFAULT
SCRATCH_MEMORY_DEFAULT
cudla
ScratchMemoryConfig
SHARED_STATIC
SCRATCH_MEMORY_SHARED_STATIC
cudla
SubmissionFlags
DIAGNOSTICS_TASK
SUBMIT_DIAGNOSTICS_TASK
cudla
SubmissionFlags
NOOP
SUBMIT_NOOP
cudla
SubmissionFlags
SKIP_LOCK_ACQUIRE
SUBMIT_SKIP_LOCK_ACQUIRE
nvml
BrandType
COUNT
BRAND_COUNT
nvml
BrandType
GEFORCE
BRAND_GEFORCE
nvml
BrandType
GEFORCE_RTX
BRAND_GEFORCE_RTX
nvml
BrandType
GRID
BRAND_GRID
nvml
BrandType
NVIDIA
BRAND_NVIDIA
nvml
BrandType
NVIDIA_CLOUD_GAMING
BRAND_NVIDIA_CLOUD_GAMING
nvml
BrandType
NVIDIA_DLA
BRAND_NVIDIA_DLA
nvml
BrandType
NVIDIA_NPU
BRAND_NVIDIA_NPU
nvml
BrandType
NVIDIA_RTX
BRAND_NVIDIA_RTX
nvml
BrandType
NVIDIA_VAPPS
BRAND_NVIDIA_VAPPS
nvml
BrandType
NVIDIA_VCS
BRAND_NVIDIA_VCS
nvml
BrandType
NVIDIA_VGAMEDEV
BRAND_NVIDIA_VGAMEDEV
nvml
BrandType
NVIDIA_VGAMING
BRAND_NVIDIA_VGAMING
nvml
BrandType
NVIDIA_VPC
BRAND_NVIDIA_VPC
nvml
BrandType
NVIDIA_VWS
BRAND_NVIDIA_VWS
nvml
BrandType
NVS
BRAND_NVS
nvml
BrandType
QUADRO
BRAND_QUADRO
nvml
BrandType
QUADRO_RTX
BRAND_QUADRO_RTX
nvml
BrandType
TESLA
BRAND_TESLA
nvml
BrandType
TITAN
BRAND_TITAN
nvml
BrandType
TITAN_RTX
BRAND_TITAN_RTX
nvml
BrandType
UNKNOWN
BRAND_UNKNOWN
nvml
BridgeChipType
BRO4
BRIDGE_CHIP_BRO4
nvml
BridgeChipType
PLX
BRIDGE_CHIP_PLX
nvml
ClockType
COUNT
CLOCK_COUNT
nvml
ClockType
GRAPHICS
CLOCK_GRAPHICS
nvml
ClockType
MEM
CLOCK_MEM
nvml
ClockType
SM
CLOCK_SM
nvml
ClockType
VIDEO
CLOCK_VIDEO
nvml
ComputeMode
COUNT
COMPUTEMODE_COUNT
nvml
ComputeMode
DEFAULT
COMPUTEMODE_DEFAULT
nvml
ComputeMode
EXCLUSIVE_PROCESS
COMPUTEMODE_EXCLUSIVE_PROCESS
nvml
ComputeMode
EXCLUSIVE_THREAD
COMPUTEMODE_EXCLUSIVE_THREAD
nvml
ComputeMode
PROHIBITED
COMPUTEMODE_PROHIBITED
nvml
CoolerControl
COUNT
THERMAL_COOLER_SIGNAL_COUNT
nvml
CoolerControl
NONE
THERMAL_COOLER_SIGNAL_NONE
nvml
CoolerControl
TOGGLE
THERMAL_COOLER_SIGNAL_TOGGLE
nvml
CoolerControl
VARIABLE
THERMAL_COOLER_SIGNAL_VARIABLE
nvml
CoolerTarget
GPU
THERMAL_GPU
nvml
CoolerTarget
GPU_RELATED
THERMAL_GPU_RELATED
nvml
CoolerTarget
MEMORY
THERMAL_MEMORY
nvml
CoolerTarget
NONE
THERMAL_NONE
nvml
CoolerTarget
POWER_SUPPLY
THERMAL_POWER_SUPPLY
nvml
DetachGpuState
KEEP
DETACH_GPU_KEEP
nvml
DetachGpuState
REMOVE
DETACH_GPU_REMOVE
nvml
DeviceAddressingModeType
ATS
DEVICE_ADDRESSING_MODE_ATS
nvml
DeviceAddressingModeType
HMM
DEVICE_ADDRESSING_MODE_HMM
nvml
DeviceAddressingModeType
NONE
DEVICE_ADDRESSING_MODE_NONE
nvml
DeviceGpuRecoveryAction
BUS_RESET
GPU_RECOVERY_ACTION_BUS_RESET
nvml
DeviceGpuRecoveryAction
DRAIN_AND_RESET
GPU_RECOVERY_ACTION_DRAIN_AND_RESET
nvml
DeviceGpuRecoveryAction
DRAIN_P2P
GPU_RECOVERY_ACTION_DRAIN_P2P
nvml
DeviceGpuRecoveryAction
GPU_RESET
GPU_RECOVERY_ACTION_GPU_RESET
nvml
DeviceGpuRecoveryAction
NODE_REBOOT
GPU_RECOVERY_ACTION_NODE_REBOOT
nvml
DeviceGpuRecoveryAction
NONE
GPU_RECOVERY_ACTION_NONE
nvml
DeviceGpuRecoveryAction
RECOVER_IMEX_DOMAIN
GPU_RECOVERY_ACTION_RECOVER_IMEX_DOMAIN
nvml
DeviceGpuRecoveryAction
SYSTEM_REBOOT
GPU_RECOVERY_ACTION_SYSTEM_REBOOT
nvml
DeviceVgpuCapability
COMPUTE_MEDIA_ENGINE_GPU
DEVICE_VGPU_CAP_COMPUTE_MEDIA_ENGINE_GPU
nvml
DeviceVgpuCapability
COUNT
DEVICE_VGPU_CAP_COUNT
nvml
DeviceVgpuCapability
DEVICE_STREAMING
DEVICE_VGPU_CAP_DEVICE_STREAMING
nvml
DeviceVgpuCapability
FRACTIONAL_MULTI_VGPU
DEVICE_VGPU_CAP_FRACTIONAL_MULTI_VGPU
nvml
DeviceVgpuCapability
HETEROGENEOUS_TIMESLICE_PROFILES
DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_PROFILES
nvml
DeviceVgpuCapability
HETEROGENEOUS_TIMESLICE_SIZES
DEVICE_VGPU_CAP_HETEROGENEOUS_TIMESLICE_SIZES
nvml
DeviceVgpuCapability
HOMOGENEOUS_PLACEMENTS
DEVICE_VGPU_CAP_HOMOGENEOUS_PLACEMENTS
nvml
DeviceVgpuCapability
MIG_TIMESLICING_ENABLED
DEVICE_VGPU_CAP_MIG_TIMESLICING_ENABLED
nvml
DeviceVgpuCapability
MIG_TIMESLICING_SUPPORTED
DEVICE_VGPU_CAP_MIG_TIMESLICING_SUPPORTED
nvml
DeviceVgpuCapability
MINI_QUARTER_GPU
DEVICE_VGPU_CAP_MINI_QUARTER_GPU
nvml
DeviceVgpuCapability
READ_DEVICE_BUFFER_BW
DEVICE_VGPU_CAP_READ_DEVICE_BUFFER_BW
nvml
DeviceVgpuCapability
WARM_UPDATE
DEVICE_VGPU_CAP_WARM_UPDATE
nvml
DeviceVgpuCapability
WRITE_DEVICE_BUFFER_BW
DEVICE_VGPU_CAP_WRITE_DEVICE_BUFFER_BW
nvml
DriverModel
MCDM
DRIVER_MCDM
nvml
DriverModel
WDDM
DRIVER_WDDM
nvml
DriverModel
WDM
DRIVER_WDM
nvml
EccCounterType
ECC_COUNTER_TYPE_COUNT
COUNT
nvml
EnableState
DISABLED
FEATURE_DISABLED
nvml
EnableState
ENABLED
FEATURE_ENABLED
nvml
EncoderType
AV1
ENCODER_QUERY_AV1
nvml
EncoderType
H264
ENCODER_QUERY_H264
nvml
EncoderType
HEVC
ENCODER_QUERY_HEVC
nvml
EncoderType
UNKNOWN
ENCODER_QUERY_UNKNOWN
nvml
EventDataType
NVML_EVENT
EVENT
nvml
FanState
FAILED
FAN_FAILED
nvml
FanState
NORMAL
FAN_NORMAL
nvml
GpuOperationMode
ALL_ON
GOM_ALL_ON
nvml
GpuOperationMode
COMPUTE
GOM_COMPUTE
nvml
GpuOperationMode
LOW_DP
GOM_LOW_DP
nvml
GpuP2PCapsIndex
ATOMICS
P2P_CAPS_INDEX_ATOMICS
nvml
GpuP2PCapsIndex
NVLINK
P2P_CAPS_INDEX_NVLINK
nvml
GpuP2PCapsIndex
PCI
P2P_CAPS_INDEX_PCI
nvml
GpuP2PCapsIndex
PROP
P2P_CAPS_INDEX_PROP
nvml
GpuP2PCapsIndex
READ
P2P_CAPS_INDEX_READ
nvml
GpuP2PCapsIndex
UNKNOWN
P2P_CAPS_INDEX_UNKNOWN
nvml
GpuP2PCapsIndex
WRITE
P2P_CAPS_INDEX_WRITE
nvml
GpuP2PStatus
CHIPSET_NOT_SUPPORED
P2P_STATUS_CHIPSET_NOT_SUPPORED
nvml
GpuP2PStatus
CHIPSET_NOT_SUPPORTED
P2P_STATUS_CHIPSET_NOT_SUPPORTED
nvml
GpuP2PStatus
DISABLED_BY_REGKEY
P2P_STATUS_DISABLED_BY_REGKEY
nvml
GpuP2PStatus
GPU_NOT_SUPPORTED
P2P_STATUS_GPU_NOT_SUPPORTED
nvml
GpuP2PStatus
IOH_TOPOLOGY_NOT_SUPPORTED
P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED
nvml
GpuP2PStatus
NOT_SUPPORTED
P2P_STATUS_NOT_SUPPORTED
nvml
GpuP2PStatus
OK
P2P_STATUS_OK
nvml
GpuP2PStatus
UNKNOWN
P2P_STATUS_UNKNOWN
nvml
GpuTopologyLevel
HOSTBRIDGE
TOPOLOGY_HOSTBRIDGE
nvml
GpuTopologyLevel
INTERNAL
TOPOLOGY_INTERNAL
nvml
GpuTopologyLevel
MULTIPLE
TOPOLOGY_MULTIPLE
nvml
GpuTopologyLevel
NODE
TOPOLOGY_NODE
nvml
GpuTopologyLevel
SINGLE
TOPOLOGY_SINGLE
nvml
GpuTopologyLevel
SYSTEM
TOPOLOGY_SYSTEM
nvml
GpuUtilizationDomainId
BUS
GPU_UTILIZATION_DOMAIN_BUS
nvml
GpuUtilizationDomainId
FB
GPU_UTILIZATION_DOMAIN_FB
nvml
GpuUtilizationDomainId
GPU
GPU_UTILIZATION_DOMAIN_GPU
nvml
GpuUtilizationDomainId
VID
GPU_UTILIZATION_DOMAIN_VID
nvml
InforomObject
COUNT
INFOROM_COUNT
nvml
InforomObject
DEN
INFOROM_DEN
nvml
InforomObject
ECC
INFOROM_ECC
nvml
InforomObject
OEM
INFOROM_OEM
nvml
InforomObject
POWER
INFOROM_POWER
nvml
IntNvLinkDeviceType
GPU
NVLINK_DEVICE_TYPE_GPU
nvml
IntNvLinkDeviceType
IBMNPU
NVLINK_DEVICE_TYPE_IBMNPU
nvml
IntNvLinkDeviceType
SWITCH
NVLINK_DEVICE_TYPE_SWITCH
nvml
IntNvLinkDeviceType
UNKNOWN
NVLINK_DEVICE_TYPE_UNKNOWN
nvml
NvLinkCapability
COUNT
NVLINK_CAP_COUNT
nvml
NvLinkCapability
P2P_ATOMICS
NVLINK_CAP_P2P_ATOMICS
nvml
NvLinkCapability
P2P_SUPPORTED
NVLINK_CAP_P2P_SUPPORTED
nvml
NvLinkCapability
SLI_BRIDGE
NVLINK_CAP_SLI_BRIDGE
nvml
NvLinkCapability
SYSMEM_ACCESS
NVLINK_CAP_SYSMEM_ACCESS
nvml
NvLinkCapability
SYSMEM_ATOMICS
NVLINK_CAP_SYSMEM_ATOMICS
nvml
NvLinkCapability
VALID
NVLINK_CAP_VALID
nvml
NvLinkErrorCounter
COUNT
NVLINK_ERROR_COUNT
nvml
NvLinkErrorCounter
DL_CRC_DATA
NVLINK_ERROR_DL_CRC_DATA
nvml
NvLinkErrorCounter
DL_CRC_FLIT
NVLINK_ERROR_DL_CRC_FLIT
nvml
NvLinkErrorCounter
DL_ECC_DATA
NVLINK_ERROR_DL_ECC_DATA
nvml
NvLinkErrorCounter
DL_RECOVERY
NVLINK_ERROR_DL_RECOVERY
nvml
NvLinkErrorCounter
DL_REPLAY
NVLINK_ERROR_DL_REPLAY
nvml
NvLinkUtilizationCountPktTypes
ALL
NVLINK_COUNTER_PKTFILTER_ALL
nvml
NvLinkUtilizationCountPktTypes
FLUSH
NVLINK_COUNTER_PKTFILTER_FLUSH
nvml
NvLinkUtilizationCountPktTypes
NOP
NVLINK_COUNTER_PKTFILTER_NOP
nvml
NvLinkUtilizationCountPktTypes
NRATOM
NVLINK_COUNTER_PKTFILTER_NRATOM
nvml
NvLinkUtilizationCountPktTypes
RATOM
NVLINK_COUNTER_PKTFILTER_RATOM
nvml
NvLinkUtilizationCountPktTypes
READ
NVLINK_COUNTER_PKTFILTER_READ
nvml
NvLinkUtilizationCountPktTypes
RESPDATA
NVLINK_COUNTER_PKTFILTER_RESPDATA
nvml
NvLinkUtilizationCountPktTypes
RESPNODATA
NVLINK_COUNTER_PKTFILTER_RESPNODATA
nvml
NvLinkUtilizationCountPktTypes
WRITE
NVLINK_COUNTER_PKTFILTER_WRITE
nvml
NvLinkUtilizationCountUnits
BYTES
NVLINK_COUNTER_UNIT_BYTES
nvml
NvLinkUtilizationCountUnits
COUNT
NVLINK_COUNTER_UNIT_COUNT
nvml
NvLinkUtilizationCountUnits
CYCLES
NVLINK_COUNTER_UNIT_CYCLES
nvml
NvLinkUtilizationCountUnits
PACKETS
NVLINK_COUNTER_UNIT_PACKETS
nvml
NvLinkUtilizationCountUnits
RESERVED
NVLINK_COUNTER_UNIT_RESERVED
nvml
NvlinkVersion
NVLINK_VERSION_1_0
VERSION_1_0
nvml
NvlinkVersion
NVLINK_VERSION_2_0
VERSION_2_0
nvml
NvlinkVersion
NVLINK_VERSION_2_2
VERSION_2_2
nvml
NvlinkVersion
NVLINK_VERSION_3_0
VERSION_3_0
nvml
NvlinkVersion
NVLINK_VERSION_3_1
VERSION_3_1
nvml
NvlinkVersion
NVLINK_VERSION_4_0
VERSION_4_0
nvml
NvlinkVersion
NVLINK_VERSION_5_0
VERSION_5_0
nvml
NvlinkVersion
NVLINK_VERSION_6_0
VERSION_6_0
nvml
NvlinkVersion
NVLINK_VERSION_INVALID
VERSION_INVALID
nvml
PcieLinkState
KEEP
PCIE_LINK_KEEP
nvml
PcieLinkState
SHUT_DOWN
PCIE_LINK_SHUT_DOWN
nvml
PcieUtilCounter
COUNT
PCIE_UTIL_COUNT
nvml
PcieUtilCounter
RX_BYTES
PCIE_UTIL_RX_BYTES
nvml
PcieUtilCounter
TX_BYTES
PCIE_UTIL_TX_BYTES
nvml
PerfPolicyType
BOARD_LIMIT
PERF_POLICY_BOARD_LIMIT
nvml
PerfPolicyType
COUNT
PERF_POLICY_COUNT
nvml
PerfPolicyType
LOW_UTILIZATION
PERF_POLICY_LOW_UTILIZATION
nvml
PerfPolicyType
POWER
PERF_POLICY_POWER
nvml
PerfPolicyType
RELIABILITY
PERF_POLICY_RELIABILITY
nvml
PerfPolicyType
SYNC_BOOST
PERF_POLICY_SYNC_BOOST
nvml
PerfPolicyType
THERMAL
PERF_POLICY_THERMAL
nvml
PerfPolicyType
TOTAL_APP_CLOCKS
PERF_POLICY_TOTAL_APP_CLOCKS
nvml
PerfPolicyType
TOTAL_BASE_CLOCKS
PERF_POLICY_TOTAL_BASE_CLOCKS
nvml
PowerProfileType
BALANCED
POWER_PROFILE_BALANCED
nvml
PowerProfileType
COMPUTE
POWER_PROFILE_COMPUTE
nvml
PowerProfileType
DCPCIE
POWER_PROFILE_DCPCIE
nvml
PowerProfileType
HIGH_THROUGHPUT_INFERENCE
POWER_PROFILE_HIGH_THROUGHPUT_INFERENCE
nvml
PowerProfileType
HMMA_DENSE
POWER_PROFILE_HMMA_DENSE
nvml
PowerProfileType
HMMA_SPARSE
POWER_PROFILE_HMMA_SPARSE
nvml
PowerProfileType
HPC
POWER_PROFILE_HPC
nvml
PowerProfileType
INFERENCE
POWER_PROFILE_INFERENCE
nvml
PowerProfileType
LLM_INFERENCE
POWER_PROFILE_LLM_INFERENCE
nvml
PowerProfileType
LLM_TRAINING
POWER_PROFILE_LLM_TRAINING
nvml
PowerProfileType
LOW_LATENCY_INFERENCE
POWER_PROFILE_LOW_LATENCY_INFERENCE
nvml
PowerProfileType
LOW_PRIORITY_BACKGROUND
POWER_PROFILE_LOW_PRIORITY_BACKGROUND
nvml
PowerProfileType
MAX
POWER_PROFILE_MAX
nvml
PowerProfileType
MAX_P
POWER_PROFILE_MAX_P
nvml
PowerProfileType
MAX_Q
POWER_PROFILE_MAX_Q
nvml
PowerProfileType
MAX_Q_1
POWER_PROFILE_MAX_Q_1
nvml
PowerProfileType
MAX_Q_2
POWER_PROFILE_MAX_Q_2
nvml
PowerProfileType
MAX_Q_3
POWER_PROFILE_MAX_Q_3
nvml
PowerProfileType
MEDIUM_THROUGHPUT_INFERENCE
POWER_PROFILE_MEDIUM_THROUGHPUT_INFERENCE
nvml
PowerProfileType
MEMORY_BOUND
POWER_PROFILE_MEMORY_BOUND
nvml
PowerProfileType
MIG
POWER_PROFILE_MIG
nvml
PowerProfileType
NETWORK
POWER_PROFILE_NETWORK
nvml
PowerProfileType
NETWORK_BOUND
POWER_PROFILE_NETWORK_BOUND
nvml
PowerProfileType
RBM
POWER_PROFILE_RBM
nvml
PowerProfileType
SYNC_BALANCED
POWER_PROFILE_SYNC_BALANCED
nvml
PowerProfileType
TRAINING
POWER_PROFILE_TRAINING
nvml
TemperatureSensors
COUNT
TEMPERATURE_COUNT
nvml
TemperatureSensors
GPU
TEMPERATURE_GPU
nvml
TemperatureSensors
GPU_MAX
TEMPERATURE_GPU_MAX
nvml
TemperatureThresholds
ACOUSTIC_CURR
TEMPERATURE_THRESHOLD_ACOUSTIC_CURR
nvml
TemperatureThresholds
ACOUSTIC_MAX
TEMPERATURE_THRESHOLD_ACOUSTIC_MAX
nvml
TemperatureThresholds
ACOUSTIC_MIN
TEMPERATURE_THRESHOLD_ACOUSTIC_MIN
nvml
TemperatureThresholds
COUNT
TEMPERATURE_THRESHOLD_COUNT
nvml
TemperatureThresholds
GPS_CURR
TEMPERATURE_THRESHOLD_GPS_CURR
nvml
TemperatureThresholds
GPU_MAX
TEMPERATURE_THRESHOLD_GPU_MAX
nvml
TemperatureThresholds
MEM_MAX
TEMPERATURE_THRESHOLD_MEM_MAX
nvml
TemperatureThresholds
SHUTDOWN
TEMPERATURE_THRESHOLD_SHUTDOWN
nvml
TemperatureThresholds
SLOWDOWN
TEMPERATURE_THRESHOLD_SLOWDOWN
nvml
VgpuCapability
COUNT
VGPU_CAP_COUNT
nvml
VgpuCapability
EXCLUSIVE_SIZE
VGPU_CAP_EXCLUSIVE_SIZE
nvml
VgpuCapability
EXCLUSIVE_TYPE
VGPU_CAP_EXCLUSIVE_TYPE
nvml
VgpuCapability
GPUDIRECT
VGPU_CAP_GPUDIRECT
nvml
VgpuCapability
MULTI_VGPU_EXCLUSIVE
VGPU_CAP_MULTI_VGPU_EXCLUSIVE
nvml
VgpuCapability
NVLINK_P2P
VGPU_CAP_NVLINK_P2P
nvml
VgpuDriverCapability
COUNT
VGPU_DRIVER_CAP_COUNT
nvml
VgpuDriverCapability
HETEROGENEOUS_MULTI_VGPU
VGPU_DRIVER_CAP_HETEROGENEOUS_MULTI_VGPU
nvml
VgpuDriverCapability
WARM_UPDATE
VGPU_DRIVER_CAP_WARM_UPDATE
nvml
VgpuGuestInfoState
INITIALIZED
VGPU_INSTANCE_GUEST_INFO_STATE_INITIALIZED
nvml
VgpuGuestInfoState
UNINITIALIZED
VGPU_INSTANCE_GUEST_INFO_STATE_UNINITIALIZED
nvml
VgpuPgpuCompatibilityLimitCode
GPU
VGPU_COMPATIBILITY_LIMIT_GPU
nvml
VgpuPgpuCompatibilityLimitCode
GUEST_DRIVER
VGPU_COMPATIBILITY_LIMIT_GUEST_DRIVER
nvml
VgpuPgpuCompatibilityLimitCode
HOST_DRIVER
VGPU_COMPATIBILITY_LIMIT_HOST_DRIVER
nvml
VgpuPgpuCompatibilityLimitCode
NONE
VGPU_COMPATIBILITY_LIMIT_NONE
nvml
VgpuPgpuCompatibilityLimitCode
OTHER
VGPU_COMPATIBILITY_LIMIT_OTHER
nvml
VgpuVmIdType
DOMAIN_ID
VGPU_VM_ID_DOMAIN_ID
nvml
VgpuVmIdType
UUID
VGPU_VM_ID_UUID
(PR #2822)
nvml.NvlinkFirmwareInfo: Thefirmware_versionmember now returns only valid entries. Thenum_valid_entriesmember is removed, as its design made it possible to access invalid memory. (PR #2953)nvml.device_get_vgpu_process_utilization: The old implementation returned a tuple(sample_count, samples), and thesamplesarray only ever contained one element. It is now correctly returned as a properly-sized array (and the redundantsample_count— which was only ever the array’s own size — is no longer part of the returned value; uselen(result)instead). (PR #2862)nvml.device_get_vgpu_utilization: The old implementation would only fill in the first element of the returned array; the rest was uninitialized garbage. It is now correctly returned as a properly-sized array. In addition, the first element of the returned tuple,sample_val_type, is now a plainintrather than a length-1 array, since it is a single output parameter, not a per-sample value. (PR #2862)Passing a
Nonetonvvm.add_module_to_programornvvm.lazy_add_module_to_programwill now raise anvvm.nvvmError(INVALID_INPUT) rather than aValueError. (PR #2818)
Bug Fixes#
Fix a potential use-after-free error in the destructors of classes in
driverandruntime. (PR #2874)A number of incorrect docstrings have been corrected. (PR #2820)
nvml.device_get_samples: On a zero-sample result, the old implementation returned a bareSampleinstance instead of the documented(sample_val_type, samples)tuple. It now always returns the correct 2-tuple. (PR #2862)nvml.device_get_gpu_instances,nvml.gpu_instance_get_compute_instances: The old implementations would fail withValueError: Invalid shape in axis 0: 0whenever the result is empty. Now correctly returns an empty array in that case. (PR #2862)nvml.device_get_supported_vgpus,nvml.device_get_creatable_vgpus,nvml.device_get_active_vgpus: The old implementations would return aNameErrorat runtime whenever there was at least one result to return. Now fixed. (PR #2862)Setting a
cuda_bindingsclass instance to itself (obj = cuda_bindings.driver.Class(); obj[0] = obj) will no longer crash or use garbage values. (PR #2821)
Known Issues#
Updating from older versions (v12.6.2.post1 and below) via
pip install -U cuda-pythonmight not work. Please do a clean re-installation by uninstallingpip uninstall -y cuda-pythonfollowed by installingpip install cuda-python. (PR #626)nvml.system_get_process_nameon WSL can return incorrect values. To work around this, set the locale to “C” before callingnvml.device_get_compute_running_processes_v3(which sets the process names) and before callingnvml.system_get_process_name.cuda_coredoes this automatically, but users of the raw NVML API will need to do this manually. (PR #2118)