nixpkgs/pkgs/top-level/release-cuda.nix
2024-08-28 01:50:06 +00:00

167 lines
4.1 KiB
Nix

/*
Test CUDA packages.
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.
Cf. https://github.com/nix-community/infra/pull/1335
Test for example like this:
$ hydra-eval-jobs pkgs/top-level/release-cuda.nix -I .
*/
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"
"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
mkReleaseLib = import ./release-lib.nix;
release-lib = mkReleaseLib (
{ inherit supportedSystems nixpkgsArgs; } // lib.intersectAttrs (lib.functionArgs mkReleaseLib) args
);
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 {
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;
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