EPIC: Path finder for CUDA components #451
Labels
cuda.bindings
Everything related to the cuda.bindings module
cuda.core
Everything related to the cuda.core module
EPIC
Soul of a release
feature
New feature or request
P1
Medium priority - Should do
Milestone
In 2025, there are many ways of installing CUDA to a Python environment. One key challenge here is that all header/library search logics implemented in the existing CUDA-enabled libraries (ex: #447) need to be modernized, taking into account that CUDA these days can be installed on a per-component basis (ex: I just want NVRTC and CCCL and nothing else). The consequence is that any prior arts that rely on checking if a certain piece exists (ex: nvcc, cuda.h, nvvm, ...) and generalizing it to assume the whole Toolkit exists based on known relative paths are no longer valid. Even Linux system package managers may not always behave as expected. (Though setting
CUDA_HOME
/CUDA_PATH
as a fallback might still be OK.)The CUDA Python team is well-positioned to take on the pain points so that all other Python libraries do not need to worry about packaging sources, layouts, and so on. It is our intention to support modern CUDA packages and deployment options in a JIT-compilation friendly way. What this means is that we should be able to return, on a per-component basis,
Something like (API design TBD)
This needs to cover
/usr/local/cuda
on Linux, as a fallbackOnce completed, this would also help us unify the treatment of loading shared libraries in
cuda.bindings
, which is currently divergent between Linux/Windows:The text was updated successfully, but these errors were encountered: