Skip to content

Add numba-cuda-mlir docs, cuda-core dependency, and toolkit extras#2101

Merged
rwgk merged 7 commits into
NVIDIA:mainfrom
leofang:meta-deps
May 25, 2026
Merged

Add numba-cuda-mlir docs, cuda-core dependency, and toolkit extras#2101
rwgk merged 7 commits into
NVIDIA:mainfrom
leofang:meta-deps

Conversation

@leofang
Copy link
Copy Markdown
Member

@leofang leofang commented May 18, 2026

Summary

  • Mention numba-cuda-mlir in the CUDA Python README and metapackage docs.
  • Add cuda-core~=1.0.0 as a required dependency of the cuda-python metapackage.
  • Add CUDA Toolkit metapackage dependencies to cuda-bindings[all] and cuda-core's cu12 / cu13 extras for improved dependency resolution.
  • Keep cuDLA available through cuda-bindings[all] on Linux aarch64 via a guarded nvidia-cudla==13.* dependency.
  • Update installation docs to include nvFatBin and cuDLA in the optional dependency list.

Notes

  • cuda-cccl is intentionally left out of the cuda-python metapackage for now because it does not yet have Python 3.14 free-threaded builds. It can be added in a follow-up once that support is available.

… cuda-toolkit extras

- Mention numba-cuda-mlir in README.md and DESCRIPTION.rst above the
  existing numba.cuda entry
- Add cuda-core~=1.0.0 and cuda-cccl~=1.0.0 as required dependencies
  of the cuda-python metapackage (closes NVIDIA#148, closes NVIDIA#691)
- Add bare cuda-toolkit==13.* to cuda-bindings[all] and remove cudla
  from the component-specific extras (closes NVIDIA#903)
- Add cuda-toolkit==12.*/13.* to cuda-core's cu12/cu13 extras
@copy-pr-bot
Copy link
Copy Markdown
Contributor

copy-pr-bot Bot commented May 18, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module labels May 18, 2026
[project.optional-dependencies]
all = [
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin,cudla]==13.*",
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin]==13.*",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed this change sneaked in from PR #2034. This is a bit problematic because cuDLA is not a universally available component in the CTK, and the majority of users cannot use it but they'd see this at install time:

WARNING: cuda-toolkit 13.1.2.0 does not provide the extra 'cudla'

We should just document that DLA users need to install cuDLA if they haven't already (which I suspect is not the case, because there should be a system CTK already installed on embedded devices).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approved this knowingly, after discovering that the meta package has the filters we need.

I missed that warning message though. If we want to get rid of it, we have do add the conditions similar to what we're doing under cuda_pathfinder/pyproject.toml:

    "nvidia-cudla; platform_system == 'Linux' and platform_machine == 'aarch64'",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would still fire on aarch64 server machines where I don't think we have a way to differentiate Jetson / Tegra with current pip capabilities today

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My 2c: I think we should include cuDLA in all still as it would only error at runtime if someone tried to use a cuDLA binding from a non Tegra system. The cuDLA binary is tiny (< 1MB), so binary size impact isn't a big concern.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kkraus14 My concerns:

  1. the warning (see above)
  2. would cuda-toolkit==13.0 still work for constraining the installed packages? cuDLA wheel was not shipped until 13.2

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we guard it based on @rwgk's comment in using platform_system and platform_machine does it still warn?

I assume if we added it to all and someone did pip install cuda-bindings[all] cuda-toolkit==13.0 that it would error because there isn't a cuda-toolkit[cudla] package for 13.0?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done: commit f4c6932

@leofang leofang added documentation Improvements or additions to documentation P0 High priority - Must do! packaging Anything related to wheels or Conda packages labels May 18, 2026
@leofang leofang added this to the cuda.bindings 13.3.0 & 12.9.7 milestone May 18, 2026
@leofang leofang self-assigned this May 19, 2026
Comment thread cuda_python/setup.py Outdated
@leofang leofang requested review from aterrel, danielfrg and kkraus14 May 19, 2026 21:57
@leofang leofang marked this pull request as ready for review May 22, 2026 05:07
@leofang
Copy link
Copy Markdown
Member Author

leofang commented May 22, 2026

/ok to test 0587448

@leofang leofang enabled auto-merge (squash) May 22, 2026 18:41
@github-actions

This comment has been minimized.

Comment thread cuda_python/setup.py Outdated
install_requires=[
f"cuda-bindings{matcher}{version}",
"cuda-core~=1.0.0",
"cuda-cccl~=1.0.0",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Life has been not very kind to us. Because cuda-cccl does not yet have a 3.14t build, and because there is no environment marker that would allow us to append a condition here (PEP 780 is still in draft status and the DPO discussion is brutal), all Python 3.14t pipelines failed. We have no other way but drop cuda-cccl here:

Suggested change
"cuda-cccl~=1.0.0",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add cuda-cccl in a follow up because of this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done: commit f4c6932

@shwina for visibility

Comment thread cuda_bindings/docs/source/install.rst Outdated
* Python 3.10 - 3.14
* Driver: Linux (580.65.06 or later) Windows (580.88 or later)
* Optionally, NVRTC, nvJitLink, NVVM, and cuFile from CUDA Toolkit 13.x
* Optionally, NVRTC, nvJitLink, nvFatBin, NVVM, and cuFile from CUDA Toolkit 13.x
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we include cuDLA here now as well?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done: commit f4c6932

@nikshayshrivastava for visibility


* ``nvidia-cuda-nvrtc`` (NVRTC runtime compilation library)
* ``nvidia-nvjitlink`` (nvJitLink library)
* ``nvidia-nvfatbin`` (nvFatBin library)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 cuDLA here?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done: commit f4c6932

@nikshayshrivastava for visibility

[project.optional-dependencies]
all = [
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin,cudla]==13.*",
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin]==13.*",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My 2c: I think we should include cuDLA in all still as it would only error at runtime if someone tried to use a cuDLA binding from a non Tegra system. The cuDLA binary is tiny (< 1MB), so binary size impact isn't a big concern.

Comment thread cuda_python/setup.py Outdated
install_requires=[
f"cuda-bindings{matcher}{version}",
"cuda-core~=1.0.0",
"cuda-cccl~=1.0.0",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add cuda-cccl in a follow up because of this.

rwgk added 2 commits May 25, 2026 11:11
Drop cuda-cccl from the metapackage until free-threaded Python wheels are available, and keep cuDLA in cuda-bindings[all] via a guarded direct dependency.
@rwgk rwgk marked this pull request as draft May 25, 2026 18:42
auto-merge was automatically disabled May 25, 2026 18:42

Pull request was converted to draft

Keep cuda-bindings[all] consistent with the CUDA 13 toolkit dependencies when installing cuDLA on Linux aarch64.
@rwgk rwgk changed the title Add numba-cuda-mlir docs, cuda-core/cuda-cccl deps, cuda-toolkit extras Add numba-cuda-mlir docs, cuda-core dependency, and toolkit extras May 25, 2026
Copy link
Copy Markdown
Contributor

@rwgk rwgk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

I looked through manually, and I used GPT-5.5 for a full agent review.

@rwgk rwgk marked this pull request as ready for review May 25, 2026 19:02
@rwgk
Copy link
Copy Markdown
Contributor

rwgk commented May 25, 2026

/ok to test 6b8d099

@rwgk rwgk merged commit 6959cb9 into NVIDIA:main May 25, 2026
100 checks passed
@github-actions
Copy link
Copy Markdown

Doc Preview CI
Preview removed because the pull request was closed or merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module documentation Improvements or additions to documentation P0 High priority - Must do! packaging Anything related to wheels or Conda packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants