summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSomeone Serge <sergei.kozlukov@aalto.fi>2024-09-06 03:08:25 +0000
committerSomeone Serge <sergei.kozlukov@aalto.fi>2024-09-06 03:08:25 +0000
commit0ef8e1b0525e62008cc7b03342cd5640dd4edd8c (patch)
tree6c0a1a00e27b645c62190ce7b5a78b3883a41356
parentMerge pull request #337070 from squalus/librewolf-2405 (diff)
downloadnixpkgs-0ef8e1b0525e62008cc7b03342cd5640dd4edd8c.tar.gz
[Backport release-24.05] release-cuda: build with config.cudaSupport
-rw-r--r--pkgs/top-level/release-cuda.nix190
1 files changed, 148 insertions, 42 deletions
diff --git a/pkgs/top-level/release-cuda.nix b/pkgs/top-level/release-cuda.nix
index f9577b9b72c7..f655114737e9 100644
--- a/pkgs/top-level/release-cuda.nix
+++ b/pkgs/top-level/release-cuda.nix
@@ -1,60 +1,166 @@
/*
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
+ lib = import ../../lib;
+ 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;
+ };
+ },
+ ...
+}@args:
+
+assert builtins.elem variant [
+ "cuda"
+ "rocm"
+ null
+];
let
- release-lib = import ./release-lib.nix {
- inherit supportedSystems nixpkgsArgs;
- };
+ mkReleaseLib = import ./release-lib.nix;
+ release-lib = mkReleaseLib (
+ { inherit supportedSystems nixpkgsArgs; } // lib.intersectAttrs (lib.functionArgs mkReleaseLib) args
+ );
- inherit (release-lib) linux mapTestOn packagePlatforms pkgs;
+ inherit (release-lib)
+ linux
+ mapTestOn
+ packagePlatforms
+ pkgs
+ ;
- inherit (release-lib.lib) genAttrs;
+ # Package sets to evaluate whole
+ packageSets = builtins.filter (lib.strings.hasPrefix "cudaPackages") (builtins.attrNames pkgs);
+ evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
- # 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"
- ];
+ jobs =
+ mapTestOn {
+ blas = linux;
+ blender = linux;
+ faiss = linux;
+ lapack = linux;
+ magma = linux;
+ mpich = linux;
+ openmpi = linux;
+ ucx = linux;
- evalPackageSet = pset: mapTestOn { ${pset} = packagePlatforms pkgs.${pset}; };
+ opencv = linux;
+ cctag = linux; # Failed in https://github.com/NixOS/nixpkgs/pull/233581
- 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));
+ 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;
-in jobs
+ 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;
+ 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