From 2b5763c23752e13015a9f774a2c26961f5aeae6e Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Tue, 5 Nov 2024 22:48:27 -0800 Subject: [PATCH 1/2] Update __pyx_capi__ due to layout change Add _internal to package data files --- .gitignore | 1 + cuda_bindings/cuda/ccuda.pyx | 5 +++ cuda_bindings/cuda/ccudart.pyx | 5 +++ cuda_bindings/cuda/cnvrtc.pyx | 5 +++ cuda_bindings/docs/source/release.md | 2 ++ .../docs/source/release/11.4.0-notes.md | 2 +- .../docs/source/release/11.5.0-notes.md | 2 +- .../docs/source/release/11.6.0-notes.md | 2 +- .../docs/source/release/11.6.1-notes.md | 2 +- .../docs/source/release/11.7.0-notes.md | 2 +- .../docs/source/release/11.7.1-notes.md | 2 +- .../docs/source/release/11.8.0-notes.md | 2 +- .../docs/source/release/11.8.1-notes.md | 2 +- .../docs/source/release/11.8.2-notes.md | 2 +- .../docs/source/release/11.8.3-notes.md | 2 +- .../docs/source/release/11.8.4-notes.md | 24 +++++++++++++- .../docs/source/release/11.8.5-notes.md | 31 +++++++++++++++++ .../docs/source/release/12.0.0-notes.md | 2 +- .../docs/source/release/12.1.0-notes.md | 2 +- .../docs/source/release/12.2.0-notes.md | 2 +- .../docs/source/release/12.2.1-notes.md | 2 +- .../docs/source/release/12.3.0-notes.md | 2 +- .../docs/source/release/12.4.0-notes.md | 2 +- .../docs/source/release/12.5.0-notes.md | 2 +- .../docs/source/release/12.6.0-notes.md | 2 +- .../docs/source/release/12.6.1-notes.md | 5 ++- .../docs/source/release/12.6.2-notes.md | 33 +++++++++++++++++++ cuda_bindings/setup.py | 6 ++-- 28 files changed, 129 insertions(+), 24 deletions(-) create mode 100644 cuda_bindings/docs/source/release/11.8.5-notes.md create mode 100644 cuda_bindings/docs/source/release/12.6.2-notes.md diff --git a/.gitignore b/.gitignore index 0f7ad5be..1c73b74f 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 73f3fc5c..a07525bb 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 b32eece8..3cef0811 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 d4034084..405d7de0 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 c3ae5a30..69f361a2 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 f7611688..9eaa4eff 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 a7f8fddc..130cb17d 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 60a9d920..664da162 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 bc2ba329..ddd6ff51 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 91ab215e..22500c7a 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 8d07b19d..2997c9da 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 f860e5fb..c5bf9f71 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 94565355..f7c2e7d4 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 84d781b5..f9d16556 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 91bbc491..a8ff840c 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 9cae2915..13767998 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 00000000..f1e70c94 --- /dev/null +++ b/cuda_bindings/docs/source/release/11.8.5-notes.md @@ -0,0 +1,31 @@ +# CUDA Python 11.8.4 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 df1bf1f9..9f2ae258 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 aec56999..94310bb5 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 d6bd6675..39e37b9a 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 41704a56..3a89af85 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 016ee0de..15bcdb97 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 6daedb20..191ecc64 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 701f0320..b0e527a8 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 2531e89b..466e2eec 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 bf196213..36004712 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 00000000..06fe110b --- /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 ca1f8264..5c2f7651 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, From f35b3bd631975cb843134d46cb70722e58311b56 Mon Sep 17 00:00:00 2001 From: Vladislav Zhurba Date: Tue, 5 Nov 2024 22:50:34 -0800 Subject: [PATCH 2/2] Fix 11.8.5 title patch number --- cuda_bindings/docs/source/release/11.8.5-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda_bindings/docs/source/release/11.8.5-notes.md b/cuda_bindings/docs/source/release/11.8.5-notes.md index f1e70c94..44616459 100644 --- a/cuda_bindings/docs/source/release/11.8.5-notes.md +++ b/cuda_bindings/docs/source/release/11.8.5-notes.md @@ -1,4 +1,4 @@ -# CUDA Python 11.8.4 Release notes +# CUDA Python 11.8.5 Release notes Released on November 5, 2024