cuda-bindings 12.9.8 Release notes#
Licensing#
cuda-bindingsandcuda-pythonare now relicensed under Apache 2.0. (PR #2294)
Bugfixes#
Fixed a potential data race in the lazy initialization of the driver, runtime, NVRTC, NVML, nvJitLink, nvFatbin, cuFile and NVVM bindings, where concurrent threads could observe a partially initialized state. (PR #2382)
Restored the
CUcheckpointRestoreArgsandCUcheckpointRestoreArgs_stdriver bindings, whose generation had regressed to omit the checkpoint restore argument struct and typedef. (PR #2145)Fixed the raw driver and NVRTC function-pointer exception declarations so that a legitimately returned
CUDA_ERROR_NOT_FOUNDresult is no longer at risk of being mishandled as a spurious exception. (PR #2206)from_ptr()on severalcufileandnvmlstruct wrapper classes now accepts anownerargument that is held as a strong reference, so the wrapped buffer can no longer be garbage-collected out from under the wrapper. (PR #2604)nvml.error_string,nvvm.get_error_string,cufile.handle_deregister, andcufile.batch_io_destroynow release the GIL while calling into the underlying C library, improving concurrency for multi-threaded applications. (PR #2349)Fixed a crash in
nvml.system_event_set_waitcaused by callingresize()on a non-owningSystemEventData_v1._dataview. (PR #2690)Fixed
cuFilestatus checking to no longer raisecuFileErrorspuriously whenCUfileError_t.cu_erris set on a non-error path (for example, BAR-size queries on GH200 systems). (PR #2530)
Deprecation Notices#
Support for using
cuda-bindingswith Python 3.10 is deprecated and will be removed in a future version. Python 3.10 reaches end of life in October 2026 per the CPython support cycle.
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.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.