diff options
author | Someone Serge <sergei.kozlukov@aalto.fi> | 2024-04-03 09:17:17 +0000 |
---|---|---|
committer | Someone Serge <sergei.kozlukov@aalto.fi> | 2024-04-13 10:28:07 +0000 |
commit | 8262bdf73850f5ca7f2045a6d82568bb342603a4 (patch) | |
tree | d213fb0d6e958f7654931545cd1ee9b28cd0aeac /pkgs/development/cuda-modules/cudatoolkit | |
parent | ae42aad8932bed0f63efe7969d7944e8a2aa4a10 (diff) |
cudaPackages.cudatoolkit: replace with symlinkJoin
Diffstat (limited to 'pkgs/development/cuda-modules/cudatoolkit')
-rw-r--r-- | pkgs/development/cuda-modules/cudatoolkit/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix | 86 |
2 files changed, 87 insertions, 1 deletions
diff --git a/pkgs/development/cuda-modules/cudatoolkit/default.nix b/pkgs/development/cuda-modules/cudatoolkit/default.nix index 5a983aaf5c705..e5606f9395129 100644 --- a/pkgs/development/cuda-modules/cudatoolkit/default.nix +++ b/pkgs/development/cuda-modules/cudatoolkit/default.nix @@ -411,7 +411,7 @@ backendStdenv.mkDerivation rec { }; meta = with lib; { - description = "A compiler for NVIDIA GPUs, math libraries, and tools"; + description = "The deprecated runfile-based CUDAToolkit installation (a compiler for NVIDIA GPUs, math libraries, and tools)"; homepage = "https://developer.nvidia.com/cuda-toolkit"; platforms = [ "x86_64-linux" ]; license = licenses.nvidiaCuda; diff --git a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix new file mode 100644 index 0000000000000..6bdcdecbacd6f --- /dev/null +++ b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix @@ -0,0 +1,86 @@ +{ + lib, + symlinkJoin, + backendStdenv, + cudaOlder, + cudatoolkit-legacy-runfile, + cudaVersion, + cuda_cccl ? null, + cuda_cudart ? null, + cuda_cuobjdump ? null, + cuda_cupti ? null, + cuda_cuxxfilt ? null, + cuda_gdb ? null, + cuda_nvcc ? null, + cuda_nvdisasm ? null, + cuda_nvml_dev ? null, + cuda_nvprune ? null, + cuda_nvrtc ? null, + cuda_nvtx ? null, + cuda_profiler_api ? null, + cuda_sanitizer_api ? null, + libcublas ? null, + libcufft ? null, + libcurand ? null, + libcusolver ? null, + libcusparse ? null, + libnpp ? null, +}: + +let + getAllOutputs = p: [ + (lib.getBin p) + (lib.getLib p) + (lib.getDev p) + ]; + hostPackages = [ + cuda_cuobjdump + cuda_gdb + cuda_nvcc + cuda_nvdisasm + cuda_nvprune + ]; + targetPackages = [ + cuda_cccl + cuda_cudart + cuda_cupti + cuda_cuxxfilt + cuda_nvml_dev + cuda_nvrtc + cuda_nvtx + cuda_profiler_api + cuda_sanitizer_api + libcublas + libcufft + libcurand + libcusolver + libcusparse + libnpp + ]; + + # This assumes we put `cudatoolkit` in `buildInputs` instead of `nativeBuildInputs`: + allPackages = (map (p: p.__spliced.buildHost or p) hostPackages) ++ targetPackages; +in + +if cudaOlder "11.4" then + cudatoolkit-legacy-runfile +else + symlinkJoin rec { + name = "cuda-merged-${cudaVersion}"; + version = cudaVersion; + + paths = builtins.concatMap getAllOutputs allPackages; + + passthru = { + cc = lib.warn "cudaPackages.cudatoolkit is deprecated, refer to the manual and use splayed packages instead" backendStdenv.cc; + lib = symlinkJoin { + inherit name; + paths = map (p: lib.getLib p) allPackages; + }; + }; + + meta = with lib; { + description = "A wrapper substituting the deprecated runfile-based CUDA installation"; + license = licenses.nvidiaCuda; + }; + } |