CUDA Python 12.6.1 Release notes#

Released on October 7, 2024

Hightlights#

  • Resolve Issue #90: Use new layout in preparation for cuda-python becoming a metapackage

  • Resolve Issue #75: CUDA namespace cleanup

CUDA namespace cleanup with a new module layout#

Issue #75 explains in detail what the new module layout is, what problem it fixes and how it impacts the users. However for the sake of completeness, this release notes will highlight key points of this change.

Before this change, cuda-python was tightly coupled to CUDA Toolkit releases and all new features would inherit this coupling regardless of their applicability. As we develop new features, this coupling was becoming overly restrictive and motivated a new solution: Convert cuda-python into a metapackage where we use cuda as a namespace with existing bindings code moved to a cuda_bindings subpackage.

This patch release applies the new module layout for the bindings as follows:

  • cuda.cuda -> cuda.bindings.driver

  • cuda.ccuda -> cuda.bindings.cydriver

  • cuda.cudart -> cuda.bindings.runtime

  • cuda.ccudart -> cuda.bindings.cyruntime

  • cuda.nvrtc -> cuda.bindings.nvrtc

  • cuda.cnvrtc -> cuda.bindings.cynvrtc

Deprecation warnings are turned on as a notice to switch to the new module layout.

Note

This is non-breaking, backwards compatible change. All old module path will continue work as they “forward” user calls towards the new layout.

Limitations#

CUDA Functions Not Supported in this Release#

  • Symbol APIs

    • cudaGraphExecMemcpyNodeSetParamsFromSymbol

    • cudaGraphExecMemcpyNodeSetParamsToSymbol

    • cudaGraphAddMemcpyNodeToSymbol

    • cudaGraphAddMemcpyNodeFromSymbol

    • cudaGraphMemcpyNodeSetParamsToSymbol

    • cudaGraphMemcpyNodeSetParamsFromSymbol

    • cudaMemcpyToSymbol

    • cudaMemcpyFromSymbol

    • cudaMemcpyToSymbolAsync

    • cudaMemcpyFromSymbolAsync

    • cudaGetSymbolAddress

    • cudaGetSymbolSize

    • cudaGetFuncBySymbol

  • Launch Options

    • cudaLaunchKernel

    • cudaLaunchCooperativeKernel

    • cudaLaunchCooperativeKernelMultiDevice

  • cudaSetValidDevices

  • cudaVDPAUSetVDPAUDevice

  • cudaFuncGetName

  • cudaFuncGetParamInfo