cuda-bindings 13.4.2 Release notes#
Breaking changes#
Members of cuda-bindings classes that represent memory for use by future
versions of the CUDA API were incorrectly exposed to Python. These have been
removed and are no longer exposed. These members have names like reserved,
internal, padding and unused (sometimes with a numeric suffix). The
C++ CUDA documentation may sometimes say that these members “must be zeroed”,
but that is not required with the cuda-bindings Python interface (it happens
automatically).
This affects the following fields:
driver:CUDA_ARRAY_MEMORY_REQUIREMENTS_st.reserved,CUDA_ARRAY_SPARSE_PROPERTIES_st.reserved,CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st.reserved,CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st.reserved,CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st.reserved,CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st.reserved,CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st.reserved,CUDA_EXTERNAL_SEMAPHONE_SIGNAL_PARAMS_st.nvSciSync.reserved,CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.reserved,CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st.nvSciSync.reserved,CUDA_MEMCPY3D_st.reserved0,CUDA_MEMCPY3D_st.reserved1,CUDA_MEMCPY_NODE_PARAMS_st.reserved,CUDA_RESOURCE_DESC_st.res.reserved,CUDA_RESOURCE_VIEW_DESC_st.reserved,CUDA_TEXTURE_DESC_st.reserved,CU_DEV_SM_RESOURCE_GROUP_PARAMS_st.reserved,CUarrayMapInfo_st.reserved,CUcheckpointCheckpointArgs_st.reserved,CUcheckpointLockArgs_st.reserved0,CUcheckpointLockArgs_st.reserved1,CUcheckpointRestoreArgs_st.padding0,CUcheckpointRestoreArgs_st.reserved,CUcheckpointUnlockArgs_st.reserved,CUdevWorkqueueResource_st.reserved,CUgraphEdgeData_st.reserved,CUgraphNodeParams_st.reserved0,CUgraphNodeParams_st.reserved1,CUgraphNodeParams_st.reserved2,CUipcEventHandle_st.reserved,CUipcMemHandle_st.reserved,CUmemAllocationProp_st.allocFlags.reserved,CUmemDecompressParams_st.padding,CUmemPoolProps_st.reserved,CUmemPoolPtrExportData_st.reservednvml:AccountingStats.reserved,VgpuMetadata.reserved,VgpuPgpuMetadata.reservedruntime:cudaArrayMemoryRequirements.reserved,cudaArraySparseProperties.reserved,cudaDevSmResourceGroupParams_st.reserved,cudaDevWorkqueueResource.reserved,cudaDeviceProp.reserved,cudaEglPlaneDesc_st.reserved,cudaExternalMemoryBufferDesc.reserved,cudaExternalMemoryHandleDesc.reserved,cudaExternalMemoryMipmappedArrayDesc.reserved,cudaExternalSemaphoreHandleDesc.reserved,cudaExternalSemaphoreSignalParams.reserved,cudaExternalSemaphoreWaitParams.reserved,cudaFuncAttributes.reserved,cudaGraphEdgeData_st.reserved,cudaGraphNodeParams.reserved0,cudaGraphNodeParams.reserved1,cudaGraphNodeParams.reserved2,cudaIpcEventHandle_st.reserved,cudaIpcMemHandle_st.reserved,cudaMemFabricHandle_st.reserved,cudaMemPoolProps.reserved,cudaMemPoolPtrExportData.reserved,cudaMemcpyNodeParams.reserved,cudaPointerAttributes.reserved,cudaPointerAttributes.unused,cudaResourceViewDesc.reserved
It is no longer possible to get or set these bytes directly. To create a wrapped struct from a buffer (for example, for pickling), see Setting raw bytes of structs.
Bugfixes#
cuda-bindingsis rebuilt against CUDA toolkit 13.4.2, and thus gets all of its bugfixes.
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.