From 1d63f89caaf140ac33f1796dc0aaeb20f4ac4e55 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 3 Apr 2022 11:19:04 +0200 Subject: cudaPackages: overhaul of how we package cuda packages There are many different versions of the `cudatoolkit` and related cuda packages, and it can be tricky to ensure they remain compatible. - `cudaPackages` is now a package set with `cudatoolkit`, `cudnn`, `cutensor`, `nccl`, as well as `cudatoolkit` split into smaller packages ("redist"); - expressions should now use `cudaPackages` as parameter instead of the individual cuda packages; - `makeScope` is now used, so it is possible to use `.overrideScope'` to set e.g. a different `cudnn` version; - `release-cuda.nix` is introduced to easily evaluate cuda packages using hydra. --- pkgs/test/cuda/cuda-library-samples/default.nix | 52 ---------------------- pkgs/test/cuda/cuda-library-samples/extension.nix | 3 ++ pkgs/test/cuda/cuda-library-samples/generic.nix | 6 +-- pkgs/test/cuda/cuda-samples/default.nix | 54 ----------------------- pkgs/test/cuda/cuda-samples/extension.nix | 20 +++++++++ 5 files changed, 26 insertions(+), 109 deletions(-) delete mode 100644 pkgs/test/cuda/cuda-library-samples/default.nix create mode 100644 pkgs/test/cuda/cuda-library-samples/extension.nix delete mode 100644 pkgs/test/cuda/cuda-samples/default.nix create mode 100644 pkgs/test/cuda/cuda-samples/extension.nix (limited to 'pkgs/test') diff --git a/pkgs/test/cuda/cuda-library-samples/default.nix b/pkgs/test/cuda/cuda-library-samples/default.nix deleted file mode 100644 index ff256028cdf0..000000000000 --- a/pkgs/test/cuda/cuda-library-samples/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ callPackage -, cudatoolkit_10_1, cudatoolkit_10_2 -, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2, cudatoolkit_11_3, cudatoolkit_11_4 -, cutensor_cudatoolkit_10_1, cutensor_cudatoolkit_10_2 -, cutensor_cudatoolkit_11_0, cutensor_cudatoolkit_11_1, cutensor_cudatoolkit_11_2, cutensor_cudatoolkit_11_3, cutensor_cudatoolkit_11_4 -}: - -rec { - - cuda-library-samples_cudatoolkit_10_1 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_10_1; - cutensor_cudatoolkit = cutensor_cudatoolkit_10_1; - }; - - cuda-library-samples_cudatoolkit_10_2 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_10_2; - cutensor_cudatoolkit = cutensor_cudatoolkit_10_2; - }; - - cuda-library-samples_cudatoolkit_10 = - cuda-library-samples_cudatoolkit_10_2; - - ## - - cuda-library-samples_cudatoolkit_11_0 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_0; - cutensor_cudatoolkit = cutensor_cudatoolkit_11_0; - }; - - cuda-library-samples_cudatoolkit_11_1 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_1; - cutensor_cudatoolkit = cutensor_cudatoolkit_11_1; - }; - - cuda-library-samples_cudatoolkit_11_2 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_2; - cutensor_cudatoolkit = cutensor_cudatoolkit_11_2; - }; - - cuda-library-samples_cudatoolkit_11_3 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_3; - cutensor_cudatoolkit = cutensor_cudatoolkit_11_3; - }; - - cuda-library-samples_cudatoolkit_11_4 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_4; - cutensor_cudatoolkit = cutensor_cudatoolkit_11_4; - }; - - cuda-library-samples_cudatoolkit_11 = - cuda-library-samples_cudatoolkit_11_4; -} diff --git a/pkgs/test/cuda/cuda-library-samples/extension.nix b/pkgs/test/cuda/cuda-library-samples/extension.nix new file mode 100644 index 000000000000..4c721a9e9e1b --- /dev/null +++ b/pkgs/test/cuda/cuda-library-samples/extension.nix @@ -0,0 +1,3 @@ +final: prev: { + cuda-library-samples = final.callPackage ./generic.nix { }; +} diff --git a/pkgs/test/cuda/cuda-library-samples/generic.nix b/pkgs/test/cuda/cuda-library-samples/generic.nix index 350decef22dc..f0c30d801a1c 100644 --- a/pkgs/test/cuda/cuda-library-samples/generic.nix +++ b/pkgs/test/cuda/cuda-library-samples/generic.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub , cmake, addOpenGLRunpath , cudatoolkit -, cutensor_cudatoolkit +, cutensor }: let @@ -61,9 +61,9 @@ in # CUTENSOR_ROOT is double escaped postPatch = '' substituteInPlace CMakeLists.txt \ - --replace "\''${CUTENSOR_ROOT}/include" "${cutensor_cudatoolkit.dev}/include" + --replace "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include" ''; - CUTENSOR_ROOT = cutensor_cudatoolkit; + CUTENSOR_ROOT = cutensor; }); } diff --git a/pkgs/test/cuda/cuda-samples/default.nix b/pkgs/test/cuda/cuda-samples/default.nix deleted file mode 100644 index 5b46a0651eba..000000000000 --- a/pkgs/test/cuda/cuda-samples/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ callPackage -, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2 -, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2, cudatoolkit_11_3, cudatoolkit_11_4 -}: - -rec { - ## - - cuda-samples_cudatoolkit_10_0 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_10_0; - sha256 = "1zvh4xsdyc59m87brpcmssxsjlp9dkynh4asnkcmc3g94f53l0jw"; - }; - - cuda-samples_cudatoolkit_10_1 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_10_1; - sha256 = "1s8ka0hznrni36ajhzf2gqpdrl8kd8fi047qijxks5l2abc093qd"; - }; - - cuda-samples_cudatoolkit_10_2 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_10_2; - sha256 = "01p1innzgh9siacpld6nsqimj8jkg93rk4gj8q4crn62pa5vhd94"; - }; - - cuda-samples_cudatoolkit_10 = cuda-samples_cudatoolkit_10_2; - - ## - - cuda-samples_cudatoolkit_11_0 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_0; - sha256 = "1n3vjc8c7zdig2xgl5fppavrphqzhdiv9m9nk6smh4f99fwi0705"; - }; - - cuda-samples_cudatoolkit_11_1 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_1; - sha256 = "1kjixk50i8y1bkiwbdn5lkv342crvkmbvy1xl5j3lsa1ica21kwh"; - }; - - cuda-samples_cudatoolkit_11_2 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_2; - sha256 = "1p1qjvfbm28l933mmnln02rqrf0cy9kbpsyb488d1haiqzvrazl1"; - }; - - cuda-samples_cudatoolkit_11_3 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_3; - sha256 = "0kbibb6pgz8j5iq6284axcnmycaha9bw8qlmdp6yfwmnahq1v0yz"; - }; - - cuda-samples_cudatoolkit_11_4 = callPackage ./generic.nix { - cudatoolkit = cudatoolkit_11_4; - sha256 = "082dkk5y34wyvjgj2p5j1d00rk8xaxb9z0mhvz16bd469r1bw2qk"; - }; - - cuda-samples_cudatoolkit_11 = cuda-samples_cudatoolkit_11_4; -} diff --git a/pkgs/test/cuda/cuda-samples/extension.nix b/pkgs/test/cuda/cuda-samples/extension.nix new file mode 100644 index 000000000000..4c93845d1db6 --- /dev/null +++ b/pkgs/test/cuda/cuda-samples/extension.nix @@ -0,0 +1,20 @@ +final: prev: let + + sha256 = { + "10.0" = "1zvh4xsdyc59m87brpcmssxsjlp9dkynh4asnkcmc3g94f53l0jw"; + "10.1" = "1s8ka0hznrni36ajhzf2gqpdrl8kd8fi047qijxks5l2abc093qd"; + "10.2" = "01p1innzgh9siacpld6nsqimj8jkg93rk4gj8q4crn62pa5vhd94"; + "11.0" = "1n3vjc8c7zdig2xgl5fppavrphqzhdiv9m9nk6smh4f99fwi0705"; + "11.1" = "1kjixk50i8y1bkiwbdn5lkv342crvkmbvy1xl5j3lsa1ica21kwh"; + "11.2" = "1p1qjvfbm28l933mmnln02rqrf0cy9kbpsyb488d1haiqzvrazl1"; + "11.3" = "0kbibb6pgz8j5iq6284axcnmycaha9bw8qlmdp6yfwmnahq1v0yz"; + "11.4" = "082dkk5y34wyvjgj2p5j1d00rk8xaxb9z0mhvz16bd469r1bw2qk"; + "11.5" = "sha256-AKRZbke0K59lakhTi8dX2cR2aBuWPZkiQxyKaZTvHrI="; + "11.6" = "sha256-AsLNmAplfuQbXg9zt09tXAuFJ524EtTYsQuUlV1tPkE="; + }.${prev.cudaVersion}; + +in { + cuda-samples = final.callPackage ./generic.nix { + inherit sha256; + }; +} -- cgit v1.2.3