about summary refs log tree commit diff
path: root/pkgs/top-level/release-cuda.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/release-cuda.nix')
-rw-r--r--pkgs/top-level/release-cuda.nix191
1 files changed, 147 insertions, 44 deletions
diff --git a/pkgs/top-level/release-cuda.nix b/pkgs/top-level/release-cuda.nix
index f9577b9b72c71..d5614c55b98de 100644
--- a/pkgs/top-level/release-cuda.nix
+++ b/pkgs/top-level/release-cuda.nix
@@ -1,60 +1,163 @@
 /*
     Test CUDA packages.
 
-    This release file will not be tested on hydra.nixos.org
-    because it requires unfree software.
+    This release file is currently not tested on hydra.nixos.org
+    because it requires unfree software, but it is tested by
+    https://hydra.nix-community.org/jobset/nixpkgs/cuda-nixos-unstable.
 
-    Test for example like this:
+    Cf. https://github.com/nix-community/infra/pull/1335
 
-        $ hydra-eval-jobs pkgs/top-level/release-cuda.nix --option restrict-eval false -I foo=. --arg nixpkgs '{ outPath = ./.; revCount = 0; shortRev = "aabbcc"; }'
+    Test for example like this:
 
+        $ hydra-eval-jobs pkgs/top-level/release-cuda.nix -I .
 */
 
-{ # The platforms for which we build Nixpkgs.
+let
+  ensureList = x: if builtins.isList x then x else [ x ];
+  allowUnfreePredicate =
+    p:
+    builtins.all (
+      license:
+      license.free
+      || builtins.elem license.shortName [
+        "CUDA EULA"
+        "cuDNN EULA"
+        "cuTENSOR EULA"
+        "NVidia OptiX EULA"
+      ]
+    ) (ensureList p.meta.license);
+in
+
+{
+  # The platforms for which we build Nixpkgs.
   supportedSystems ? [
     "x86_64-linux"
-  ]
-, # Attributes passed to nixpkgs.
-  nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; }
+    "aarch64-linux"
+  ],
+  variant ? "cuda",
+  # Attributes passed to nixpkgs.
+  nixpkgsArgs ? {
+    config = {
+      inherit allowUnfreePredicate;
+      "${variant}Support" = true;
+      inHydra = true;
+    };
+  },
 }:
 
+assert builtins.elem variant [
+  "cuda"
+  "rocm"
+  null
+];
+
 let
-  release-lib = import ./release-lib.nix {
-    inherit supportedSystems nixpkgsArgs;
-  };
-
-  inherit (release-lib) linux mapTestOn packagePlatforms pkgs;
-
-  inherit (release-lib.lib) genAttrs;
-
-  # Package sets to evaluate
-  packageSets = [
-    "cudaPackages_10_0"
-    "cudaPackages_10_1"
-    "cudaPackages_10_2"
-    "cudaPackages_10"
-    "cudaPackages_11_0"
-    "cudaPackages_11_1"
-    "cudaPackages_11_2"
-    "cudaPackages_11_3"
-    "cudaPackages_11_4"
-    "cudaPackages_11_5"
-    "cudaPackages_11_6"
-    "cudaPackages_11"
-    "cudaPackages"
-  ];
+  release-lib = import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
 
+  inherit (release-lib) lib;
+  inherit (release-lib)
+    linux
+    mapTestOn
+    packagePlatforms
+    pkgs
+    ;
+
+  # Package sets to evaluate whole
+  packageSets = builtins.filter (lib.strings.hasPrefix "cudaPackages") (builtins.attrNames pkgs);
   evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
 
-  jobs = (mapTestOn ({
-    # Packages to evaluate
-    python3.pkgs.caffeWithCuda = linux;
-    python3.pkgs.jaxlibWithCuda = linux;
-    python3.pkgs.libgpuarray = linux;
-    python3.pkgs.tensorflowWithCuda = linux;
-    python3.pkgs.pyrealsense2WithCuda = linux;
-    python3.pkgs.torchWithCuda = linux;
-    python3.pkgs.jaxlib = linux;
-  }) // (genAttrs packageSets evalPackageSet));
-
-in jobs
+  jobs =
+    mapTestOn {
+      blas = linux;
+      blender = linux;
+      faiss = linux;
+      lapack = linux;
+      magma = linux;
+      mpich = linux;
+      openmpi = linux;
+      ucx = linux;
+
+      opencv = linux;
+      cctag = linux; # Failed in https://github.com/NixOS/nixpkgs/pull/233581
+
+      cholmod-extra = linux;
+      colmap = linux;
+      ctranslate2 = linux;
+      deepin.image-editor = linux;
+      ffmpeg-full = linux;
+      gimp = linux;
+      gpu-screen-recorder = linux;
+      gst_all_1.gst-plugins-bad = linux;
+      lightgbm = linux;
+      llama-cpp = linux;
+      meshlab = linux;
+      monado = linux; # Failed in https://github.com/NixOS/nixpkgs/pull/233581
+      noisetorch = linux;
+      obs-studio-plugins.obs-backgroundremoval = linux;
+      ollama = linux;
+      onnxruntime = linux;
+      openmvg = linux;
+      openmvs = linux;
+      opentrack = linux;
+      openvino = linux;
+      pixinsight = linux; # Failed in https://github.com/NixOS/nixpkgs/pull/233581
+      qgis = linux;
+      rtabmap = linux;
+      saga = linux;
+      suitesparse = linux;
+      truecrack-cuda = linux;
+      tts = linux;
+      ueberzugpp = linux; # Failed in https://github.com/NixOS/nixpkgs/pull/233581
+      wyoming-faster-whisper = linux;
+      xgboost = linux;
+
+      python3Packages = {
+        boxx = linux;
+        bpycv = linux;
+        caffe = linux;
+        catboost = linux;
+        chainer = linux;
+        cupy = linux;
+        faiss = linux;
+        faster-whisper = linux;
+        flax = linux;
+        gpt-2-simple = linux;
+        grad-cam = linux;
+        jaxlib = linux;
+        jax = linux;
+        Keras = linux;
+        kornia = linux;
+        libgpuarray = linux;
+        mmcv = linux;
+        mxnet = linux;
+        numpy = linux; # Only affected by MKL?
+        onnx = linux;
+        triton = linux;
+        openai-whisper = linux;
+        opencv4 = linux;
+        opensfm = linux;
+        pycuda = linux;
+        pymc = linux;
+        pyrealsense2WithCuda = linux;
+        pytorch-lightning = linux;
+        pytorch = linux;
+        scikitimage = linux;
+        scikit-learn = linux; # Only affected by MKL?
+        scipy = linux; # Only affected by MKL?
+        spacy-transformers = linux;
+        tensorflow = linux;
+        tensorflow-probability = linux;
+        tesserocr = linux;
+        Theano = linux;
+        tiny-cuda-nn = linux;
+        torchaudio = linux;
+        torch = linux;
+        torchvision = linux;
+        transformers = linux;
+        ttstokenizer = linux;
+        vidstab = linux;
+      };
+    }
+    // (lib.genAttrs packageSets evalPackageSet);
+in
+jobs