diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index e1552ae83..6b90dbd53 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -44,6 +44,12 @@ runs: $CHOWN -R $(whoami) ${{ env.CUDA_CORE_ARTIFACTS_DIR }} ls -lahR ${{ env.CUDA_CORE_ARTIFACTS_DIR }} + - name: Check cuda.core wheel + shell: bash --noprofile --norc -xeuo pipefail {0} + run: | + pip install twine + twine check ${{ env.CUDA_CORE_ARTIFACTS_DIR }}/*.whl + - name: Upload cuda.core build artifacts uses: actions/upload-artifact@v4 with: @@ -82,6 +88,12 @@ runs: $CHOWN -R $(whoami) ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }} ls -lahR ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }} + # TODO: enable this after NVIDIA/cuda-python#297 is resolved + # - name: Check cuda.bindings wheel + # shell: bash --noprofile --norc -xeuo pipefail {0} + # run: | + # twine check ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}/*.whl + - name: Upload cuda.bindings build artifacts uses: actions/upload-artifact@v4 with: diff --git a/cuda_core/DESCRIPTION.rst b/cuda_core/DESCRIPTION.rst new file mode 100644 index 000000000..73f0b9069 --- /dev/null +++ b/cuda_core/DESCRIPTION.rst @@ -0,0 +1,27 @@ +******************************************************* +cuda-core: Pythonic access to CUDA core functionalities +******************************************************* + +`cuda.core `_ bridges Python's productivity +with CUDA's performance through intuitive and pythonic APIs. +The mission is to provide users full access to all of the core CUDA features in Python, +such as runtime control, compiler and linker. + +* `Repository `_ +* `Documentation `_ +* `Examples `_ +* `Issue tracker `_ + +`cuda.core` is currently under active development. Any feedbacks or suggestions are welcomed! + + +Installation +============ + +.. code-block:: bash + + pip install cuda-core[cu12] + +Please refer to the `installation instructions +`_ for different +ways of installing `cuda.core`, including building from source. diff --git a/cuda_core/README.md b/cuda_core/README.md index 6545eef77..f66d05e1b 100644 --- a/cuda_core/README.md +++ b/cuda_core/README.md @@ -1,6 +1,6 @@ # `cuda.core`: (experimental) pythonic CUDA module -Currently under active developmen; see [the documentation](https://nvidia.github.io/cuda-python/cuda-core/latest/) for more details. +Currently under active development; see [the documentation](https://nvidia.github.io/cuda-python/cuda-core/latest/) for more details. ## Installing diff --git a/cuda_core/docs/source/install.md b/cuda_core/docs/source/install.md index e13f37df2..42b78b73a 100644 --- a/cuda_core/docs/source/install.md +++ b/cuda_core/docs/source/install.md @@ -12,6 +12,16 @@ dependencies are as follows: [^1]: Including `cuda-python`. +## Installing from PyPI + +`cuda.core` works with `cuda.bindings` (part of `cuda-python`) 11 or 12. For example with CUDA 12: +```console +$ pip install cuda-core[cu12] +``` +and likewise use `[cu11]` for CUDA 11. + +Note that using `cuda.core` with NVRTC or nvJitLink installed from PyPI via `pip install` is currently +not supported. This will be fixed in a future release. ## Installing from Source diff --git a/cuda_core/docs/source/release/0.1.1-notes.md b/cuda_core/docs/source/release/0.1.1-notes.md index deb3fb0fa..56cdc161a 100644 --- a/cuda_core/docs/source/release/0.1.1-notes.md +++ b/cuda_core/docs/source/release/0.1.1-notes.md @@ -17,6 +17,8 @@ Released on Dec XX, 2024 - All APIs are currently *experimental* and subject to change without deprecation notice. Please kindly share your feedbacks with us so that we can make `cuda.core` better! +- Using `cuda.core` with NVRTC or nvJitLink installed from PyPI via `pip install` is currently + not supported. This will be fixed in a future release. - Some `LinkerOptions` are only available when using a modern version of CUDA. When using CUDA <12, the backend is the cuLink api which supports only a subset of the options that nvjitlink does. Further, some options aren't available on CUDA versions <12.6 diff --git a/cuda_core/pyproject.toml b/cuda_core/pyproject.toml index 6993825f3..6573d9118 100644 --- a/cuda_core/pyproject.toml +++ b/cuda_core/pyproject.toml @@ -20,7 +20,7 @@ authors = [ ] license = {text = "NVIDIA Software License"} classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: End Users/Desktop", @@ -36,6 +36,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Environment :: GPU :: NVIDIA CUDA", "Environment :: GPU :: NVIDIA CUDA :: 11", @@ -43,18 +44,25 @@ classifiers = [ ] dependencies = [ "numpy", - # TODO: change this once cuda-bindings is packaged, see NVIDIA/cuda-python#105 - "cuda-python <13", ] +[project.optional-dependencies] +# TODO: change this once cuda-bindings is packaged, see NVIDIA/cuda-python#105 +cu11 = ["cuda-python==11.8.*"] +cu12 = ["cuda-python==12.*"] + +[project.urls] +homepage = "https://nvidia.github.io/cuda-python/" +documentation = "https://nvidia.github.io/cuda-python/cuda-core/" +repository = "https://github.com/NVIDIA/cuda-python/tree/main/cuda_core" +issues = "https://github.com/NVIDIA/cuda-python/issues/" [tool.setuptools.packages.find] include = ["cuda.core*"] - [tool.setuptools.dynamic] version = { attr = "cuda.core._version.__version__" } -readme = { file = ["README.md"], content-type = "text/markdown" } +readme = { file = ["DESCRIPTION.rst"], content-type = "text/x-rst" } [tool.ruff] line-length = 120