Description
Currently the Conda environment file makes a few assumptions, which have been reasonable so far
First one of note is the explicit use of cudatoolkit
The cudatoolkit
package contained a collection of CUDA Toolkit libraries that are redistributable for application. In CUDA 12, the CUDA Toolkit has been split up into smaller packages with specific usage in mind (like cuBLAS runtime libraries are in the libcublas
package). As a result there is no cudatoolkit
package in CUDA 12. Since run_exports
exist for CUDA 11 & 12
However one usage of cudatoolkit
was to ensure that users are able select CUDA Toolkit packages that match a specific CUDA Toolkit version. To address this a new package, cuda-version
has been added that works both with CUDA 11 (and earlier) as well as CUDA 12
So would recommend this change
- - cudatoolkit @CUDATOOLKIT_VERSION@
+ - cuda-version @CUDATOOLKIT_VERSION@
Similarly nvcc_linux-64
is only available for CUDA 11 (and earlier) on Linux x86_64
On CUDA 12, there is cuda-nvcc
, which will match the architecture of the system it is installed on. However there is no package to smooth over the CUDA 11 & 12 differences. Perhaps this can be accomplished by templating this package name?
Something like this may work
- - nvcc_linux-64 @NVCC_VERSION@
+ - @NVCC@ @NVCC_VERSION@
Think with these changes this will help smooth things over for CUDA 11 to 12 migration here. It also may help avoid some of the hangups seen on CI in the past ( #144 )