about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSomeone <sergei.kozlukov@aalto.fi>2024-01-17 21:13:37 +0000
committerGitHub <noreply@github.com>2024-01-17 21:13:37 +0000
commit8282fe9c6faa1599a7e509c0a38d2b45b46ff8af (patch)
tree372e31d0e864ff751b32b909671dcbad8c16899c
parent17144df1138eed490577503d8c9bd2e9419098ea (diff)
parentbed725db88c8163b9c5cd2186f34bed79e1add42 (diff)
downloadnixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar.gz
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar.bz2
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar.lz
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar.xz
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.tar.zst
nixlib-8282fe9c6faa1599a7e509c0a38d2b45b46ff8af.zip
Merge pull request #269639 from SomeoneSerge/update/cudaPackages
cudaPackages: bump the default 11 -> 12
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md4
-rw-r--r--pkgs/development/cuda-modules/cuda/overrides.nix60
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix1
-rw-r--r--pkgs/top-level/all-packages.nix6
4 files changed, 65 insertions, 6 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index c075149a0e5d..71f4a8985be4 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -97,6 +97,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
   - Please note that an upgrade from v26 (or older) to v28 directly is not possible. Please upgrade to `nextcloud27` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud27;`](options.html#opt-services.nextcloud.package).
 
+- The vendored third party libraries have been mostly removed from `cudaPackages.nsight_systems`, which we now only ship for `cudaPackages_11_8` and later due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
+
+- The `cudaPackages` package scope has been updated to `cudaPackages_12`.
+
 - `services.resolved.fallbackDns` can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
 
 - `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
diff --git a/pkgs/development/cuda-modules/cuda/overrides.nix b/pkgs/development/cuda-modules/cuda/overrides.nix
index 37dc7bf29c35..d8fab198208c 100644
--- a/pkgs/development/cuda-modules/cuda/overrides.nix
+++ b/pkgs/development/cuda-modules/cuda/overrides.nix
@@ -44,6 +44,11 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
 
   cuda_cudart = prev.cuda_cudart.overrideAttrs (
     prevAttrs: {
+      # Remove once cuda-find-redist-features has a special case for libcuda
+      outputs =
+        prevAttrs.outputs
+        ++ lists.optionals (!(builtins.elem "stubs" prevAttrs.outputs)) [ "stubs" ];
+
       allowFHSReferences = false;
 
       # The libcuda stub's pkg-config doesn't follow the general pattern:
@@ -64,6 +69,14 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
             ln -s libcuda.so lib/stubs/libcuda.so.1
           fi
         '';
+
+      postFixup =
+        prevAttrs.postFixup or ""
+        + ''
+          moveToOutput lib/stubs "$stubs"
+          ln -s "$stubs"/lib/stubs/* "$stubs"/lib/
+          ln -s "$stubs"/lib/stubs "''${!outputLib}/lib/stubs"
+        '';
     }
   );
 
@@ -200,20 +213,63 @@ attrsets.filterAttrs (attr: _: (builtins.hasAttr attr prev)) {
   );
 
   nsight_systems = prev.nsight_systems.overrideAttrs (
-    prevAttrs: {
-      nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [final.pkgs.qt5.wrapQtAppsHook];
+    prevAttrs:
+    let
+      qt = if lib.versionOlder prevAttrs.version "2022.4.2.1" then final.pkgs.qt5 else final.pkgs.qt6;
+      qtwayland =
+        if lib.versions.major qt.qtbase.version == "5" then
+          lib.getBin qt.qtwayland
+        else
+          lib.getLib qt.qtwayland;
+      qtWaylandPlugins = "${qtwayland}/${qt.qtbase.qtPluginPrefix}";
+    in
+    {
+      # An ad hoc replacement for
+      # https://github.com/ConnorBaker/cuda-redist-find-features/issues/11
+      env.rmPatterns = toString [
+        "nsight-systems/*/*/libQt*"
+        "nsight-systems/*/*/libstdc*"
+        "nsight-systems/*/*/libboost*"
+        "nsight-systems/*/*/lib{ssl,ssh,crypto}*"
+        "nsight-systems/*/*/lib{arrow,jpeg}*"
+        "nsight-systems/*/*/Mesa"
+        "nsight-systems/*/*/python/bin/python"
+        "nsight-systems/*/*/libexec"
+        "nsight-systems/*/*/Plugins"
+      ];
+      postPatch =
+        prevAttrs.postPatch or ""
+        + ''
+          for path in $rmPatterns ; do
+            rm -r "$path"
+          done
+        '';
+      nativeBuildInputs = prevAttrs.nativeBuildInputs ++ [ qt.wrapQtAppsHook ];
       buildInputs = prevAttrs.buildInputs ++ [
+        final.cuda_cudart.stubs
         final.pkgs.alsa-lib
+        final.pkgs.boost178
         final.pkgs.e2fsprogs
+        final.pkgs.gst_all_1.gst-plugins-base
+        final.pkgs.gst_all_1.gstreamer
         final.pkgs.nss
         final.pkgs.numactl
         final.pkgs.pulseaudio
+        final.pkgs.rdma-core
+        final.pkgs.ucx
         final.pkgs.wayland
         final.pkgs.xorg.libXcursor
         final.pkgs.xorg.libXdamage
         final.pkgs.xorg.libXrandr
         final.pkgs.xorg.libXtst
+        qt.qtbase
+        (qt.qtdeclarative or qt.full)
+        (qt.qtsvg or qt.full)
+        qtWaylandPlugins
       ];
+
+      # Older releases require boost 1.70 deprecated in Nixpkgs
+      meta.broken = prevAttrs.meta.broken or false || lib.versionOlder final.cudaVersion "11.8";
     }
   );
 
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index abc2ff9a3701..45ea5900e286 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals enableCuda [
     cudaPackages.cuda_cudart.dev
     cudaPackages.cuda_cudart.lib
+    cudaPackages.cuda_cccl.dev
     cudaPackages.libcublas.dev
     cudaPackages.libcublas.lib
   ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2f18b99caaed..4a86175d934a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7320,15 +7320,13 @@ with pkgs;
   cudaPackages_12_1 = callPackage ./cuda-packages.nix { cudaVersion = "12.1"; };
   cudaPackages_12_2 = callPackage ./cuda-packages.nix { cudaVersion = "12.2"; };
   cudaPackages_12_3 = callPackage ./cuda-packages.nix { cudaVersion = "12.3"; };
-  cudaPackages_12 = recurseIntoAttrs cudaPackages_12_0;
+  cudaPackages_12 = cudaPackages_12_2; # Latest supported by cudnn
 
   # Use the older cudaPackages for tensorflow and jax, as determined by cudnn
   # compatibility: https://www.tensorflow.org/install/source#gpu
   cudaPackagesGoogle = cudaPackages_11;
 
-  # TODO: try upgrading once there is a cuDNN release supporting CUDA 12. No
-  # such cuDNN release as of 2023-01-10.
-  cudaPackages = cudaPackages_11;
+  cudaPackages = recurseIntoAttrs cudaPackages_12;
 
   # TODO: move to alias
   cudatoolkit = cudaPackages.cudatoolkit;