-
Notifications
You must be signed in to change notification settings - Fork 297
[doc-only] cuda.{core,bindings,pathfinder}: nightly install docs and unify "Development environment" structure #2187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -80,11 +80,43 @@ For example: | |
|
|
||
| Tegra users can install the cuDLA conda package from conda-forge through ``conda install -c conda-forge libcudla cuda-version=13``, if it does not already exist on the system. | ||
|
|
||
| Development environment | ||
| ----------------------- | ||
|
|
||
| The sections above cover end-user installation. The section below focuses on | ||
| a repeatable *development* workflow (editable installs and running tests). | ||
|
|
||
| Installing the latest nightly (top-of-tree builds) | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| These are useful for users looking to test new features or bug fixes prior to | ||
| their inclusion in a release. | ||
|
|
||
| CI publishes wheels as GitHub Actions artifacts on every push to ``main``. To | ||
| obtain the most recent build, use the following commands: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ # Find the latest successful CI run on main: | ||
| $ RUN_ID=$(gh run list -R NVIDIA/cuda-python -w ci.yml -b main -s success -L1 --json databaseId -q '.[0].databaseId') | ||
|
|
||
| $ # Download the wheel (pick your Python version and platform): | ||
| $ gh run download "$RUN_ID" -R NVIDIA/cuda-python -p "cuda-bindings-python312-cuda13*-linux-64-*" | ||
|
|
||
| $ # Install the downloaded wheel: | ||
| $ pip install cuda-bindings-python312-cuda13*-linux-64-*/cuda_bindings*.whl[all] | ||
|
Comment on lines
+100
to
+107
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It would be great to put these three lines in a script in
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought we do not want to document anything from |
||
|
|
||
| Replace ``python312`` with your Python version (e.g. ``python310``, ``python311``, | ||
| ``python313``, ``python314``, ``python314t``). For aarch64, replace ``linux-64`` | ||
| with ``linux-aarch64``; for Windows, use ``win-64``. Only the current CUDA | ||
| major version is built on ``main``; wheels for the prior CUDA major are | ||
| published from the corresponding backport branch. | ||
|
|
||
| Installing from Source | ||
| ---------------------- | ||
| ~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| Requirements | ||
| ~~~~~~~~~~~~ | ||
| ^^^^^^^^^^^^ | ||
|
|
||
| * CUDA Toolkit headers[^1] | ||
| * CUDA Runtime static library[^2] | ||
|
|
@@ -106,7 +138,7 @@ See :doc:`Environment Variables <environment_variables>` for a description of ot | |
| Only ``cydriver``, ``cyruntime`` and ``cynvrtc`` are impacted by the header requirement. | ||
|
|
||
| Editable Install | ||
| ~~~~~~~~~~~~~~~~ | ||
| ^^^^^^^^^^^^^^^^ | ||
|
|
||
| You can use: | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,70 @@ | ||
| .. SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| .. SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| Installation | ||
| ============ | ||
|
|
||
| Runtime Requirements | ||
| -------------------- | ||
|
|
||
| ``cuda.pathfinder`` is a pure-Python package with no runtime dependencies: | ||
|
|
||
| * Linux (x86-64, arm64) and Windows (x86-64) | ||
| * Python 3.10 - 3.14 | ||
|
|
||
| Installing from PyPI | ||
| -------------------- | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ pip install -U cuda-pathfinder | ||
|
|
||
| Installing from Conda (conda-forge) | ||
| ----------------------------------- | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ conda install -c conda-forge cuda-pathfinder | ||
|
|
||
| Development environment | ||
| ----------------------- | ||
|
|
||
| The sections above cover end-user installation. The section below focuses on | ||
| a repeatable *development* workflow (editable installs and running tests). | ||
|
|
||
| Installing the latest nightly (top-of-tree builds) | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| These are useful for users looking to test new features or bug fixes prior to | ||
| their inclusion in a release. | ||
|
|
||
| CI publishes the wheel as a GitHub Actions artifact on every push to ``main``. | ||
| Because ``cuda.pathfinder`` is pure Python, a single wheel covers every | ||
| supported Python version and platform. To obtain the most recent build, use | ||
| the following commands: | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ # Find the latest successful CI run on main: | ||
| $ RUN_ID=$(gh run list -R NVIDIA/cuda-python -w ci.yml -b main -s success -L1 --json databaseId -q '.[0].databaseId') | ||
|
|
||
| $ # Download the wheel: | ||
| $ gh run download "$RUN_ID" -R NVIDIA/cuda-python -p "cuda-pathfinder-wheel" | ||
|
|
||
| $ # Install the downloaded wheel: | ||
| $ pip install cuda-pathfinder-wheel/*.whl | ||
|
|
||
| Installing from Source | ||
| ~~~~~~~~~~~~~~~~~~~~~~ | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ git clone https://github.com/NVIDIA/cuda-python | ||
| $ cd cuda-python/cuda_pathfinder | ||
| $ pip install . | ||
|
|
||
| For an editable install (e.g. when developing ``cuda.pathfinder`` itself): | ||
|
|
||
| .. code-block:: console | ||
|
|
||
| $ pip install -v -e . |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are the advantages of an editable install when it's almost 100% compiled code? Personally, I find them more confusing/trouble than a regular install, since you have to recompile for virtually every change anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For many Cython-based projects like CuPy, editable install works the same as pure Python projects, in that if a Cython module is not touched, it would not get re-compiled and local development is fast. However, my impression has been that it doesn't quite work for cuda-bindings for whatever reason. I am hoping that dropping Tempita might be the solution, but we'll see.