about summary refs log tree commit diff
path: root/nixpkgs/pkgs/test/cuda
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-01-20 12:31:50 +0100
committerAlyssa Ross <hi@alyssa.is>2024-01-20 12:32:25 +0100
commitb7baf40e099b4215181fe7b0c63083b12ef2c7fb (patch)
treea6efabd31d05b6d0a36624729e80377bbbfb0149 /nixpkgs/pkgs/test/cuda
parent710028664e26e85cb831a869b3da9f6993902255 (diff)
parent0799f514b1cd74878174939df79ac60ca5036673 (diff)
downloadnixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.gz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.bz2
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.lz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.xz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.zst
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.zip
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
Diffstat (limited to 'nixpkgs/pkgs/test/cuda')
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-library-samples/extension.nix14
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix85
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-samples/extension.nix42
-rw-r--r--nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix79
-rw-r--r--nixpkgs/pkgs/test/cuda/default.nix77
5 files changed, 48 insertions, 249 deletions
diff --git a/nixpkgs/pkgs/test/cuda/cuda-library-samples/extension.nix b/nixpkgs/pkgs/test/cuda/cuda-library-samples/extension.nix
deleted file mode 100644
index 62de715fd0b4..000000000000
--- a/nixpkgs/pkgs/test/cuda/cuda-library-samples/extension.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{hostPlatform, lib}:
-let
-  # Samples are built around the CUDA Toolkit, which is not available for
-  # aarch64. Check for both CUDA version and platform.
-  platformIsSupported = hostPlatform.isx86_64;
-
-  # Build our extension
-  extension =
-    final: _:
-    lib.attrsets.optionalAttrs platformIsSupported {
-      cuda-library-samples = final.callPackage ./generic.nix {};
-    };
-in
-extension
diff --git a/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix b/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix
deleted file mode 100644
index d4182536654e..000000000000
--- a/nixpkgs/pkgs/test/cuda/cuda-library-samples/generic.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{
-  lib,
-  backendStdenv,
-  fetchFromGitHub,
-  cmake,
-  addOpenGLRunpath,
-  cudatoolkit,
-  cutensor,
-}:
-
-let
-  rev = "5aab680905d853bce0dbad4c488e4f7e9f7b2302";
-  src = fetchFromGitHub {
-    owner = "NVIDIA";
-    repo = "CUDALibrarySamples";
-    inherit rev;
-    sha256 = "0gwgbkq05ygrfgg5hk07lmap7n7ampxv0ha1axrv8qb748ph81xs";
-  };
-  commonAttrs = {
-    version = lib.strings.substring 0 7 rev + "-" + lib.versions.majorMinor cudatoolkit.version;
-    nativeBuildInputs = [
-      cmake
-      addOpenGLRunpath
-    ];
-    buildInputs = [cudatoolkit];
-    postFixup = ''
-      for exe in $out/bin/*; do
-        addOpenGLRunpath $exe
-      done
-    '';
-    meta = {
-      description = "examples of using libraries using CUDA";
-      longDescription = ''
-        CUDA Library Samples contains examples demonstrating the use of
-        features in the math and image processing libraries cuBLAS, cuTENSOR,
-        cuSPARSE, cuSOLVER, cuFFT, cuRAND, NPP and nvJPEG.
-      '';
-      license = lib.licenses.bsd3;
-      maintainers = with lib.maintainers; [obsidian-systems-maintenance] ++ lib.teams.cuda.members;
-    };
-  };
-in
-
-{
-  cublas = backendStdenv.mkDerivation (
-    commonAttrs
-    // {
-      pname = "cuda-library-samples-cublas";
-
-      src = "${src}/cuBLASLt";
-    }
-  );
-
-  cusolver = backendStdenv.mkDerivation (
-    commonAttrs
-    // {
-      pname = "cuda-library-samples-cusolver";
-
-      src = "${src}/cuSOLVER";
-
-      sourceRoot = "cuSOLVER/gesv";
-    }
-  );
-
-  cutensor = backendStdenv.mkDerivation (
-    commonAttrs
-    // {
-      pname = "cuda-library-samples-cutensor";
-
-      src = "${src}/cuTENSOR";
-
-      buildInputs = [cutensor];
-
-      cmakeFlags = ["-DCUTENSOR_EXAMPLE_BINARY_INSTALL_DIR=${builtins.placeholder "out"}/bin"];
-
-      # CUTENSOR_ROOT is double escaped
-      postPatch = ''
-        substituteInPlace CMakeLists.txt \
-          --replace "\''${CUTENSOR_ROOT}/include" "${cutensor.dev}/include"
-      '';
-
-      CUTENSOR_ROOT = cutensor;
-    }
-  );
-}
diff --git a/nixpkgs/pkgs/test/cuda/cuda-samples/extension.nix b/nixpkgs/pkgs/test/cuda/cuda-samples/extension.nix
deleted file mode 100644
index d41da90cd5d0..000000000000
--- a/nixpkgs/pkgs/test/cuda/cuda-samples/extension.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  cudaVersion,
-  hostPlatform,
-  lib,
-}:
-let
-  cudaVersionToHash = {
-    "10.0" = "sha256-XAI6iiPpDVbZtFoRaP1s6VKpu9aV3bwOqqkw33QncP8=";
-    "10.1" = "sha256-DY8E2FKCFj27jPgQEB1qE9HcLn7CfSiVGdFm+yFQE+k=";
-    "10.2" = "sha256-JDW4i7rC2MwIRvKRmUd6UyJZI9bWNHqZijrB962N4QY=";
-    "11.0" = "sha256-BRwQuUvJEVi1mTbVtGODH8Obt7rXFfq6eLH9wxCTe9g=";
-    "11.1" = "sha256-kM8gFItBaTpkoT34vercmQky9qTFtsXjXMGjCMrsUc4=";
-    "11.2" = "sha256-gX6V98dRwdAQIsvru2byDLiMswCW2lrHSBSJutyWONw=";
-    "11.3" = "sha256-34MdMFS2cufNbZVixFdSUDFfLeuKIGFwLBL9d81acU0=";
-    "11.4" = "sha256-Ewu+Qk6GtGXC37CCn1ZXHc0MQAuyXCGf3J6T4cucTSA=";
-    "11.5" = "sha256-AKRZbke0K59lakhTi8dX2cR2aBuWPZkiQxyKaZTvHrI=";
-    "11.6" = "sha256-AsLNmAplfuQbXg9zt09tXAuFJ524EtTYsQuUlV1tPkE=";
-    # The tag 11.7 of cuda-samples does not exist
-    "11.8" = "sha256-7+1P8+wqTKUGbCUBXGMDO9PkxYr2+PLDx9W2hXtXbuc=";
-    "12.0" = "sha256-Lj2kbdVFrJo5xPYPMiE4BS7Z8gpU5JLKXVJhZABUe/g=";
-    "12.1" = "sha256-xE0luOMq46zVsIEWwK4xjLs7NorcTIi9gbfZPVjIlqo=";
-    "12.2" = "sha256-pOy0qfDjA/Nr0T9PNKKefK/63gQnJV2MQsN2g3S2yng=";
-    "12.3" = "sha256-fjVp0G6uRCWxsfe+gOwWTN+esZfk0O5uxS623u0REAk=";
-  };
-
-  # Samples are built around the CUDA Toolkit, which is not available for
-  # aarch64. Check for both CUDA version and platform.
-  cudaVersionIsSupported = cudaVersionToHash ? ${cudaVersion};
-  platformIsSupported = hostPlatform.isx86_64;
-  isSupported = cudaVersionIsSupported && platformIsSupported;
-
-  # Build our extension
-  extension =
-    final: _:
-    lib.attrsets.optionalAttrs isSupported {
-      cuda-samples = final.callPackage ./generic.nix {
-        inherit cudaVersion;
-        hash = cudaVersionToHash.${cudaVersion};
-      };
-    };
-in
-extension
diff --git a/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix b/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix
deleted file mode 100644
index fb3d7cc99da9..000000000000
--- a/nixpkgs/pkgs/test/cuda/cuda-samples/generic.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{
-  autoAddOpenGLRunpathHook,
-  backendStdenv,
-  cmake,
-  cudatoolkit,
-  cudaVersion,
-  fetchFromGitHub,
-  fetchpatch,
-  freeimage,
-  glfw3,
-  hash,
-  lib,
-  pkg-config,
-}:
-let
-  inherit (lib) lists strings;
-in
-backendStdenv.mkDerivation (
-  finalAttrs: {
-    strictDeps = true;
-
-    pname = "cuda-samples";
-    version = cudaVersion;
-
-    src = fetchFromGitHub {
-      owner = "NVIDIA";
-      repo = finalAttrs.pname;
-      rev = "v${finalAttrs.version}";
-      inherit hash;
-    };
-
-    nativeBuildInputs =
-      [
-        autoAddOpenGLRunpathHook
-        pkg-config
-      ]
-      # CMake has to run as a native, build-time dependency for libNVVM samples.
-      # However, it's not the primary build tool -- that's still make.
-      # As such, we disable CMake's build system.
-      ++ lists.optionals (strings.versionAtLeast finalAttrs.version "12.2") [cmake];
-
-    dontUseCmakeConfigure = true;
-
-    buildInputs = [
-      cudatoolkit
-      freeimage
-      glfw3
-    ];
-
-    # See https://github.com/NVIDIA/cuda-samples/issues/75.
-    patches = lib.optionals (finalAttrs.version == "11.3") [
-      (fetchpatch {
-        url = "https://github.com/NVIDIA/cuda-samples/commit/5c3ec60faeb7a3c4ad9372c99114d7bb922fda8d.patch";
-        hash = "sha256-0XxdmNK9MPpHwv8+qECJTvXGlFxc+fIbta4ynYprfpU=";
-      })
-    ];
-
-    enableParallelBuilding = true;
-
-    preConfigure = ''
-      export CUDA_PATH=${cudatoolkit}
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      install -Dm755 -t $out/bin bin/${backendStdenv.hostPlatform.parsed.cpu.name}/${backendStdenv.hostPlatform.parsed.kernel.name}/release/*
-
-      runHook postInstall
-    '';
-
-    meta = {
-      description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit";
-      # CUDA itself is proprietary, but these sample apps are not.
-      license = lib.licenses.bsd3;
-      maintainers = with lib.maintainers; [obsidian-systems-maintenance] ++ lib.teams.cuda.members;
-    };
-  }
-)
diff --git a/nixpkgs/pkgs/test/cuda/default.nix b/nixpkgs/pkgs/test/cuda/default.nix
index 8431e4b9207d..dd9ad8b814dc 100644
--- a/nixpkgs/pkgs/test/cuda/default.nix
+++ b/nixpkgs/pkgs/test/cuda/default.nix
@@ -1,32 +1,51 @@
-{callPackage}:
+{
+  lib,
+  recurseIntoAttrs,
 
-rec {
-  cuda-samplesPackages = callPackage ./cuda-samples/generic.nix {};
-  inherit (cuda-samplesPackages)
-    cuda-samples_cudatoolkit_10
-    cuda-samples_cudatoolkit_10_0
-    cuda-samples_cudatoolkit_10_1
-    cuda-samples_cudatoolkit_10_2
-    cuda-samples_cudatoolkit_11
-    cuda-samples_cudatoolkit_11_0
-    cuda-samples_cudatoolkit_11_1
-    cuda-samples_cudatoolkit_11_2
-    cuda-samples_cudatoolkit_11_3
-    cuda-samples_cudatoolkit_11_4
-    ;
+  cudaPackages,
+  cudaPackagesGoogle,
 
-  cuda-library-samplesPackages = callPackage ./cuda-library-samples/generic.nix {};
-  inherit (cuda-library-samplesPackages)
-    cuda-library-samples_cudatoolkit_10
-    cuda-library-samples_cudatoolkit_10_1
-    cuda-library-samples_cudatoolkit_10_2
-    cuda-library-samples_cudatoolkit_11
-    cuda-library-samples_cudatoolkit_11_0
-    cuda-library-samples_cudatoolkit_11_1
-    cuda-library-samples_cudatoolkit_11_2
-    cuda-library-samples_cudatoolkit_11_3
-    cuda-library-samples_cudatoolkit_11_4
-    ;
+  cudaPackages_10_0,
+  cudaPackages_10_1,
+  cudaPackages_10_2,
+  cudaPackages_10,
 
-  __attrsFailEvaluation = true;
-}
+  cudaPackages_11_0,
+  cudaPackages_11_1,
+  cudaPackages_11_2,
+  cudaPackages_11_3,
+  cudaPackages_11_4,
+  cudaPackages_11_5,
+  cudaPackages_11_6,
+  cudaPackages_11_7,
+  cudaPackages_11_8,
+  cudaPackages_11,
+
+  cudaPackages_12_0,
+  cudaPackages_12_1,
+  cudaPackages_12_2,
+  cudaPackages_12_3,
+  cudaPackages_12,
+}@args:
+
+let
+  isTest =
+    name: package:
+    builtins.elem (package.pname or null) [
+      "cuda-samples"
+      "cuda-library-samples"
+      "saxpy"
+    ];
+in
+(lib.trivial.pipe args [
+  (lib.filterAttrs (name: _: lib.hasPrefix "cudaPackages" name))
+  (lib.mapAttrs (
+    _: ps:
+    lib.pipe ps [
+      (lib.filterAttrs isTest)
+      (as: as // { __attrsFailEvaluation = true; })
+      recurseIntoAttrs
+    ]
+  ))
+  recurseIntoAttrs
+])