cuda-bindings 13.4.3 Release notes#

Bugfixes#

  • Fixed the internal result storage and Python conversion for several CUpointer_attribute and CUcoredumpSettings result types: CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL is now returned from signed integer storage so negative CUDA device sentinels are preserved, CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES is stored in its 64-bit unsigned slot instead of being truncated to 32 bits, CU_POINTER_ATTRIBUTE_HOST_POINTER uses a void * result slot, and the boolean coredump attributes use a one-byte bool matching the driver ABI. (PR #2929)

  • Fixed CU_JIT_WALL_TIME and cudaJitWallTime OUT slots: the pointer passed to the driver is now the address of the float storage cell instead of the float bit-pattern value-cast to a pointer, which previously produced a garbage address that could crash or corrupt memory when CUDA wrote back the elapsed time. (PR #2931)

  • Added missing helper branches for CUpointer_attribute, CUmemPool_attribute, CUmem_range_attribute, CUjit_option and CUcoredumpSettings enumerators that previously raised TypeError at construction time. (PR #2931)

  • Added missing getDescInfo and getChannelFormatDescFromDriverDesc arms for the {Signed,Unsigned}Normalized{8,16}X{1,2,4} channel kinds and for the CUDA 13.3 / 13.4 packed and multi-planar YUV channel kinds, which previously returned cudaErrorInvalidChannelDescriptor. (PR #2931)

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.