Add numba-cuda-mlir docs, cuda-core/cuda-cccl deps, cuda-toolkit extras#2101
Add numba-cuda-mlir docs, cuda-core/cuda-cccl deps, cuda-toolkit extras#2101leofang wants to merge 4 commits into
Conversation
… 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
| [project.optional-dependencies] | ||
| all = [ | ||
| "cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin,cudla]==13.*", | ||
| "cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin]==13.*", |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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'",
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
@kkraus14 My concerns:
- the warning (see above)
- would
cuda-toolkit==13.0still work for constraining the installed packages? cuDLA wheel was not shipped until 13.2
There was a problem hiding this comment.
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?
|
/ok to test 0587448 |
|
| install_requires=[ | ||
| f"cuda-bindings{matcher}{version}", | ||
| "cuda-core~=1.0.0", | ||
| "cuda-cccl~=1.0.0", |
There was a problem hiding this comment.
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:
| "cuda-cccl~=1.0.0", |
There was a problem hiding this comment.
Let's add cuda-cccl in a follow up because of this.
| * 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 |
There was a problem hiding this comment.
Should we include cuDLA here now as well?
|
|
||
| * ``nvidia-cuda-nvrtc`` (NVRTC runtime compilation library) | ||
| * ``nvidia-nvjitlink`` (nvJitLink library) | ||
| * ``nvidia-nvfatbin`` (nvFatBin library) |
| [project.optional-dependencies] | ||
| all = [ | ||
| "cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin,cudla]==13.*", | ||
| "cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin]==13.*", |
There was a problem hiding this comment.
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.
| install_requires=[ | ||
| f"cuda-bindings{matcher}{version}", | ||
| "cuda-core~=1.0.0", | ||
| "cuda-cccl~=1.0.0", |
There was a problem hiding this comment.
Let's add cuda-cccl in a follow up because of this.
Summary
README.mdandDESCRIPTION.rst(above the existingnumba.cudaentry)cuda-core~=1.0.0andcuda-cccl~=1.0.0as required dependencies of thecuda-pythonmetapackage (closes Addcuda-coreas a required dependency tocuda-python#148, closes Addcuda-ccclas a required dependency tocuda-python#691)cuda-toolkit==13.*tocuda-bindings[all]and removecudlafrom the component-specific extras (closes RFC: Make ourcuda-*packages depend on the newcuda-toolkitmetapackage without version constraints? #903)cuda-toolkit==12.*/cuda-toolkit==13.*tocuda-core'scu12/cu13extras