cuda-bindings 13.5.0 Release notes#

Highlights#

  • Python 3.10 support was dropped (end of life).

Changes#

  • Many cuda.bindings.cudla and cuda.bindings.nvml enum members had a redundant prefix stripped from their name, e.g. nvml.BrandType.BRAND_GEFORCE is now nvml.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-renamed nvml.GpmMetricId members (which had their GPM_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

  • nvml.device_get_samples: On a zero-sample result, the old implementation returned a bare Sample instance instead of the documented (sample_val_type, samples) tuple. It now always returns the correct 2-tuple.

  • nvml.device_get_supported_vgpus, nvml.device_get_creatable_vgpus, nvml.device_get_active_vgpus: The old implementations would return a NameError at runtime whenever there was at least one result to return. Now fixed.

  • nvml.device_get_gpu_instances, nvml.gpu_instance_get_compute_instances: The old implementations would fail with ValueError: Invalid shape in axis 0: 0 whenever the result is empty. Now correctly returns an empty array in that case.

  • 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 plain int rather than a length-1 array, since it is a single output parameter, not a per-sample value.

  • nvml.device_get_vgpu_process_utilization: The old implementation returned a tuple (sample_count, samples), and the samples array only ever contained one element. It is now correctly returned as a properly-sized array (and the redundant sample_count — which was only ever the array’s own size — is no longer part of the returned value; use len(result) instead).

  • nvml.NvlinkFirmwareInfo: The firmware_version member now returns only valid entries. The num_valid_entries member is removed, as its design made it possible to access invalid memory.

Enhancements#

  • cuda-bindings docstrings now include the full documentation from the upstream CTK, not just the first paragraph.

  • The following functions now accept None for their buffer-like pointer argument (an integer address or an object supporting the buffer protocol), which is treated as NULL.

    • 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)

  • For all cuda-bindings APIs, functions that accept a struct wrapper will accept the struct wrapper directly, rather than requiring getting the .ptr property.

  • Creating class instances in cuda-bindings should now be faster in most cases, because it requires 1 heap allocation rather than 2.

  • Before a source build compiles anything, it now checks that the CUDA Toolkit’s cuda.h has 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.

Behavior changes#

  • Passing a None to nvvm.add_module_to_program or nvvm.lazy_add_module_to_program will now raise a nvvm.nvvmError (INVALID_INPUT) rather than a ValueError.

Bugfixes#

  • A number of incorrect docstrings have been corrected.

  • Setting a cuda_bindings class instance to itself (obj = cuda_bindings.driver.Class(); obj[0] = obj) will no longer crash or use garbage values.

  • Fix a potential use-after-free error in the destructors of classes in driver and runtime.

  • driver.cuLaunchHostFunc and runtime.cudaLaunchHostFunc now pass the host function and its user data to CUDA unchanged. They used to route the call through an internal trampoline that freed its state after the first invocation, so a host function captured into a CUDA graph crashed on the second launch of that graph. (Issue #790) Callers must retain the callback object and user data storage for the lifetime of the graph and its executables, including pending launches; see Host functions.

Prerelease feature#

A new version of the nvrtc API is available as cuda.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.

Known issues#

  • Updating from older versions (v12.6.2.post1 and below) via pip install -U cuda-python might not work. Please do a clean re-installation by uninstalling pip uninstall -y cuda-python followed by installing pip install cuda-python.

  • nvml.system_get_process_name on WSL can return incorrect values. To work around this, set the locale to “C” before calling nvml.device_get_compute_running_processes_v3 (which sets the process names) and before calling nvml.system_get_process_name. cuda_core does this automatically, but users of the raw NVML API will need to do this manually.