cuda-bindings 13.5.0 Release notes#

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)

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.

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.