diff --git a/.gitignore b/.gitignore index 0f7ad5be44..1c73b74fd3 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ cuda_bindings/cuda/bindings/_bindings/cydriver.pxd cuda_bindings/cuda/bindings/_bindings/cydriver.pyx cuda_bindings/cuda/bindings/_bindings/cynvrtc.pxd cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx +cuda_bindings/cuda/bindings/_internal/nvjitlink.pyx cuda_bindings/cuda/bindings/_lib/cyruntime/cyruntime.pxd cuda_bindings/cuda/bindings/_lib/cyruntime/cyruntime.pyx cuda_bindings/cuda/bindings/_lib/cyruntime/utils.pxd diff --git a/cuda_bindings/cuda/ccuda.pyx b/cuda_bindings/cuda/ccuda.pyx index 73f3fc5cb4..a07525bbda 100644 --- a/cuda_bindings/cuda/ccuda.pyx +++ b/cuda_bindings/cuda/ccuda.pyx @@ -5,3 +5,8 @@ cdef extern from *: #pragma message ( "The cuda.ccuda module is deprecated and will be removed in a future release, " \ "please switch to use the cuda.bindings.cydriver module instead." ) """ + + +from cuda.bindings import cydriver +__pyx_capi__ = cydriver.__pyx_capi__ +del cydriver diff --git a/cuda_bindings/cuda/ccudart.pyx b/cuda_bindings/cuda/ccudart.pyx index b32eece814..3cef081123 100644 --- a/cuda_bindings/cuda/ccudart.pyx +++ b/cuda_bindings/cuda/ccudart.pyx @@ -5,3 +5,8 @@ cdef extern from *: #pragma message ( "The cuda.ccudart module is deprecated and will be removed in a future release, " \ "please switch to use the cuda.bindings.cyruntime module instead." ) """ + + +from cuda.bindings import cyruntime +__pyx_capi__ = cyruntime.__pyx_capi__ +del cyruntime diff --git a/cuda_bindings/cuda/cnvrtc.pyx b/cuda_bindings/cuda/cnvrtc.pyx index d4034084e2..405d7de00e 100644 --- a/cuda_bindings/cuda/cnvrtc.pyx +++ b/cuda_bindings/cuda/cnvrtc.pyx @@ -5,3 +5,8 @@ cdef extern from *: #pragma message ( "The cuda.cnvrtc module is deprecated and will be removed in a future release, " \ "please switch to use the cuda.bindings.cynvrtc module instead." ) """ + + +from cuda.bindings import cynvrtc +__pyx_capi__ = cynvrtc.__pyx_capi__ +del cynvrtc diff --git a/cuda_bindings/docs/source/release.md b/cuda_bindings/docs/source/release.md index c3ae5a30a8..69f361a258 100644 --- a/cuda_bindings/docs/source/release.md +++ b/cuda_bindings/docs/source/release.md @@ -5,6 +5,7 @@ maxdepth: 3 --- + 12.6.2 12.6.1 12.6.0 12.5.0 @@ -14,6 +15,7 @@ maxdepth: 3 12.2.0 12.1.0 12.0.0 + 11.8.5 11.8.4 11.8.3 11.8.2 diff --git a/cuda_bindings/docs/source/release/11.4.0-notes.md b/cuda_bindings/docs/source/release/11.4.0-notes.md index f761168893..9eaa4eff0a 100644 --- a/cuda_bindings/docs/source/release/11.4.0-notes.md +++ b/cuda_bindings/docs/source/release/11.4.0-notes.md @@ -2,7 +2,7 @@ Released on August 16, 2021 -## Hightlights +## Highlights - Initial EA release for CUDA Python - Supports all platforms that CUDA is supported - Supports all CUDA 11.x releases diff --git a/cuda_bindings/docs/source/release/11.5.0-notes.md b/cuda_bindings/docs/source/release/11.5.0-notes.md index a7f8fddca4..130cb17d07 100644 --- a/cuda_bindings/docs/source/release/11.5.0-notes.md +++ b/cuda_bindings/docs/source/release/11.5.0-notes.md @@ -2,7 +2,7 @@ Released on October 18, 2021 -## Hightlights +## Highlights - PyPi support - Conda support - GA release for CUDA Python diff --git a/cuda_bindings/docs/source/release/11.6.0-notes.md b/cuda_bindings/docs/source/release/11.6.0-notes.md index 60a9d9205b..664da16249 100644 --- a/cuda_bindings/docs/source/release/11.6.0-notes.md +++ b/cuda_bindings/docs/source/release/11.6.0-notes.md @@ -2,7 +2,7 @@ Released on Januray 12, 2022 -## Hightlights +## Highlights - Support CUDA Toolkit 11.6 - Support Profiler APIs - Support Graphic APIs (EGL, GL, VDPAU) diff --git a/cuda_bindings/docs/source/release/11.6.1-notes.md b/cuda_bindings/docs/source/release/11.6.1-notes.md index bc2ba3293d..ddd6ff5101 100644 --- a/cuda_bindings/docs/source/release/11.6.1-notes.md +++ b/cuda_bindings/docs/source/release/11.6.1-notes.md @@ -2,7 +2,7 @@ Released on March 18, 2022 -## Hightlights +## Highlights - Fix string decomposition for WSL library load ## Limitations diff --git a/cuda_bindings/docs/source/release/11.7.0-notes.md b/cuda_bindings/docs/source/release/11.7.0-notes.md index 91ab215e0d..22500c7a23 100644 --- a/cuda_bindings/docs/source/release/11.7.0-notes.md +++ b/cuda_bindings/docs/source/release/11.7.0-notes.md @@ -2,7 +2,7 @@ Released on May 11, 2022 -## Hightlights +## Highlights - Support CUDA Toolkit 11.7 ## Limitations diff --git a/cuda_bindings/docs/source/release/11.7.1-notes.md b/cuda_bindings/docs/source/release/11.7.1-notes.md index 8d07b19df5..2997c9da56 100644 --- a/cuda_bindings/docs/source/release/11.7.1-notes.md +++ b/cuda_bindings/docs/source/release/11.7.1-notes.md @@ -2,7 +2,7 @@ Released on June 29, 2022 -## Hightlights +## Highlights - Fix error propagation in CUDA Runtime bindings - Resolves [issue #22](https://github.com/NVIDIA/cuda-python/issues/22) diff --git a/cuda_bindings/docs/source/release/11.8.0-notes.md b/cuda_bindings/docs/source/release/11.8.0-notes.md index f860e5fb61..c5bf9f71c3 100644 --- a/cuda_bindings/docs/source/release/11.8.0-notes.md +++ b/cuda_bindings/docs/source/release/11.8.0-notes.md @@ -2,7 +2,7 @@ Released on October 3, 2022 -## Hightlights +## Highlights - Support CUDA Toolkit 11.8 - Source builds allow for missing types and APIs - Resolves source builds for mobile platforms diff --git a/cuda_bindings/docs/source/release/11.8.1-notes.md b/cuda_bindings/docs/source/release/11.8.1-notes.md index 94565355cc..f7c2e7d450 100644 --- a/cuda_bindings/docs/source/release/11.8.1-notes.md +++ b/cuda_bindings/docs/source/release/11.8.1-notes.md @@ -2,7 +2,7 @@ Released on November 4, 2022 -## Hightlights +## Highlights - Resolves [issue #27](https://github.com/NVIDIA/cuda-python/issues/27) - Update install instructions to use latest CTK diff --git a/cuda_bindings/docs/source/release/11.8.2-notes.md b/cuda_bindings/docs/source/release/11.8.2-notes.md index 84d781b5fd..f9d1655652 100644 --- a/cuda_bindings/docs/source/release/11.8.2-notes.md +++ b/cuda_bindings/docs/source/release/11.8.2-notes.md @@ -2,7 +2,7 @@ Released on May 18, 2023 -## Hightlights +## Highlights - Open libcuda.so.1 instead of libcuda.so ## Limitations diff --git a/cuda_bindings/docs/source/release/11.8.3-notes.md b/cuda_bindings/docs/source/release/11.8.3-notes.md index 91bbc49148..a8ff840c1e 100644 --- a/cuda_bindings/docs/source/release/11.8.3-notes.md +++ b/cuda_bindings/docs/source/release/11.8.3-notes.md @@ -2,7 +2,7 @@ Released on October 23, 2023 -## Hightlights +## Highlights - Compatability with Cython 3 - New API cudart.getLocalRuntimeVersion() - Modernize build config diff --git a/cuda_bindings/docs/source/release/11.8.4-notes.md b/cuda_bindings/docs/source/release/11.8.4-notes.md index 9cae291581..13767998f0 100644 --- a/cuda_bindings/docs/source/release/11.8.4-notes.md +++ b/cuda_bindings/docs/source/release/11.8.4-notes.md @@ -2,12 +2,34 @@ Released on October 7, 2024 -## Hightlights +## Highlights - Resolve [Issue #89](https://github.com/NVIDIA/cuda-python/issues/89): Fix getLocalRuntimeVersion searching for wrong libcudart version - Resolve [Issue #90](https://github.com/NVIDIA/cuda-python/issues/90): Use new layout in preperation for cuda-python becoming a metapackage +## CUDA namespace cleanup with a new module layout + +[Issue #75](https://github.com/NVIDIA/cuda-python/issues/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 +### Know issues +- [Issue #215](https://github.com/NVIDIA/cuda-python/issues/215) + ### CUDA Functions Not Supported in this Release - Symbol APIs diff --git a/cuda_bindings/docs/source/release/11.8.5-notes.md b/cuda_bindings/docs/source/release/11.8.5-notes.md new file mode 100644 index 0000000000..4461645933 --- /dev/null +++ b/cuda_bindings/docs/source/release/11.8.5-notes.md @@ -0,0 +1,31 @@ +# CUDA Python 11.8.5 Release notes + +Released on November 5, 2024 + +## Highlights +- Resolve [Issue #215](https://github.com/NVIDIA/cuda-python/issues/215): module 'cuda.ccudart' has no attribute '__pyx_capi__' + +## 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 diff --git a/cuda_bindings/docs/source/release/12.0.0-notes.md b/cuda_bindings/docs/source/release/12.0.0-notes.md index df1bf1f90d..9f2ae25871 100644 --- a/cuda_bindings/docs/source/release/12.0.0-notes.md +++ b/cuda_bindings/docs/source/release/12.0.0-notes.md @@ -2,7 +2,7 @@ Released on December 8, 2022 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.0 - Fix example from [MR28](https://github.com/NVIDIA/cuda-python/pull/28) - Apply [MR35](https://github.com/NVIDIA/cuda-python/pull/35) diff --git a/cuda_bindings/docs/source/release/12.1.0-notes.md b/cuda_bindings/docs/source/release/12.1.0-notes.md index aec56999e6..94310bb513 100644 --- a/cuda_bindings/docs/source/release/12.1.0-notes.md +++ b/cuda_bindings/docs/source/release/12.1.0-notes.md @@ -2,7 +2,7 @@ Released on February 28, 2023 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.1 - Resolve [Issue #41](https://github.com/NVIDIA/cuda-python/issues/41): Add support for Python 3.11 - Resolve [Issue #42](https://github.com/NVIDIA/cuda-python/issues/42): Dropping Python 3.7 diff --git a/cuda_bindings/docs/source/release/12.2.0-notes.md b/cuda_bindings/docs/source/release/12.2.0-notes.md index d6bd667516..39e37b9a8d 100644 --- a/cuda_bindings/docs/source/release/12.2.0-notes.md +++ b/cuda_bindings/docs/source/release/12.2.0-notes.md @@ -2,7 +2,7 @@ Released on June 28, 2023 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.2 - Resolve [Issue #44](https://github.com/NVIDIA/cuda-python/issues/44): nogil must be at the end of the function signature line - Resolve [Issue #45](https://github.com/NVIDIA/cuda-python/issues/45): Error with pyparsing when no CUDA is found diff --git a/cuda_bindings/docs/source/release/12.2.1-notes.md b/cuda_bindings/docs/source/release/12.2.1-notes.md index 41704a5667..3a89af85c2 100644 --- a/cuda_bindings/docs/source/release/12.2.1-notes.md +++ b/cuda_bindings/docs/source/release/12.2.1-notes.md @@ -2,7 +2,7 @@ Released on January 8, 2024 -## Hightlights +## Highlights - Compatibility with Cython 3 ## Limitations diff --git a/cuda_bindings/docs/source/release/12.3.0-notes.md b/cuda_bindings/docs/source/release/12.3.0-notes.md index 016ee0dec2..15bcdb9780 100644 --- a/cuda_bindings/docs/source/release/12.3.0-notes.md +++ b/cuda_bindings/docs/source/release/12.3.0-notes.md @@ -2,7 +2,7 @@ Released on October 19, 2023 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.3 - Resolve [Issue #16](https://github.com/NVIDIA/cuda-python/issues/16): cuda.cudart.cudaRuntimeGetVersion() hard-codes the runtime version, rather than querying the runtime - New API cudart.getLocalRuntimeVersion() diff --git a/cuda_bindings/docs/source/release/12.4.0-notes.md b/cuda_bindings/docs/source/release/12.4.0-notes.md index 6daedb209e..191ecc644e 100644 --- a/cuda_bindings/docs/source/release/12.4.0-notes.md +++ b/cuda_bindings/docs/source/release/12.4.0-notes.md @@ -2,7 +2,7 @@ Released on March 5, 2024 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.4 - Add PyPI/Conda support for Python 12 diff --git a/cuda_bindings/docs/source/release/12.5.0-notes.md b/cuda_bindings/docs/source/release/12.5.0-notes.md index 701f0320ab..b0e527a8a7 100644 --- a/cuda_bindings/docs/source/release/12.5.0-notes.md +++ b/cuda_bindings/docs/source/release/12.5.0-notes.md @@ -2,7 +2,7 @@ Released on May 21, 2024 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.5 - Resolve [Issue #58](https://github.com/NVIDIA/cuda-python/issues/58): Interop between CUdeviceptr and Runtime diff --git a/cuda_bindings/docs/source/release/12.6.0-notes.md b/cuda_bindings/docs/source/release/12.6.0-notes.md index 2531e89b9c..466e2eec11 100644 --- a/cuda_bindings/docs/source/release/12.6.0-notes.md +++ b/cuda_bindings/docs/source/release/12.6.0-notes.md @@ -2,7 +2,7 @@ Released on August 1, 2024 -## Hightlights +## Highlights - Rebase to CUDA Toolkit 12.6 - Resolve [Issue #32](https://github.com/NVIDIA/cuda-python/issues/32): Add 'pywin32' as Windows requirement - Resolve [Issue #72](https://github.com/NVIDIA/cuda-python/issues/72): Allow both lists and tuples as parameter diff --git a/cuda_bindings/docs/source/release/12.6.1-notes.md b/cuda_bindings/docs/source/release/12.6.1-notes.md index bf1962136b..360047125e 100644 --- a/cuda_bindings/docs/source/release/12.6.1-notes.md +++ b/cuda_bindings/docs/source/release/12.6.1-notes.md @@ -2,7 +2,7 @@ Released on October 7, 2024 -## Hightlights +## Highlights - Resolve [Issue #90](https://github.com/NVIDIA/cuda-python/issues/90): Use new layout in preparation for cuda-python becoming a metapackage - Resolve [Issue #75](https://github.com/NVIDIA/cuda-python/issues/75): CUDA namespace cleanup @@ -27,6 +27,9 @@ Deprecation warnings are turned on as a notice to switch to the new module layou ## Limitations +### Know issues +- [Issue #215](https://github.com/NVIDIA/cuda-python/issues/215) + ### CUDA Functions Not Supported in this Release - Symbol APIs diff --git a/cuda_bindings/docs/source/release/12.6.2-notes.md b/cuda_bindings/docs/source/release/12.6.2-notes.md new file mode 100644 index 0000000000..06fe110bf3 --- /dev/null +++ b/cuda_bindings/docs/source/release/12.6.2-notes.md @@ -0,0 +1,33 @@ +# CUDA Python 12.6.2 Release notes + +Released on November 5, 2024 + +## Highlights +- Resolve [Issue #215](https://github.com/NVIDIA/cuda-python/issues/215): module 'cuda.ccudart' has no attribute '__pyx_capi__' + +## 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 diff --git a/cuda_bindings/setup.py b/cuda_bindings/setup.py index ca1f826484..5c2f765117 100644 --- a/cuda_bindings/setup.py +++ b/cuda_bindings/setup.py @@ -269,8 +269,6 @@ def do_cythonize(extensions): ["cuda/bindings/*.pyx"], # public (deprecated, to be removed) ["cuda/*.pyx"], - # tests - ["tests/*.pyx"], # interal files used by generated bindings ['cuda/bindings/_internal/nvjitlink.pyx'], ['cuda/bindings/_internal/utils.pyx'], @@ -304,9 +302,9 @@ def finalize_options(self): setup( version=versioneer.get_version(), ext_modules=do_cythonize(extensions), - packages=find_packages(include=["cuda.cuda", "cuda.cuda.*", "cuda.cuda.bindings", "cuda.cuda.bindings._bindings", "cuda.cuda.bindings._lib", "cuda.cuda.bindings._lib.cyruntime", "cuda.cuda.bindings._internal", "tests"]), + packages=find_packages(include=["cuda", "cuda.*", "cuda.bindings", "cuda.bindings._bindings", "cuda.bindings._lib", "cuda.bindings._lib.cyruntime", "cuda.bindings._internal"]), package_data=dict.fromkeys( - find_packages(include=["cuda.cuda", "cuda.cuda.*", "cuda.cuda.bindings", "cuda.cuda.bindings._bindings", "cuda.cuda.bindings._lib", "cuda.cuda.bindings._lib.cyruntime", "cuda.cuda.bindings._internal", "tests"]), + find_packages(include=["cuda", "cuda.*", "cuda.bindings", "cuda.bindings._bindings", "cuda.bindings._lib", "cuda.bindings._lib.cyruntime", "cuda.bindings._internal"]), ["*.pxd", "*.pyx", "*.py", "*.h", "*.cpp"], ), cmdclass=cmdclass,