diff --git a/pkgs/development/cuda-modules/README.md b/pkgs/development/cuda-modules/README.md
index 8d450302a45d..393b6ccfaa5e 100644
--- a/pkgs/development/cuda-modules/README.md
+++ b/pkgs/development/cuda-modules/README.md
@@ -10,39 +10,40 @@ package set by [cuda-packages.nix](../../top-level/cuda-packages.nix).
## Top-level directories
-- `cuda`: CUDA redistributables! Provides extension to `cudaPackages` scope.
-- `cudatoolkit`: monolithic CUDA Toolkit run-file installer. Provides extension
- to `cudaPackages` scope.
-- `cudnn`: NVIDIA cuDNN library.
-- `cutensor`: NVIDIA cuTENSOR library.
-- `fixups`: Each file or directory (excluding `default.nix`) should contain a
- `callPackage`-able expression to be provided to the `overrideAttrs` attribute
- of a package produced by the generic manifest builder.
- These fixups are applied by `pname`, so packages with multiple versions
- (e.g., `cudnn`, `cudnn_8_9`, etc.) all share a single fixup function
- (i.e., `fixups/cudnn.nix`).
-- `generic-builders`:
- - Contains a builder `manifest.nix` which operates on the `Manifest` type
- defined in `modules/generic/manifests`. Most packages are built using this
- builder.
- - Contains a builder `multiplex.nix` which leverages the Manifest builder. In
- short, the Multiplex builder adds multiple versions of a single package to
- single instance of the CUDA Packages package set. It is used primarily for
- packages like `cudnn` and `cutensor`.
-- `modules`: Nixpkgs modules to check the shape and content of CUDA
- redistributable and feature manifests. These modules additionally use shims
- provided by some CUDA packages to allow them to re-use the
- `genericManifestBuilder`, even if they don't have manifest files of their
- own. `cudnn` and `tensorrt` are examples of packages which provide such
- shims. These modules are further described in the
- [Modules](./modules/README.md) documentation.
+- `_cuda`: Fixed-point used to configure, construct, and extend the CUDA package
+ set. This includes NVIDIA manifests.
+- `buildRedist`: Contains the logic to build packages using NVIDIA's manifests.
- `packages`: Contains packages which exist in every instance of the CUDA
package set. These packages are built in a `by-name` fashion.
-- `setup-hooks`: Nixpkgs setup hooks for CUDA.
-- `tensorrt`: NVIDIA TensorRT library.
+- `tests`: Contains tests which can be run against the CUDA package set.
+
+Many redistributable packages are in the `packages` directory. Their presence
+ensures that, even if a CUDA package set which no longer includes a given package
+is being constructed, the attribute for that package will still exist (but refer
+to a broken package). This prevents missing attribute errors as the package set
+evolves.
## Distinguished packages
+Some packages are purposefully not in the `packages` directory. These are packages
+which do not make sense for Nixpkgs, require further investigation, or are otherwise
+not straightforward to include. These packages are:
+
+- `cuda`:
+ - `collectx_bringup`: missing `libssl.so.1.1` and `libcrypto.so.1.1`; not sure how
+ to provide them or what the package does.
+ - `cuda_sandbox_dev`: unclear on purpose.
+ - `driver_assistant`: we don't use the drivers from the CUDA releases; irrelevant.
+ - `mft_autocomplete`: unsure of purpose; contains FHS paths.
+ - `mft_oem`: unsure of purpose; contains FHS paths.
+ - `mft`: unsure of purpose; contains FHS paths.
+ - `nvidia_driver`: we don't use the drivers from the CUDA releases; irrelevant.
+ - `nvlsm`: contains FHS paths.
+- `cublasmp`:
+ - `libcublasmp`: `nvshmem` isnt' packaged.
+- `cudnn`:
+ - `cudnn_samples`: requires FreeImage, which is abandoned and not packaged.
+
### CUDA Compatibility
[CUDA Compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/),
diff --git a/pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix b/pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix
index 76704f9c5c65..bd4477cc2914 100644
--- a/pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix
+++ b/pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix
@@ -55,7 +55,7 @@
};
# No changes from 12.8 to 12.9
- # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy
+ # https://docs.nvidia.com/cuda/archive/12.9.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy
"12.9" = {
clang = {
maxMajorVersion = "19";
diff --git a/pkgs/development/cuda-modules/_cuda/default.nix b/pkgs/development/cuda-modules/_cuda/default.nix
index fdbac3c8fbd7..9f7fe75ecfa5 100644
--- a/pkgs/development/cuda-modules/_cuda/default.nix
+++ b/pkgs/development/cuda-modules/_cuda/default.nix
@@ -1,9 +1,7 @@
# The _cuda attribute set is a fixed-point which contains the static functionality required to construct CUDA package
# sets. For example, `_cuda.bootstrapData` includes information about NVIDIA's redistributables (such as the names
-# NVIDIA uses for different systems), `_cuda.lib` contains utility functions like `formatCapabilities` (which generate
-# common arguments passed to NVCC and `cmakeFlags`), and `_cuda.fixups` contains `callPackage`-able functions which
-# are provided to the corresponding package's `overrideAttrs` attribute to provide package-specific fixups
-# out of scope of the generic redistributable builder.
+# NVIDIA uses for different systems), and `_cuda.lib` contains utility functions like `formatCapabilities` (which generate
+# common arguments passed to NVCC and `cmakeFlags`).
#
# Since this attribute set is used to construct the CUDA package sets, it must exist outside the fixed point of the
# package sets. Make these attributes available directly in the package set construction could cause confusion if
@@ -23,7 +21,7 @@ lib.fixedPoints.makeExtensible (final: {
inherit lib;
};
extensions = [ ]; # Extensions applied to every CUDA package set.
- fixups = import ./fixups { inherit lib; };
+ manifests = import ./manifests { inherit lib; };
lib = import ./lib {
_cuda = final;
inherit lib;
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_compat.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_compat.nix
deleted file mode 100644
index 1f5736ba059a..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_compat.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ flags, lib }:
-prevAttrs: {
- autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps or [ ] ++ [
- "libnvrm_gpu.so"
- "libnvrm_mem.so"
- "libnvdla_runtime.so"
- ];
- # `cuda_compat` only works on aarch64-linux, and only when building for Jetson devices.
- badPlatformsConditions = prevAttrs.badPlatformsConditions or { } // {
- "Trying to use cuda_compat on aarch64-linux targeting non-Jetson devices" = !flags.isJetsonBuild;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_cudart.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_cudart.nix
deleted file mode 100644
index d95b014cdca6..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_cudart.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-# TODO(@connorbaker): cuda_cudart.dev depends on crt/host_config.h, which is from
-# (getDev cuda_nvcc). It would be nice to be able to encode that.
-{ addDriverRunpath, lib }:
-prevAttrs: {
- # Remove once cuda-find-redist-features has a special case for libcuda
- outputs =
- prevAttrs.outputs or [ ]
- ++ lib.lists.optionals (!(builtins.elem "stubs" prevAttrs.outputs)) [ "stubs" ];
-
- allowFHSReferences = false;
-
- # The libcuda stub's pkg-config doesn't follow the general pattern:
- postPatch =
- prevAttrs.postPatch or ""
- + ''
- while IFS= read -r -d $'\0' path; do
- sed -i \
- -e "s|^libdir\s*=.*/lib\$|libdir=''${!outputLib}/lib/stubs|" \
- -e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
- "$path"
- done < <(find -iname 'cuda-*.pc' -print0)
- ''
- # Namelink may not be enough, add a soname.
- # Cf. https://gitlab.kitware.com/cmake/cmake/-/issues/25536
- + ''
- if [[ -f lib/stubs/libcuda.so && ! -f lib/stubs/libcuda.so.1 ]]; then
- ln -s libcuda.so lib/stubs/libcuda.so.1
- fi
- '';
-
- postFixup = prevAttrs.postFixup or "" + ''
- mv "''${!outputDev}/share" "''${!outputDev}/lib"
- moveToOutput lib/stubs "$stubs"
- ln -s "$stubs"/lib/stubs/* "$stubs"/lib/
- ln -s "$stubs"/lib/stubs "''${!outputLib}/lib/stubs"
- '';
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_demo_suite.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_demo_suite.nix
deleted file mode 100644
index 817f9d1a0302..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_demo_suite.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- libglut,
- libcufft,
- libcurand,
- libGLU,
- libglvnd,
- libgbm,
-}:
-prevAttrs: {
- buildInputs = prevAttrs.buildInputs or [ ] ++ [
- libglut
- libcufft
- libcurand
- libGLU
- libglvnd
- libgbm
- ];
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_gdb.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_gdb.nix
deleted file mode 100644
index e3593b0a90f0..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_gdb.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- cudaAtLeast,
- gmp,
- expat,
- libxcrypt-legacy,
- ncurses6,
- python310,
- python311,
- python312,
- stdenv,
- lib,
-}:
-prevAttrs: {
- buildInputs =
- prevAttrs.buildInputs or [ ]
- ++ [
- gmp
- libxcrypt-legacy
- ncurses6
- python310
- python311
- python312
- ]
- # aarch64,sbsa needs expat
- ++ lib.lists.optionals (stdenv.hostPlatform.isAarch64) [ expat ];
-
- installPhase =
- prevAttrs.installPhase or ""
- # Python 3.8 is not in nixpkgs anymore, delete Python 3.8 cuda-gdb support
- # to avoid autopatchelf failing to find libpython3.8.so.
- + ''
- find $bin -name '*python3.8*' -delete
- find $bin -name '*python3.9*' -delete
- '';
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvcc.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvcc.nix
deleted file mode 100644
index f042222ab9fd..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvcc.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- lib,
- backendStdenv,
- setupCudaHook,
-}:
-prevAttrs: {
- # Merge "bin" and "dev" into "out" to avoid circular references
- outputs = builtins.filter (
- x:
- !(builtins.elem x [
- "dev"
- "bin"
- ])
- ) prevAttrs.outputs or [ ];
-
- # Patch the nvcc.profile.
- # Syntax:
- # - `=` for assignment,
- # - `?=` for conditional assignment,
- # - `+=` to "prepend",
- # - `=+` to "append".
-
- # Cf. https://web.archive.org/web/20230308044351/https://arcb.csc.ncsu.edu/~mueller/cluster/nvidia/2.0/nvcc_2.0.pdf
-
- # We set all variables with the lowest priority (=+), but we do force
- # nvcc to use the fixed backend toolchain. Cf. comments in
- # backend-stdenv.nix
-
- postPatch =
- prevAttrs.postPatch or ""
- + ''
- substituteInPlace bin/nvcc.profile \
- --replace-fail \
- '$(TOP)/$(_TARGET_DIR_)/include' \
- "''${!outputDev}/include"
- ''
- + ''
- cat << EOF >> bin/nvcc.profile
-
- # Fix a compatible backend compiler
- PATH += "${backendStdenv.cc}/bin":
-
- # Expose the split-out nvvm
- LIBRARIES =+ "-L''${!outputBin}/nvvm/lib"
- INCLUDES =+ "-I''${!outputBin}/nvvm/include"
- EOF
- '';
-
- # Entries here will be in nativeBuildInputs when cuda_nvcc is in nativeBuildInputs.
- propagatedBuildInputs = prevAttrs.propagatedBuildInputs or [ ] ++ [ setupCudaHook ];
-
- postInstall = prevAttrs.postInstall or "" + ''
- moveToOutput "nvvm" "''${!outputBin}"
- '';
-
- # The nvcc and cicc binaries contain hard-coded references to /usr
- allowFHSReferences = true;
-
- meta = prevAttrs.meta or { } // {
- mainProgram = "nvcc";
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvprof.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvprof.nix
deleted file mode 100644
index 7452e41bad7b..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvprof.nix
+++ /dev/null
@@ -1 +0,0 @@
-{ cuda_cupti }: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ cuda_cupti ]; }
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cuda_sanitizer_api.nix b/pkgs/development/cuda-modules/_cuda/fixups/cuda_sanitizer_api.nix
deleted file mode 100644
index df0019f4d827..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cuda_sanitizer_api.nix
+++ /dev/null
@@ -1 +0,0 @@
-_: _: { outputs = [ "out" ]; }
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/cudnn.nix b/pkgs/development/cuda-modules/_cuda/fixups/cudnn.nix
deleted file mode 100644
index dbf36688f011..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/cudnn.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- cudaOlder,
- cudaMajorMinorVersion,
- fetchurl,
- lib,
- libcublas,
- patchelf,
- zlib,
-}:
-let
- inherit (lib)
- attrsets
- maintainers
- meta
- strings
- ;
-in
-finalAttrs: prevAttrs: {
- src = fetchurl { inherit (finalAttrs.passthru.redistribRelease) hash url; };
-
- # Useful for inspecting why something went wrong.
- badPlatformsConditions =
- let
- cudaTooOld = cudaOlder finalAttrs.passthru.featureRelease.minCudaVersion;
- cudaTooNew =
- (finalAttrs.passthru.featureRelease.maxCudaVersion != null)
- && strings.versionOlder finalAttrs.passthru.featureRelease.maxCudaVersion cudaMajorMinorVersion;
- in
- prevAttrs.badPlatformsConditions or { }
- // {
- "CUDA version is too old" = cudaTooOld;
- "CUDA version is too new" = cudaTooNew;
- };
-
- buildInputs = prevAttrs.buildInputs or [ ] ++ [
- zlib
- (attrsets.getLib libcublas)
- ];
-
- # Tell autoPatchelf about runtime dependencies. *_infer* libraries only
- # exist in CuDNN 8.
- # NOTE: Versions from CUDNN releases have four components.
- postFixup =
- prevAttrs.postFixup or ""
- +
- strings.optionalString
- (
- strings.versionAtLeast finalAttrs.version "8.0.5.0"
- && strings.versionOlder finalAttrs.version "9.0.0.0"
- )
- ''
- ${meta.getExe patchelf} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so
- ${meta.getExe patchelf} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so
- '';
-
- meta = prevAttrs.meta or { } // {
- homepage = "https://developer.nvidia.com/cudnn";
- maintainers =
- prevAttrs.meta.maintainers or [ ]
- ++ (with maintainers; [
- mdaiter
- samuela
- connorbaker
- ]);
- # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more
- # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set.
- teams = prevAttrs.meta.teams or [ ];
- license = {
- shortName = "cuDNN EULA";
- fullName = "NVIDIA cuDNN Software License Agreement (EULA)";
- url = "https://docs.nvidia.com/deeplearning/sdk/cudnn-sla/index.html#supplement";
- free = false;
- };
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/default.nix b/pkgs/development/cuda-modules/_cuda/fixups/default.nix
deleted file mode 100644
index 0c9874672ce4..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ lib }:
-lib.concatMapAttrs (
- fileName: _type:
- let
- # Fixup is in `./${attrName}.nix` or in `./${fileName}/default.nix`:
- attrName = lib.removeSuffix ".nix" fileName;
- fixup = import (./. + "/${fileName}");
- isFixup = fileName != "default.nix";
- in
- lib.optionalAttrs isFixup { ${attrName} = fixup; }
-) (builtins.readDir ./.)
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/driver_assistant.nix b/pkgs/development/cuda-modules/_cuda/fixups/driver_assistant.nix
deleted file mode 100644
index e9c50b2f4eaf..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/driver_assistant.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-_: prevAttrs: {
- badPlatformsConditions = prevAttrs.badPlatformsConditions or { } // {
- "Package is not supported; use drivers from linuxPackages" = true;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/fabricmanager.nix b/pkgs/development/cuda-modules/_cuda/fixups/fabricmanager.nix
deleted file mode 100644
index fa2073ce002a..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/fabricmanager.nix
+++ /dev/null
@@ -1 +0,0 @@
-{ zlib }: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib ]; }
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/imex.nix b/pkgs/development/cuda-modules/_cuda/fixups/imex.nix
deleted file mode 100644
index fa2073ce002a..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/imex.nix
+++ /dev/null
@@ -1 +0,0 @@
-{ zlib }: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib ]; }
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/libcufile.nix b/pkgs/development/cuda-modules/_cuda/fixups/libcufile.nix
deleted file mode 100644
index b4fc02e89655..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/libcufile.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- libcublas,
- numactl,
- rdma-core,
-}:
-prevAttrs: {
- buildInputs = prevAttrs.buildInputs or [ ] ++ [
- libcublas
- numactl
- rdma-core
- ];
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/libcusolver.nix b/pkgs/development/cuda-modules/_cuda/fixups/libcusolver.nix
deleted file mode 100644
index 699f0f708260..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/libcusolver.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- cudaAtLeast,
- lib,
- libcublas,
- libcusparse ? null,
- libnvjitlink ? null,
-}:
-prevAttrs: {
- buildInputs = prevAttrs.buildInputs or [ ] ++ [
- libcublas
- libnvjitlink
- libcusparse
- ];
-
- brokenConditions = prevAttrs.brokenConditions or { } // {
- "libnvjitlink missing (CUDA >= 12.0)" = libnvjitlink == null;
- "libcusparse missing (CUDA >= 12.1)" = libcusparse == null;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/libcusparse.nix b/pkgs/development/cuda-modules/_cuda/fixups/libcusparse.nix
deleted file mode 100644
index e895e568d784..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/libcusparse.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- cudaAtLeast,
- lib,
- libnvjitlink ? null,
-}:
-prevAttrs: {
- buildInputs = prevAttrs.buildInputs or [ ] ++ [ libnvjitlink ];
-
- brokenConditions = prevAttrs.brokenConditions or { } // {
- "libnvjitlink missing (CUDA >= 12.0)" = libnvjitlink == null;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/libcusparse_lt.nix b/pkgs/development/cuda-modules/_cuda/fixups/libcusparse_lt.nix
deleted file mode 100644
index 009e64555133..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/libcusparse_lt.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- cuda_cudart,
- lib,
- libcublas,
-}:
-finalAttrs: prevAttrs: {
- buildInputs =
- prevAttrs.buildInputs or [ ]
- ++ [ (lib.getLib libcublas) ]
- # For some reason, the 1.4.x release of cusparselt requires the cudart library.
- ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ];
- meta = prevAttrs.meta or { } // {
- description = "cuSPARSELt: A High-Performance CUDA Library for Sparse Matrix-Matrix Multiplication";
- homepage = "https://developer.nvidia.com/cusparselt-downloads";
- maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.sepiabrown ];
- teams = prevAttrs.meta.teams or [ ];
- license = lib.licenses.unfreeRedistributable // {
- shortName = "cuSPARSELt EULA";
- fullName = "cuSPARSELt SUPPLEMENT TO SOFTWARE LICENSE AGREEMENT FOR NVIDIA SOFTWARE DEVELOPMENT KITS";
- url = "https://docs.nvidia.com/cuda/cusparselt/license.html";
- };
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/libcutensor.nix b/pkgs/development/cuda-modules/_cuda/fixups/libcutensor.nix
deleted file mode 100644
index 530e35af5635..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/libcutensor.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- cuda_cudart,
- lib,
- libcublas,
-}:
-finalAttrs: prevAttrs: {
- buildInputs =
- prevAttrs.buildInputs or [ ]
- ++ [ (lib.getLib libcublas) ]
- # For some reason, the 1.4.x release of cuTENSOR requires the cudart library.
- ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ];
- meta = prevAttrs.meta or { } // {
- description = "cuTENSOR: A High-Performance CUDA Library For Tensor Primitives";
- homepage = "https://developer.nvidia.com/cutensor";
- maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.obsidian-systems-maintenance ];
- teams = prevAttrs.meta.teams;
- license = lib.licenses.unfreeRedistributable // {
- shortName = "cuTENSOR EULA";
- fullName = "cuTENSOR SUPPLEMENT TO SOFTWARE LICENSE AGREEMENT FOR NVIDIA SOFTWARE DEVELOPMENT KITS";
- url = "https://docs.nvidia.com/cuda/cutensor/license.html";
- };
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/nsight_compute.nix b/pkgs/development/cuda-modules/_cuda/fixups/nsight_compute.nix
deleted file mode 100644
index bc7c5f1784db..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/nsight_compute.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- cudaAtLeast,
- cudaMajorMinorVersion,
- cudaOlder,
- e2fsprogs,
- elfutils,
- flags,
- gst_all_1,
- lib,
- libjpeg8,
- qt6,
- rdma-core,
- stdenv,
- ucx,
-}:
-prevAttrs:
-let
- qtwayland = lib.getLib qt6.qtwayland;
- inherit (qt6) wrapQtAppsHook qtwebview;
- archDir =
- {
- aarch64-linux = "linux-" + (if flags.isJetsonBuild then "v4l_l4t" else "desktop") + "-t210-a64";
- x86_64-linux = "linux-desktop-glibc_2_11_3-x64";
- }
- .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-in
-{
- outputs = [ "out" ]; # NOTE(@connorbaker): Force a single output so relative lookups work.
- nativeBuildInputs = prevAttrs.nativeBuildInputs or [ ] ++ [ wrapQtAppsHook ];
- buildInputs =
- prevAttrs.buildInputs or [ ]
- ++ [
- qtwayland
- qtwebview
- qt6.qtwebengine
- rdma-core
- ]
- ++ lib.optionals (cudaOlder "12.7") [
- e2fsprogs
- ucx
- ]
- ++ lib.optionals (cudaMajorMinorVersion == "12.9") [
- elfutils
- ];
- dontWrapQtApps = true;
- preInstall = prevAttrs.preInstall or "" + ''
- if [[ -d nsight-compute ]]; then
- nixLog "Lifting components of Nsight Compute to the top level"
- mv -v nsight-compute/*/* .
- nixLog "Removing empty directories"
- rmdir -pv nsight-compute/*
- fi
-
- rm -rf host/${archDir}/Mesa/
- '';
- postInstall =
- prevAttrs.postInstall or ""
- + ''
- moveToOutput 'ncu' "''${!outputBin}/bin"
- moveToOutput 'ncu-ui' "''${!outputBin}/bin"
- moveToOutput 'host/${archDir}' "''${!outputBin}/bin"
- moveToOutput 'target/${archDir}' "''${!outputBin}/bin"
- wrapQtApp "''${!outputBin}/bin/host/${archDir}/ncu-ui.bin"
- ''
- # NOTE(@connorbaker): No idea what this platform is or how to patchelf for it.
- + lib.optionalString (flags.isJetsonBuild && cudaOlder "12.9") ''
- nixLog "Removing QNX 700 target directory for Jetson builds"
- rm -rfv "''${!outputBin}/target/qnx-700-t210-a64"
- ''
- + lib.optionalString (flags.isJetsonBuild && cudaAtLeast "12.8") ''
- nixLog "Removing QNX 800 target directory for Jetson builds"
- rm -rfv "''${!outputBin}/target/qnx-800-tegra-a64"
- '';
- # lib needs libtiff.so.5, but nixpkgs provides libtiff.so.6
- preFixup = prevAttrs.preFixup or "" + ''
- patchelf --replace-needed libtiff.so.5 libtiff.so "''${!outputBin}/bin/host/${archDir}/Plugins/imageformats/libqtiff.so"
- '';
- autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps or [ ] ++ [
- "libnvidia-ml.so.1"
- ];
- # NOTE(@connorbaker): It might be a problem that when nsight_compute contains hosts and targets of different
- # architectures, that we patchelf just the binaries matching the builder's platform; autoPatchelfHook prints
- # messages like
- # skipping [$out]/host/linux-desktop-glibc_2_11_3-x64/libQt6Core.so.6 because its architecture (x64) differs from
- # target (AArch64)
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/nsight_systems.nix b/pkgs/development/cuda-modules/_cuda/fixups/nsight_systems.nix
deleted file mode 100644
index 2967fa89470a..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/nsight_systems.nix
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- boost178,
- cuda_cudart,
- cudaAtLeast,
- e2fsprogs,
- gst_all_1,
- lib,
- nss,
- numactl,
- pulseaudio,
- qt6,
- rdma-core,
- stdenv,
- ucx,
- wayland,
- xorg,
-}:
-prevAttrs:
-let
- qtwayland = lib.getLib qt6.qtwayland;
- qtWaylandPlugins = "${qtwayland}/${qt6.qtbase.qtPluginPrefix}";
- # NOTE(@connorbaker): nsight_systems doesn't support Jetson, so no need for case splitting on aarch64-linux.
- hostDir =
- {
- aarch64-linux = "host-linux-armv8";
- x86_64-linux = "host-linux-x64";
- }
- .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
- targetDir =
- {
- aarch64-linux = "target-linux-sbsa-armv8";
- x86_64-linux = "target-linux-x64";
- }
- .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-in
-{
- outputs = [ "out" ]; # NOTE(@connorbaker): Force a single output so relative lookups work.
-
- # An ad hoc replacement for
- # https://github.com/ConnorBaker/cuda-redist-find-features/issues/11
- env = prevAttrs.env or { } // {
- rmPatterns =
- prevAttrs.env.rmPatterns or ""
- + toString [
- "${hostDir}/lib{arrow,jpeg}*"
- "${hostDir}/lib{ssl,ssh,crypto}*"
- "${hostDir}/libboost*"
- "${hostDir}/libexec"
- "${hostDir}/libstdc*"
- "${hostDir}/python/bin/python"
- "${hostDir}/Mesa"
- ];
- };
-
- # NOTE(@connorbaker): nsight-exporter and nsight-sys are deprecated scripts wrapping nsys, it's fine to remove them.
- prePatch = prevAttrs.prePatch or "" + ''
- if [[ -d bin ]]; then
- nixLog "Removing bin wrapper scripts"
- for knownWrapper in bin/{nsys{,-ui},nsight-{exporter,sys}}; do
- [[ -e $knownWrapper ]] && rm -v "$knownWrapper"
- done
- unset -v knownWrapper
-
- nixLog "Removing empty bin directory"
- rmdir -v bin
- fi
-
- if [[ -d nsight-systems ]]; then
- nixLog "Lifting components of Nsight System to the top level"
- mv -v nsight-systems/*/* .
- nixLog "Removing empty nsight-systems directory"
- rmdir -pv nsight-systems/*
- fi
- '';
-
- postPatch = prevAttrs.postPatch or "" + ''
- for path in $rmPatterns; do
- rm -r "$path"
- done
- patchShebangs nsight-systems
- '';
-
- nativeBuildInputs = prevAttrs.nativeBuildInputs or [ ] ++ [ qt6.wrapQtAppsHook ];
-
- dontWrapQtApps = true;
-
- buildInputs =
- prevAttrs.buildInputs or [ ]
- ++ [
- qt6.qtdeclarative
- qt6.qtsvg
- qt6.qtimageformats
- qt6.qtpositioning
- qt6.qtscxml
- qt6.qttools
- qt6.qtwebengine
- qt6.qtwayland
- boost178
- cuda_cudart.stubs
- e2fsprogs
- gst_all_1.gst-plugins-base
- gst_all_1.gstreamer
- nss
- numactl
- pulseaudio
- qt6.qtbase
- qtWaylandPlugins
- rdma-core
- ucx
- wayland
- xorg.libXcursor
- xorg.libXdamage
- xorg.libXrandr
- xorg.libXtst
- ]
- # NOTE(@connorbaker): Seems to be required only for aarch64-linux.
- ++ lib.optionals stdenv.hostPlatform.isAarch64 [
- gst_all_1.gst-plugins-bad
- ];
-
- postInstall = prevAttrs.postInstall or "" + ''
- moveToOutput '${hostDir}' "''${!outputBin}"
- moveToOutput '${targetDir}' "''${!outputBin}"
- moveToOutput 'bin' "''${!outputBin}"
- wrapQtApp "''${!outputBin}/${hostDir}/nsys-ui.bin"
- '';
-
- # lib needs libtiff.so.5, but nixpkgs provides libtiff.so.6
- preFixup = prevAttrs.preFixup or "" + ''
- patchelf --replace-needed libtiff.so.5 libtiff.so "''${!outputBin}/${hostDir}/Plugins/imageformats/libqtiff.so"
- '';
-
- autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps or [ ] ++ [
- "libnvidia-ml.so.1"
- ];
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/nvidia_driver.nix b/pkgs/development/cuda-modules/_cuda/fixups/nvidia_driver.nix
deleted file mode 100644
index e9c50b2f4eaf..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/nvidia_driver.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-_: prevAttrs: {
- badPlatformsConditions = prevAttrs.badPlatformsConditions or { } // {
- "Package is not supported; use drivers from linuxPackages" = true;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/fixups/tensorrt.nix b/pkgs/development/cuda-modules/_cuda/fixups/tensorrt.nix
deleted file mode 100644
index 49d1018ab305..000000000000
--- a/pkgs/development/cuda-modules/_cuda/fixups/tensorrt.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{
- _cuda,
- cudaOlder,
- cudaPackages,
- cudaMajorMinorVersion,
- lib,
- patchelf,
- requireFile,
- stdenv,
-}:
-let
- inherit (lib)
- attrsets
- maintainers
- meta
- strings
- versions
- ;
- inherit (stdenv) hostPlatform;
- # targetArch :: String
- targetArch = attrsets.attrByPath [ hostPlatform.system ] "unsupported" {
- x86_64-linux = "x86_64-linux-gnu";
- aarch64-linux = "aarch64-linux-gnu";
- };
-in
-finalAttrs: prevAttrs: {
- # Useful for inspecting why something went wrong.
- brokenConditions =
- let
- cudaTooOld = cudaOlder finalAttrs.passthru.featureRelease.minCudaVersion;
- cudaTooNew =
- (finalAttrs.passthru.featureRelease.maxCudaVersion != null)
- && strings.versionOlder finalAttrs.passthru.featureRelease.maxCudaVersion cudaMajorMinorVersion;
- cudnnVersionIsSpecified = finalAttrs.passthru.featureRelease.cudnnVersion != null;
- cudnnVersionSpecified = versions.majorMinor finalAttrs.passthru.featureRelease.cudnnVersion;
- cudnnVersionProvided = versions.majorMinor finalAttrs.passthru.cudnn.version;
- cudnnTooOld =
- cudnnVersionIsSpecified && (strings.versionOlder cudnnVersionProvided cudnnVersionSpecified);
- cudnnTooNew =
- cudnnVersionIsSpecified && (strings.versionOlder cudnnVersionSpecified cudnnVersionProvided);
- in
- prevAttrs.brokenConditions or { }
- // {
- "CUDA version is too old" = cudaTooOld;
- "CUDA version is too new" = cudaTooNew;
- "CUDNN version is too old" = cudnnTooOld;
- "CUDNN version is too new" = cudnnTooNew;
- };
-
- src = requireFile {
- name = finalAttrs.passthru.redistribRelease.filename;
- inherit (finalAttrs.passthru.redistribRelease) hash;
- message = ''
- To use the TensorRT derivation, you must join the NVIDIA Developer Program and
- download the ${finalAttrs.version} TAR package for CUDA ${cudaMajorMinorVersion} from
- ${finalAttrs.meta.homepage}.
-
- Once you have downloaded the file, add it to the store with the following
- command, and try building this derivation again.
-
- $ nix-store --add-fixed sha256 ${finalAttrs.passthru.redistribRelease.filename}
- '';
- };
-
- # We need to look inside the extracted output to get the files we need.
- sourceRoot = "TensorRT-${finalAttrs.version}";
-
- buildInputs = prevAttrs.buildInputs or [ ] ++ [ (finalAttrs.passthru.cudnn.lib or null) ];
-
- preInstall =
- prevAttrs.preInstall or ""
- + strings.optionalString (targetArch != "unsupported") ''
- # Replace symlinks to bin and lib with the actual directories from targets.
- for dir in bin lib; do
- rm "$dir"
- mv "targets/${targetArch}/$dir" "$dir"
- done
-
- # Remove broken symlinks
- for dir in include samples; do
- rm "targets/${targetArch}/$dir" || :
- done
- '';
-
- # Tell autoPatchelf about runtime dependencies.
- postFixup =
- let
- versionTriple = "${versions.majorMinor finalAttrs.version}.${versions.patch finalAttrs.version}";
- in
- prevAttrs.postFixup or ""
- + ''
- ${meta.getExe' patchelf "patchelf"} --add-needed libnvinfer.so \
- "$lib/lib/libnvinfer.so.${versionTriple}" \
- "$lib/lib/libnvinfer_plugin.so.${versionTriple}" \
- "$lib/lib/libnvinfer_builder_resource.so.${versionTriple}"
- '';
-
- passthru = prevAttrs.passthru or { } // {
- # The CUDNN used with TensorRT.
- # If null, the default cudnn derivation will be used.
- # If a version is specified, the cudnn derivation with that version will be used,
- # unless it is not available, in which case the default cudnn derivation will be used.
- cudnn =
- let
- desiredName = _cuda.lib.mkVersionedName "cudnn" (
- lib.versions.majorMinor finalAttrs.passthru.featureRelease.cudnnVersion
- );
- in
- if finalAttrs.passthru.featureRelease.cudnnVersion == null || (cudaPackages ? desiredName) then
- cudaPackages.cudnn
- else
- cudaPackages.${desiredName};
- };
-
- meta = prevAttrs.meta or { } // {
- badPlatforms =
- prevAttrs.meta.badPlatforms or [ ]
- ++ lib.optionals (targetArch == "unsupported") [ hostPlatform.system ];
- homepage = "https://developer.nvidia.com/tensorrt";
- teams = prevAttrs.meta.teams or [ ];
-
- # Building TensorRT on Hydra is impossible because of the non-redistributable
- # license and because the source needs to be manually downloaded from the
- # NVIDIA Developer Program (see requireFile above).
- hydraPlatforms = lib.platforms.none;
- };
-}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cuda/README.md b/pkgs/development/cuda-modules/_cuda/manifests/cuda/README.md
new file mode 100644
index 000000000000..3a5eb56b6f9f
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cuda/README.md
@@ -0,0 +1,5 @@
+# cuda
+
+Link:
+
+Requirements:
diff --git a/pkgs/development/cuda-modules/cuda/manifests/redistrib_12.6.3.json b/pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.6.3.json
similarity index 100%
rename from pkgs/development/cuda-modules/cuda/manifests/redistrib_12.6.3.json
rename to pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.6.3.json
diff --git a/pkgs/development/cuda-modules/cuda/manifests/redistrib_12.8.1.json b/pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.8.1.json
similarity index 100%
rename from pkgs/development/cuda-modules/cuda/manifests/redistrib_12.8.1.json
rename to pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.8.1.json
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.9.1.json b/pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.9.1.json
new file mode 100644
index 000000000000..835340899e33
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cuda/redistrib_12.9.1.json
@@ -0,0 +1,1151 @@
+{
+ "release_date": "2025-06-05",
+ "release_label": "12.9.1",
+ "release_product": "cuda",
+ "collectx_bringup": {
+ "name": "UFM telemetry CollectX Bringup",
+ "license": "NVIDIA Proprietary",
+ "license_path": "collectx_bringup/LICENSE.txt",
+ "version": "1.19.13",
+ "linux-x86_64": {
+ "relative_path": "collectx_bringup/linux-x86_64/collectx_bringup-linux-x86_64-1.19.13-archive.tar.xz",
+ "sha256": "4965fe096fca645a6d4565fd4d12366ae0ec31ec54ca20274910f34eea74b41a",
+ "md5": "d48b8c177f312c8774c54988594f725c",
+ "size": "125307508"
+ },
+ "linux-sbsa": {
+ "relative_path": "collectx_bringup/linux-sbsa/collectx_bringup-linux-sbsa-1.19.13-archive.tar.xz",
+ "sha256": "5d716fbb80ef7b9ac89f9e3fa8b900a29d4e6c0be487420dc4ee7a05340b57a9",
+ "md5": "dc2c0bfedf790ba7dc21f684510e592e",
+ "size": "120696772"
+ }
+ },
+ "cuda_cccl": {
+ "name": "CXX Core Compute Libraries",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_cccl/LICENSE.txt",
+ "version": "12.9.27",
+ "linux-x86_64": {
+ "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-12.9.27-archive.tar.xz",
+ "sha256": "8b1a5095669e94f2f9afd7715533314d418179e9452be61e2fde4c82a3e542aa",
+ "md5": "59e3cb66aeb96423dcca73218c85bc02",
+ "size": "997888"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-12.9.27-archive.tar.xz",
+ "sha256": "8c3da24801b500f1d9217d191bb4b63e5d2096c8e7d0b7695e876853180ba82f",
+ "md5": "b39d03cfac57a3b2ded8e9b0a6b0e782",
+ "size": "997840"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.9.27-archive.zip",
+ "sha256": "17aaa7c6b8f94a417d8f3261780b7e34b9cbdfab7513bce86768623b06aa28b5",
+ "md5": "afdfa89a35951f67b5bd70c513f5ef09",
+ "size": "3127658"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_cccl/linux-aarch64/cuda_cccl-linux-aarch64-12.9.27-archive.tar.xz",
+ "sha256": "8c87c2db67130108861609eacd40d30ee109656a7765e5172eab71dd6da4c453",
+ "md5": "25b1a257ed35393052577bd9ee432d3f",
+ "size": "998228"
+ }
+ },
+ "cuda_compat": {
+ "name": "CUDA compat L4T",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_compat/LICENSE.txt",
+ "version": "12.9.40580548",
+ "linux-aarch64": {
+ "relative_path": "cuda_compat/linux-aarch64/cuda_compat-linux-aarch64-12.9.40580548-archive.tar.xz",
+ "sha256": "c03fe18b9d23881f068ac97b45001a47778f83d2361728427a3f92b551b1c898",
+ "md5": "3ca26403b8b36c5cc18104ee174ec874",
+ "size": "37422044"
+ }
+ },
+ "cuda_cudart": {
+ "name": "CUDA Runtime (cudart)",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_cudart/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "1f6ad42d4f530b24bfa35894ccf6b7209d2354f59101fd62ec4a6192a184ce99",
+ "md5": "6153e2b6a43389e5be3d68b04c6488f5",
+ "size": "1514676"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "8b422a3b2cb8452cb678181b0bf9d7aa7342df168b5319c5488ae3b8514101fc",
+ "md5": "c4b3e0d206f5dc3aceaddb78a32424d3",
+ "size": "1521596"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "179e9c43b0735ffe67207b3da556eb5a0c50f3047961882b7657d3b822d34ef8",
+ "md5": "22e500ce68dc9e099ec18f57e1309808",
+ "size": "3521238"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_cudart/linux-aarch64/cuda_cudart-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "f893e2c72be81b0d0e3bc33827c785a96db15fd5aafdc51cc187f3df6fdbb657",
+ "md5": "8970e9d40a7edada8cd9270906b1daa3",
+ "size": "1223440"
+ }
+ },
+ "cuda_cuobjdump": {
+ "name": "cuobjdump",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_cuobjdump/LICENSE.txt",
+ "version": "12.9.82",
+ "linux-x86_64": {
+ "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-12.9.82-archive.tar.xz",
+ "sha256": "ee0de40e8c18068bfcc53e73510e7e7a1a80555205347940df67fa525d24452f",
+ "md5": "fb4ceb446f3ca58c4ca5381a2c0eee06",
+ "size": "214896"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-12.9.82-archive.tar.xz",
+ "sha256": "2d39ae9309f81a7980df296a93c0e49215c6fb22d316fd9daae211d29a731d27",
+ "md5": "9ec739cea851b184b55017d0a6185304",
+ "size": "208936"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-12.9.82-archive.zip",
+ "sha256": "1eda43a76a2eac25fce5bdb4b68673b5bda737d54cca5513148c36362ab7c811",
+ "md5": "0a1c8b1f69537bc605c0d5fc28110258",
+ "size": "6219088"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_cuobjdump/linux-aarch64/cuda_cuobjdump-linux-aarch64-12.9.82-archive.tar.xz",
+ "sha256": "91a9ae2935b411d136c2c61ccbbc0df3a83f17cce122d12d262be202217163ee",
+ "md5": "ec5905b13be30f8f39e18d1f41dbcf18",
+ "size": "197604"
+ }
+ },
+ "cuda_cupti": {
+ "name": "CUPTI",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_cupti/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "f779a24e8f0177b4ce45cbf118cb470139fb5107858df96689d0a0aa01f0fba1",
+ "md5": "5fe49729261d1f899bd0948026b755ae",
+ "size": "16799436"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "84f8657375c23a425b2d107c3cde1ce75777bff9798b744b78e146fdc02d2de0",
+ "md5": "ff4c04b183cc173aa2937a21a3569b5b",
+ "size": "12805704"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "c96018456dc4db6af6d69d6db0170a2ccc656ddde8c8ce6ee05682c2c5569daa",
+ "md5": "1cecfef05160d4e6b0f2549534fe7973",
+ "size": "13359912"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_cupti/linux-aarch64/cuda_cupti-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "74a884691b2c7e5c8db8bd2a38143fc82f7502f0dd484051809df7953f7ae719",
+ "md5": "7f92adb9aed6fdb047ebe3c7617c7179",
+ "size": "4781260"
+ }
+ },
+ "cuda_cuxxfilt": {
+ "name": "CUDA cuxxfilt (demangler)",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_cuxxfilt/LICENSE.txt",
+ "version": "12.9.82",
+ "linux-x86_64": {
+ "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-12.9.82-archive.tar.xz",
+ "sha256": "833d7e56351d032717f217212577d369d230e284b2ded4bf151403cc11213add",
+ "md5": "a7f4a446e4fb00657f5bd7eb1dd814a7",
+ "size": "188692"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-12.9.82-archive.tar.xz",
+ "sha256": "2175ef96b523eb8fea5d6ccfd21b70d6afaee623d00dbab70f11e8aa892c2828",
+ "md5": "fde8b2db7d7e4afb08e7c703fa735440",
+ "size": "177440"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-12.9.82-archive.zip",
+ "sha256": "ec5911d680394d90968c480c7359e7f5a4025b9c4806dad673d489e57585afd3",
+ "md5": "537cd82a0945fe20275d4791e353c3f5",
+ "size": "178570"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_cuxxfilt/linux-aarch64/cuda_cuxxfilt-linux-aarch64-12.9.82-archive.tar.xz",
+ "sha256": "37acae6576874c3781e844ea268a9fe076d13aaab3acda6f65bbe885a3726a3c",
+ "md5": "c8e23bff8cc13fb58a57c90d69e7b374",
+ "size": "170436"
+ }
+ },
+ "cuda_demo_suite": {
+ "name": "CUDA Demo Suite",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_demo_suite/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "92e0b324bf02d9705b8dd5bf1d36149c06512c720ceda7cc7d791fc3ecf64f0e",
+ "md5": "5030cddcab7101704bb8a9b53c6137ad",
+ "size": "4036604"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "adffd0b0f7cca262025f171dcaa73f62af020de5d9a0d6e0fbe7dbd827dd77a8",
+ "md5": "9a8c3bbd696392e768ae3278e269cbd9",
+ "size": "5164004"
+ }
+ },
+ "cuda_documentation": {
+ "name": "CUDA Documentation",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_documentation/LICENSE.txt",
+ "version": "12.9.88",
+ "linux-x86_64": {
+ "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-12.9.88-archive.tar.xz",
+ "sha256": "d6e44c454654016a3650f3101688231ba111cd00647b726b34d18ff0bd721933",
+ "md5": "17436d82e589824bbf3f4ff669201d81",
+ "size": "67920"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-12.9.88-archive.tar.xz",
+ "sha256": "e1c47f32279a827baf8b4339c1737d7bd8e54c73388835e5fae3e2db83db2479",
+ "md5": "995f5692be016e44821fb85ebc3a62d9",
+ "size": "67924"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-12.9.88-archive.zip",
+ "sha256": "660f2f71b94c13a021850a8bb6227dfb4eb9a8dd8e0f6bc9feb0b993dea180fd",
+ "md5": "3d21d1b9056629557bb2745f962af636",
+ "size": "107626"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_documentation/linux-aarch64/cuda_documentation-linux-aarch64-12.9.88-archive.tar.xz",
+ "sha256": "830476a755f9a8c9780a6876d0ed562c073f29968c3e0e91962d0fd14b3f3618",
+ "md5": "098d318ebb7700a6513e57e41edf20c8",
+ "size": "67948"
+ }
+ },
+ "cuda_gdb": {
+ "name": "CUDA GDB",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_gdb/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "3dbb657683cd4f2989c30bdad31b3f4493795a9acc8a2214f48df3cfca7c37c0",
+ "md5": "1405f9cf4a5d2c03785a69aefa05de16",
+ "size": "67691620"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "251b9bd86ffcce0cdc4a5480ef3d8d609ca3a276cbbb5c793ca9978721d31faf",
+ "md5": "b76ab824a5b651ecec31978e6e2f41bf",
+ "size": "45695592"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_gdb/linux-aarch64/cuda_gdb-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "5473c27f1ec03fe064a09399e52b251e6ca5d3b9a67f21c1a26a02a26102f165",
+ "md5": "95325479bec751d72d4f063d8d244049",
+ "size": "45662012"
+ }
+ },
+ "cuda_nsight": {
+ "name": "Nsight Eclipse Edition Plugin",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nsight/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "5c3994440ce7aa6ac5ab120e45f25f5f5eaa631af0f793fab860a5edbc499518",
+ "md5": "3bce6195222da1c1d549fbd2d83422e8",
+ "size": "118693300"
+ }
+ },
+ "cuda_nvcc": {
+ "name": "CUDA NVCC",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvcc/LICENSE.txt",
+ "version": "12.9.86",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-12.9.86-archive.tar.xz",
+ "sha256": "7a1a5b652e5ef85c82b721d10672fc9a2dbaab44e9bd3c65a69517bf53998c35",
+ "md5": "ac1871c955070267e117bd985f6dbb36",
+ "size": "81100244"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-12.9.86-archive.tar.xz",
+ "sha256": "0aa1fce92dbae76c059c27eefb9d0ffb58e1291151e44ff7c7f1fc2dd9376c0d",
+ "md5": "1322a14e4d6482f69d4b8a14a7d5f4c5",
+ "size": "73407012"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.9.86-archive.zip",
+ "sha256": "227b109663b5e57d2718bcabb24a4ba0d9d4e52d958e327dc476f7c28691be85",
+ "md5": "ff9b2942aaa3a1dfb487da6767bc689f",
+ "size": "126917884"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvcc/linux-aarch64/cuda_nvcc-linux-aarch64-12.9.86-archive.tar.xz",
+ "sha256": "2432ef8a7c12d0a9ce3332a8af42b123c07f256390b3390802b1b2c6254c6c74",
+ "md5": "f846e79e53be949484a4968880eb9dd9",
+ "size": "77162776"
+ }
+ },
+ "cuda_nvdisasm": {
+ "name": "CUDA nvdisasm",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvdisasm/LICENSE.txt",
+ "version": "12.9.88",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-12.9.88-archive.tar.xz",
+ "sha256": "49296dd550e05434185a8588ec639f1325b2de413e2321ddd7e56c5182a476ff",
+ "md5": "87ec016e430618bf724a3e8332bfcca6",
+ "size": "5483340"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-12.9.88-archive.tar.xz",
+ "sha256": "28b2597f0901cfafcd050cba0877c1eb5edcd7ebd8164aea356cec832e636ee3",
+ "md5": "0d6f0b8883e55ca07d64cbb746b80e8c",
+ "size": "5408212"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-12.9.88-archive.zip",
+ "sha256": "955ba1f52f7115031f10408ce3cec4c745df41dba8fdf6024c3983d899e9fbbc",
+ "md5": "43cd76e59014be18d96ce03e2ed09d6b",
+ "size": "5791897"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvdisasm/linux-aarch64/cuda_nvdisasm-linux-aarch64-12.9.88-archive.tar.xz",
+ "sha256": "99bf70149423c42c8dc2649f76f8983101dcf9879d355cfb2582b2adbed84614",
+ "md5": "cb9f7798d824ef1696fdde67f9506aa4",
+ "size": "5416148"
+ }
+ },
+ "cuda_nvml_dev": {
+ "name": "CUDA NVML Headers",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvml_dev/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "1ad0866dbfff6a9e2661f5348e4ca4c2a4e40882b90014ab127f2734856ecccb",
+ "md5": "7e615aa7b4525d3cc1b28379abcf6ce5",
+ "size": "129244"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "e97e668ead7ebc1fb7e93ffe303019660d0119c4e4d0e8ef26ce012bbbea9b34",
+ "md5": "d48bcaa83a7299b836d381b32e94a99d",
+ "size": "130480"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "1894b70c5487a739c740929263fa3fbca80e53790647abc02b74eac024b97be8",
+ "md5": "213d773bb297b15e9f697ec8f1363bd9",
+ "size": "144955"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvml_dev/linux-aarch64/cuda_nvml_dev-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "531ac94b8b83209657cd14b28d23660df252393fb34c24f5d8919c56c977477e",
+ "md5": "3fe82d3f6042a22ac3d119192577db79",
+ "size": "130544"
+ }
+ },
+ "cuda_nvprof": {
+ "name": "CUDA nvprof",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvprof/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "8d8d1a9004710bad8d7a653769f088064b0285a06a80b46c4da7598115a0c6a2",
+ "md5": "df8f768c6c21b06cb048b9a4b0ac39e7",
+ "size": "2402440"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "81aefd12ab0a24f88feee10303b814fcf21887b3947d5e73523ed14338ef4e2b",
+ "md5": "69ada7050609c5860a2396a6354665e0",
+ "size": "1705346"
+ }
+ },
+ "cuda_nvprune": {
+ "name": "CUDA nvprune",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvprune/LICENSE.txt",
+ "version": "12.9.82",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-12.9.82-archive.tar.xz",
+ "sha256": "a06f0e2959a4dd3dbb62a984dbe77b813397022596f5c62d74ddd83b238571f2",
+ "md5": "db647ad5946c1e4cb0289c16e5ec92d8",
+ "size": "59372"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-12.9.82-archive.tar.xz",
+ "sha256": "15e1d6527bf04c162950251940b10b8b8254f68028e2ffc0bfb7ed84bb2e1382",
+ "md5": "3d51536a3582379389d821afa05becfd",
+ "size": "51052"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-12.9.82-archive.zip",
+ "sha256": "be23018507f015ca948c503a43a3c48449c0dc1ceaab1e721caf01f024727312",
+ "md5": "f5c1eaa20c7c8c67a564f04cec87fca2",
+ "size": "142316"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvprune/linux-aarch64/cuda_nvprune-linux-aarch64-12.9.82-archive.tar.xz",
+ "sha256": "69fa4cf2cede678825e0c8032ccd629e17de1b9d8667b05b6702d873fd2fb926",
+ "md5": "00c370560287a3dcdeedb32fe13e7e0e",
+ "size": "52876"
+ }
+ },
+ "cuda_nvrtc": {
+ "name": "CUDA NVRTC",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvrtc/LICENSE.txt",
+ "version": "12.9.86",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-12.9.86-archive.tar.xz",
+ "sha256": "82913658363892dbc0f2638b070476234476e06e084fed60db861cb7e161a6af",
+ "md5": "8ed74b72c44ee50759f820dee875589c",
+ "size": "114231976"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-12.9.86-archive.tar.xz",
+ "sha256": "fb2d50c791465f333fc2236d2419170cf7a7886f48dd9b967a10f8233c686029",
+ "md5": "483dc56df046c9c03eb17cd637bb8fc9",
+ "size": "53265740"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.9.86-archive.zip",
+ "sha256": "1aa0644fa53c8ca34cdc73db17bcc73530557bdd3f582c7bfdbd7916c8b48f65",
+ "md5": "76317f5006ce9de6720cea0b3bdc7db6",
+ "size": "314608748"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvrtc/linux-aarch64/cuda_nvrtc-linux-aarch64-12.9.86-archive.tar.xz",
+ "sha256": "785b0952c0f77dd0feb9a674f3fcca3fcf05541bbe27f70a5926da9f85339152",
+ "md5": "b49aeba8583248a4cd628154361d313d",
+ "size": "57633224"
+ }
+ },
+ "cuda_nvtx": {
+ "name": "CUDA NVTX",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvtx/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "819bc39192955e6ba2067de39b85f30e157de462945e54b12bfdeda429d793fb",
+ "md5": "3a56b3c5c1e20d99cff4c354e57ea30f",
+ "size": "64496"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "dae359c2c51f83a5cd402468f481a82aeb6d32d79dc707d3625607e83cf97ceb",
+ "md5": "d783ac2926973ad682c69270d047c3f3",
+ "size": "64856"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "b9d506ce9ba056bf171b60e9dada06fb3d8bed5453a6399d0541960bf9b81659",
+ "md5": "907cfcf3f3b637912ded30349ecfd515",
+ "size": "87029"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_nvtx/linux-aarch64/cuda_nvtx-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "f1a4366e45dbfd0a4e6210a5a4b9b51501aaebb6b58845d3f1b271ec3d7f3e15",
+ "md5": "6b40a46f73f46a7d8bac37b212989007",
+ "size": "65396"
+ }
+ },
+ "cuda_nvvp": {
+ "name": "CUDA NVVP",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_nvvp/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "6cdf9196373a848856c1afc6f1df1023649fb5fe77b896967ecc0b014b200003",
+ "md5": "0ded9b80cf8fc2c2233b28d582f2334e",
+ "size": "117732648"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "a7e1ac0de34c69afc288283ea75314b67f109b08d046c3622405dff8f66b0720",
+ "md5": "dd673788d3fae14c38af5c1506fae11d",
+ "size": "120342251"
+ }
+ },
+ "cuda_opencl": {
+ "name": "CUDA OpenCL",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_opencl/LICENSE.txt",
+ "version": "12.9.19",
+ "linux-x86_64": {
+ "relative_path": "cuda_opencl/linux-x86_64/cuda_opencl-linux-x86_64-12.9.19-archive.tar.xz",
+ "sha256": "1bddacc2f0de77901faad5fecfad8fef8136ea8dd708e02177d10eef97d85b78",
+ "md5": "d0a85b602afc8957374d3f536dfd0306",
+ "size": "94140"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_opencl/windows-x86_64/cuda_opencl-windows-x86_64-12.9.19-archive.zip",
+ "sha256": "7c78e05697a3f74510c4154b175ce4597ed0719c7793236ca7f3989eccae0ff6",
+ "md5": "e2dec7d45f8d87045c4a37bb882e9cf4",
+ "size": "139663"
+ }
+ },
+ "cuda_profiler_api": {
+ "name": "CUDA Profiler API",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_profiler_api/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_profiler_api/linux-x86_64/cuda_profiler_api-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "8c50636bfb97e9420905aa795b9fa6e3ad0b30ec6a6c8b0b8db519beb9241ce6",
+ "md5": "483998e0e5b012d976bf62ada20bd4fa",
+ "size": "16316"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_profiler_api/linux-sbsa/cuda_profiler_api-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "e07f47ef3aeb3a3ca995e9070d77d98ad79460216bf2075c9f9018962ae1d03b",
+ "md5": "55345cd640f299f8da43ef946dd8aa89",
+ "size": "16316"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "b05519f8ce4f02167bfc859358f62eb771d89ac2af3a6952a82317f2af4bc5bd",
+ "md5": "f5da20e1160f547602ec1c558dd0bc64",
+ "size": "20352"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_profiler_api/linux-aarch64/cuda_profiler_api-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "e26d82b4ce994dc445dc0191b1a5fe68dacc7290bfb9c2133b4979fe90e05433",
+ "md5": "738fe1e26407ab88e0fd3209b4da1cfa",
+ "size": "16308"
+ }
+ },
+ "cuda_sandbox_dev": {
+ "name": "CUDA nvsandboxutils Headers",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_sandbox_dev/LICENSE.txt",
+ "version": "12.9.19",
+ "linux-x86_64": {
+ "relative_path": "cuda_sandbox_dev/linux-x86_64/cuda_sandbox_dev-linux-x86_64-12.9.19-archive.tar.xz",
+ "sha256": "058c9616f9bb4e57c58996a053cf9a87f655c139dc2fa11af7bed74432bd8153",
+ "md5": "ce4326bc03b26b88a552db8b163d7f5f",
+ "size": "29172"
+ }
+ },
+ "cuda_sanitizer_api": {
+ "name": "CUDA Compute Sanitizer API",
+ "license": "CUDA Toolkit",
+ "license_path": "cuda_sanitizer_api/LICENSE.txt",
+ "version": "12.9.79",
+ "linux-x86_64": {
+ "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-12.9.79-archive.tar.xz",
+ "sha256": "e23aad21132ff58b92a22aad372a7048793400b79c625665d325d4ecec6979bf",
+ "md5": "9d138eb96c11e1b9293408e5b7a97114",
+ "size": "9758036"
+ },
+ "linux-sbsa": {
+ "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-12.9.79-archive.tar.xz",
+ "sha256": "281538927b6818d4687fad102c0603ab7b389513c9c129f3e0de8c61ac7f474d",
+ "md5": "3192ef7e50255f80430471ae6add0ebf",
+ "size": "7753752"
+ },
+ "windows-x86_64": {
+ "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "b1f366312cb52164dfe7b78463ab085b742f052e74b89e9da08561a8ca8b06e9",
+ "md5": "1821743a8a46f3e4bab0fe96dac813f8",
+ "size": "10103190"
+ },
+ "linux-aarch64": {
+ "relative_path": "cuda_sanitizer_api/linux-aarch64/cuda_sanitizer_api-linux-aarch64-12.9.79-archive.tar.xz",
+ "sha256": "2baaba3ff47eceb529ddcc866fc7e647fd02427ef3dbb8bec06689f919c14c69",
+ "md5": "e48b00b6ed2124ac4a3a0b20201ba4dd",
+ "size": "4808620"
+ }
+ },
+ "driver_assistant": {
+ "name": "NVIDIA Driver Assistant",
+ "license": "MIT",
+ "license_path": "driver_assistant/LICENSE.txt",
+ "version": "0.21.57.08",
+ "linux-all": {
+ "relative_path": "driver_assistant/source/driver_assistant-0.21.57.08-archive.tar.xz",
+ "sha256": "4904c08e1de1aa790d200f36528aaa672ab6b3c6620bbfe5e221312b9ef1120a",
+ "md5": "ebb37f4ad248ddba8071c570f5267da3",
+ "size": "38644"
+ }
+ },
+ "fabricmanager": {
+ "name": "NVIDIA Fabric Manager",
+ "license": "NVIDIA Driver",
+ "license_path": "fabricmanager/LICENSE.txt",
+ "version": "575.57.08",
+ "linux-x86_64": {
+ "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-575.57.08-archive.tar.xz",
+ "sha256": "2e7dc4db6788e618af345fb50dee63115b5116ccb57d6d27d93c1ff5e2c3a8cf",
+ "md5": "39f4aa35a3f7cda55297bb73c91a5481",
+ "size": "8077772"
+ },
+ "linux-sbsa": {
+ "relative_path": "fabricmanager/linux-sbsa/fabricmanager-linux-sbsa-575.57.08-archive.tar.xz",
+ "sha256": "239a7f8406987fb6d44cd4f7f6ba6e843b3f3acb7b1732e6ab5c0d370690ee85",
+ "md5": "4d288febfed83ff3d532ebbc692f65ec",
+ "size": "7336832"
+ }
+ },
+ "imex": {
+ "name": "Nvidia-Imex",
+ "license": "NVIDIA Proprietary",
+ "license_path": "imex/LICENSE.txt",
+ "version": "575.57.08",
+ "linux-x86_64": {
+ "relative_path": "imex/linux-x86_64/nvidia-imex-linux-x86_64-575.57.08-archive.tar.xz",
+ "sha256": "5dfe195429b0967788b7e9b4bab85d4936220d6d2f6cf394a61bd3439b437506",
+ "md5": "909fd5da3b23f54e39484efd187f4c3e",
+ "size": "7718644"
+ },
+ "linux-sbsa": {
+ "relative_path": "imex/linux-sbsa/nvidia-imex-linux-sbsa-575.57.08-archive.tar.xz",
+ "sha256": "36d1a49fb52294ef5352eeea457d131f3d14320fca0a56633d7798ab32eead18",
+ "md5": "bd3d1ce8d91e1fd7d26191c05292698e",
+ "size": "7149236"
+ }
+ },
+ "libcublas": {
+ "name": "CUDA cuBLAS",
+ "license": "CUDA Toolkit",
+ "license_path": "libcublas/LICENSE.txt",
+ "version": "12.9.1.4",
+ "linux-x86_64": {
+ "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-12.9.1.4-archive.tar.xz",
+ "sha256": "546addc4a9d82b8f23aa9ba9274b6bc0429a63008a31c759884ac24880796057",
+ "md5": "9b07f0c3d94534e56e003c6016b9771c",
+ "size": "933611504"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-12.9.1.4-archive.tar.xz",
+ "sha256": "e99b074e6f66034e563508118804599d7579f73afc8424c55ad5fd8d12e085a5",
+ "md5": "4c7cdc43283c0ba62e665b02e9ec7540",
+ "size": "932528492"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-12.9.1.4-archive.zip",
+ "sha256": "d534d98b0b453a98914dbf3adf47d7e84b55037abf02f87466439e1dcef581ed",
+ "md5": "3f092963b0767968fe6f02febc1b0cbf",
+ "size": "549755186"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcublas/linux-aarch64/libcublas-linux-aarch64-12.9.1.4-archive.tar.xz",
+ "sha256": "f75938d72153902cf08d1666311f35851e7eb6a16af743b2346bc68d7ba6b341",
+ "md5": "15f6396431885647e961af811a90cc06",
+ "size": "493899648"
+ }
+ },
+ "libcudla": {
+ "name": "cuDLA",
+ "license": "CUDA Toolkit",
+ "license_path": "libcudla/LICENSE.txt",
+ "version": "12.9.19",
+ "linux-aarch64": {
+ "relative_path": "libcudla/linux-aarch64/libcudla-linux-aarch64-12.9.19-archive.tar.xz",
+ "sha256": "ef7c1a05d9927c53aa089ec2217a1e999ffac0e776145d798bf784279fc79d40",
+ "md5": "dd1fc18bd0fe3ed38b87a453d31575a0",
+ "size": "38548"
+ }
+ },
+ "libcufft": {
+ "name": "CUDA cuFFT",
+ "license": "CUDA Toolkit",
+ "license_path": "libcufft/LICENSE.txt",
+ "version": "11.4.1.4",
+ "linux-x86_64": {
+ "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-11.4.1.4-archive.tar.xz",
+ "sha256": "b0e65af59b0c2f6c8ed9f5552a9b375890855b7926ae2c0404d15dcf2565bda4",
+ "md5": "3ffadd77d5b084470aa8d9215d760e76",
+ "size": "470942192"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-11.4.1.4-archive.tar.xz",
+ "sha256": "b87637db96e485f4793d7ca8bd2cf07250eca5c86f6c56744a36683418359c03",
+ "md5": "4a0906639fd293f529b8f949bc3ad9eb",
+ "size": "471560648"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-11.4.1.4-archive.zip",
+ "sha256": "f26f80bb9abff3269c548e1559e8c2b4ba58ccb8acc6095bbc6404fc962d4b80",
+ "md5": "504ad2e94fd0d923b8a7082659813431",
+ "size": "198361265"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcufft/linux-aarch64/libcufft-linux-aarch64-11.4.1.4-archive.tar.xz",
+ "sha256": "5d992b98f0d3d294e339ed2f65a477a587803c1567598a120349fae52596bf20",
+ "md5": "1f10a57d45e9078e940340cdeff26478",
+ "size": "471529132"
+ }
+ },
+ "libcufile": {
+ "name": "CUDA cuFile",
+ "license": "CUDA Toolkit",
+ "license_path": "libcufile/LICENSE.txt",
+ "version": "1.14.1.1",
+ "linux-x86_64": {
+ "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.14.1.1-archive.tar.xz",
+ "sha256": "7ba9834b8dc2f8cdb1710a49f3de3f627bbcd4cc1f8a754019c66c8c80fdaee7",
+ "md5": "e59833cbd8e423948fa5814a276315e3",
+ "size": "42129088"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcufile/linux-sbsa/libcufile-linux-sbsa-1.14.1.1-archive.tar.xz",
+ "sha256": "6b1d2a771bd822fdd06a6286eb59acba179b13fe063ae5b0de8fc0f4991a39d8",
+ "md5": "5a8499cdc22754fe5c9335065d708ea4",
+ "size": "41676328"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcufile/linux-aarch64/libcufile-linux-aarch64-1.14.1.1-archive.tar.xz",
+ "sha256": "196b61a1bf02b85e76c21bdfe414a3f4db4380df41d9212c9eb6d0aa92eee1ce",
+ "md5": "c7e269a01ecd2dc427941c5bc775c2ef",
+ "size": "41655988"
+ }
+ },
+ "libcurand": {
+ "name": "CUDA cuRAND",
+ "license": "CUDA Toolkit",
+ "license_path": "libcurand/LICENSE.txt",
+ "version": "10.3.10.19",
+ "linux-x86_64": {
+ "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.3.10.19-archive.tar.xz",
+ "sha256": "48281b4caadb1cf790d44ac76b23c77d06f474c0b1799814f314aafec9258ad6",
+ "md5": "e2fd0b8dd197f3bccc0ee19e5640fc93",
+ "size": "89582256"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.3.10.19-archive.tar.xz",
+ "sha256": "078afec842c99b3a953d62cc76bd74afa2d883dc436e6d642e6440bb1e85eb8e",
+ "md5": "fae5b6ce60678f452a2c760e8bf27563",
+ "size": "89544732"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.3.10.19-archive.zip",
+ "sha256": "d0411f0b8c07e90d0fb6e01bfa7a54c9cb80f2ddf67e4ded2d96a50e19aadad6",
+ "md5": "6ccce2f4f1f6d9592c908fa1cb91536d",
+ "size": "67904600"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcurand/linux-aarch64/libcurand-linux-aarch64-10.3.10.19-archive.tar.xz",
+ "sha256": "e5087640b5c9cd8bc173efb6a21f8388b24da59511cc3d57e60afc5e05d14b50",
+ "md5": "71ed8ff7a7e539c0be8ca4b699f2f3e1",
+ "size": "79761424"
+ }
+ },
+ "libcusolver": {
+ "name": "CUDA cuSOLVER",
+ "license": "CUDA Toolkit",
+ "license_path": "libcusolver/LICENSE.txt",
+ "version": "11.7.5.82",
+ "linux-x86_64": {
+ "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.7.5.82-archive.tar.xz",
+ "sha256": "3d3b96f3087dbc43893a28691b172f31725b316d524f5a3c1e6837257c898d06",
+ "md5": "efcc5d100623563d1a56dff59b45b65d",
+ "size": "324393196"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.7.5.82-archive.tar.xz",
+ "sha256": "db463593ffcbc78f542a7f1ef808da43bf742acae654d970d99a47289c2a83e5",
+ "md5": "63113f462dc11289f996eec8bab1db74",
+ "size": "323573816"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.7.5.82-archive.zip",
+ "sha256": "e991d64a0bbe3e0bb69ce2adce000244288002b0341894729666d66adb9b4f25",
+ "md5": "e2d79987f6e38f63cc64816f393a8e51",
+ "size": "322216184"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcusolver/linux-aarch64/libcusolver-linux-aarch64-11.7.5.82-archive.tar.xz",
+ "sha256": "45e2fefeee5797c0492d8a9ee26c3dbb7af0cdcefe6f1cd25bd586daa633d9a0",
+ "md5": "e311d62bfc65c6afc29152f6e923f78c",
+ "size": "113258352"
+ }
+ },
+ "libcusparse": {
+ "name": "CUDA cuSPARSE",
+ "license": "CUDA Toolkit",
+ "license_path": "libcusparse/LICENSE.txt",
+ "version": "12.5.10.65",
+ "linux-x86_64": {
+ "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-12.5.10.65-archive.tar.xz",
+ "sha256": "a83415dcd3e1183afe363d4740f9f0309cfe560c6c08016c2a61468304f4b848",
+ "md5": "c7ed952d12dec0f50a4386e5d09203f6",
+ "size": "398914580"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-12.5.10.65-archive.tar.xz",
+ "sha256": "8d1c8a57ba3eaecc3f7c11e29fed275a2f3dca5cea51dd2a24d07ab5d9998583",
+ "md5": "2d48c3aecca07be0a458a977350ce175",
+ "size": "398606816"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-12.5.10.65-archive.zip",
+ "sha256": "abb4bfc01198f82fbc956773ccb98c578c03027b6ad425e829355be0c0a11a4a",
+ "md5": "33ce31c3d880596c31304c965dbfcdce",
+ "size": "358114928"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcusparse/linux-aarch64/libcusparse-linux-aarch64-12.5.10.65-archive.tar.xz",
+ "sha256": "b294b6cd0acf5e68078d2fe4d41d95a4073fed780805adca7774bce7cbbe5b65",
+ "md5": "ce4d363d3affd40fe751f065ec2bd4cf",
+ "size": "131075108"
+ }
+ },
+ "libnpp": {
+ "name": "CUDA NPP",
+ "license": "CUDA Toolkit",
+ "license_path": "libnpp/LICENSE.txt",
+ "version": "12.4.1.87",
+ "linux-x86_64": {
+ "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-12.4.1.87-archive.tar.xz",
+ "sha256": "49351448d896854284ec708c14506eaaceb92aa01fbe35c91d5c52ad482e17ae",
+ "md5": "03de546e34ad54d0119594bc237c5e87",
+ "size": "331733872"
+ },
+ "linux-sbsa": {
+ "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-12.4.1.87-archive.tar.xz",
+ "sha256": "992d461905366cec4243b26ce7bfe997c0c0eabf53a001333025930a1a0c7237",
+ "md5": "8de3be3d9043a07011b0de46c49ea668",
+ "size": "330804724"
+ },
+ "windows-x86_64": {
+ "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-12.4.1.87-archive.zip",
+ "sha256": "cfcfbf59e4e5ce71113c058bd4eba3dd56e4db080932146d4047c0d44b4a558e",
+ "md5": "7549e1191510ae5ca9291e5f13c70296",
+ "size": "274109870"
+ },
+ "linux-aarch64": {
+ "relative_path": "libnpp/linux-aarch64/libnpp-linux-aarch64-12.4.1.87-archive.tar.xz",
+ "sha256": "50c9f80592eaf4f246c82475143768b848333d9f540782257d42023f5fe68fdf",
+ "md5": "869efb32d5ab9468fda4cb94848cf90f",
+ "size": "104647240"
+ }
+ },
+ "libnvfatbin": {
+ "name": "NVIDIA compiler library for fatbin interaction",
+ "license": "CUDA Toolkit",
+ "license_path": "libnvfatbin/LICENSE.txt",
+ "version": "12.9.82",
+ "linux-x86_64": {
+ "relative_path": "libnvfatbin/linux-x86_64/libnvfatbin-linux-x86_64-12.9.82-archive.tar.xz",
+ "sha256": "315be969a303437329bf72d7141babed024fc54f90a10aa748b03be8f826d57b",
+ "md5": "d5e2dc19c01ab62dbf437a1ef80847b1",
+ "size": "930820"
+ },
+ "linux-sbsa": {
+ "relative_path": "libnvfatbin/linux-sbsa/libnvfatbin-linux-sbsa-12.9.82-archive.tar.xz",
+ "sha256": "87bf71288ea7390d039b246fa794cad2ddd3b164ce9566f8542bb15039432cdb",
+ "md5": "91902ce86f6f55a4ecc948f95bf1c032",
+ "size": "836312"
+ },
+ "windows-x86_64": {
+ "relative_path": "libnvfatbin/windows-x86_64/libnvfatbin-windows-x86_64-12.9.82-archive.zip",
+ "sha256": "86563b25096bbc21d74b1c043701ec8596499f76b40e32f9ec9179fc10404d00",
+ "md5": "c0963a07d7f2cbffd34b0b1ec6cae5c0",
+ "size": "2217262"
+ },
+ "linux-aarch64": {
+ "relative_path": "libnvfatbin/linux-aarch64/libnvfatbin-linux-aarch64-12.9.82-archive.tar.xz",
+ "sha256": "248e77ede9afbd6060cda7de0475d222731ac021e22e696ce75ed72b426dfca9",
+ "md5": "814b2ff13e944a07669580eb85c0e653",
+ "size": "808780"
+ }
+ },
+ "libnvidia_nscq": {
+ "name": "NVIDIA NSCQ API",
+ "license": "NVIDIA Driver",
+ "license_path": "libnvidia_nscq/LICENSE.txt",
+ "version": "575.57.08",
+ "linux-x86_64": {
+ "relative_path": "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-575.57.08-archive.tar.xz",
+ "sha256": "7c54e959ee50212be8595e01ee76581c1f3a13c19b2279424b55a8d26385c41a",
+ "md5": "b86a87c4f9fd58a79ced07cf82cec271",
+ "size": "455504"
+ },
+ "linux-sbsa": {
+ "relative_path": "libnvidia_nscq/linux-sbsa/libnvidia_nscq-linux-sbsa-575.57.08-archive.tar.xz",
+ "sha256": "931004b8b2062249016a9bded2499f70331d27b265226ed879428b8bd7e4bb20",
+ "md5": "790ca3dd29b03a71f32ad1dd05611a9e",
+ "size": "446980"
+ }
+ },
+ "libnvjitlink": {
+ "name": "NVIDIA compiler library for JIT LTO functionality",
+ "license": "CUDA Toolkit",
+ "license_path": "libnvjitlink/LICENSE.txt",
+ "version": "12.9.86",
+ "linux-x86_64": {
+ "relative_path": "libnvjitlink/linux-x86_64/libnvjitlink-linux-x86_64-12.9.86-archive.tar.xz",
+ "sha256": "392cac3144b52ba14900bc7259ea6405ae6da88a8c704eab9bbbcc9ba4824b07",
+ "md5": "9156156146001536d1c8346783991d1b",
+ "size": "54021940"
+ },
+ "linux-sbsa": {
+ "relative_path": "libnvjitlink/linux-sbsa/libnvjitlink-linux-sbsa-12.9.86-archive.tar.xz",
+ "sha256": "9c9227c1e9122fd8448cafced3b32bc69f40d3c041d25034ea23611a1262852f",
+ "md5": "7fdf2864352ac613415327ebde38598b",
+ "size": "50981988"
+ },
+ "windows-x86_64": {
+ "relative_path": "libnvjitlink/windows-x86_64/libnvjitlink-windows-x86_64-12.9.86-archive.zip",
+ "sha256": "ee7175da9628d47ccc92dce6d28d57ca77633e79079a2aee90e2a645edcd1384",
+ "md5": "4cdb56f88316a5ade3edf69a1e7192e8",
+ "size": "265666466"
+ },
+ "linux-aarch64": {
+ "relative_path": "libnvjitlink/linux-aarch64/libnvjitlink-linux-aarch64-12.9.86-archive.tar.xz",
+ "sha256": "a24842165d98660d4ba9fd753395f7c9834445552110fabce4baa4c211fd2c52",
+ "md5": "548a35d56f08d07b1dc294a3c8172f71",
+ "size": "54783780"
+ }
+ },
+ "libnvjpeg": {
+ "name": "CUDA nvJPEG",
+ "license": "CUDA Toolkit",
+ "license_path": "libnvjpeg/LICENSE.txt",
+ "version": "12.4.0.76",
+ "linux-x86_64": {
+ "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-12.4.0.76-archive.tar.xz",
+ "sha256": "ddd8245b2803f5b55211261d7e5d7abf803c05f3b032238d0feaa6e09ea9401d",
+ "md5": "b9f7806fb279c9cdd0b4a40e4171b87b",
+ "size": "6378624"
+ },
+ "linux-sbsa": {
+ "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-12.4.0.76-archive.tar.xz",
+ "sha256": "405b5627ffd772d2837ae4ece123fdee841c34894dba2180a1c8e1b84c0f2665",
+ "md5": "bad1da3ec8865dbd3955a757bb6b7ba0",
+ "size": "6179324"
+ },
+ "windows-x86_64": {
+ "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-12.4.0.76-archive.zip",
+ "sha256": "b253241fc88bf30947b8ee068101aca8930960f113d8ee4a9583de021a79ffa1",
+ "md5": "d19d13f9bd3dbc9c9361a3c1fee99dd5",
+ "size": "4667529"
+ },
+ "linux-aarch64": {
+ "relative_path": "libnvjpeg/linux-aarch64/libnvjpeg-linux-aarch64-12.4.0.76-archive.tar.xz",
+ "sha256": "a9841bff40e577bec81352054e05c5d98720ae8e2ccfc4863eaac9dd35444c27",
+ "md5": "0a7197330938f8b5363d38bdde63562c",
+ "size": "1821640"
+ }
+ },
+ "libnvsdm": {
+ "name": "LIBNVSDM",
+ "license": "NVIDIA",
+ "license_path": "libnvsdm/LICENSE.txt",
+ "version": "575.57.08",
+ "linux-x86_64": {
+ "relative_path": "libnvsdm/linux-x86_64/libnvsdm-linux-x86_64-575.57.08-archive.tar.xz",
+ "sha256": "7a6ee934d5c328f9c05e967b63053c211f80485e0443ac119d887612a510ad53",
+ "md5": "788f7c59de54096d84dc7f645964ad2a",
+ "size": "500100"
+ }
+ },
+ "mft": {
+ "name": "NVLink 5 MFT",
+ "license": "NVIDIA Proprietary",
+ "license_path": "mft/LICENSE.txt",
+ "version": "4.30.1.510",
+ "linux-x86_64": {
+ "relative_path": "mft/linux-x86_64/mft-linux-x86_64-4.30.1.510-archive.tar.xz",
+ "sha256": "512714ab076d90d88550e60f5da65181363336cee94c67bff8821face8ef10b4",
+ "md5": "30698cf8741826df5ca3d4d3bb3a982c",
+ "size": "45536612"
+ },
+ "linux-sbsa": {
+ "relative_path": "mft/linux-sbsa/mft-linux-sbsa-4.30.1.510-archive.tar.xz",
+ "sha256": "95c05e1bc03ff81dffa58bfff26a1dd59c6300d6d5922662ae59c7af5788a310",
+ "md5": "78ef93686e91302f7b751fed8f83d9be",
+ "size": "44222004"
+ }
+ },
+ "mft_autocomplete": {
+ "name": "NVLink 5 MFT AUTOCOMPLETE",
+ "license": "NVIDIA Proprietary",
+ "license_path": "mft_autocomplete/LICENSE.txt",
+ "version": "4.30.1.510",
+ "linux-x86_64": {
+ "relative_path": "mft_autocomplete/linux-x86_64/mft_autocomplete-linux-x86_64-4.30.1.510-archive.tar.xz",
+ "sha256": "dc9069baa888c7ca0c3e55a3043d27b0100c29c81e6ed3346907dd49dabb1325",
+ "md5": "b65cb40bacfe276b3444920e8eef1f2f",
+ "size": "11884"
+ },
+ "linux-sbsa": {
+ "relative_path": "mft_autocomplete/linux-sbsa/mft_autocomplete-linux-sbsa-4.30.1.510-archive.tar.xz",
+ "sha256": "64647ce2a4de62e535ea7060d20d58c2613937071008c2a93894e1995facce2b",
+ "md5": "bf034fbf9f887d62434f83dc9727db80",
+ "size": "11880"
+ }
+ },
+ "mft_oem": {
+ "name": "NVLink 5 MFT OEM",
+ "license": "NVIDIA Proprietary",
+ "license_path": "mft_oem/LICENSE.txt",
+ "version": "4.30.1.510",
+ "linux-x86_64": {
+ "relative_path": "mft_oem/linux-x86_64/mft_oem-linux-x86_64-4.30.1.510-archive.tar.xz",
+ "sha256": "7a4729f8b91ba5c179820583189a4c95ffa9669312a28fe7ac03feebb726bbc3",
+ "md5": "7329d76d0e5b976f88ef1f2484d962de",
+ "size": "4708108"
+ },
+ "linux-sbsa": {
+ "relative_path": "mft_oem/linux-sbsa/mft_oem-linux-sbsa-4.30.1.510-archive.tar.xz",
+ "sha256": "b71bb03130b6dd3388a3e909cdf91cc9bca8b8098a8b80b5f376f5726e5b5e1c",
+ "md5": "e55a4d898553c2cf92be57724a8204e1",
+ "size": "4429188"
+ }
+ },
+ "nsight_compute": {
+ "name": "Nsight Compute",
+ "license": "NVIDIA SLA",
+ "license_path": "nsight_compute/LICENSE.txt",
+ "version": "2025.2.1.3",
+ "linux-x86_64": {
+ "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2025.2.1.3-archive.tar.xz",
+ "sha256": "02ab8867197aaf6a6ae3171293d70b6a9ddb20296be94ff4287741338cc2e1df",
+ "md5": "e81faf319af6b21f241bae535d3d1907",
+ "size": "300347320"
+ },
+ "linux-sbsa": {
+ "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2025.2.1.3-archive.tar.xz",
+ "sha256": "0e336a5139f76778b8ad70fdb49fb43817ec1bb3ee6e7425d59d99d8c455d976",
+ "md5": "18334b109fe6f10fdba2c2681726ba96",
+ "size": "107009604"
+ },
+ "windows-x86_64": {
+ "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2025.2.1.3-archive.zip",
+ "sha256": "e9d558654c98d83049969d133b98922b53ab8f4e3ba9e0a37bdb5e2ff300b7de",
+ "md5": "7cb9cff3e0718212866c7fbb4365dee5",
+ "size": "341265370"
+ },
+ "linux-aarch64": {
+ "relative_path": "nsight_compute/linux-aarch64/nsight_compute-linux-aarch64-2025.2.1.3-archive.tar.xz",
+ "sha256": "51c7762110c34728acd37878d4340f13612401fa622be0031b1a9e2ce112cfb2",
+ "md5": "355babae2f49f3f2c7ec1cf1c0b07966",
+ "size": "221171904"
+ }
+ },
+ "nsight_systems": {
+ "name": "Nsight Systems",
+ "license": "NVIDIA SLA",
+ "license_path": "nsight_systems/LICENSE.txt",
+ "version": "2025.1.3.140",
+ "linux-x86_64": {
+ "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2025.1.3.140-archive.tar.xz",
+ "sha256": "dded4227619340307be0ba5bc4e23bcbc966e2df3763170ebb20410c2b54754e",
+ "md5": "0b16c35f6e63a4fc33d14795e65bcd61",
+ "size": "1075732108"
+ },
+ "linux-sbsa": {
+ "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2025.1.3.140-archive.tar.xz",
+ "sha256": "479c46de1c459f7c760ef1ea5e5bbe61bfe7f4ba525ce4778d5ba25d874b8e1f",
+ "md5": "6d70406b53a94eba94d7c3552b938fe6",
+ "size": "980282844"
+ },
+ "windows-x86_64": {
+ "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2025.1.3.140-archive.zip",
+ "sha256": "8d61f266a8a1bc1ababd44de3ee38f7b85c8cdfcdaebace14c8f065d7624d0b3",
+ "md5": "b741046881531cbf6e3ccedb0b403432",
+ "size": "403084779"
+ }
+ },
+ "nsight_vse": {
+ "name": "Nsight Visual Studio Edition (VSE)",
+ "license": "NVIDIA SLA",
+ "license_path": "nsight_vse/LICENSE.txt",
+ "version": "2025.2.1.25125",
+ "windows-x86_64": {
+ "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2025.2.1.25125-archive.zip",
+ "sha256": "3f2b6ca8705929c97e0f931f0559921b110b9337cf11af5e017d0c95b5b31feb",
+ "md5": "7e74f479c09aece6e5b46c97d0d4cc86",
+ "size": "136237151"
+ }
+ },
+ "nvidia_driver": {
+ "name": "NVIDIA Linux Driver",
+ "license": "NVIDIA Driver",
+ "license_path": "nvidia_driver/LICENSE.txt",
+ "version": "575.57.08",
+ "linux-x86_64": {
+ "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-575.57.08-archive.tar.xz",
+ "sha256": "27ddfabde120a107527cbf88a6c96d1f81ee5c977462ce1a793051a3e678f552",
+ "md5": "9007dddd1e2d48f897958b676fbe30ff",
+ "size": "471616744"
+ },
+ "linux-sbsa": {
+ "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-575.57.08-archive.tar.xz",
+ "sha256": "4a7d1accb257f2539ff7dabb02319339fc3a8db622073e5dde33a5446910346a",
+ "md5": "3c2b686f392789d8f3a1db1ae2ad62be",
+ "size": "349127420"
+ }
+ },
+ "nvidia_fs": {
+ "name": "NVIDIA filesystem",
+ "license": "CUDA Toolkit",
+ "license_path": "nvidia_fs/LICENSE.txt",
+ "version": "2.25.7",
+ "linux-x86_64": {
+ "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.25.7-archive.tar.xz",
+ "sha256": "6e11ec0b885177ab21f4b864ff7417ea3cc1b0994f1c318767984557cd5b29d1",
+ "md5": "60d2fa54d55b739302e3db38a8a389c9",
+ "size": "60280"
+ },
+ "linux-sbsa": {
+ "relative_path": "nvidia_fs/linux-sbsa/nvidia_fs-linux-sbsa-2.25.7-archive.tar.xz",
+ "sha256": "62baf0beac2d446c0ff033fb3780cf348ab9c090d7903c210106dc98bb29d7eb",
+ "md5": "3859bed4b5e330cde0e2316f9cdcdaeb",
+ "size": "60296"
+ },
+ "linux-aarch64": {
+ "relative_path": "nvidia_fs/linux-aarch64/nvidia_fs-linux-aarch64-2.25.7-archive.tar.xz",
+ "sha256": "b8c67e28e9e23453183fb7d12ed9fed449427b2c11a21b1de4e7046a57d8d366",
+ "md5": "5128c63c80c1089340b65807445d921a",
+ "size": "60272"
+ }
+ },
+ "nvlsm": {
+ "name": "NVLSM SM component",
+ "license": "NVIDIA Proprietary",
+ "license_path": "nvlsm/LICENSE.txt",
+ "version": "2025.03.1",
+ "linux-x86_64": {
+ "relative_path": "nvlsm/linux-x86_64/nvlsm-linux-x86_64-2025.03.1-archive.tar.xz",
+ "sha256": "b034dad10a3154359e244b85206cd73f0fbce8e1cdf76058417b7b562c337388",
+ "md5": "6e09669fe8e4fb26e5334a1c4aa9dabb",
+ "size": "6890300"
+ },
+ "linux-sbsa": {
+ "relative_path": "nvlsm/linux-sbsa/nvlsm-linux-sbsa-2025.03.1-archive.tar.xz",
+ "sha256": "e260285ec01c6beb562a14625e9564b96374bb824ec62cc9866066a48710fa54",
+ "md5": "bc90989f567c27d8b39e607f719acba8",
+ "size": "6175832"
+ }
+ },
+ "visual_studio_integration": {
+ "name": "CUDA Visual Studio Integration",
+ "license": "CUDA Toolkit",
+ "license_path": "visual_studio_integration/LICENSE.txt",
+ "version": "12.9.79",
+ "windows-x86_64": {
+ "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.9.79-archive.zip",
+ "sha256": "d5b6514866395f52f04107da1aa523954f8dc76daf18a9f8699c3d564f294449",
+ "md5": "680fbdf0f345619c1fa3de5f1fc79090",
+ "size": "864204"
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cudnn/README.md b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/README.md
new file mode 100644
index 000000000000..ca6a04ea7074
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/README.md
@@ -0,0 +1,8 @@
+# cudnn
+
+Link:
+
+Requirements:
+
+8.9.7 is the latest release from the 8.x series and supports everything but Jetson.
+8.9.5 is the latest release from the 8.x series that supports Jetson.
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.5.json b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.5.json
new file mode 100644
index 000000000000..6d1962435bfa
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.5.json
@@ -0,0 +1,139 @@
+{
+ "release_date": "2024-03-15",
+ "release_label": "8.9.5",
+ "release_product": "cudnn",
+ "cudnn": {
+ "name": "NVIDIA CUDA Deep Neural Network library",
+ "license": "cudnn",
+ "license_path": "cudnn/LICENSE.txt",
+ "version": "8.9.5.30",
+ "cuda_variant": [
+ "11",
+ "12"
+ ],
+ "linux-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "bbe10e3c08cd7e4aea1012213781e4fe270e1c908263444f567cafefb2cc6525",
+ "md5": "300aaaa05ca6d12b3ac058fd0bd70c6b",
+ "size": "857471712"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "2a2eb89a2ab51071151c6082f1e816c702167a711a9372f9f73a7b5c4b06e01a",
+ "md5": "afb13f2d7377f4a16b54a6acc373bbd9",
+ "size": "861488496"
+ }
+ },
+ "linux-ppc64le": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-ppc64le/cudnn-linux-ppc64le-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "d678f8b2903b95de7eeaef38890c5674705864ea049b2b63e90565f2c0ea682f",
+ "md5": "daed75ed0c9f4dcc5b9521d2a833be3d",
+ "size": "860245008"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-ppc64le/cudnn-linux-ppc64le-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "38388ec3c99c6646aaf5c707985cd35e25c67f653d780c4081c2df5557ab665f",
+ "md5": "8893605a415202937ad9f2587e7a16ce",
+ "size": "862346664"
+ }
+ },
+ "linux-sbsa": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "50e3d38cb70a53bb059da0aefc60e1460729c6988e2697200c43b80d218e556c",
+ "md5": "3479f3fdbda83cd6df104851dc1f940a",
+ "size": "857816268"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "107d3dbec6345e1a3879a151cf3cbf6a2d96162c7b8eeb2ff85b84a67e79e2d1",
+ "md5": "90715ef0e48f6f153587ee59df7c1a87",
+ "size": "859978180"
+ }
+ },
+ "windows-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-8.9.5.30_cuda11-archive.zip",
+ "sha256": "e42aaa92203cc101a1619656ae50852a0d818a06ca99684c5f51ba95bd7a7cf9",
+ "md5": "d2f4fbc710da61253570306ed2e63ac4",
+ "size": "701179425"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-8.9.5.30_cuda12-archive.zip",
+ "sha256": "be76d407ce0e609f94688aa45bfd5648fd21a4d9f84a588fad10aa4802ca1301",
+ "md5": "54146d8da6df9da3ef125171da959dcf",
+ "size": "705347747"
+ }
+ },
+ "linux-aarch64": {
+ "cuda12": {
+ "relative_path": "cudnn/linux-aarch64/cudnn-linux-aarch64-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "0491f7b02f55c22077eb678bf314c1f917524bd507cf5b658239bf98a47233a1",
+ "md5": "fffd4a177c3e2ebaaceb83131d69e4e3",
+ "size": "891432124"
+ }
+ }
+ },
+ "cudnn_samples": {
+ "name": "NVIDIA cuDNN samples",
+ "license": "cudnn",
+ "license_path": "cudnn_samples/LICENSE.txt",
+ "version": "8.9.5.30",
+ "cuda_variant": [
+ "11",
+ "12"
+ ],
+ "linux-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-x86_64/cudnn_samples-linux-x86_64-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "9c0d951788461f6e9e000209cf4b100839effd1fd300371dfa6929552c8b1d4e",
+ "md5": "dcbdaaa0171aa6b8331fcd6218558953",
+ "size": "1665468"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-x86_64/cudnn_samples-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "441d262d82888c6ca5a02c8ad0f07c3a876be7b473bc2ec2638d86ea2e80a884",
+ "md5": "a2ca6bf77b610024aff5c1a7ee53ea01",
+ "size": "1664272"
+ }
+ },
+ "linux-ppc64le": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-ppc64le/cudnn_samples-linux-ppc64le-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "ded84be373031ff843c0b7118e9fdb48b06ec763eae3c76cb9c57e121b47c228",
+ "md5": "d4d76362cf7ba0a0711088c38a3e17a7",
+ "size": "1666372"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-ppc64le/cudnn_samples-linux-ppc64le-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "275d6a6671c210d4c4a92240de24cba0c5ca17e9007f91656b18bbff81621f81",
+ "md5": "b13c3befd24473ad536ef6ea3f4dc939",
+ "size": "1666788"
+ }
+ },
+ "linux-sbsa": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-sbsa/cudnn_samples-linux-sbsa-8.9.5.30_cuda11-archive.tar.xz",
+ "sha256": "fa2150dff6f574fb2927bfd2d10b5c2e2e90603f59d3d3371eaa41f2e9528c74",
+ "md5": "80783b38089b6573943959e873693f0a",
+ "size": "1665660"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-sbsa/cudnn_samples-linux-sbsa-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "af98dec9cf613cb7f67e27f5a5da24fc183996fc25a875aa0a7dc2914c986fe3",
+ "md5": "5f5b67f5d2862190ae9440ca7041b7a5",
+ "size": "1668336"
+ }
+ },
+ "linux-aarch64": {
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-aarch64/cudnn_samples-linux-aarch64-8.9.5.30_cuda12-archive.tar.xz",
+ "sha256": "044c0d4436e1ecff6785a8bacf45cf2b5d504eb1c04bb9617aed86bfea77e45f",
+ "md5": "ad2c201cf63561b5f0ddf505706eed97",
+ "size": "1663868"
+ }
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.7.json b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.7.json
new file mode 100644
index 000000000000..b5940fd5275c
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_8.9.7.json
@@ -0,0 +1,123 @@
+{
+ "release_date": "2024-03-15",
+ "release_label": "8.9.7",
+ "release_product": "cudnn",
+ "cudnn": {
+ "name": "NVIDIA CUDA Deep Neural Network library",
+ "license": "cudnn",
+ "license_path": "cudnn/LICENSE.txt",
+ "version": "8.9.7.29",
+ "cuda_variant": [
+ "11",
+ "12"
+ ],
+ "linux-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "a3e2509028cecda0117ce5a0f42106346e82e86d390f4bb9475afc976c77402e",
+ "md5": "9ee28df53dc5f83d97f5406f880d3953",
+ "size": "860967256"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "475333625c7e42a7af3ca0b2f7506a106e30c93b1aa0081cd9c13efb6e21e3bb",
+ "md5": "046e32d5ab0fdc56878e9b33f3a6883d",
+ "size": "864984964"
+ }
+ },
+ "linux-ppc64le": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-ppc64le/cudnn-linux-ppc64le-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "f23fd7d59f9d4f743fa926f317dab0d37f6ea21edb2726ceb607bea45b0f9f36",
+ "md5": "44d8f80a90b6ba44379727a49a75b1fc",
+ "size": "863759764"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-ppc64le/cudnn-linux-ppc64le-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "8574d291b299f9cc0134304473c9933bd098cc717e8d0876f4aba9f9eebe1b76",
+ "md5": "7acbeb71d48373ea343c13028172c783",
+ "size": "865846096"
+ }
+ },
+ "linux-sbsa": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "91c37cfb458f541419e98510f13aaf5975c0232c613e18b776385490074eea17",
+ "md5": "b4ae46fb80f2f8ef283d038585bbb122",
+ "size": "861355724"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "e98b7c80010785e5d5ca01ee4ce9b5b0c8c73587ea6f8648be34d3f8d1d47bd1",
+ "md5": "52a436f378d20b8e1e1a8a173a8bdeda",
+ "size": "863497272"
+ }
+ },
+ "windows-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip",
+ "sha256": "5e45478efe71a96329e6c0d2a3a2f79c747c15b2a51fead4b84c89b02cbf1671",
+ "md5": "7dddb764c0a608ac23e72761be4c92c0",
+ "size": "704240064"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip",
+ "sha256": "94fc17af8e83a26cc5d231ed23981b28c29c3fc2e87b1844ea3f46486f481df5",
+ "md5": "30f8a180be36451511306f7837270214",
+ "size": "708408517"
+ }
+ }
+ },
+ "cudnn_samples": {
+ "name": "NVIDIA cuDNN samples",
+ "license": "cudnn",
+ "license_path": "cudnn_samples/LICENSE.txt",
+ "version": "8.9.7.29",
+ "cuda_variant": [
+ "11",
+ "12"
+ ],
+ "linux-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-x86_64/cudnn_samples-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "8b17f56e9d654d9af3d7711645811fb6f240f53bc2d62c00c063a6d452d80091",
+ "md5": "b5410e97c73ea206b3d8939ce6ff8832",
+ "size": "1664448"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-x86_64/cudnn_samples-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "d3a9a4f3f74b04c393bb9152fe3a53ac1514da679ca57858d69f64243debb905",
+ "md5": "348306c65eb4c865fba72332fa7a5f33",
+ "size": "1665932"
+ }
+ },
+ "linux-ppc64le": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-ppc64le/cudnn_samples-linux-ppc64le-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "29a18538f13a63ee54cd795c78f64a1ca45df2de0b140cf095281a16d1d4d4e3",
+ "md5": "9f398a26a5c7913faf58e8ee3bd9c6ff",
+ "size": "1665244"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-ppc64le/cudnn_samples-linux-ppc64le-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "80664b7a6abed08633e0dc238f47f26aaaa0add5571bf6f4f4e475686a702c8d",
+ "md5": "6aa5e8e801b5f730a103aaf52c66485e",
+ "size": "1668400"
+ }
+ },
+ "linux-sbsa": {
+ "cuda11": {
+ "relative_path": "cudnn_samples/linux-sbsa/cudnn_samples-linux-sbsa-8.9.7.29_cuda11-archive.tar.xz",
+ "sha256": "dd7b618f4af89fff9cdad9cd87dbc4380c7f6120460c174bd10fef6342099915",
+ "md5": "841a6dde4037a39f7ddd0fb92f245c9d",
+ "size": "1666176"
+ },
+ "cuda12": {
+ "relative_path": "cudnn_samples/linux-sbsa/cudnn_samples-linux-sbsa-8.9.7.29_cuda12-archive.tar.xz",
+ "sha256": "4d84211d62e636ad3728674e55e9ce91e29c78d071fcb78453f8a71902758836",
+ "md5": "0e80992ee19918efd714199f41cbe24b",
+ "size": "1664288"
+ }
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_9.8.0.json b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_9.8.0.json
new file mode 100644
index 000000000000..3265e008f6a6
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cudnn/redistrib_9.8.0.json
@@ -0,0 +1,77 @@
+{
+ "release_date": "2025-03-04",
+ "release_label": "9.8.0",
+ "release_product": "cudnn",
+ "cudnn": {
+ "name": "NVIDIA CUDA Deep Neural Network library",
+ "license": "cudnn",
+ "license_path": "cudnn/LICENSE.txt",
+ "version": "9.8.0.87",
+ "linux-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-9.8.0.87_cuda11-archive.tar.xz",
+ "sha256": "cf4dfaef8311d987d640a322f668cd5240ac3e5302abe9617dd991b5b2532758",
+ "md5": "f8cc1eb607dd83dbaa12f9ba80934cbb",
+ "size": "561520128"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-x86_64/cudnn-linux-x86_64-9.8.0.87_cuda12-archive.tar.xz",
+ "sha256": "321b9b33bb1287404d93d5672d352f16feabc4b220ac6ae0b86e4b27f257dcf4",
+ "md5": "3674444654eb59b6f4c919103a8531af",
+ "size": "923946888"
+ }
+ },
+ "cuda_variant": [
+ "11",
+ "12"
+ ],
+ "linux-sbsa": {
+ "cuda11": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-9.8.0.87_cuda11-archive.tar.xz",
+ "sha256": "8ff117715fb3323032d1b489880117556ad8b5e57a9060143f0cb72384db7710",
+ "md5": "b38a6fba3c53ded236b5596d405c7ef6",
+ "size": "560558204"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/linux-sbsa/cudnn-linux-sbsa-9.8.0.87_cuda12-archive.tar.xz",
+ "sha256": "22f62f474f0cbb35bef540adb1d841da63c9cd3df76b3c4e43010f436b2cd85c",
+ "md5": "3ec9ec13b42e5f43f49cfa63f83b46fa",
+ "size": "922963076"
+ }
+ },
+ "windows-x86_64": {
+ "cuda11": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-9.8.0.87_cuda11-archive.zip",
+ "sha256": "b2995837e6b9a5b3816a0cd90480769cd4280f965c2ef0848debf029f391ca8f",
+ "md5": "39b78253550678399367b160d7503e04",
+ "size": "422255533"
+ },
+ "cuda12": {
+ "relative_path": "cudnn/windows-x86_64/cudnn-windows-x86_64-9.8.0.87_cuda12-archive.zip",
+ "sha256": "d8a23705e3884b137b7e05449fb2b61bfa524e7cfc3fda80743d633f423c6ce4",
+ "md5": "c9926e3b1638d775ae384837ccd97c72",
+ "size": "675349654"
+ }
+ },
+ "linux-aarch64": {
+ "cuda12": {
+ "relative_path": "cudnn/linux-aarch64/cudnn-linux-aarch64-9.8.0.87_cuda12-archive.tar.xz",
+ "sha256": "f03ece3ff07d1719f06218973a8797cec1be387cc317baab5bb118dc988199e7",
+ "md5": "989ba35d01495ea4c66097b021eb7cda",
+ "size": "964790260"
+ }
+ }
+ },
+ "cudnn_samples": {
+ "name": "NVIDIA cuDNN samples",
+ "license": "cudnn",
+ "license_path": "cudnn_samples/LICENSE.txt",
+ "version": "9.8.0.87",
+ "source": {
+ "relative_path": "cudnn_samples/source/cudnn_samples-source-9.8.0.87-archive.tar.xz",
+ "sha256": "2a63562a3a9b2cdcd9d8bce1dcc106a3cc9f47a6448b7a77b0e3b8f8776d0a41",
+ "md5": "e0a198f07791ece1d635d56c9626132a",
+ "size": "1666724"
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/README.md b/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/README.md
new file mode 100644
index 000000000000..80252fca2261
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/README.md
@@ -0,0 +1,7 @@
+# cusparselt
+
+Link:
+
+Requirements:
+
+NOTE: 0.7.1 only supports CUDA 12.8 and later.
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/redistrib_0.6.3.json b/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/redistrib_0.6.3.json
new file mode 100644
index 000000000000..d2d8279c9d75
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/redistrib_0.6.3.json
@@ -0,0 +1,35 @@
+{
+ "release_date": "2024-10-15",
+ "release_label": "0.6.3",
+ "release_product": "cusparselt",
+ "libcusparse_lt": {
+ "name": "NVIDIA cuSPARSELt",
+ "license": "cuSPARSELt",
+ "license_path": "libcusparse_lt/LICENSE.txt",
+ "version": "0.6.3.2",
+ "linux-x86_64": {
+ "relative_path": "libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-0.6.3.2-archive.tar.xz",
+ "sha256": "a2f856e78943f5c538bdef1c9edc64a5ed30bf8bb7d5fcb615c684ffe776cc31",
+ "md5": "d074824e3dc6c382160873a8ef49c098",
+ "size": "110698912"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcusparse_lt/linux-sbsa/libcusparse_lt-linux-sbsa-0.6.3.2-archive.tar.xz",
+ "sha256": "3e420ddbff4eb9ac603f57c7aa8b3d5271112816e244eb55ef9f30c4eb6a04b7",
+ "md5": "dd6b0dd464bb8596950ab761890e1ae1",
+ "size": "109919332"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcusparse_lt/windows-x86_64/libcusparse_lt-windows-x86_64-0.6.3.2-archive.zip",
+ "sha256": "6d276e33a399008c22ffefd707eefe2f57ff2ff8f1dc1929d9e3e75d3c83562d",
+ "md5": "95de6b57ceceb199f9b86bfbe5d2d394",
+ "size": "328143559"
+ },
+ "linux-aarch64": {
+ "relative_path": "libcusparse_lt/linux-aarch64/libcusparse_lt-linux-aarch64-0.6.3.2-archive.tar.xz",
+ "sha256": "91501d0c05d1ff0dd67399ecd7c1bf76a620e842dce54ae4c8a1f07cec0673e5",
+ "md5": "7f00c8663678a97948bbd2e98b65a9fa",
+ "size": "19000276"
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/cusparselt/manifests/redistrib_0.7.1.json b/pkgs/development/cuda-modules/_cuda/manifests/cusparselt/redistrib_0.7.1.json
similarity index 100%
rename from pkgs/development/cuda-modules/cusparselt/manifests/redistrib_0.7.1.json
rename to pkgs/development/cuda-modules/_cuda/manifests/cusparselt/redistrib_0.7.1.json
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cutensor/README.md b/pkgs/development/cuda-modules/_cuda/manifests/cutensor/README.md
new file mode 100644
index 000000000000..5df404c3f6f9
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cutensor/README.md
@@ -0,0 +1,5 @@
+# cutensor
+
+Link:
+
+Requirements:
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/cutensor/redistrib_2.2.0.json b/pkgs/development/cuda-modules/_cuda/manifests/cutensor/redistrib_2.2.0.json
new file mode 100644
index 000000000000..fa14d26a4d48
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/cutensor/redistrib_2.2.0.json
@@ -0,0 +1,29 @@
+{
+ "release_date": "2025-03-13",
+ "release_label": "2.2.0",
+ "release_product": "cutensor",
+ "libcutensor": {
+ "name": "NVIDIA cuTENSOR",
+ "license": "cuTensor",
+ "license_path": "libcutensor/LICENSE.txt",
+ "version": "2.2.0.0",
+ "linux-x86_64": {
+ "relative_path": "libcutensor/linux-x86_64/libcutensor-linux-x86_64-2.2.0.0-archive.tar.xz",
+ "sha256": "db76dcbe997615ef8bc1e04c385e9a1e2016430afee7d6a242663baf17108dbf",
+ "md5": "48d7be41aa46cc1eb75b6603495a245e",
+ "size": "703852896"
+ },
+ "linux-sbsa": {
+ "relative_path": "libcutensor/linux-sbsa/libcutensor-linux-sbsa-2.2.0.0-archive.tar.xz",
+ "sha256": "484791c8967a4137c544304e7d475b1cd753d9aad5d835ae6794f68087b1175a",
+ "md5": "dc0032e78d875068424010abf1aef6f0",
+ "size": "694257044"
+ },
+ "windows-x86_64": {
+ "relative_path": "libcutensor/windows-x86_64/libcutensor-windows-x86_64-2.2.0.0-archive.zip",
+ "sha256": "b1f5c7b399f8124ccf70e4df751e43757b7727e1028ec04a27a4a63efff06885",
+ "md5": "db4563d3ee67f3bf6af4db31d326917d",
+ "size": "1288139786"
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/default.nix b/pkgs/development/cuda-modules/_cuda/manifests/default.nix
new file mode 100644
index 000000000000..8f33ebbfb413
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/default.nix
@@ -0,0 +1,19 @@
+{ lib }:
+lib.mapAttrs (
+ redistName: _type:
+ let
+ redistManifestDir = ./. + "/${redistName}";
+ in
+ lib.concatMapAttrs (
+ fileName: _type:
+ let
+ # Manifests all end in .json and are named "redistrib_.json".
+ version = lib.removePrefix "redistrib_" (lib.removeSuffix ".json" fileName);
+ in
+ # NOTE: We do not require that all files have this pattern, as manifest directories may contain documentation
+ # and utility functions we should ignore.
+ lib.optionalAttrs (version != fileName) {
+ "${version}" = lib.importJSON (redistManifestDir + "/${fileName}");
+ }
+ ) (builtins.readDir redistManifestDir)
+) (builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ])
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/README.md b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/README.md
new file mode 100644
index 000000000000..a87a58ef70a6
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/README.md
@@ -0,0 +1,30 @@
+# tensorrt
+
+Requirements:
+
+These redistributable manifests are made by hand to allow TensorRT to be packaged with the same functionality the other NVIDIA redistributable libraries are packaged with.
+
+Only available from 10.0.0 and onwards, which is when NVIDIA stopped putting them behind a login wall.
+
+You can find them at: .
+
+Construct entries using the provider `helper.sh` script.
+
+As an example:
+
+```console
+$ ./tensorrt/helper.sh 12.5 10.2.0.19 windows-x86_64
+main: storePath: /nix/store/l2hq83ihj3bcm4z836cz2dw3ilkhwrpy-TensorRT-10.2.0.19.Windows.win10.cuda-12.5.zip
+{
+ "windows-x86_64": {
+ "cuda12": {
+ "md5": "70282ec501c9e395a3ffdd0d2baf9d95",
+ "relative_path": "tensorrt/10.2.0/zip/TensorRT-10.2.0.19.Windows.win10.cuda-12.5.zip",
+ "sha256": "4a9c6e279fd36559551a6d88e37d835db5ebdc950246160257b0b538960e57fa",
+ "size": "1281366141"
+ }
+ }
+}
+```
+
+I set the `release_date` to the date of the corresponding release on their GitHub: .
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/helper.sh b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/helper.sh
new file mode 100755
index 000000000000..ab7431e7bfba
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/helper.sh
@@ -0,0 +1,130 @@
+#!/usr/bin/env bash
+
+# Requires nix and jq
+
+set -euo pipefail
+
+mkRedistUrlRelativePath() {
+ local -r cudaMajorMinorVersion=${1:?}
+ local -r tensorrtMajorMinorPatchBuildVersion=${2:?}
+ local -r redistSystem=${3:?}
+
+ local -r tensorrtMajorMinorPatchVersion="$(echo "$tensorrtMajorMinorPatchBuildVersion" | cut -d. -f1-3)"
+ local -r tensorrtMinorVersion="$(echo "$tensorrtMajorMinorPatchVersion" | cut -d. -f2)"
+
+ local archiveDir=""
+ local archiveExtension=""
+ local osName=""
+ local platformName=""
+ case "$redistSystem" in
+ linux-aarch64) archiveDir="tars" && archiveExtension="tar.gz" && osName="l4t" && platformName="aarch64-gnu" ;;
+ linux-sbsa)
+ archiveDir="tars" && archiveExtension="tar.gz" && platformName="aarch64-gnu"
+ # 10.0-10.3 use Ubuntu 22.40
+ # 10.4-10.6 use Ubuntu 24.04
+ # 10.7+ use Linux
+ case "$tensorrtMinorVersion" in
+ 0 | 1 | 2 | 3) osName="Ubuntu-22.04" ;;
+ 4 | 5 | 6) osName="Ubuntu-24.04" ;;
+ *) osName="Linux" ;;
+ esac
+ ;;
+ linux-x86_64) archiveDir="tars" && archiveExtension="tar.gz" && osName="Linux" && platformName="x86_64-gnu" ;;
+ windows-x86_64)
+ archiveExtension="zip" && platformName="win10"
+ # Windows info is different for 10.0.*
+ case "$tensorrtMinorVersion" in
+ 0) archiveDir="zips" && osName="Windows10" ;;
+ *) archiveDir="zip" && osName="Windows" ;;
+ esac
+ ;;
+ *)
+ echo "mkRedistUrlRelativePath: Unsupported redistSystem: $redistSystem" >&2
+ exit 1
+ ;;
+ esac
+
+ local -r relativePath="tensorrt/$tensorrtMajorMinorPatchVersion/$archiveDir/TensorRT-${tensorrtMajorMinorPatchBuildVersion}.${osName}.${platformName}.cuda-${cudaMajorMinorVersion}.${archiveExtension}"
+ echo "$relativePath"
+}
+
+getNixStorePath() {
+ local -r relativePath=${1:?}
+ local -r jsonBlob="$(nix store prefetch-file --json "https://developer.nvidia.com/downloads/compute/machine-learning/$relativePath")"
+ if [[ -z $jsonBlob ]]; then
+ echo "getNixStorePath: Failed to fetch jsonBlob for relativePath: $relativePath" >&2
+ exit 1
+ fi
+ local -r storePath="$(echo "$jsonBlob" | jq -cr '.storePath')"
+ echo "$storePath"
+}
+
+printOutput() {
+ local -r cudaMajorMinorVersion=${1:?}
+ local -r redistSystem=${2:?}
+ local -r md5Hash=${3:?}
+ local -r relativePath=${4:?}
+ local -r sha256Hash=${5:?}
+ local -r size=${6:?}
+
+ local -r cudaVariant="cuda$(echo "$cudaMajorMinorVersion" | cut -d. -f1)"
+
+ # Echo everything to stdout using JQ to format the output as JSON
+ jq \
+ --raw-output \
+ --sort-keys \
+ --null-input \
+ --arg redistSystem "$redistSystem" \
+ --arg cudaVariant "$cudaVariant" \
+ --arg md5Hash "$md5Hash" \
+ --arg relativePath "$relativePath" \
+ --arg sha256Hash "$sha256Hash" \
+ --arg size "$size" \
+ '{
+ $redistSystem: {
+ $cudaVariant: {
+ md5: $md5Hash,
+ relative_path: $relativePath,
+ sha256: $sha256Hash,
+ size: $size
+ }
+ }
+ }'
+}
+
+main() {
+ local -r cudaMajorMinorVersion=${1:?}
+ if [[ ! $cudaMajorMinorVersion =~ ^[0-9]+\.[0-9]+$ ]]; then
+ echo "main: Invalid cudaMajorMinorVersion: $cudaMajorMinorVersion" >&2
+ exit 1
+ fi
+
+ local -r tensorrtMajorMinorPatchBuildVersion=${2:?}
+ if [[ ! $tensorrtMajorMinorPatchBuildVersion =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+ echo "main: Invalid tensorrtMajorMinorPatchBuildVersion: $tensorrtMajorMinorPatchBuildVersion" >&2
+ exit 1
+ fi
+
+ local -r redistSystem=${3:?}
+ case "$redistSystem" in
+ linux-aarch64) ;;
+ linux-sbsa) ;;
+ linux-x86_64) ;;
+ windows-x86_64) ;;
+ *)
+ echo "main: Unsupported redistSystem: $redistSystem" >&2
+ exit 1
+ ;;
+ esac
+
+ local -r relativePath="$(mkRedistUrlRelativePath "$cudaMajorMinorVersion" "$tensorrtMajorMinorPatchBuildVersion" "$redistSystem")"
+ local -r storePath="$(getNixStorePath "$relativePath")"
+ echo "main: storePath: $storePath" >&2
+ local -r md5Hash="$(nix hash file --type md5 --base16 "$storePath")"
+ local -r sha256Hash="$(nix hash file --type sha256 --base16 "$storePath")"
+ local -r size="$(du -b "$storePath" | cut -f1)"
+
+ printOutput "$cudaMajorMinorVersion" "$redistSystem" "$md5Hash" "$relativePath" "$sha256Hash" "$size"
+}
+
+main "$@"
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.7.0.json b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.7.0.json
new file mode 100644
index 000000000000..58c70ca39332
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.7.0.json
@@ -0,0 +1,37 @@
+{
+ "release_date": "2024-12-02",
+ "release_label": "10.7.0",
+ "release_product": "tensorrt",
+ "tensorrt": {
+ "name": "NVIDIA TensorRT",
+ "license": "TensorRT",
+ "version": "10.7.0.23",
+ "cuda_variant": [
+ "12"
+ ],
+ "linux-aarch64": {
+ "cuda12": {
+ "md5": "ec486c783455bf31a2561f2b7874585e",
+ "relative_path": "tensorrt/10.7.0/tars/TensorRT-10.7.0.23.l4t.aarch64-gnu.cuda-12.6.tar.gz",
+ "sha256": "b3028a82818a9daf6296f43d0cdecfa51eaea4552ffb6fe6fad5e6e1aea44da6",
+ "size": "655777784"
+ }
+ },
+ "linux-sbsa": {
+ "cuda12": {
+ "md5": "5b49557b4dc47641242a2bfb29e1cff1",
+ "relative_path": "tensorrt/10.7.0/tars/TensorRT-10.7.0.23.Linux.aarch64-gnu.cuda-12.6.tar.gz",
+ "sha256": "6b304cf014f2977e845bd44fdb343f0e7af2d9cded997bc9cfea3949d9e84dcb",
+ "size": "2469927296"
+ }
+ },
+ "linux-x86_64": {
+ "cuda12": {
+ "md5": "925c98fbe9abe82058814159727732a2",
+ "relative_path": "tensorrt/10.7.0/tars/TensorRT-10.7.0.23.Linux.x86_64-gnu.cuda-12.6.tar.gz",
+ "sha256": "d7f16520457caaf97ad8a7e94d802f89d77aedf9f361a255f2c216e2a3a40a11",
+ "size": "4446480887"
+ }
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.9.0.json b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.9.0.json
new file mode 100644
index 000000000000..083119406e07
--- /dev/null
+++ b/pkgs/development/cuda-modules/_cuda/manifests/tensorrt/redistrib_10.9.0.json
@@ -0,0 +1,29 @@
+{
+ "release_date": "2025-03-11",
+ "release_label": "10.9.0",
+ "release_product": "tensorrt",
+ "tensorrt": {
+ "name": "NVIDIA TensorRT",
+ "license": "TensorRT",
+ "version": "10.9.0.34",
+ "cuda_variant": [
+ "12"
+ ],
+ "linux-sbsa": {
+ "cuda12": {
+ "md5": "e56a9f9d7327c65d9b95996d3008ed44",
+ "relative_path": "tensorrt/10.9.0/tars/TensorRT-10.9.0.34.Linux.aarch64-gnu.cuda-12.8.tar.gz",
+ "sha256": "b81ec2a067f67f082c13caec2dcef54385b42a9de6a4ecae6f318aa2d41964f2",
+ "size": "4123115318"
+ }
+ },
+ "linux-x86_64": {
+ "cuda12": {
+ "md5": "ee49e3e6e00b21274907956216b6769f",
+ "relative_path": "tensorrt/10.9.0/tars/TensorRT-10.9.0.34.Linux.x86_64-gnu.cuda-12.8.tar.gz",
+ "sha256": "33be0e61e3bf177bbbcabb4892bf013f0c8ac71d2be73f2803848a382cb14272",
+ "size": "6917032417"
+ }
+ }
+ }
+}
diff --git a/pkgs/development/cuda-modules/aliases.nix b/pkgs/development/cuda-modules/aliases.nix
index 9f73d75d8d2d..3eef4e7b6ae8 100644
--- a/pkgs/development/cuda-modules/aliases.nix
+++ b/pkgs/development/cuda-modules/aliases.nix
@@ -25,4 +25,8 @@ builtins.mapAttrs mkRenamed {
package = final.cudatoolkit;
};
+ cusparselt = {
+ path = "cudaPackages.libcusparse_lt";
+ package = final.libcusparse_lt;
+ };
}
diff --git a/pkgs/development/cuda-modules/cuda-library-samples/extension.nix b/pkgs/development/cuda-modules/cuda-library-samples/extension.nix
deleted file mode 100644
index 1184547c7f93..000000000000
--- a/pkgs/development/cuda-modules/cuda-library-samples/extension.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ lib, stdenv }:
-let
- inherit (stdenv) hostPlatform;
-
- # Samples are built around the CUDA Toolkit, which is not available for
- # aarch64. Check for both CUDA version and platform.
- platformIsSupported = hostPlatform.isx86_64 && hostPlatform.isLinux;
-
- # Build our extension
- extension =
- final: _:
- lib.attrsets.optionalAttrs platformIsSupported {
- cuda-library-samples = final.callPackage ./generic.nix { };
- };
-in
-extension
diff --git a/pkgs/development/cuda-modules/cuda/extension.nix b/pkgs/development/cuda-modules/cuda/extension.nix
deleted file mode 100644
index 706631c06285..000000000000
--- a/pkgs/development/cuda-modules/cuda/extension.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ cudaMajorMinorVersion, lib }:
-let
- inherit (lib) attrsets modules trivial;
- redistName = "cuda";
-
- # Manifest files for CUDA redistributables (aka redist). These can be found at
- # https://developer.download.nvidia.com/compute/cuda/redist/
- # Maps a cuda version to the specific version of the manifest.
- cudaVersionMap = {
- "12.6" = "12.6.3";
- "12.8" = "12.8.1";
- "12.9" = "12.9.1";
- };
-
- # Check if the current CUDA version is supported.
- cudaVersionMappingExists = builtins.hasAttr cudaMajorMinorVersion cudaVersionMap;
-
- # fullCudaVersion : String
- fullCudaVersion = cudaVersionMap.${cudaMajorMinorVersion};
-
- evaluatedModules = modules.evalModules {
- modules = [
- ../modules
- # We need to nest the manifests in a config.cuda.manifests attribute so the
- # module system can evaluate them.
- {
- cuda.manifests = {
- redistrib = trivial.importJSON (./manifests + "/redistrib_${fullCudaVersion}.json");
- feature = trivial.importJSON (./manifests + "/feature_${fullCudaVersion}.json");
- };
- }
- ];
- };
-
- # Generally we prefer to do things involving getting attribute names with feature_manifest instead
- # of redistrib_manifest because the feature manifest will have *only* the redist system
- # names as the keys, whereas the redistrib manifest will also have things like version, name, license,
- # and license_path.
- featureManifest = evaluatedModules.config.cuda.manifests.feature;
- redistribManifest = evaluatedModules.config.cuda.manifests.redistrib;
-
- # Builder function which builds a single redist package for a given platform.
- # buildRedistPackage : callPackage -> PackageName -> Derivation
- buildRedistPackage =
- callPackage: pname:
- callPackage ../generic-builders/manifest.nix {
- inherit pname redistName;
- # We pass the whole release to the builder because it has logic to handle
- # the case we're trying to build on an unsupported platform.
- redistribRelease = redistribManifest.${pname};
- featureRelease = featureManifest.${pname};
- };
-
- # Build all the redist packages given final and prev.
- redistPackages =
- final: _prev:
- # Wrap the whole thing in an optionalAttrs so we can return an empty set if the CUDA version
- # is not supported.
- # NOTE: We cannot include the call to optionalAttrs *in* the pipe as we would strictly evaluate the
- # attrNames before we check if the CUDA version is supported.
- attrsets.optionalAttrs cudaVersionMappingExists (
- trivial.pipe featureManifest [
- # Get all the package names
- builtins.attrNames
- # Build the redist packages
- (trivial.flip attrsets.genAttrs (buildRedistPackage final.callPackage))
- ]
- );
-in
-redistPackages
diff --git a/pkgs/development/cuda-modules/cuda/manifests/feature_12.6.3.json b/pkgs/development/cuda-modules/cuda/manifests/feature_12.6.3.json
deleted file mode 100644
index 7ee3951de1d6..000000000000
--- a/pkgs/development/cuda-modules/cuda/manifests/feature_12.6.3.json
+++ /dev/null
@@ -1,1386 +0,0 @@
-{
- "cuda_cccl": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_compat": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cudart": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cuobjdump": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cupti": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": true,
- "static": false
- }
- }
- },
- "cuda_cuxxfilt": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_demo_suite": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_documentation": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_gdb": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nsight": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvcc": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvdisasm": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvml_dev": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprof": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprune": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvrtc": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvtx": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvvp": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_opencl": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_profiler_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_sanitizer_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "fabricmanager": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "imex": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcublas": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcudla": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufft": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufile": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- }
- },
- "libcurand": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusolver": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusparse": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnpp": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvfatbin": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvidia_nscq": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjitlink": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjpeg": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvsdm": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_compute": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_systems": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_vse": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_driver": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_fs": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "visual_studio_integration": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cuda/manifests/feature_12.8.1.json b/pkgs/development/cuda-modules/cuda/manifests/feature_12.8.1.json
deleted file mode 100644
index 20aa77b1ba1e..000000000000
--- a/pkgs/development/cuda-modules/cuda/manifests/feature_12.8.1.json
+++ /dev/null
@@ -1,1410 +0,0 @@
-{
- "cuda_cccl": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_compat": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cudart": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cuobjdump": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cupti": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": true,
- "static": false
- }
- }
- },
- "cuda_cuxxfilt": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_demo_suite": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_documentation": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_gdb": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nsight": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvcc": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvdisasm": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvml_dev": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprof": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprune": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvrtc": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvtx": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvvp": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_opencl": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_profiler_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_sandbox_dev": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_sanitizer_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "driver_assistant": {
- "linux-all": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "fabricmanager": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "imex": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcublas": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcudla": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufft": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufile": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- }
- },
- "libcurand": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusolver": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusparse": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnpp": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvfatbin": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvidia_nscq": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjitlink": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjpeg": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvsdm": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_compute": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_systems": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_vse": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_driver": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_fs": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "visual_studio_integration": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cuda/manifests/feature_12.9.1.json b/pkgs/development/cuda-modules/cuda/manifests/feature_12.9.1.json
deleted file mode 100644
index 00e11ae31f94..000000000000
--- a/pkgs/development/cuda-modules/cuda/manifests/feature_12.9.1.json
+++ /dev/null
@@ -1,1520 +0,0 @@
-{
- "collectx_bringup": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cccl": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_compat": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cudart": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cuobjdump": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_cupti": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": true,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": true,
- "static": false
- }
- }
- },
- "cuda_cuxxfilt": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_demo_suite": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_documentation": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_gdb": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nsight": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvcc": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvdisasm": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvml_dev": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprof": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvprune": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvrtc": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvtx": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_nvvp": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_opencl": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_profiler_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "cuda_sandbox_dev": {
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": true
- }
- }
- },
- "cuda_sanitizer_api": {
- "linux-aarch64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "driver_assistant": {
- "linux-all": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "fabricmanager": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "imex": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcublas": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcudla": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufft": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcufile": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- }
- },
- "libcurand": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusolver": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libcusparse": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnpp": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvfatbin": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvidia_nscq": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjitlink": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvjpeg": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "libnvsdm": {
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "mft": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "mft_autocomplete": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "mft_oem": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_compute": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_systems": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nsight_vse": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_driver": {
- "linux-sbsa": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": true,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "nvidia_fs": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- },
- "nvlsm": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": false
- }
- }
- },
- "visual_studio_integration": {
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": false,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cuda/manifests/redistrib_12.9.1.json b/pkgs/development/cuda-modules/cuda/manifests/redistrib_12.9.1.json
deleted file mode 100644
index 2ead9b4f283f..000000000000
--- a/pkgs/development/cuda-modules/cuda/manifests/redistrib_12.9.1.json
+++ /dev/null
@@ -1,1151 +0,0 @@
-{
- "release_date": "2025-06-05",
- "release_label": "12.9.1",
- "release_product": "cuda",
- "collectx_bringup": {
- "name": "UFM telemetry CollectX Bringup",
- "license": "NVIDIA Proprietary",
- "license_path": "collectx_bringup/LICENSE.txt",
- "version": "1.19.13",
- "linux-x86_64": {
- "relative_path": "collectx_bringup/linux-x86_64/collectx_bringup-linux-x86_64-1.19.13-archive.tar.xz",
- "sha256": "4965fe096fca645a6d4565fd4d12366ae0ec31ec54ca20274910f34eea74b41a",
- "md5": "d48b8c177f312c8774c54988594f725c",
- "size": "125307508"
- },
- "linux-sbsa": {
- "relative_path": "collectx_bringup/linux-sbsa/collectx_bringup-linux-sbsa-1.19.13-archive.tar.xz",
- "sha256": "5d716fbb80ef7b9ac89f9e3fa8b900a29d4e6c0be487420dc4ee7a05340b57a9",
- "md5": "dc2c0bfedf790ba7dc21f684510e592e",
- "size": "120696772"
- }
- },
- "cuda_cccl": {
- "name": "CXX Core Compute Libraries",
- "license": "CUDA Toolkit",
- "license_path": "cuda_cccl/LICENSE.txt",
- "version": "12.9.27",
- "linux-x86_64": {
- "relative_path": "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-12.9.27-archive.tar.xz",
- "sha256": "8b1a5095669e94f2f9afd7715533314d418179e9452be61e2fde4c82a3e542aa",
- "md5": "59e3cb66aeb96423dcca73218c85bc02",
- "size": "997888"
- },
- "linux-sbsa": {
- "relative_path": "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-12.9.27-archive.tar.xz",
- "sha256": "8c3da24801b500f1d9217d191bb4b63e5d2096c8e7d0b7695e876853180ba82f",
- "md5": "b39d03cfac57a3b2ded8e9b0a6b0e782",
- "size": "997840"
- },
- "windows-x86_64": {
- "relative_path": "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.9.27-archive.zip",
- "sha256": "17aaa7c6b8f94a417d8f3261780b7e34b9cbdfab7513bce86768623b06aa28b5",
- "md5": "afdfa89a35951f67b5bd70c513f5ef09",
- "size": "3127658"
- },
- "linux-aarch64": {
- "relative_path": "cuda_cccl/linux-aarch64/cuda_cccl-linux-aarch64-12.9.27-archive.tar.xz",
- "sha256": "8c87c2db67130108861609eacd40d30ee109656a7765e5172eab71dd6da4c453",
- "md5": "25b1a257ed35393052577bd9ee432d3f",
- "size": "998228"
- }
- },
- "cuda_compat": {
- "name": "CUDA compat L4T",
- "license": "CUDA Toolkit",
- "license_path": "cuda_compat/LICENSE.txt",
- "version": "12.9.40580548",
- "linux-aarch64": {
- "relative_path": "cuda_compat/linux-aarch64/cuda_compat-linux-aarch64-12.9.40580548-archive.tar.xz",
- "sha256": "c03fe18b9d23881f068ac97b45001a47778f83d2361728427a3f92b551b1c898",
- "md5": "3ca26403b8b36c5cc18104ee174ec874",
- "size": "37422044"
- }
- },
- "cuda_cudart": {
- "name": "CUDA Runtime (cudart)",
- "license": "CUDA Toolkit",
- "license_path": "cuda_cudart/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "1f6ad42d4f530b24bfa35894ccf6b7209d2354f59101fd62ec4a6192a184ce99",
- "md5": "6153e2b6a43389e5be3d68b04c6488f5",
- "size": "1514676"
- },
- "linux-sbsa": {
- "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "8b422a3b2cb8452cb678181b0bf9d7aa7342df168b5319c5488ae3b8514101fc",
- "md5": "c4b3e0d206f5dc3aceaddb78a32424d3",
- "size": "1521596"
- },
- "windows-x86_64": {
- "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.9.79-archive.zip",
- "sha256": "179e9c43b0735ffe67207b3da556eb5a0c50f3047961882b7657d3b822d34ef8",
- "md5": "22e500ce68dc9e099ec18f57e1309808",
- "size": "3521238"
- },
- "linux-aarch64": {
- "relative_path": "cuda_cudart/linux-aarch64/cuda_cudart-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "f893e2c72be81b0d0e3bc33827c785a96db15fd5aafdc51cc187f3df6fdbb657",
- "md5": "8970e9d40a7edada8cd9270906b1daa3",
- "size": "1223440"
- }
- },
- "cuda_cuobjdump": {
- "name": "cuobjdump",
- "license": "CUDA Toolkit",
- "license_path": "cuda_cuobjdump/LICENSE.txt",
- "version": "12.9.82",
- "linux-x86_64": {
- "relative_path": "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-12.9.82-archive.tar.xz",
- "sha256": "ee0de40e8c18068bfcc53e73510e7e7a1a80555205347940df67fa525d24452f",
- "md5": "fb4ceb446f3ca58c4ca5381a2c0eee06",
- "size": "214896"
- },
- "linux-sbsa": {
- "relative_path": "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-12.9.82-archive.tar.xz",
- "sha256": "2d39ae9309f81a7980df296a93c0e49215c6fb22d316fd9daae211d29a731d27",
- "md5": "9ec739cea851b184b55017d0a6185304",
- "size": "208936"
- },
- "windows-x86_64": {
- "relative_path": "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-12.9.82-archive.zip",
- "sha256": "1eda43a76a2eac25fce5bdb4b68673b5bda737d54cca5513148c36362ab7c811",
- "md5": "0a1c8b1f69537bc605c0d5fc28110258",
- "size": "6219088"
- },
- "linux-aarch64": {
- "relative_path": "cuda_cuobjdump/linux-aarch64/cuda_cuobjdump-linux-aarch64-12.9.82-archive.tar.xz",
- "sha256": "91a9ae2935b411d136c2c61ccbbc0df3a83f17cce122d12d262be202217163ee",
- "md5": "ec5905b13be30f8f39e18d1f41dbcf18",
- "size": "197604"
- }
- },
- "cuda_cupti": {
- "name": "CUPTI",
- "license": "CUDA Toolkit",
- "license_path": "cuda_cupti/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "f779a24e8f0177b4ce45cbf118cb470139fb5107858df96689d0a0aa01f0fba1",
- "md5": "5fe49729261d1f899bd0948026b755ae",
- "size": "16799436"
- },
- "linux-sbsa": {
- "relative_path": "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "84f8657375c23a425b2d107c3cde1ce75777bff9798b744b78e146fdc02d2de0",
- "md5": "ff4c04b183cc173aa2937a21a3569b5b",
- "size": "12805704"
- },
- "windows-x86_64": {
- "relative_path": "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-12.9.79-archive.zip",
- "sha256": "c96018456dc4db6af6d69d6db0170a2ccc656ddde8c8ce6ee05682c2c5569daa",
- "md5": "1cecfef05160d4e6b0f2549534fe7973",
- "size": "13359912"
- },
- "linux-aarch64": {
- "relative_path": "cuda_cupti/linux-aarch64/cuda_cupti-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "74a884691b2c7e5c8db8bd2a38143fc82f7502f0dd484051809df7953f7ae719",
- "md5": "7f92adb9aed6fdb047ebe3c7617c7179",
- "size": "4781260"
- }
- },
- "cuda_cuxxfilt": {
- "name": "CUDA cuxxfilt (demangler)",
- "license": "CUDA Toolkit",
- "license_path": "cuda_cuxxfilt/LICENSE.txt",
- "version": "12.9.82",
- "linux-x86_64": {
- "relative_path": "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-12.9.82-archive.tar.xz",
- "sha256": "833d7e56351d032717f217212577d369d230e284b2ded4bf151403cc11213add",
- "md5": "a7f4a446e4fb00657f5bd7eb1dd814a7",
- "size": "188692"
- },
- "linux-sbsa": {
- "relative_path": "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-12.9.82-archive.tar.xz",
- "sha256": "2175ef96b523eb8fea5d6ccfd21b70d6afaee623d00dbab70f11e8aa892c2828",
- "md5": "fde8b2db7d7e4afb08e7c703fa735440",
- "size": "177440"
- },
- "windows-x86_64": {
- "relative_path": "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-12.9.82-archive.zip",
- "sha256": "ec5911d680394d90968c480c7359e7f5a4025b9c4806dad673d489e57585afd3",
- "md5": "537cd82a0945fe20275d4791e353c3f5",
- "size": "178570"
- },
- "linux-aarch64": {
- "relative_path": "cuda_cuxxfilt/linux-aarch64/cuda_cuxxfilt-linux-aarch64-12.9.82-archive.tar.xz",
- "sha256": "37acae6576874c3781e844ea268a9fe076d13aaab3acda6f65bbe885a3726a3c",
- "md5": "c8e23bff8cc13fb58a57c90d69e7b374",
- "size": "170436"
- }
- },
- "cuda_demo_suite": {
- "name": "CUDA Demo Suite",
- "license": "CUDA Toolkit",
- "license_path": "cuda_demo_suite/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_demo_suite/linux-x86_64/cuda_demo_suite-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "92e0b324bf02d9705b8dd5bf1d36149c06512c720ceda7cc7d791fc3ecf64f0e",
- "md5": "5030cddcab7101704bb8a9b53c6137ad",
- "size": "4036604"
- },
- "windows-x86_64": {
- "relative_path": "cuda_demo_suite/windows-x86_64/cuda_demo_suite-windows-x86_64-12.9.79-archive.zip",
- "sha256": "adffd0b0f7cca262025f171dcaa73f62af020de5d9a0d6e0fbe7dbd827dd77a8",
- "md5": "9a8c3bbd696392e768ae3278e269cbd9",
- "size": "5164004"
- }
- },
- "cuda_documentation": {
- "name": "CUDA Documentation",
- "license": "CUDA Toolkit",
- "license_path": "cuda_documentation/LICENSE.txt",
- "version": "12.9.88",
- "linux-x86_64": {
- "relative_path": "cuda_documentation/linux-x86_64/cuda_documentation-linux-x86_64-12.9.88-archive.tar.xz",
- "sha256": "d6e44c454654016a3650f3101688231ba111cd00647b726b34d18ff0bd721933",
- "md5": "17436d82e589824bbf3f4ff669201d81",
- "size": "67920"
- },
- "linux-sbsa": {
- "relative_path": "cuda_documentation/linux-sbsa/cuda_documentation-linux-sbsa-12.9.88-archive.tar.xz",
- "sha256": "e1c47f32279a827baf8b4339c1737d7bd8e54c73388835e5fae3e2db83db2479",
- "md5": "995f5692be016e44821fb85ebc3a62d9",
- "size": "67924"
- },
- "windows-x86_64": {
- "relative_path": "cuda_documentation/windows-x86_64/cuda_documentation-windows-x86_64-12.9.88-archive.zip",
- "sha256": "660f2f71b94c13a021850a8bb6227dfb4eb9a8dd8e0f6bc9feb0b993dea180fd",
- "md5": "3d21d1b9056629557bb2745f962af636",
- "size": "107626"
- },
- "linux-aarch64": {
- "relative_path": "cuda_documentation/linux-aarch64/cuda_documentation-linux-aarch64-12.9.88-archive.tar.xz",
- "sha256": "830476a755f9a8c9780a6876d0ed562c073f29968c3e0e91962d0fd14b3f3618",
- "md5": "098d318ebb7700a6513e57e41edf20c8",
- "size": "67948"
- }
- },
- "cuda_gdb": {
- "name": "CUDA GDB",
- "license": "CUDA Toolkit",
- "license_path": "cuda_gdb/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "3dbb657683cd4f2989c30bdad31b3f4493795a9acc8a2214f48df3cfca7c37c0",
- "md5": "1405f9cf4a5d2c03785a69aefa05de16",
- "size": "67691620"
- },
- "linux-sbsa": {
- "relative_path": "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "251b9bd86ffcce0cdc4a5480ef3d8d609ca3a276cbbb5c793ca9978721d31faf",
- "md5": "b76ab824a5b651ecec31978e6e2f41bf",
- "size": "45695592"
- },
- "linux-aarch64": {
- "relative_path": "cuda_gdb/linux-aarch64/cuda_gdb-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "5473c27f1ec03fe064a09399e52b251e6ca5d3b9a67f21c1a26a02a26102f165",
- "md5": "95325479bec751d72d4f063d8d244049",
- "size": "45662012"
- }
- },
- "cuda_nsight": {
- "name": "Nsight Eclipse Edition Plugin",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nsight/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_nsight/linux-x86_64/cuda_nsight-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "5c3994440ce7aa6ac5ab120e45f25f5f5eaa631af0f793fab860a5edbc499518",
- "md5": "3bce6195222da1c1d549fbd2d83422e8",
- "size": "118693300"
- }
- },
- "cuda_nvcc": {
- "name": "CUDA NVCC",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvcc/LICENSE.txt",
- "version": "12.9.86",
- "linux-x86_64": {
- "relative_path": "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-12.9.86-archive.tar.xz",
- "sha256": "7a1a5b652e5ef85c82b721d10672fc9a2dbaab44e9bd3c65a69517bf53998c35",
- "md5": "ac1871c955070267e117bd985f6dbb36",
- "size": "81100244"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-12.9.86-archive.tar.xz",
- "sha256": "0aa1fce92dbae76c059c27eefb9d0ffb58e1291151e44ff7c7f1fc2dd9376c0d",
- "md5": "1322a14e4d6482f69d4b8a14a7d5f4c5",
- "size": "73407012"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.9.86-archive.zip",
- "sha256": "227b109663b5e57d2718bcabb24a4ba0d9d4e52d958e327dc476f7c28691be85",
- "md5": "ff9b2942aaa3a1dfb487da6767bc689f",
- "size": "126917884"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvcc/linux-aarch64/cuda_nvcc-linux-aarch64-12.9.86-archive.tar.xz",
- "sha256": "2432ef8a7c12d0a9ce3332a8af42b123c07f256390b3390802b1b2c6254c6c74",
- "md5": "f846e79e53be949484a4968880eb9dd9",
- "size": "77162776"
- }
- },
- "cuda_nvdisasm": {
- "name": "CUDA nvdisasm",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvdisasm/LICENSE.txt",
- "version": "12.9.88",
- "linux-x86_64": {
- "relative_path": "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-12.9.88-archive.tar.xz",
- "sha256": "49296dd550e05434185a8588ec639f1325b2de413e2321ddd7e56c5182a476ff",
- "md5": "87ec016e430618bf724a3e8332bfcca6",
- "size": "5483340"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-12.9.88-archive.tar.xz",
- "sha256": "28b2597f0901cfafcd050cba0877c1eb5edcd7ebd8164aea356cec832e636ee3",
- "md5": "0d6f0b8883e55ca07d64cbb746b80e8c",
- "size": "5408212"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-12.9.88-archive.zip",
- "sha256": "955ba1f52f7115031f10408ce3cec4c745df41dba8fdf6024c3983d899e9fbbc",
- "md5": "43cd76e59014be18d96ce03e2ed09d6b",
- "size": "5791897"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvdisasm/linux-aarch64/cuda_nvdisasm-linux-aarch64-12.9.88-archive.tar.xz",
- "sha256": "99bf70149423c42c8dc2649f76f8983101dcf9879d355cfb2582b2adbed84614",
- "md5": "cb9f7798d824ef1696fdde67f9506aa4",
- "size": "5416148"
- }
- },
- "cuda_nvml_dev": {
- "name": "CUDA NVML Headers",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvml_dev/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "1ad0866dbfff6a9e2661f5348e4ca4c2a4e40882b90014ab127f2734856ecccb",
- "md5": "7e615aa7b4525d3cc1b28379abcf6ce5",
- "size": "129244"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "e97e668ead7ebc1fb7e93ffe303019660d0119c4e4d0e8ef26ce012bbbea9b34",
- "md5": "d48bcaa83a7299b836d381b32e94a99d",
- "size": "130480"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-12.9.79-archive.zip",
- "sha256": "1894b70c5487a739c740929263fa3fbca80e53790647abc02b74eac024b97be8",
- "md5": "213d773bb297b15e9f697ec8f1363bd9",
- "size": "144955"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvml_dev/linux-aarch64/cuda_nvml_dev-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "531ac94b8b83209657cd14b28d23660df252393fb34c24f5d8919c56c977477e",
- "md5": "3fe82d3f6042a22ac3d119192577db79",
- "size": "130544"
- }
- },
- "cuda_nvprof": {
- "name": "CUDA nvprof",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvprof/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "8d8d1a9004710bad8d7a653769f088064b0285a06a80b46c4da7598115a0c6a2",
- "md5": "df8f768c6c21b06cb048b9a4b0ac39e7",
- "size": "2402440"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.9.79-archive.zip",
- "sha256": "81aefd12ab0a24f88feee10303b814fcf21887b3947d5e73523ed14338ef4e2b",
- "md5": "69ada7050609c5860a2396a6354665e0",
- "size": "1705346"
- }
- },
- "cuda_nvprune": {
- "name": "CUDA nvprune",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvprune/LICENSE.txt",
- "version": "12.9.82",
- "linux-x86_64": {
- "relative_path": "cuda_nvprune/linux-x86_64/cuda_nvprune-linux-x86_64-12.9.82-archive.tar.xz",
- "sha256": "a06f0e2959a4dd3dbb62a984dbe77b813397022596f5c62d74ddd83b238571f2",
- "md5": "db647ad5946c1e4cb0289c16e5ec92d8",
- "size": "59372"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvprune/linux-sbsa/cuda_nvprune-linux-sbsa-12.9.82-archive.tar.xz",
- "sha256": "15e1d6527bf04c162950251940b10b8b8254f68028e2ffc0bfb7ed84bb2e1382",
- "md5": "3d51536a3582379389d821afa05becfd",
- "size": "51052"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvprune/windows-x86_64/cuda_nvprune-windows-x86_64-12.9.82-archive.zip",
- "sha256": "be23018507f015ca948c503a43a3c48449c0dc1ceaab1e721caf01f024727312",
- "md5": "f5c1eaa20c7c8c67a564f04cec87fca2",
- "size": "142316"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvprune/linux-aarch64/cuda_nvprune-linux-aarch64-12.9.82-archive.tar.xz",
- "sha256": "69fa4cf2cede678825e0c8032ccd629e17de1b9d8667b05b6702d873fd2fb926",
- "md5": "00c370560287a3dcdeedb32fe13e7e0e",
- "size": "52876"
- }
- },
- "cuda_nvrtc": {
- "name": "CUDA NVRTC",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvrtc/LICENSE.txt",
- "version": "12.9.86",
- "linux-x86_64": {
- "relative_path": "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-12.9.86-archive.tar.xz",
- "sha256": "82913658363892dbc0f2638b070476234476e06e084fed60db861cb7e161a6af",
- "md5": "8ed74b72c44ee50759f820dee875589c",
- "size": "114231976"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-12.9.86-archive.tar.xz",
- "sha256": "fb2d50c791465f333fc2236d2419170cf7a7886f48dd9b967a10f8233c686029",
- "md5": "483dc56df046c9c03eb17cd637bb8fc9",
- "size": "53265740"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.9.86-archive.zip",
- "sha256": "1aa0644fa53c8ca34cdc73db17bcc73530557bdd3f582c7bfdbd7916c8b48f65",
- "md5": "76317f5006ce9de6720cea0b3bdc7db6",
- "size": "314608748"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvrtc/linux-aarch64/cuda_nvrtc-linux-aarch64-12.9.86-archive.tar.xz",
- "sha256": "785b0952c0f77dd0feb9a674f3fcca3fcf05541bbe27f70a5926da9f85339152",
- "md5": "b49aeba8583248a4cd628154361d313d",
- "size": "57633224"
- }
- },
- "cuda_nvtx": {
- "name": "CUDA NVTX",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvtx/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "819bc39192955e6ba2067de39b85f30e157de462945e54b12bfdeda429d793fb",
- "md5": "3a56b3c5c1e20d99cff4c354e57ea30f",
- "size": "64496"
- },
- "linux-sbsa": {
- "relative_path": "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "dae359c2c51f83a5cd402468f481a82aeb6d32d79dc707d3625607e83cf97ceb",
- "md5": "d783ac2926973ad682c69270d047c3f3",
- "size": "64856"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.9.79-archive.zip",
- "sha256": "b9d506ce9ba056bf171b60e9dada06fb3d8bed5453a6399d0541960bf9b81659",
- "md5": "907cfcf3f3b637912ded30349ecfd515",
- "size": "87029"
- },
- "linux-aarch64": {
- "relative_path": "cuda_nvtx/linux-aarch64/cuda_nvtx-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "f1a4366e45dbfd0a4e6210a5a4b9b51501aaebb6b58845d3f1b271ec3d7f3e15",
- "md5": "6b40a46f73f46a7d8bac37b212989007",
- "size": "65396"
- }
- },
- "cuda_nvvp": {
- "name": "CUDA NVVP",
- "license": "CUDA Toolkit",
- "license_path": "cuda_nvvp/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_nvvp/linux-x86_64/cuda_nvvp-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "6cdf9196373a848856c1afc6f1df1023649fb5fe77b896967ecc0b014b200003",
- "md5": "0ded9b80cf8fc2c2233b28d582f2334e",
- "size": "117732648"
- },
- "windows-x86_64": {
- "relative_path": "cuda_nvvp/windows-x86_64/cuda_nvvp-windows-x86_64-12.9.79-archive.zip",
- "sha256": "a7e1ac0de34c69afc288283ea75314b67f109b08d046c3622405dff8f66b0720",
- "md5": "dd673788d3fae14c38af5c1506fae11d",
- "size": "120342251"
- }
- },
- "cuda_opencl": {
- "name": "CUDA OpenCL",
- "license": "CUDA Toolkit",
- "license_path": "cuda_opencl/LICENSE.txt",
- "version": "12.9.19",
- "linux-x86_64": {
- "relative_path": "cuda_opencl/linux-x86_64/cuda_opencl-linux-x86_64-12.9.19-archive.tar.xz",
- "sha256": "1bddacc2f0de77901faad5fecfad8fef8136ea8dd708e02177d10eef97d85b78",
- "md5": "d0a85b602afc8957374d3f536dfd0306",
- "size": "94140"
- },
- "windows-x86_64": {
- "relative_path": "cuda_opencl/windows-x86_64/cuda_opencl-windows-x86_64-12.9.19-archive.zip",
- "sha256": "7c78e05697a3f74510c4154b175ce4597ed0719c7793236ca7f3989eccae0ff6",
- "md5": "e2dec7d45f8d87045c4a37bb882e9cf4",
- "size": "139663"
- }
- },
- "cuda_profiler_api": {
- "name": "CUDA Profiler API",
- "license": "CUDA Toolkit",
- "license_path": "cuda_profiler_api/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_profiler_api/linux-x86_64/cuda_profiler_api-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "8c50636bfb97e9420905aa795b9fa6e3ad0b30ec6a6c8b0b8db519beb9241ce6",
- "md5": "483998e0e5b012d976bf62ada20bd4fa",
- "size": "16316"
- },
- "linux-sbsa": {
- "relative_path": "cuda_profiler_api/linux-sbsa/cuda_profiler_api-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "e07f47ef3aeb3a3ca995e9070d77d98ad79460216bf2075c9f9018962ae1d03b",
- "md5": "55345cd640f299f8da43ef946dd8aa89",
- "size": "16316"
- },
- "windows-x86_64": {
- "relative_path": "cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.9.79-archive.zip",
- "sha256": "b05519f8ce4f02167bfc859358f62eb771d89ac2af3a6952a82317f2af4bc5bd",
- "md5": "f5da20e1160f547602ec1c558dd0bc64",
- "size": "20352"
- },
- "linux-aarch64": {
- "relative_path": "cuda_profiler_api/linux-aarch64/cuda_profiler_api-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "e26d82b4ce994dc445dc0191b1a5fe68dacc7290bfb9c2133b4979fe90e05433",
- "md5": "738fe1e26407ab88e0fd3209b4da1cfa",
- "size": "16308"
- }
- },
- "cuda_sandbox_dev": {
- "name": "CUDA nvsandboxutils Headers",
- "license": "CUDA Toolkit",
- "license_path": "cuda_sandbox_dev/LICENSE.txt",
- "version": "12.9.19",
- "linux-x86_64": {
- "relative_path": "cuda_sandbox_dev/linux-x86_64/cuda_sandbox_dev-linux-x86_64-12.9.19-archive.tar.xz",
- "sha256": "058c9616f9bb4e57c58996a053cf9a87f655c139dc2fa11af7bed74432bd8153",
- "md5": "ce4326bc03b26b88a552db8b163d7f5f",
- "size": "29172"
- }
- },
- "cuda_sanitizer_api": {
- "name": "CUDA Compute Sanitizer API",
- "license": "CUDA Toolkit",
- "license_path": "cuda_sanitizer_api/LICENSE.txt",
- "version": "12.9.79",
- "linux-x86_64": {
- "relative_path": "cuda_sanitizer_api/linux-x86_64/cuda_sanitizer_api-linux-x86_64-12.9.79-archive.tar.xz",
- "sha256": "e23aad21132ff58b92a22aad372a7048793400b79c625665d325d4ecec6979bf",
- "md5": "9d138eb96c11e1b9293408e5b7a97114",
- "size": "9758036"
- },
- "linux-sbsa": {
- "relative_path": "cuda_sanitizer_api/linux-sbsa/cuda_sanitizer_api-linux-sbsa-12.9.79-archive.tar.xz",
- "sha256": "281538927b6818d4687fad102c0603ab7b389513c9c129f3e0de8c61ac7f474d",
- "md5": "3192ef7e50255f80430471ae6add0ebf",
- "size": "7753752"
- },
- "windows-x86_64": {
- "relative_path": "cuda_sanitizer_api/windows-x86_64/cuda_sanitizer_api-windows-x86_64-12.9.79-archive.zip",
- "sha256": "b1f366312cb52164dfe7b78463ab085b742f052e74b89e9da08561a8ca8b06e9",
- "md5": "1821743a8a46f3e4bab0fe96dac813f8",
- "size": "10103190"
- },
- "linux-aarch64": {
- "relative_path": "cuda_sanitizer_api/linux-aarch64/cuda_sanitizer_api-linux-aarch64-12.9.79-archive.tar.xz",
- "sha256": "2baaba3ff47eceb529ddcc866fc7e647fd02427ef3dbb8bec06689f919c14c69",
- "md5": "e48b00b6ed2124ac4a3a0b20201ba4dd",
- "size": "4808620"
- }
- },
- "driver_assistant": {
- "name": "NVIDIA Driver Assistant",
- "license": "MIT",
- "license_path": "driver_assistant/LICENSE.txt",
- "version": "0.21.57.08",
- "linux-all": {
- "relative_path": "driver_assistant/source/driver_assistant-0.21.57.08-archive.tar.xz",
- "sha256": "4904c08e1de1aa790d200f36528aaa672ab6b3c6620bbfe5e221312b9ef1120a",
- "md5": "ebb37f4ad248ddba8071c570f5267da3",
- "size": "38644"
- }
- },
- "fabricmanager": {
- "name": "NVIDIA Fabric Manager",
- "license": "NVIDIA Driver",
- "license_path": "fabricmanager/LICENSE.txt",
- "version": "575.57.08",
- "linux-x86_64": {
- "relative_path": "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-575.57.08-archive.tar.xz",
- "sha256": "2e7dc4db6788e618af345fb50dee63115b5116ccb57d6d27d93c1ff5e2c3a8cf",
- "md5": "39f4aa35a3f7cda55297bb73c91a5481",
- "size": "8077772"
- },
- "linux-sbsa": {
- "relative_path": "fabricmanager/linux-sbsa/fabricmanager-linux-sbsa-575.57.08-archive.tar.xz",
- "sha256": "239a7f8406987fb6d44cd4f7f6ba6e843b3f3acb7b1732e6ab5c0d370690ee85",
- "md5": "4d288febfed83ff3d532ebbc692f65ec",
- "size": "7336832"
- }
- },
- "imex": {
- "name": "Nvidia-Imex",
- "license": "NVIDIA Proprietary",
- "license_path": "imex/LICENSE.txt",
- "version": "575.57.08",
- "linux-x86_64": {
- "relative_path": "imex/linux-x86_64/nvidia-imex-linux-x86_64-575.57.08-archive.tar.xz",
- "sha256": "5dfe195429b0967788b7e9b4bab85d4936220d6d2f6cf394a61bd3439b437506",
- "md5": "909fd5da3b23f54e39484efd187f4c3e",
- "size": "7718644"
- },
- "linux-sbsa": {
- "relative_path": "imex/linux-sbsa/nvidia-imex-linux-sbsa-575.57.08-archive.tar.xz",
- "sha256": "36d1a49fb52294ef5352eeea457d131f3d14320fca0a56633d7798ab32eead18",
- "md5": "bd3d1ce8d91e1fd7d26191c05292698e",
- "size": "7149236"
- }
- },
- "libcublas": {
- "name": "CUDA cuBLAS",
- "license": "CUDA Toolkit",
- "license_path": "libcublas/LICENSE.txt",
- "version": "12.9.1.4",
- "linux-x86_64": {
- "relative_path": "libcublas/linux-x86_64/libcublas-linux-x86_64-12.9.1.4-archive.tar.xz",
- "sha256": "546addc4a9d82b8f23aa9ba9274b6bc0429a63008a31c759884ac24880796057",
- "md5": "9b07f0c3d94534e56e003c6016b9771c",
- "size": "933611504"
- },
- "linux-sbsa": {
- "relative_path": "libcublas/linux-sbsa/libcublas-linux-sbsa-12.9.1.4-archive.tar.xz",
- "sha256": "e99b074e6f66034e563508118804599d7579f73afc8424c55ad5fd8d12e085a5",
- "md5": "4c7cdc43283c0ba62e665b02e9ec7540",
- "size": "932528492"
- },
- "windows-x86_64": {
- "relative_path": "libcublas/windows-x86_64/libcublas-windows-x86_64-12.9.1.4-archive.zip",
- "sha256": "d534d98b0b453a98914dbf3adf47d7e84b55037abf02f87466439e1dcef581ed",
- "md5": "3f092963b0767968fe6f02febc1b0cbf",
- "size": "549755186"
- },
- "linux-aarch64": {
- "relative_path": "libcublas/linux-aarch64/libcublas-linux-aarch64-12.9.1.4-archive.tar.xz",
- "sha256": "f75938d72153902cf08d1666311f35851e7eb6a16af743b2346bc68d7ba6b341",
- "md5": "15f6396431885647e961af811a90cc06",
- "size": "493899648"
- }
- },
- "libcudla": {
- "name": "cuDLA",
- "license": "CUDA Toolkit",
- "license_path": "libcudla/LICENSE.txt",
- "version": "12.9.19",
- "linux-aarch64": {
- "relative_path": "libcudla/linux-aarch64/libcudla-linux-aarch64-12.9.19-archive.tar.xz",
- "sha256": "ef7c1a05d9927c53aa089ec2217a1e999ffac0e776145d798bf784279fc79d40",
- "md5": "dd1fc18bd0fe3ed38b87a453d31575a0",
- "size": "38548"
- }
- },
- "libcufft": {
- "name": "CUDA cuFFT",
- "license": "CUDA Toolkit",
- "license_path": "libcufft/LICENSE.txt",
- "version": "11.4.1.4",
- "linux-x86_64": {
- "relative_path": "libcufft/linux-x86_64/libcufft-linux-x86_64-11.4.1.4-archive.tar.xz",
- "sha256": "b0e65af59b0c2f6c8ed9f5552a9b375890855b7926ae2c0404d15dcf2565bda4",
- "md5": "3ffadd77d5b084470aa8d9215d760e76",
- "size": "470942192"
- },
- "linux-sbsa": {
- "relative_path": "libcufft/linux-sbsa/libcufft-linux-sbsa-11.4.1.4-archive.tar.xz",
- "sha256": "b87637db96e485f4793d7ca8bd2cf07250eca5c86f6c56744a36683418359c03",
- "md5": "4a0906639fd293f529b8f949bc3ad9eb",
- "size": "471560648"
- },
- "windows-x86_64": {
- "relative_path": "libcufft/windows-x86_64/libcufft-windows-x86_64-11.4.1.4-archive.zip",
- "sha256": "f26f80bb9abff3269c548e1559e8c2b4ba58ccb8acc6095bbc6404fc962d4b80",
- "md5": "504ad2e94fd0d923b8a7082659813431",
- "size": "198361265"
- },
- "linux-aarch64": {
- "relative_path": "libcufft/linux-aarch64/libcufft-linux-aarch64-11.4.1.4-archive.tar.xz",
- "sha256": "5d992b98f0d3d294e339ed2f65a477a587803c1567598a120349fae52596bf20",
- "md5": "1f10a57d45e9078e940340cdeff26478",
- "size": "471529132"
- }
- },
- "libcufile": {
- "name": "CUDA cuFile",
- "license": "CUDA Toolkit",
- "license_path": "libcufile/LICENSE.txt",
- "version": "1.14.1.1",
- "linux-x86_64": {
- "relative_path": "libcufile/linux-x86_64/libcufile-linux-x86_64-1.14.1.1-archive.tar.xz",
- "sha256": "7ba9834b8dc2f8cdb1710a49f3de3f627bbcd4cc1f8a754019c66c8c80fdaee7",
- "md5": "e59833cbd8e423948fa5814a276315e3",
- "size": "42129088"
- },
- "linux-sbsa": {
- "relative_path": "libcufile/linux-sbsa/libcufile-linux-sbsa-1.14.1.1-archive.tar.xz",
- "sha256": "6b1d2a771bd822fdd06a6286eb59acba179b13fe063ae5b0de8fc0f4991a39d8",
- "md5": "5a8499cdc22754fe5c9335065d708ea4",
- "size": "41676328"
- },
- "linux-aarch64": {
- "relative_path": "libcufile/linux-aarch64/libcufile-linux-aarch64-1.14.1.1-archive.tar.xz",
- "sha256": "196b61a1bf02b85e76c21bdfe414a3f4db4380df41d9212c9eb6d0aa92eee1ce",
- "md5": "c7e269a01ecd2dc427941c5bc775c2ef",
- "size": "41655988"
- }
- },
- "libcurand": {
- "name": "CUDA cuRAND",
- "license": "CUDA Toolkit",
- "license_path": "libcurand/LICENSE.txt",
- "version": "10.3.10.19",
- "linux-x86_64": {
- "relative_path": "libcurand/linux-x86_64/libcurand-linux-x86_64-10.3.10.19-archive.tar.xz",
- "sha256": "48281b4caadb1cf790d44ac76b23c77d06f474c0b1799814f314aafec9258ad6",
- "md5": "e2fd0b8dd197f3bccc0ee19e5640fc93",
- "size": "89582256"
- },
- "linux-sbsa": {
- "relative_path": "libcurand/linux-sbsa/libcurand-linux-sbsa-10.3.10.19-archive.tar.xz",
- "sha256": "078afec842c99b3a953d62cc76bd74afa2d883dc436e6d642e6440bb1e85eb8e",
- "md5": "fae5b6ce60678f452a2c760e8bf27563",
- "size": "89544732"
- },
- "windows-x86_64": {
- "relative_path": "libcurand/windows-x86_64/libcurand-windows-x86_64-10.3.10.19-archive.zip",
- "sha256": "d0411f0b8c07e90d0fb6e01bfa7a54c9cb80f2ddf67e4ded2d96a50e19aadad6",
- "md5": "6ccce2f4f1f6d9592c908fa1cb91536d",
- "size": "67904600"
- },
- "linux-aarch64": {
- "relative_path": "libcurand/linux-aarch64/libcurand-linux-aarch64-10.3.10.19-archive.tar.xz",
- "sha256": "e5087640b5c9cd8bc173efb6a21f8388b24da59511cc3d57e60afc5e05d14b50",
- "md5": "71ed8ff7a7e539c0be8ca4b699f2f3e1",
- "size": "79761424"
- }
- },
- "libcusolver": {
- "name": "CUDA cuSOLVER",
- "license": "CUDA Toolkit",
- "license_path": "libcusolver/LICENSE.txt",
- "version": "11.7.5.82",
- "linux-x86_64": {
- "relative_path": "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.7.5.82-archive.tar.xz",
- "sha256": "3d3b96f3087dbc43893a28691b172f31725b316d524f5a3c1e6837257c898d06",
- "md5": "efcc5d100623563d1a56dff59b45b65d",
- "size": "324393196"
- },
- "linux-sbsa": {
- "relative_path": "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.7.5.82-archive.tar.xz",
- "sha256": "db463593ffcbc78f542a7f1ef808da43bf742acae654d970d99a47289c2a83e5",
- "md5": "63113f462dc11289f996eec8bab1db74",
- "size": "323573816"
- },
- "windows-x86_64": {
- "relative_path": "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.7.5.82-archive.zip",
- "sha256": "e991d64a0bbe3e0bb69ce2adce000244288002b0341894729666d66adb9b4f25",
- "md5": "e2d79987f6e38f63cc64816f393a8e51",
- "size": "322216184"
- },
- "linux-aarch64": {
- "relative_path": "libcusolver/linux-aarch64/libcusolver-linux-aarch64-11.7.5.82-archive.tar.xz",
- "sha256": "45e2fefeee5797c0492d8a9ee26c3dbb7af0cdcefe6f1cd25bd586daa633d9a0",
- "md5": "e311d62bfc65c6afc29152f6e923f78c",
- "size": "113258352"
- }
- },
- "libcusparse": {
- "name": "CUDA cuSPARSE",
- "license": "CUDA Toolkit",
- "license_path": "libcusparse/LICENSE.txt",
- "version": "12.5.10.65",
- "linux-x86_64": {
- "relative_path": "libcusparse/linux-x86_64/libcusparse-linux-x86_64-12.5.10.65-archive.tar.xz",
- "sha256": "a83415dcd3e1183afe363d4740f9f0309cfe560c6c08016c2a61468304f4b848",
- "md5": "c7ed952d12dec0f50a4386e5d09203f6",
- "size": "398914580"
- },
- "linux-sbsa": {
- "relative_path": "libcusparse/linux-sbsa/libcusparse-linux-sbsa-12.5.10.65-archive.tar.xz",
- "sha256": "8d1c8a57ba3eaecc3f7c11e29fed275a2f3dca5cea51dd2a24d07ab5d9998583",
- "md5": "2d48c3aecca07be0a458a977350ce175",
- "size": "398606816"
- },
- "windows-x86_64": {
- "relative_path": "libcusparse/windows-x86_64/libcusparse-windows-x86_64-12.5.10.65-archive.zip",
- "sha256": "abb4bfc01198f82fbc956773ccb98c578c03027b6ad425e829355be0c0a11a4a",
- "md5": "33ce31c3d880596c31304c965dbfcdce",
- "size": "358114928"
- },
- "linux-aarch64": {
- "relative_path": "libcusparse/linux-aarch64/libcusparse-linux-aarch64-12.5.10.65-archive.tar.xz",
- "sha256": "b294b6cd0acf5e68078d2fe4d41d95a4073fed780805adca7774bce7cbbe5b65",
- "md5": "ce4d363d3affd40fe751f065ec2bd4cf",
- "size": "131075108"
- }
- },
- "libnpp": {
- "name": "CUDA NPP",
- "license": "CUDA Toolkit",
- "license_path": "libnpp/LICENSE.txt",
- "version": "12.4.1.87",
- "linux-x86_64": {
- "relative_path": "libnpp/linux-x86_64/libnpp-linux-x86_64-12.4.1.87-archive.tar.xz",
- "sha256": "49351448d896854284ec708c14506eaaceb92aa01fbe35c91d5c52ad482e17ae",
- "md5": "03de546e34ad54d0119594bc237c5e87",
- "size": "331733872"
- },
- "linux-sbsa": {
- "relative_path": "libnpp/linux-sbsa/libnpp-linux-sbsa-12.4.1.87-archive.tar.xz",
- "sha256": "992d461905366cec4243b26ce7bfe997c0c0eabf53a001333025930a1a0c7237",
- "md5": "8de3be3d9043a07011b0de46c49ea668",
- "size": "330804724"
- },
- "windows-x86_64": {
- "relative_path": "libnpp/windows-x86_64/libnpp-windows-x86_64-12.4.1.87-archive.zip",
- "sha256": "cfcfbf59e4e5ce71113c058bd4eba3dd56e4db080932146d4047c0d44b4a558e",
- "md5": "7549e1191510ae5ca9291e5f13c70296",
- "size": "274109870"
- },
- "linux-aarch64": {
- "relative_path": "libnpp/linux-aarch64/libnpp-linux-aarch64-12.4.1.87-archive.tar.xz",
- "sha256": "50c9f80592eaf4f246c82475143768b848333d9f540782257d42023f5fe68fdf",
- "md5": "869efb32d5ab9468fda4cb94848cf90f",
- "size": "104647240"
- }
- },
- "libnvfatbin": {
- "name": "NVIDIA compiler library for fatbin interaction",
- "license": "CUDA Toolkit",
- "license_path": "libnvfatbin/LICENSE.txt",
- "version": "12.9.82",
- "linux-x86_64": {
- "relative_path": "libnvfatbin/linux-x86_64/libnvfatbin-linux-x86_64-12.9.82-archive.tar.xz",
- "sha256": "315be969a303437329bf72d7141babed024fc54f90a10aa748b03be8f826d57b",
- "md5": "d5e2dc19c01ab62dbf437a1ef80847b1",
- "size": "930820"
- },
- "linux-sbsa": {
- "relative_path": "libnvfatbin/linux-sbsa/libnvfatbin-linux-sbsa-12.9.82-archive.tar.xz",
- "sha256": "87bf71288ea7390d039b246fa794cad2ddd3b164ce9566f8542bb15039432cdb",
- "md5": "91902ce86f6f55a4ecc948f95bf1c032",
- "size": "836312"
- },
- "windows-x86_64": {
- "relative_path": "libnvfatbin/windows-x86_64/libnvfatbin-windows-x86_64-12.9.82-archive.zip",
- "sha256": "86563b25096bbc21d74b1c043701ec8596499f76b40e32f9ec9179fc10404d00",
- "md5": "c0963a07d7f2cbffd34b0b1ec6cae5c0",
- "size": "2217262"
- },
- "linux-aarch64": {
- "relative_path": "libnvfatbin/linux-aarch64/libnvfatbin-linux-aarch64-12.9.82-archive.tar.xz",
- "sha256": "248e77ede9afbd6060cda7de0475d222731ac021e22e696ce75ed72b426dfca9",
- "md5": "814b2ff13e944a07669580eb85c0e653",
- "size": "808780"
- }
- },
- "libnvidia_nscq": {
- "name": "NVIDIA NSCQ API",
- "license": "NVIDIA Driver",
- "license_path": "libnvidia_nscq/LICENSE.txt",
- "version": "575.57.08",
- "linux-x86_64": {
- "relative_path": "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-575.57.08-archive.tar.xz",
- "sha256": "7c54e959ee50212be8595e01ee76581c1f3a13c19b2279424b55a8d26385c41a",
- "md5": "b86a87c4f9fd58a79ced07cf82cec271",
- "size": "455504"
- },
- "linux-sbsa": {
- "relative_path": "libnvidia_nscq/linux-sbsa/libnvidia_nscq-linux-sbsa-575.57.08-archive.tar.xz",
- "sha256": "931004b8b2062249016a9bded2499f70331d27b265226ed879428b8bd7e4bb20",
- "md5": "790ca3dd29b03a71f32ad1dd05611a9e",
- "size": "446980"
- }
- },
- "libnvjitlink": {
- "name": "NVIDIA compiler library for JIT LTO functionality",
- "license": "CUDA Toolkit",
- "license_path": "libnvjitlink/LICENSE.txt",
- "version": "12.9.86",
- "linux-x86_64": {
- "relative_path": "libnvjitlink/linux-x86_64/libnvjitlink-linux-x86_64-12.9.86-archive.tar.xz",
- "sha256": "392cac3144b52ba14900bc7259ea6405ae6da88a8c704eab9bbbcc9ba4824b07",
- "md5": "9156156146001536d1c8346783991d1b",
- "size": "54021940"
- },
- "linux-sbsa": {
- "relative_path": "libnvjitlink/linux-sbsa/libnvjitlink-linux-sbsa-12.9.86-archive.tar.xz",
- "sha256": "9c9227c1e9122fd8448cafced3b32bc69f40d3c041d25034ea23611a1262852f",
- "md5": "7fdf2864352ac613415327ebde38598b",
- "size": "50981988"
- },
- "windows-x86_64": {
- "relative_path": "libnvjitlink/windows-x86_64/libnvjitlink-windows-x86_64-12.9.86-archive.zip",
- "sha256": "ee7175da9628d47ccc92dce6d28d57ca77633e79079a2aee90e2a645edcd1384",
- "md5": "4cdb56f88316a5ade3edf69a1e7192e8",
- "size": "265666466"
- },
- "linux-aarch64": {
- "relative_path": "libnvjitlink/linux-aarch64/libnvjitlink-linux-aarch64-12.9.86-archive.tar.xz",
- "sha256": "a24842165d98660d4ba9fd753395f7c9834445552110fabce4baa4c211fd2c52",
- "md5": "548a35d56f08d07b1dc294a3c8172f71",
- "size": "54783780"
- }
- },
- "libnvjpeg": {
- "name": "CUDA nvJPEG",
- "license": "CUDA Toolkit",
- "license_path": "libnvjpeg/LICENSE.txt",
- "version": "12.4.0.76",
- "linux-x86_64": {
- "relative_path": "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-12.4.0.76-archive.tar.xz",
- "sha256": "ddd8245b2803f5b55211261d7e5d7abf803c05f3b032238d0feaa6e09ea9401d",
- "md5": "b9f7806fb279c9cdd0b4a40e4171b87b",
- "size": "6378624"
- },
- "linux-sbsa": {
- "relative_path": "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-12.4.0.76-archive.tar.xz",
- "sha256": "405b5627ffd772d2837ae4ece123fdee841c34894dba2180a1c8e1b84c0f2665",
- "md5": "bad1da3ec8865dbd3955a757bb6b7ba0",
- "size": "6179324"
- },
- "windows-x86_64": {
- "relative_path": "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-12.4.0.76-archive.zip",
- "sha256": "b253241fc88bf30947b8ee068101aca8930960f113d8ee4a9583de021a79ffa1",
- "md5": "d19d13f9bd3dbc9c9361a3c1fee99dd5",
- "size": "4667529"
- },
- "linux-aarch64": {
- "relative_path": "libnvjpeg/linux-aarch64/libnvjpeg-linux-aarch64-12.4.0.76-archive.tar.xz",
- "sha256": "a9841bff40e577bec81352054e05c5d98720ae8e2ccfc4863eaac9dd35444c27",
- "md5": "0a7197330938f8b5363d38bdde63562c",
- "size": "1821640"
- }
- },
- "libnvsdm": {
- "name": "LIBNVSDM",
- "license": "NVIDIA",
- "license_path": "libnvsdm/LICENSE.txt",
- "version": "575.57.08",
- "linux-x86_64": {
- "relative_path": "libnvsdm/linux-x86_64/libnvsdm-linux-x86_64-575.57.08-archive.tar.xz",
- "sha256": "7a6ee934d5c328f9c05e967b63053c211f80485e0443ac119d887612a510ad53",
- "md5": "788f7c59de54096d84dc7f645964ad2a",
- "size": "500100"
- }
- },
- "mft": {
- "name": "NVLink 5 MFT",
- "license": "NVIDIA Proprietary",
- "license_path": "mft/LICENSE.txt",
- "version": "4.30.1.510",
- "linux-x86_64": {
- "relative_path": "mft/linux-x86_64/mft-linux-x86_64-4.30.1.510-archive.tar.xz",
- "sha256": "512714ab076d90d88550e60f5da65181363336cee94c67bff8821face8ef10b4",
- "md5": "30698cf8741826df5ca3d4d3bb3a982c",
- "size": "45536612"
- },
- "linux-sbsa": {
- "relative_path": "mft/linux-sbsa/mft-linux-sbsa-4.30.1.510-archive.tar.xz",
- "sha256": "95c05e1bc03ff81dffa58bfff26a1dd59c6300d6d5922662ae59c7af5788a310",
- "md5": "78ef93686e91302f7b751fed8f83d9be",
- "size": "44222004"
- }
- },
- "mft_autocomplete": {
- "name": "NVLink 5 MFT AUTOCOMPLETE",
- "license": "NVIDIA Proprietary",
- "license_path": "mft_autocomplete/LICENSE.txt",
- "version": "4.30.1.510",
- "linux-x86_64": {
- "relative_path": "mft_autocomplete/linux-x86_64/mft_autocomplete-linux-x86_64-4.30.1.510-archive.tar.xz",
- "sha256": "dc9069baa888c7ca0c3e55a3043d27b0100c29c81e6ed3346907dd49dabb1325",
- "md5": "b65cb40bacfe276b3444920e8eef1f2f",
- "size": "11884"
- },
- "linux-sbsa": {
- "relative_path": "mft_autocomplete/linux-sbsa/mft_autocomplete-linux-sbsa-4.30.1.510-archive.tar.xz",
- "sha256": "64647ce2a4de62e535ea7060d20d58c2613937071008c2a93894e1995facce2b",
- "md5": "bf034fbf9f887d62434f83dc9727db80",
- "size": "11880"
- }
- },
- "mft_oem": {
- "name": "NVLink 5 MFT OEM",
- "license": "NVIDIA Proprietary",
- "license_path": "mft_oem/LICENSE.txt",
- "version": "4.30.1.510",
- "linux-x86_64": {
- "relative_path": "mft_oem/linux-x86_64/mft_oem-linux-x86_64-4.30.1.510-archive.tar.xz",
- "sha256": "7a4729f8b91ba5c179820583189a4c95ffa9669312a28fe7ac03feebb726bbc3",
- "md5": "7329d76d0e5b976f88ef1f2484d962de",
- "size": "4708108"
- },
- "linux-sbsa": {
- "relative_path": "mft_oem/linux-sbsa/mft_oem-linux-sbsa-4.30.1.510-archive.tar.xz",
- "sha256": "b71bb03130b6dd3388a3e909cdf91cc9bca8b8098a8b80b5f376f5726e5b5e1c",
- "md5": "e55a4d898553c2cf92be57724a8204e1",
- "size": "4429188"
- }
- },
- "nsight_compute": {
- "name": "Nsight Compute",
- "license": "NVIDIA SLA",
- "license_path": "nsight_compute/LICENSE.txt",
- "version": "2025.2.1.3",
- "linux-x86_64": {
- "relative_path": "nsight_compute/linux-x86_64/nsight_compute-linux-x86_64-2025.2.1.3-archive.tar.xz",
- "sha256": "02ab8867197aaf6a6ae3171293d70b6a9ddb20296be94ff4287741338cc2e1df",
- "md5": "e81faf319af6b21f241bae535d3d1907",
- "size": "300347320"
- },
- "linux-sbsa": {
- "relative_path": "nsight_compute/linux-sbsa/nsight_compute-linux-sbsa-2025.2.1.3-archive.tar.xz",
- "sha256": "0e336a5139f76778b8ad70fdb49fb43817ec1bb3ee6e7425d59d99d8c455d976",
- "md5": "18334b109fe6f10fdba2c2681726ba96",
- "size": "107009604"
- },
- "windows-x86_64": {
- "relative_path": "nsight_compute/windows-x86_64/nsight_compute-windows-x86_64-2025.2.1.3-archive.zip",
- "sha256": "e9d558654c98d83049969d133b98922b53ab8f4e3ba9e0a37bdb5e2ff300b7de",
- "md5": "7cb9cff3e0718212866c7fbb4365dee5",
- "size": "341265370"
- },
- "linux-aarch64": {
- "relative_path": "nsight_compute/linux-aarch64/nsight_compute-linux-aarch64-2025.2.1.3-archive.tar.xz",
- "sha256": "51c7762110c34728acd37878d4340f13612401fa622be0031b1a9e2ce112cfb2",
- "md5": "355babae2f49f3f2c7ec1cf1c0b07966",
- "size": "221171904"
- }
- },
- "nsight_systems": {
- "name": "Nsight Systems",
- "license": "NVIDIA SLA",
- "license_path": "nsight_systems/LICENSE.txt",
- "version": "2025.1.3.140",
- "linux-x86_64": {
- "relative_path": "nsight_systems/linux-x86_64/nsight_systems-linux-x86_64-2025.1.3.140-archive.tar.xz",
- "sha256": "dded4227619340307be0ba5bc4e23bcbc966e2df3763170ebb20410c2b54754e",
- "md5": "0b16c35f6e63a4fc33d14795e65bcd61",
- "size": "1075732108"
- },
- "linux-sbsa": {
- "relative_path": "nsight_systems/linux-sbsa/nsight_systems-linux-sbsa-2025.1.3.140-archive.tar.xz",
- "sha256": "479c46de1c459f7c760ef1ea5e5bbe61bfe7f4ba525ce4778d5ba25d874b8e1f",
- "md5": "6d70406b53a94eba94d7c3552b938fe6",
- "size": "980282844"
- },
- "windows-x86_64": {
- "relative_path": "nsight_systems/windows-x86_64/nsight_systems-windows-x86_64-2025.1.3.140-archive.zip",
- "sha256": "8d61f266a8a1bc1ababd44de3ee38f7b85c8cdfcdaebace14c8f065d7624d0b3",
- "md5": "b741046881531cbf6e3ccedb0b403432",
- "size": "403084779"
- }
- },
- "nsight_vse": {
- "name": "Nsight Visual Studio Edition (VSE)",
- "license": "NVIDIA SLA",
- "license_path": "nsight_vse/LICENSE.txt",
- "version": "2025.2.1.25125",
- "windows-x86_64": {
- "relative_path": "nsight_vse/windows-x86_64/nsight_vse-windows-x86_64-2025.2.1.25125-archive.zip",
- "sha256": "3f2b6ca8705929c97e0f931f0559921b110b9337cf11af5e017d0c95b5b31feb",
- "md5": "7e74f479c09aece6e5b46c97d0d4cc86",
- "size": "136237151"
- }
- },
- "nvidia_driver": {
- "name": "NVIDIA Linux Driver",
- "license": "NVIDIA Driver",
- "license_path": "nvidia_driver/LICENSE.txt",
- "version": "575.57.08",
- "linux-x86_64": {
- "relative_path": "nvidia_driver/linux-x86_64/nvidia_driver-linux-x86_64-575.57.08-archive.tar.xz",
- "sha256": "27ddfabde120a107527cbf88a6c96d1f81ee5c977462ce1a793051a3e678f552",
- "md5": "9007dddd1e2d48f897958b676fbe30ff",
- "size": "471616744"
- },
- "linux-sbsa": {
- "relative_path": "nvidia_driver/linux-sbsa/nvidia_driver-linux-sbsa-575.57.08-archive.tar.xz",
- "sha256": "4a7d1accb257f2539ff7dabb02319339fc3a8db622073e5dde33a5446910346a",
- "md5": "3c2b686f392789d8f3a1db1ae2ad62be",
- "size": "349127420"
- }
- },
- "nvidia_fs": {
- "name": "NVIDIA filesystem",
- "license": "CUDA Toolkit",
- "license_path": "nvidia_fs/LICENSE.txt",
- "version": "2.25.7",
- "linux-x86_64": {
- "relative_path": "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.25.7-archive.tar.xz",
- "sha256": "6e11ec0b885177ab21f4b864ff7417ea3cc1b0994f1c318767984557cd5b29d1",
- "md5": "60d2fa54d55b739302e3db38a8a389c9",
- "size": "60280"
- },
- "linux-sbsa": {
- "relative_path": "nvidia_fs/linux-sbsa/nvidia_fs-linux-sbsa-2.25.7-archive.tar.xz",
- "sha256": "62baf0beac2d446c0ff033fb3780cf348ab9c090d7903c210106dc98bb29d7eb",
- "md5": "3859bed4b5e330cde0e2316f9cdcdaeb",
- "size": "60296"
- },
- "linux-aarch64": {
- "relative_path": "nvidia_fs/linux-aarch64/nvidia_fs-linux-aarch64-2.25.7-archive.tar.xz",
- "sha256": "b8c67e28e9e23453183fb7d12ed9fed449427b2c11a21b1de4e7046a57d8d366",
- "md5": "5128c63c80c1089340b65807445d921a",
- "size": "60272"
- }
- },
- "nvlsm": {
- "name": "NVLSM SM component",
- "license": "NVIDIA Proprietary",
- "license_path": "nvlsm/LICENSE.txt",
- "version": "2025.03.1",
- "linux-x86_64": {
- "relative_path": "nvlsm/linux-x86_64/nvlsm-linux-x86_64-2025.03.1-archive.tar.xz",
- "sha256": "b034dad10a3154359e244b85206cd73f0fbce8e1cdf76058417b7b562c337388",
- "md5": "6e09669fe8e4fb26e5334a1c4aa9dabb",
- "size": "6890300"
- },
- "linux-sbsa": {
- "relative_path": "nvlsm/linux-sbsa/nvlsm-linux-sbsa-2025.03.1-archive.tar.xz",
- "sha256": "e260285ec01c6beb562a14625e9564b96374bb824ec62cc9866066a48710fa54",
- "md5": "bc90989f567c27d8b39e607f719acba8",
- "size": "6175832"
- }
- },
- "visual_studio_integration": {
- "name": "CUDA Visual Studio Integration",
- "license": "CUDA Toolkit",
- "license_path": "visual_studio_integration/LICENSE.txt",
- "version": "12.9.79",
- "windows-x86_64": {
- "relative_path": "visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.9.79-archive.zip",
- "sha256": "d5b6514866395f52f04107da1aa523954f8dc76daf18a9f8699c3d564f294449",
- "md5": "680fbdf0f345619c1fa3de5f1fc79090",
- "size": "864204"
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cudnn/releases.nix b/pkgs/development/cuda-modules/cudnn/releases.nix
deleted file mode 100644
index d8c4d70ddd09..000000000000
--- a/pkgs/development/cuda-modules/cudnn/releases.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-# NOTE: Check the following URLs for support matrices:
-# v8 -> https://docs.nvidia.com/deeplearning/cudnn/archives/index.html
-# v9 -> https://docs.nvidia.com/deeplearning/cudnn/frontend/latest/reference/support-matrix.html
-# Version policy is to keep the latest minor release for each major release.
-# https://developer.download.nvidia.com/compute/cudnn/redist/
-{
- cudnn.releases = {
- # jetson
- linux-aarch64 = [
- {
- version = "8.9.5.30";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-8.9.5.30_cuda12-archive.tar.xz";
- hash = "sha256-BJH3sC9VwiB362eL8xTB+RdSS9UHz1tlgjm/mKRyM6E=";
- }
- {
- version = "9.7.1.26";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-9.7.1.26_cuda12-archive.tar.xz";
- hash = "sha256-jDPWAXKOiJYpblPwg5FUSh7F0Dgg59LLnd+pX9y7r1w=";
- }
- {
- version = "9.8.0.87";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-9.8.0.87_cuda12-archive.tar.xz";
- hash = "sha256-8D7OP/B9FxnwYhiXOoeXzsG+OHzDF7qrW7EY3JiBmec=";
- }
- ];
- # powerpc
- linux-ppc64le = [ ];
- # server-grade arm
- linux-sbsa = [
- {
- version = "8.9.7.29";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.7.29_cuda12-archive.tar.xz";
- hash = "sha256-6Yt8gAEHheXVygHuTOm1sMjHNYfqb4ZIvjTT+NHUe9E=";
- }
- {
- version = "9.3.0.75";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.6";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.3.0.75_cuda12-archive.tar.xz";
- hash = "sha256-Eibdm5iciYY4VSlj0ACjz7uKCgy5uvjLCear137X1jk=";
- }
- {
- version = "9.7.1.26";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.7.1.26_cuda12-archive.tar.xz";
- hash = "sha256-koJFUKlesnWwbJCZhBDhLOBRQOBQjwkFZExlTJ7Xp2Q=";
- }
- {
- version = "9.8.0.87";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.8.0.87_cuda12-archive.tar.xz";
- hash = "sha256-IvYvR08MuzW+9UCtsdhB2mPJzT33azxOQwEPQ2ss2Fw=";
- }
- {
- version = "9.11.0.98";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.9";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.11.0.98_cuda12-archive.tar.xz";
- hash = "sha256-X81kUdiKnTt/rLwASB+l4rsV8sptxvhuCysgG8QuzVY=";
- }
-
- ];
- # x86_64
- linux-x86_64 = [
- {
- version = "8.9.7.29";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz";
- hash = "sha256-R1MzYlx+QqevPKCy91BqEG4wyTsaoAgc2cE++24h47s=";
- }
- {
- version = "9.3.0.75";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.6";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.3.0.75_cuda12-archive.tar.xz";
- hash = "sha256-PW7xCqBtyTOaR34rBX4IX/hQC73ueeQsfhNlXJ7/LCY=";
- }
- {
- version = "9.7.1.26";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.7.1.26_cuda12-archive.tar.xz";
- hash = "sha256-EJpeXGvN9Dlub2Pz+GLtLc8W7pPuA03HBKGxG98AwLE=";
- }
- {
- version = "9.8.0.87";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.8.0.87_cuda12-archive.tar.xz";
- hash = "sha256-MhubM7sSh0BNk9VnLTUvFv6rxLIgrGrguG5LJ/JX3PQ=";
- }
- {
- version = "9.11.0.98";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.9";
- url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.11.0.98_cuda12-archive.tar.xz";
- hash = "sha256-tgyPrQH6FSHS5x7TiIe5BHjX8Hs9pJ/WirEYqf7k2kg=";
- }
- ];
- };
-}
diff --git a/pkgs/development/cuda-modules/cudnn/shims.nix b/pkgs/development/cuda-modules/cudnn/shims.nix
deleted file mode 100644
index 01918e88f07b..000000000000
--- a/pkgs/development/cuda-modules/cudnn/shims.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# Shims to mimic the shape of ../modules/generic/manifests/{feature,redistrib}/release.nix
-{
- package,
- # redistSystem :: String
- # String is "unsupported" if the given architecture is unsupported.
- redistSystem,
-}:
-{
- featureRelease = {
- inherit (package) minCudaVersion maxCudaVersion;
- ${redistSystem}.outputs = {
- lib = true;
- static = true;
- dev = true;
- };
- };
- redistribRelease = {
- name = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
- inherit (package) hash url version;
- };
-}
diff --git a/pkgs/development/cuda-modules/cusparselt/extension.nix b/pkgs/development/cuda-modules/cusparselt/extension.nix
deleted file mode 100644
index f53405e3d099..000000000000
--- a/pkgs/development/cuda-modules/cusparselt/extension.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-# Support matrix can be found at
-# https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-880/support-matrix/index.html
-{
- cudaLib,
- lib,
- redistSystem,
-}:
-let
- inherit (lib)
- attrsets
- lists
- modules
- trivial
- ;
-
- redistName = "cusparselt";
- pname = "libcusparse_lt";
-
- cusparseltVersions = [
- "0.7.1"
- ];
-
- # Manifests :: { redistrib, feature }
-
- # Each release of cusparselt gets mapped to an evaluated module for that release.
- # From there, we can get the min/max CUDA versions supported by that release.
- # listOfManifests :: List Manifests
- listOfManifests =
- let
- configEvaluator =
- fullCusparseltVersion:
- modules.evalModules {
- modules = [
- ../modules
- # We need to nest the manifests in a config.cusparselt.manifests attribute so the
- # module system can evaluate them.
- {
- cusparselt.manifests = {
- redistrib = trivial.importJSON (./manifests + "/redistrib_${fullCusparseltVersion}.json");
- feature = trivial.importJSON (./manifests + "/feature_${fullCusparseltVersion}.json");
- };
- }
- ];
- };
- # Un-nest the manifests attribute set.
- releaseGrabber = evaluatedModules: evaluatedModules.config.cusparselt.manifests;
- in
- lists.map (trivial.flip trivial.pipe [
- configEvaluator
- releaseGrabber
- ]) cusparseltVersions;
-
- # platformIsSupported :: Manifests -> Boolean
- platformIsSupported =
- { feature, redistrib, ... }:
- (attrsets.attrByPath [
- pname
- redistSystem
- ] null feature) != null;
-
- # TODO(@connorbaker): With an auxiliary file keeping track of the CUDA versions each release supports,
- # we could filter out releases that don't support our CUDA version.
- # However, we don't have that currently, so we make a best-effort to try to build TensorRT with whatever
- # libPath corresponds to our CUDA version.
- # supportedManifests :: List Manifests
- supportedManifests = builtins.filter platformIsSupported listOfManifests;
-
- # Compute versioned attribute name to be used in this package set
- # Patch version changes should not break the build, so we only use major and minor
- # computeName :: RedistribRelease -> String
- computeName =
- { version, ... }: cudaLib.mkVersionedName redistName (lib.versions.majorMinor version);
-in
-final: _:
-let
- # buildCusparseltPackage :: Manifests -> AttrSet Derivation
- buildCusparseltPackage =
- { redistrib, feature }:
- let
- drv = final.callPackage ../generic-builders/manifest.nix {
- inherit pname redistName;
- redistribRelease = redistrib.${pname};
- featureRelease = feature.${pname};
- };
- in
- attrsets.nameValuePair (computeName redistrib.${pname}) drv;
-
- extension =
- let
- nameOfNewest = computeName (lists.last supportedManifests).redistrib.${pname};
- drvs = builtins.listToAttrs (lists.map buildCusparseltPackage supportedManifests);
- containsDefault = attrsets.optionalAttrs (drvs != { }) { cusparselt = drvs.${nameOfNewest}; };
- in
- drvs // containsDefault;
-in
-extension
diff --git a/pkgs/development/cuda-modules/cusparselt/manifests/feature_0.7.1.json b/pkgs/development/cuda-modules/cusparselt/manifests/feature_0.7.1.json
deleted file mode 100644
index 0b368e22bb24..000000000000
--- a/pkgs/development/cuda-modules/cusparselt/manifests/feature_0.7.1.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "libcusparse_lt": {
- "linux-aarch64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cutensor/extension.nix b/pkgs/development/cuda-modules/cutensor/extension.nix
deleted file mode 100644
index 5f6724549e3e..000000000000
--- a/pkgs/development/cuda-modules/cutensor/extension.nix
+++ /dev/null
@@ -1,124 +0,0 @@
-# Support matrix can be found at
-# https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-880/support-matrix/index.html
-#
-# TODO(@connorbaker):
-# This is a very similar strategy to CUDA/CUDNN:
-#
-# - Get all versions supported by the current release of CUDA
-# - Build all of them
-# - Make the newest the default
-#
-# Unique twists:
-#
-# - Instead of providing different releases for each version of CUDA, CuTensor has multiple subdirectories in `lib`
-# -- one for each version of CUDA.
-{
- cudaLib,
- cudaMajorMinorVersion,
- lib,
- redistSystem,
-}:
-let
- inherit (lib)
- attrsets
- lists
- modules
- versions
- trivial
- ;
-
- redistName = "cutensor";
- pname = "libcutensor";
-
- cutensorVersions = [
- "2.0.2"
- "2.1.0"
- ];
-
- # Manifests :: { redistrib, feature }
-
- # Each release of cutensor gets mapped to an evaluated module for that release.
- # From there, we can get the min/max CUDA versions supported by that release.
- # listOfManifests :: List Manifests
- listOfManifests =
- let
- configEvaluator =
- fullCutensorVersion:
- modules.evalModules {
- modules = [
- ../modules
- # We need to nest the manifests in a config.cutensor.manifests attribute so the
- # module system can evaluate them.
- {
- cutensor.manifests = {
- redistrib = trivial.importJSON (./manifests + "/redistrib_${fullCutensorVersion}.json");
- feature = trivial.importJSON (./manifests + "/feature_${fullCutensorVersion}.json");
- };
- }
- ];
- };
- # Un-nest the manifests attribute set.
- releaseGrabber = evaluatedModules: evaluatedModules.config.cutensor.manifests;
- in
- lists.map (trivial.flip trivial.pipe [
- configEvaluator
- releaseGrabber
- ]) cutensorVersions;
-
- # Our cudaMajorMinorVersion tells us which version of CUDA we're building against.
- # The subdirectories in lib/ tell us which versions of CUDA are supported.
- # Typically the names will look like this:
- #
- # - 11
- # - 12
-
- # libPath :: String
- libPath = versions.major cudaMajorMinorVersion;
-
- # A release is supported if it has a libPath that matches our CUDA version for our platform.
- # LibPath are not constant across the same release -- one platform may support fewer
- # CUDA versions than another.
- # platformIsSupported :: Manifests -> Boolean
- platformIsSupported =
- { feature, redistrib, ... }:
- (attrsets.attrByPath [
- pname
- redistSystem
- ] null feature) != null;
-
- # TODO(@connorbaker): With an auxiliary file keeping track of the CUDA versions each release supports,
- # we could filter out releases that don't support our CUDA version.
- # However, we don't have that currently, so we make a best-effort to try to build TensorRT with whatever
- # libPath corresponds to our CUDA version.
- # supportedManifests :: List Manifests
- supportedManifests = builtins.filter platformIsSupported listOfManifests;
-
- # Compute versioned attribute name to be used in this package set
- # Patch version changes should not break the build, so we only use major and minor
- # computeName :: RedistribRelease -> String
- computeName =
- { version, ... }: cudaLib.mkVersionedName redistName (lib.versions.majorMinor version);
-in
-final: _:
-let
- # buildCutensorPackage :: Manifests -> AttrSet Derivation
- buildCutensorPackage =
- { redistrib, feature }:
- let
- drv = final.callPackage ../generic-builders/manifest.nix {
- inherit pname redistName libPath;
- redistribRelease = redistrib.${pname};
- featureRelease = feature.${pname};
- };
- in
- attrsets.nameValuePair (computeName redistrib.${pname}) drv;
-
- extension =
- let
- nameOfNewest = computeName (lists.last supportedManifests).redistrib.${pname};
- drvs = builtins.listToAttrs (lists.map buildCutensorPackage supportedManifests);
- containsDefault = attrsets.optionalAttrs (drvs != { }) { cutensor = drvs.${nameOfNewest}; };
- in
- drvs // containsDefault;
-in
-extension
diff --git a/pkgs/development/cuda-modules/cutensor/manifests/feature_2.0.2.json b/pkgs/development/cuda-modules/cutensor/manifests/feature_2.0.2.json
deleted file mode 100644
index 99679aecbc44..000000000000
--- a/pkgs/development/cuda-modules/cutensor/manifests/feature_2.0.2.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "libcutensor": {
- "linux-ppc64le": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cutensor/manifests/feature_2.1.0.json b/pkgs/development/cuda-modules/cutensor/manifests/feature_2.1.0.json
deleted file mode 100644
index 4d6a398605a1..000000000000
--- a/pkgs/development/cuda-modules/cutensor/manifests/feature_2.1.0.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "libcutensor": {
- "linux-sbsa": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "linux-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": true,
- "sample": false,
- "static": true
- }
- },
- "windows-x86_64": {
- "outputs": {
- "bin": false,
- "dev": true,
- "doc": false,
- "lib": false,
- "sample": false,
- "static": false
- }
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.0.2.json b/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.0.2.json
deleted file mode 100644
index cf790b7746c2..000000000000
--- a/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.0.2.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "release_date": "2024-06-24",
- "release_label": "2.0.2",
- "release_product": "cutensor",
- "libcutensor": {
- "name": "NVIDIA cuTENSOR",
- "license": "cuTensor",
- "license_path": "libcutensor/LICENSE.txt",
- "version": "2.0.2.4",
- "linux-x86_64": {
- "relative_path": "libcutensor/linux-x86_64/libcutensor-linux-x86_64-2.0.2.4-archive.tar.xz",
- "sha256": "957b04ef6343aca404fe5f4a3f1f1d3ac0bd04ceb3acecc93e53f4d63bd91157",
- "md5": "2b994ecba434e69ee55043cf353e05b4",
- "size": "545271628"
- },
- "linux-ppc64le": {
- "relative_path": "libcutensor/linux-ppc64le/libcutensor-linux-ppc64le-2.0.2.4-archive.tar.xz",
- "sha256": "db2c05e231a26fb5efee470e1d8e11cb1187bfe0726b665b87cbbb62a9901ba0",
- "md5": "6b00e29407452333946744c4084157e8",
- "size": "543070992"
- },
- "linux-sbsa": {
- "relative_path": "libcutensor/linux-sbsa/libcutensor-linux-sbsa-2.0.2.4-archive.tar.xz",
- "sha256": "9712b54aa0988074146867f9b6f757bf11a61996f3b58b21e994e920b272301b",
- "md5": "c9bb31a92626a092d0c7152b8b3eaa18",
- "size": "540299376"
- },
- "windows-x86_64": {
- "relative_path": "libcutensor/windows-x86_64/libcutensor-windows-x86_64-2.0.2.4-archive.zip",
- "sha256": "ab2fca16d410863d14f2716cec0d07fb21d20ecd24ee47d309e9970c9c01ed4a",
- "md5": "f6cfdb29a9a421a1ee4df674dd54028c",
- "size": "921154033"
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.1.0.json b/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.1.0.json
deleted file mode 100644
index cf0ce0aa4b9a..000000000000
--- a/pkgs/development/cuda-modules/cutensor/manifests/redistrib_2.1.0.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "release_date": "2025-01-27",
- "release_label": "2.1.0",
- "release_product": "cutensor",
- "libcutensor": {
- "name": "NVIDIA cuTENSOR",
- "license": "cuTensor",
- "license_path": "libcutensor/LICENSE.txt",
- "version": "2.1.0.9",
- "linux-x86_64": {
- "relative_path": "libcutensor/linux-x86_64/libcutensor-linux-x86_64-2.1.0.9-archive.tar.xz",
- "sha256": "ee59fcb4e8d59fc0d8cebf5f7f23bf2a196a76e6bcdcaa621aedbdcabd20a759",
- "md5": "ed15120c512dfb3e32b49103850bb9dd",
- "size": "814871140"
- },
- "linux-sbsa": {
- "relative_path": "libcutensor/linux-sbsa/libcutensor-linux-sbsa-2.1.0.9-archive.tar.xz",
- "sha256": "cef7819c4ecf3120d4f99b08463b8db1a8591be25147d1688371024885b1d2f0",
- "md5": "fec00a1a825a05c0166eda6625dc587d",
- "size": "782008004"
- },
- "windows-x86_64": {
- "relative_path": "libcutensor/windows-x86_64/libcutensor-windows-x86_64-2.1.0.9-archive.zip",
- "sha256": "ed835ba7fd617000f77e1dff87403d123edf540bd99339e3da2eaab9d32a4040",
- "md5": "9efcbc0c9c372b0e71e11d4487aa5ffa",
- "size": "1514752712"
- }
- }
-}
diff --git a/pkgs/development/cuda-modules/default.nix b/pkgs/development/cuda-modules/default.nix
new file mode 100644
index 000000000000..48ddae3692de
--- /dev/null
+++ b/pkgs/development/cuda-modules/default.nix
@@ -0,0 +1,152 @@
+{
+ _cuda,
+ config,
+ lib,
+ pkgs,
+ # Manually provided arguments
+ manifests,
+}:
+let
+ inherit (lib.customisation) callPackagesWith;
+ inherit (lib.filesystem) packagesFromDirectoryRecursive;
+ inherit (lib.fixedPoints) composeManyExtensions extends;
+ inherit (lib.lists) optionals;
+ inherit (lib.strings) versionAtLeast versionOlder;
+ inherit (lib.versions) major majorMinor;
+ inherit (_cuda.lib)
+ dropDots
+ formatCapabilities
+ mkVersionedName
+ ;
+
+ # NOTE: This value is considered an implementation detail and should not be exposed in the attribute set.
+ cudaMajorMinorPatchVersion = manifests.cuda.release_label;
+ cudaMajorMinorVersion = majorMinor cudaMajorMinorPatchVersion;
+ cudaMajorVersion = major cudaMajorMinorPatchVersion;
+
+ cudaPackagesMajorMinorVersionedName = mkVersionedName "cudaPackages" cudaMajorMinorVersion;
+
+ # We must use an instance of Nixpkgs where the CUDA package set we're building is the default; if we do not, members
+ # of the versioned, non-default package sets may rely on (transitively) members of the default, unversioned CUDA
+ # package set.
+ # See `Using cudaPackages.pkgs` in doc/languages-frameworks/cuda.section.md for more information.
+ pkgs' =
+ let
+ cudaPackagesUnversionedName = "cudaPackages";
+ cudaPackagesMajorVersionedName = mkVersionedName cudaPackagesUnversionedName cudaMajorVersion;
+ in
+ pkgs.extend (
+ final: _: {
+ recurseForDerivations = false;
+ # The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
+ # minor-versioned and unversioned package sets.
+ # cudaPackages_x = cudaPackages_x_y
+ ${cudaPackagesMajorVersionedName} = final.${cudaPackagesMajorMinorVersionedName};
+ # cudaPackages = cudaPackages_x
+ ${cudaPackagesUnversionedName} = final.${cudaPackagesMajorVersionedName};
+ }
+ );
+
+ cudaPackagesFixedPoint =
+ finalCudaPackages:
+ {
+ # NOTE:
+ # It is important that _cuda is not part of the package set fixed-point. As described by
+ # @SomeoneSerge:
+ # > The layering should be: configuration -> (identifies/is part of) cudaPackages -> (is built using) cudaLib.
+ # > No arrows should point in the reverse directions.
+ # That is to say that cudaLib should only know about package sets and configurations, because it implements
+ # functionality for interpreting configurations, resolving them against data, and constructing package sets.
+ # This decision is driven both by a separation of concerns and by "NAMESET STRICTNESS" (see above).
+ # Also see the comment in `pkgs/top-level/all-packages.nix` about the `_cuda` attribute.
+
+ inherit
+ cudaMajorMinorPatchVersion
+ cudaMajorMinorVersion
+ cudaMajorVersion
+ ;
+
+ pkgs = pkgs';
+
+ # Core
+ callPackages = callPackagesWith (pkgs' // finalCudaPackages);
+
+ cudaNamePrefix = "cuda${cudaMajorMinorVersion}";
+
+ cudaOlder = versionOlder cudaMajorMinorVersion;
+ cudaAtLeast = versionAtLeast cudaMajorMinorVersion;
+
+ # These must be modified through callPackage, not by overriding the scope, since we cannot
+ # depend on them recursively as they are used to add top-level attributes.
+ inherit manifests;
+
+ # Create backendStdenv variants for different host compilers, since users may want to build a CUDA project with
+ # Clang or GCC specifically.
+ # TODO(@connorbaker): Because of the way our setup hooks and patching of NVCC works, the user's choice of
+ # backendStdenv is largely disregarded or will cause build failures; fixing this would require the setup hooks
+ # and patching to be made aware of the current environment (perhaps by reading certain environment variables set
+ # by our backendStdenv).
+ # backendClangStdenv = finalCudaPackages.callPackage ./packages/backendStdenv.nix {
+ # stdenv = pkgs'.clangStdenv;
+ # };
+ # backendGccStdenv = finalCudaPackages.callPackage ./packages/backendStdenv.nix {
+ # stdenv = pkgs'.gccStdenv;
+ # };
+
+ # Must be constructed without `callPackage` to avoid replacing the `override` attribute with that of
+ # `callPackage`'s.
+ buildRedist = import ./buildRedist {
+ inherit (pkgs)
+ _cuda
+ autoAddDriverRunpath
+ autoPatchelfHook
+ config
+ fetchurl
+ lib
+ srcOnly
+ stdenv
+ ;
+ inherit (finalCudaPackages)
+ autoAddCudaCompatRunpath
+ backendStdenv
+ cudaMajorMinorVersion
+ cudaMajorVersion
+ cudaNamePrefix
+ flags
+ manifests
+ markForCudatoolkitRootHook
+ setupCudaHook
+ ;
+ };
+
+ flags =
+ formatCapabilities {
+ inherit (finalCudaPackages.backendStdenv) cudaCapabilities cudaForwardCompat;
+ inherit (_cuda.db) cudaCapabilityToInfo;
+ }
+ # TODO(@connorbaker): Enable the corresponding warnings in `./aliases.nix` after some
+ # time to allow users to migrate to cudaLib and backendStdenv.
+ // {
+ inherit dropDots;
+ cudaComputeCapabilityToName =
+ cudaCapability: _cuda.db.cudaCapabilityToInfo.${cudaCapability}.archName;
+ dropDot = dropDots;
+ isJetsonBuild = finalCudaPackages.backendStdenv.hasJetsonCudaCapability;
+ };
+ }
+ // packagesFromDirectoryRecursive {
+ inherit (finalCudaPackages) callPackage;
+ directory = ./packages;
+ };
+
+ composedExtensions = composeManyExtensions (
+ optionals config.allowAliases [
+ (import ./aliases.nix { inherit lib; })
+ ]
+ ++ _cuda.extensions
+ );
+in
+pkgs'.makeScopeWithSplicing' {
+ otherSplices = pkgs'.generateSplicesForMkScope [ cudaPackagesMajorMinorVersionedName ];
+ f = extends composedExtensions cudaPackagesFixedPoint;
+}
diff --git a/pkgs/development/cuda-modules/packages/README.md b/pkgs/development/cuda-modules/packages/README.md
new file mode 100644
index 000000000000..322522b048de
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/README.md
@@ -0,0 +1,19 @@
+# packages
+
+Packages which are not created by the redistributable builder.
+
+## Conventions
+
+- All new packages should include the following lines as part of their arguments to `stdenv.mkDerivation`:
+
+ ```nix
+ finalAttrs: {
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ # NOTE: Depends on the CUDA package set, so use cudaNamePrefix.
+ name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
+ }
+ ```
+
+ If the package does not require elements of the package set, then the `cudaNamePrefix` must be omitted: changing the name of a derivation yields a different hash and store path, so we would end up with multiple different store paths with the same content.
diff --git a/pkgs/development/cuda-modules/packages/backendStdenv.nix b/pkgs/development/cuda-modules/packages/backendStdenv.nix
index c0fbb7068a9a..3ad59dabeb86 100644
--- a/pkgs/development/cuda-modules/packages/backendStdenv.nix
+++ b/pkgs/development/cuda-modules/packages/backendStdenv.nix
@@ -6,8 +6,8 @@
# E.g. for cudaPackages_12_9 we use gcc14 with gcc's libstdc++
# Cf. https://github.com/NixOS/nixpkgs/pull/218265 for context
{
- config,
_cuda,
+ config,
cudaMajorMinorVersion,
lib,
pkgs,
@@ -15,7 +15,11 @@
stdenvAdapters,
}:
let
- inherit (builtins) toJSON;
+ inherit (builtins)
+ throw
+ toJSON
+ toString
+ ;
inherit (_cuda.db) allSortedCudaCapabilities cudaCapabilityToInfo nvccCompatibilities;
inherit (_cuda.lib)
_cudaCapabilityIsDefault
@@ -24,9 +28,21 @@ let
getRedistSystem
mkVersionedName
;
- inherit (lib) addErrorContext;
- inherit (lib.customisation) extendDerivation;
- inherit (lib.lists) filter intersectLists subtractLists;
+ inherit (lib)
+ addErrorContext
+ assertMsg
+ extendDerivation
+ filter
+ findFirst
+ intersectLists
+ pipe
+ range
+ reverseList
+ subtractLists
+ toIntBase10
+ versionAtLeast
+ ;
+ inherit (lib.versions) major;
# NOTE: By virtue of processing a sorted list (allSortedCudaCapabilities), our groups will be sorted.
@@ -45,6 +61,9 @@ let
passthruExtra = {
nvccHostCCMatchesStdenvCC = backendStdenv.cc == stdenv.cc;
+ # TODO(@connorbaker): Does it make sense to expose the `stdenv` we were called with and the `stdenv` selected
+ # prior to using `stdenvAdapters.useLibsFrom`?
+
# The Nix system of the host platform.
hostNixSystem = stdenv.hostPlatform.system;
@@ -146,9 +165,78 @@ let
_evaluateAssertions assertions
);
+ # TODO(@connorbaker): Seems like `stdenvAdapters.useLibsFrom` breaks clangStdenv's ability to find header files.
+ # To reproduce: use `nix shell .#cudaPackages_12_6.backendClangStdenv.cc` since CUDA 12.6 supports at most Clang
+ # 18, but the current stdenv uses Clang 19, requiring this code path.
+ # With:
+ #
+ # ```cpp
+ # #include
+ #
+ # int main() {
+ # double value = 0.5;
+ # double result = std::sin(value);
+ # return 0;
+ # }
+ # ```
+ #
+ # we get:
+ #
+ # ```console
+ # $ clang++ ./main.cpp
+ # ./main.cpp:1:10: fatal error: 'cmath' file not found
+ # 1 | #include
+ # | ^~~~~~~
+ # 1 error generated.
+ # ```
+ # TODO(@connorbaker): Seems like even using unmodified `clangStdenv` causes issues -- saxpy fails to build CMake
+ # errors during CUDA compiler identification about invalid redefinitions of things like `realpath`.
backendStdenv =
- stdenvAdapters.useLibsFrom stdenv
- pkgs."gcc${nvccCompatibilities.${cudaMajorMinorVersion}.gcc.maxMajorVersion}Stdenv";
+ let
+ hostCCName =
+ if stdenv.cc.isGNU then
+ "gcc"
+ else if stdenv.cc.isClang then
+ "clang"
+ else
+ throw "cudaPackages.backendStdenv: unsupported host compiler: ${stdenv.cc.name}";
+
+ versions = nvccCompatibilities.${cudaMajorMinorVersion}.${hostCCName};
+
+ stdenvIsSupportedVersion =
+ versionAtLeast (major stdenv.cc.version) versions.minMajorVersion
+ && versionAtLeast versions.maxMajorVersion (major stdenv.cc.version);
+
+ maybeGetVersionedCC =
+ if hostCCName == "gcc" then
+ version: pkgs."gcc${version}Stdenv" or null
+ else
+ version: pkgs."llvmPackages_${version}".stdenv or null;
+
+ maybeHostStdenv =
+ pipe (range (toIntBase10 versions.minMajorVersion) (toIntBase10 versions.maxMajorVersion))
+ [
+ # Convert integers to strings.
+ (map toString)
+ # Prefer the highest available version.
+ reverseList
+ # Map to the actual stdenvs or null if unavailable.
+ (map maybeGetVersionedCC)
+ # Get the first available version.
+ (findFirst (x: x != null) null)
+ ];
+ in
+ # If the current stdenv's compiler version is compatible, or we're on an unsupported host system, use stdenv
+ # directly.
+ # If we're on an unsupported host system (like darwin), there's not much else we can do, but we should not break
+ # evaluation on unsupported systems.
+ if stdenvIsSupportedVersion || passthruExtra.hostRedistSystem == "unsupported" then
+ stdenv
+ # Otherwise, try to find a compatible stdenv.
+ else
+ assert assertMsg (maybeHostStdenv != null)
+ "backendStdenv: no supported host compiler found (tried ${hostCCName} ${versions.minMajorVersion} to ${versions.maxMajorVersion})";
+ stdenvAdapters.useLibsFrom stdenv maybeHostStdenv;
in
# TODO: Consider testing whether we in fact use the newer libstdc++
extendDerivation assertCondition passthruExtra backendStdenv
diff --git a/pkgs/development/cuda-modules/packages/cuda-samples.nix b/pkgs/development/cuda-modules/packages/cuda-samples.nix
new file mode 100644
index 000000000000..e77ca8eda743
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda-samples.nix
@@ -0,0 +1,220 @@
+{
+ backendStdenv,
+ _cuda,
+ cmake,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
+ cuda_nvrtc,
+ cuda_nvtx,
+ cuda_profiler_api,
+ cudaAtLeast,
+ cudaNamePrefix,
+ cudaOlder,
+ fetchFromGitHub,
+ flags,
+ lib,
+ libcublas,
+ libcufft,
+ libcurand,
+ libcusolver,
+ libcusparse,
+ libnpp,
+ libnvjitlink,
+ libnvjpeg,
+}:
+backendStdenv.mkDerivation (finalAttrs: {
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
+ pname = "cuda-samples";
+ version = "12.8";
+
+ # We should be able to use samples from the latest version of CUDA
+ # on most of the CUDA package sets we have.
+ # Plus, 12.8 and later are rewritten to use CMake which makes it much, much easier to build.
+ src = fetchFromGitHub {
+ owner = "NVIDIA";
+ repo = "cuda-samples";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-Ba0Fi0v/sQ+1iJ4mslgyIAE+oK5KO0lMoTQCC91vpiA=";
+ };
+
+ prePatch =
+ # https://github.com/NVIDIA/cuda-samples/issues/333
+ ''
+ nixLog "removing sample 0_Introduction/UnifiedMemoryStreams which requires OpenMP support for CUDA"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/0_Introduction/CMakeLists.txt" \
+ --replace-fail \
+ 'add_subdirectory(UnifiedMemoryStreams)' \
+ '# add_subdirectory(UnifiedMemoryStreams)'
+ ''
+ # This sample tries to use a relative path, which doesn't work for our splayed installation.
+ + ''
+ nixLog "patching sample 0_Introduction/matrixMul_nvrtc"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/0_Introduction/matrixMul_nvrtc/CMakeLists.txt" \
+ --replace-fail \
+ "\''${CUDAToolkit_BIN_DIR}/../include/cooperative_groups" \
+ "${lib.getOutput "include" cuda_cudart}/include/cooperative_groups" \
+ --replace-fail \
+ "\''${CUDAToolkit_BIN_DIR}/../include/nv" \
+ "${lib.getOutput "include" cuda_cccl}/include/nv" \
+ --replace-fail \
+ "\''${CUDAToolkit_BIN_DIR}/../include/cuda" \
+ "${lib.getOutput "include" cuda_cccl}/include/cuda"
+ ''
+ # These three samples give undefined references, like
+ # nvlink error : Undefined reference to '__cudaCDP2Free' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o'
+ # nvlink error : Undefined reference to '__cudaCDP2Malloc' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o'
+ # nvlink error : Undefined reference to '__cudaCDP2GetParameterBufferV2' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o'
+ # nvlink error : Undefined reference to '__cudaCDP2LaunchDeviceV2' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o'
+ + ''
+ for sample in cdp{AdvancedQuicksort,BezierTessellation,Quadtree,SimplePrint,SimpleQuicksort}; do
+ nixLog "removing sample 3_CUDA_Features/$sample which fails to link"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/3_CUDA_Features/CMakeLists.txt" \
+ --replace-fail \
+ "add_subdirectory($sample)" \
+ "# add_subdirectory($sample)"
+ done
+ unset -v sample
+ ''
+ + lib.optionalString (cudaOlder "12.4") ''
+ nixLog "removing sample 3_CUDA_Features/graphConditionalNodes which requires at least CUDA 12.4"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/3_CUDA_Features/CMakeLists.txt" \
+ --replace-fail \
+ "add_subdirectory(graphConditionalNodes)" \
+ "# add_subdirectory(graphConditionalNodes)"
+ ''
+ # For some reason this sample requires a static library, which we don't propagate by default due to size.
+ + ''
+ nixLog "patching sample 4_CUDA_Libraries/simpleCUFFT_callback to use dynamic library"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/simpleCUFFT_callback/CMakeLists.txt" \
+ --replace-fail \
+ 'CUDA::cufft_static' \
+ 'CUDA::cufft'
+ ''
+ # Patch to use the correct path to libnvJitLink.so, or disable the sample if older than 12.4.
+ + lib.optionalString (cudaOlder "12.4") ''
+ nixLog "removing sample 4_CUDA_Libraries/jitLto which requires at least CUDA 12.4"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/CMakeLists.txt" \
+ --replace-fail \
+ "add_subdirectory(jitLto)" \
+ "# add_subdirectory(jitLto)"
+ ''
+ + lib.optionalString (cudaAtLeast "12.4") ''
+ nixLog "patching sample 4_CUDA_Libraries/jitLto to use correct path to libnvJitLink.so"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/jitLto/CMakeLists.txt" \
+ --replace-fail \
+ "\''${CUDAToolkit_LIBRARY_DIR}/libnvJitLink.so" \
+ "${lib.getLib libnvjitlink}/lib/libnvJitLink.so"
+ ''
+ # /build/NVIDIA-cuda-samples-v12.8/Samples/4_CUDA_Libraries/watershedSegmentationNPP/watershedSegmentationNPP.cpp:272:80: error: cannot convert 'size_t*' {aka 'long unsigned int*'} to 'int*'
+ # 272 | nppStatus = nppiSegmentWatershedGetBufferSize_8u_C1R(oSizeROI[nImage], &aSegmentationScratchBufferSize[nImage]);
+ # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ # | |
+ # | size_t* {aka long unsigned int*}
+ + lib.optionalString (cudaOlder "12.8") ''
+ nixLog "removing sample 4_CUDA_Libraries/watershedSegmentationNPP which requires at least CUDA 12.8"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/CMakeLists.txt" \
+ --replace-fail \
+ "add_subdirectory(watershedSegmentationNPP)" \
+ "# add_subdirectory(watershedSegmentationNPP)"
+ ''
+ # NVVM samples require a specific build of LLVM, which is a hassle.
+ + ''
+ nixLog "removing samples 7_libNVVM which require a specific build of LLVM"
+ substituteInPlace \
+ "$NIX_BUILD_TOP/$sourceRoot/Samples/CMakeLists.txt" \
+ --replace-fail \
+ 'add_subdirectory(7_libNVVM)' \
+ '# add_subdirectory(7_libNVVM)'
+ ''
+ # Don't use hard-coded CUDA architectures
+ + ''
+ nixLog "patching CMakeLists.txt to use provided CUDA architectures"
+ local path=""
+ while IFS= read -r -d $'\0' path; do
+ nixLog "removing CMAKE_CUDA_ARCHITECTURES declaration from $path"
+ substituteInPlace \
+ "$path" \
+ --replace-fail \
+ 'set(CMAKE_CUDA_ARCHITECTURES' \
+ '# set(CMAKE_CUDA_ARCHITECTURES'
+ done < <(grep --files-with-matches --null "set(CMAKE_CUDA_ARCHITECTURES" --recursive "$NIX_BUILD_TOP/$sourceRoot")
+ unset -v path
+ '';
+
+ nativeBuildInputs = [
+ cmake
+ cuda_nvcc
+ ];
+
+ buildInputs = [
+ cuda_cccl
+ cuda_cudart
+ cuda_nvrtc
+ cuda_nvtx
+ cuda_profiler_api
+ libcublas
+ libcufft
+ libcurand
+ libcusolver
+ libcusparse
+ libnpp
+ libnvjitlink
+ libnvjpeg
+ ];
+
+ cmakeFlags = [
+ (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" flags.cmakeCudaArchitecturesString)
+ (lib.cmakeBool "BUILD_TEGRA" backendStdenv.hasJetsonCudaCapability)
+ ];
+
+ # TODO(@connorbaker):
+ # For some reason, using the combined find command doesn't delete directories:
+ # find "$PWD/Samples" \
+ # \( -type d -name CMakeFiles \) \
+ # -o \( -type f -name cmake_install.cmake \) \
+ # -o \( -type f -name Makefile \) \
+ # -exec rm -rf {} +
+ installPhase = ''
+ runHook preInstall
+
+ pushd "$NIX_BUILD_TOP/$sourceRoot/''${cmakeBuildDir:?}" >/dev/null
+
+ nixLog "deleting CMake related files"
+
+ find "$PWD/Samples" -type d -name CMakeFiles -exec rm -rf {} +
+ find "$PWD/Samples" -type f -name cmake_install.cmake -exec rm -rf {} +
+ find "$PWD/Samples" -type f -name Makefile -exec rm -rf {} +
+
+ nixLog "copying $PWD/Samples to $out/"
+ mkdir -p "$out"
+ cp -rv "$PWD/Samples"/* "$out/"
+
+ popd >/dev/null
+
+ runHook postInstall
+ '';
+
+ meta = {
+ description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit";
+ homepage = "https://github.com/NVIDIA/cuda-samples";
+ license = lib.licenses.nvidiaCuda;
+ platforms = [
+ "aarch64-linux"
+ "x86_64-linux"
+ ];
+ maintainers = [ lib.maintainers.connorbaker ];
+ teams = [ lib.teams.cuda ];
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/cuda_cccl.nix b/pkgs/development/cuda-modules/packages/cuda_cccl.nix
new file mode 100644
index 000000000000..481970c39884
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_cccl.nix
@@ -0,0 +1,34 @@
+{
+ buildRedist,
+ cudaAtLeast,
+ lib,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_cccl";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ ];
+
+ prePatch = lib.optionalString (cudaAtLeast "13.0") ''
+ nixLog "removing top-level $PWD/include/nv directory"
+ rm -rfv "$PWD/include/nv"
+ nixLog "un-nesting top-level $PWD/include/cccl directory"
+ mv -v "$PWD/include/cccl"/* "$PWD/include/"
+ nixLog "removing empty $PWD/include/cccl directory"
+ rmdir -v "$PWD/include/cccl"
+ '';
+
+ meta = {
+ description = "Building blocks that make it easier to write safe and efficient CUDA C++ code";
+ longDescription = ''
+ The goal of CCCL is to provide CUDA C++ developers with building blocks that make it easier to write safe and
+ efficient code.
+ '';
+ homepage = "https://github.com/NVIDIA/cccl";
+ changelog = "https://github.com/NVIDIA/cccl/releases";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_compat.nix b/pkgs/development/cuda-modules/packages/cuda_compat.nix
new file mode 100644
index 000000000000..0a2f5e0e7cd7
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_compat.nix
@@ -0,0 +1,20 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_compat";
+
+ # NOTE: Using multiple outputs with symlinks causes build cycles.
+ # To avoid that (and troubleshooting why), we just use a single output.
+ outputs = [ "out" ];
+
+ autoPatchelfIgnoreMissingDeps = [
+ "libnvrm_gpu.so"
+ "libnvrm_mem.so"
+ "libnvdla_runtime.so"
+ ];
+
+ meta = {
+ description = "Provides minor version forward compatibility for the CUDA runtime";
+ homepage = "https://docs.nvidia.com/deploy/cuda-compatibility";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_crt.nix b/pkgs/development/cuda-modules/packages/cuda_crt.nix
new file mode 100644
index 000000000000..3cf2246235bd
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_crt.nix
@@ -0,0 +1,27 @@
+{ backendStdenv, buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_crt";
+
+ outputs = [ "out" ];
+
+ brokenAssertions = [
+ # TODO(@connorbaker): Build fails on x86 when using pkgsLLVM.
+ # .../include/crt/host_defines.h:67:2:
+ # error: "libc++ is not supported on x86 system"
+ #
+ # 67 | #error "libc++ is not supported on x86 system"
+ # | ^
+ #
+ # 1 error generated.
+ #
+ # # --error 0x1 --
+ {
+ message = "cannot use libc++ on x86_64-linux";
+ assertion = backendStdenv.hostNixSystem == "x86_64-linux" -> backendStdenv.cc.libcxx == null;
+ }
+ ];
+
+ # There's a comment with a reference to /usr
+ allowFHSReferences = true;
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_cudart.nix b/pkgs/development/cuda-modules/packages/cuda_cudart.nix
new file mode 100644
index 000000000000..4b1619fa40ba
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_cudart.nix
@@ -0,0 +1,98 @@
+# TODO(@connorbaker): cuda_cudart.dev depends on crt/host_config.h, which is from
+# (getDev cuda_nvcc). It would be nice to be able to encode that.
+{
+ _cuda,
+ addDriverRunpath,
+ backendStdenv,
+ buildRedist,
+ cuda_cccl,
+ cuda_compat,
+ cuda_crt,
+ cuda_nvcc,
+ cudaAtLeast,
+ lib,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_cudart";
+
+ # NOTE: A number of packages expect cuda_cudart to be in a single directory.
+ # NOTE: CMake expects the static libraries to exist alongside the dynamic libraries,
+ # so we may need to revisit whether we have a static output at all.
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ propagatedBuildOutputs = [
+ "static" # required by CMake
+ "stubs" # always propagate, even when cuda_compat is used, to avoid symbol linking errors
+ ];
+
+ # When cuda_compat is available, propagate it.
+ # NOTE: `cuda_compat` can be disabled by setting the package to `null`. This is useful in cases where
+ # the host OS has a recent enough CUDA driver that the compatibility library isn't needed.
+ propagatedBuildInputs =
+ # Add the dependency on NVCC's include directory.
+ # - crt/host_config.h
+ # TODO(@connorbaker): Check that the dependency offset for this is correct.
+ [ (lib.getOutput "include" cuda_nvcc) ]
+ # TODO(@connorbaker): From CUDA 13.0, crt/host_config.h is in cuda_crt
+ ++ lib.optionals (cudaAtLeast "13.0") [ (lib.getOutput "include" cuda_crt) ]
+ # Add the dependency on CCCL's include directory.
+ # - nv/target
+ # TODO(@connorbaker): Check that the dependency offset for this is correct.
+ ++ [ (lib.getOutput "include" cuda_cccl) ]
+ ++ lib.optionals (backendStdenv.hasJetsonCudaCapability && cuda_compat != null) [
+ cuda_compat
+ ];
+
+ allowFHSReferences = false;
+
+ # Patch the `cudart` package config files so they reference lib
+ postPatch = ''
+ local path=""
+ while IFS= read -r -d $'\0' path; do
+ nixLog "patching $path"
+ sed -i \
+ -e "s|^cudaroot\s*=.*\$||" \
+ -e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
+ "$path"
+ done < <(find -iname 'cudart-*.pc' -print0)
+ unset -v path
+ ''
+ # Patch the `cuda` package config files so they reference stubs
+ # TODO: Will this always pull in the stubs output and cause its setup hook to be executed?
+ + ''
+ local path=""
+ while IFS= read -r -d $'\0' path; do
+ nixLog "patching $path"
+ sed -i \
+ -e "s|^cudaroot\s*=.*\$||" \
+ -e "s|^libdir\s*=.*/lib\$|libdir=''${!outputStubs:?}/lib/stubs|" \
+ -e "s|^Libs\s*:\(.*\)\$|Libs: \1 -Wl,-rpath,${addDriverRunpath.driverLink}/lib|" \
+ "$path"
+ done < <(find -iname 'cuda-*.pc' -print0)
+ unset -v path
+ '';
+
+ # Namelink may not be enough, add a soname.
+ # Cf. https://gitlab.kitware.com/cmake/cmake/-/issues/25536
+ # NOTE: Relative symlinks is fine since this is all within the same output.
+ postInstall = ''
+ pushd "''${!outputStubs:?}/lib/stubs" >/dev/null
+ if [[ -f libcuda.so && ! -f libcuda.so.1 ]]; then
+ nixLog "creating versioned symlink for libcuda.so stub"
+ ln -srv libcuda.so libcuda.so.1
+ fi
+ nixLog "creating symlinks for stubs in lib directory"
+ ln -srvt "''${!outputStubs:?}/lib/" *.so *.so.*
+ popd >/dev/null
+ '';
+
+ meta.description = "CUDA Runtime";
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_cuobjdump.nix b/pkgs/development/cuda-modules/packages/cuda_cuobjdump.nix
new file mode 100644
index 000000000000..754c70915497
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_cuobjdump.nix
@@ -0,0 +1,17 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_cuobjdump";
+ outputs = [ "out" ];
+
+ meta = {
+ description = "Extracts information from CUDA binary files (both standalone and those embedded in host binaries) and presents them in human readable format";
+ longDescription = ''
+ `cuobjdump` extracts information from CUDA binary files (both standalone and those embedded in host binaries)
+ and presents them in human readable format. The output of cuobjdump includes CUDA assembly code for each kernel,
+ CUDA ELF section headers, string tables, relocators and other CUDA specific sections. It also extracts embedded
+ ptx text from host binaries.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/cuda-binary-utilities#cuobjdump";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_cupti.nix b/pkgs/development/cuda-modules/packages/cuda_cupti.nix
new file mode 100644
index 000000000000..4a1eb1d19dac
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_cupti.nix
@@ -0,0 +1,30 @@
+{
+ backendStdenv,
+ buildRedist,
+ lib,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_cupti";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "samples"
+ ]
+ ++ lib.optionals (backendStdenv.hostNixSystem == "x86_64-linux") [ "static" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "C-based interface for creating profiling and tracing tools designed for CUDA applications";
+ longDescription = ''
+ The CUDA Profiling Tools Interface (CUPTI) provides a C-based interface for creating profiling and tracing tools
+ designed for CUDA applications.
+ '';
+ homepage = "https://docs.nvidia.com/cupti";
+ changelog = "https://docs.nvidia.com/cupti/release-notes/release-notes.html";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_cuxxfilt.nix b/pkgs/development/cuda-modules/packages/cuda_cuxxfilt.nix
new file mode 100644
index 000000000000..046ddebebfaf
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_cuxxfilt.nix
@@ -0,0 +1,21 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_cuxxfilt";
+
+ outputs = [
+ "out"
+ "bin"
+ "dev"
+ "include"
+ "static"
+ ];
+
+ meta = {
+ description = "Decode low-level identifiers that have been mangled by CUDA C++ into user readable names";
+ longDescription = ''
+ cu++filt decodes (demangles) low-level identifiers that have been mangled by CUDA C++ into user readable names.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/cuda-binary-utilities#cu-filt";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_demo_suite.nix b/pkgs/development/cuda-modules/packages/cuda_demo_suite.nix
new file mode 100644
index 000000000000..1a85c258eb0e
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_demo_suite.nix
@@ -0,0 +1,33 @@
+{
+ buildRedist,
+ libcufft,
+ libcurand,
+ libGLU,
+ libglut,
+ libglvnd,
+ mesa,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_demo_suite";
+
+ buildInputs = [
+ libcufft
+ libcurand
+ libGLU
+ libglut
+ libglvnd
+ mesa
+ ];
+
+ outputs = [ "out" ];
+
+ meta = {
+ description = "Pre-built applications which use CUDA";
+ longDescription = ''
+ The CUDA Demo Suite contains pre-built applications which use CUDA. These applications demonstrate the
+ capabilities and details of NVIDIA GPUs.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/demo-suite";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_documentation.nix b/pkgs/development/cuda-modules/packages/cuda_documentation.nix
new file mode 100644
index 000000000000..dc872008b58a
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_documentation.nix
@@ -0,0 +1,14 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_documentation";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ homepage = "https://docs.nvidia.com/cuda";
+ changelog = "https://docs.nvidia.com/cuda/cuda-toolkit-release-notes";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_gdb.nix b/pkgs/development/cuda-modules/packages/cuda_gdb.nix
new file mode 100644
index 000000000000..0eb1e56f65c2
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_gdb.nix
@@ -0,0 +1,71 @@
+{
+ backendStdenv,
+ buildRedist,
+ cudaAtLeast,
+ expat,
+ gmp,
+ lib,
+ libxcrypt-legacy,
+ ncurses,
+ python3,
+}:
+let
+ python3MajorMinorVersion = lib.versions.majorMinor python3.version;
+in
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_gdb";
+
+ outputs = [
+ "out"
+ "bin"
+ ];
+
+ allowFHSReferences = true;
+
+ buildInputs = [
+ gmp
+ ]
+ # aarch64, sbsa needs expat
+ ++ lib.optionals backendStdenv.hostPlatform.isAarch64 [ expat ]
+ # From 12.5, cuda-gdb comes with Python TUI wrappers
+ ++ lib.optionals (cudaAtLeast "12.5") [
+ libxcrypt-legacy
+ ncurses
+ python3
+ ];
+
+ # Remove binaries requiring Python3 versions we do not have
+ postInstall = lib.optionalString (cudaAtLeast "12.5") ''
+ pushd "''${!outputBin}/bin" >/dev/null
+ nixLog "removing cuda-gdb-python*-tui binaries for Python 3 versions other than ${python3MajorMinorVersion}"
+ for pygdb in cuda-gdb-python*-tui; do
+ if [[ "$pygdb" == "cuda-gdb-python${python3MajorMinorVersion}-tui" ]]; then
+ continue
+ fi
+ nixLog "removing $pygdb"
+ rm -rf "$pygdb"
+ done
+ unset -v pygdb
+ popd >/dev/null
+ '';
+
+ brokenAssertions = [
+ {
+ # TODO(@connorbaker): Figure out which are supported.
+ message = "python 3 version is supported";
+ assertion = true;
+ }
+ ];
+
+ meta = {
+ description = "NVIDIA tool for debugging CUDA applications on Linux and QNX systems";
+ longDescription = ''
+ CUDA-GDB is the NVIDIA tool for debugging CUDA applications running on Linux and QNX. CUDA-GDB is an extension
+ to GDB, the GNU Project debugger. The tool provides developers with a mechanism for debugging CUDA
+ applications running on actual hardware.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/cuda-gdb";
+ changelog = "https://docs.nvidia.com/cuda/cuda-gdb#release-notes";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nsight.nix b/pkgs/development/cuda-modules/packages/cuda_nsight.nix
new file mode 100644
index 000000000000..d47e55f6920d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nsight.nix
@@ -0,0 +1,19 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nsight";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "Nsight Eclipse Plugins Edition";
+ longDescription = ''
+ NVIDIA Nsight Eclipse Edition is a unified CPU plus GPU integrated development environment (IDE) for developing
+ CUDA applications on Linux and Mac OS X for the x86, POWER and ARM platforms. It is designed to help developers
+ on all stages of the software development process.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/nsight-eclipse-plugins-guide";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvcc.nix b/pkgs/development/cuda-modules/packages/cuda_nvcc.nix
new file mode 100644
index 000000000000..41da5b0f8c6c
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvcc.nix
@@ -0,0 +1,175 @@
+{
+ _cuda,
+ backendStdenv,
+ buildRedist,
+ cudaAtLeast,
+ cudaOlder,
+ lib,
+ libnvvm,
+}:
+buildRedist (finalAttrs: {
+ redistName = "cuda";
+ pname = "cuda_nvcc";
+
+ # NOTE: May need to restrict cuda_nvcc to a single output to avoid breaking consumers which expect NVCC
+ # to be within a single directory structure. This happens partly because NVCC is also home to NVVM.
+ outputs = [
+ "out"
+ ]
+ # CUDA 13.0 has essentially nothing other than binaries.
+ ++ lib.optionals (cudaOlder "13.0") [
+ "bin"
+ "dev"
+ "include"
+ "static"
+ ];
+
+ # The nvcc and cicc binaries contain hard-coded references to /usr
+ allowFHSReferences = true;
+
+ # Entries here will be in nativeBuildInputs when cuda_nvcc is in nativeBuildInputs
+ propagatedBuildInputs = [ backendStdenv.cc ];
+
+ # Patch the nvcc.profile.
+ # Syntax:
+ # - `=` for assignment,
+ # - `?=` for conditional assignment,
+ # - `+=` to "prepend",
+ # - `=+` to "append".
+
+ # Cf. https://web.archive.org/web/20220912081901/https://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/nvcc.pdf
+
+ # We set all variables with the lowest priority (=+), but we do force
+ # nvcc to use the fixed backend toolchain. Cf. comments in
+ # backend-stdenv.nix
+
+ # As an example, here's the nvcc.profile for CUDA 11.8-12.4 (yes, that is a leading newline):
+
+ #
+ # TOP = $(_HERE_)/..
+ #
+ # NVVMIR_LIBRARY_DIR = $(TOP)/$(_NVVM_BRANCH_)/libdevice
+ #
+ # LD_LIBRARY_PATH += $(TOP)/lib:
+ # PATH += $(TOP)/$(_NVVM_BRANCH_)/bin:$(_HERE_):
+ #
+ # INCLUDES += "-I$(TOP)/$(_TARGET_DIR_)/include" $(_SPACE_)
+ #
+ # LIBRARIES =+ $(_SPACE_) "-L$(TOP)/$(_TARGET_DIR_)/lib$(_TARGET_SIZE_)/stubs" "-L$(TOP)/$(_TARGET_DIR_)/lib$(_TARGET_SIZE_)"
+ #
+ # CUDAFE_FLAGS +=
+ # PTXAS_FLAGS +=
+
+ # And here's the nvcc.profile for CUDA 12.5:
+
+ #
+ # TOP = $(_HERE_)/..
+ #
+ # CICC_PATH = $(TOP)/nvvm/bin
+ # CICC_NEXT_PATH = $(TOP)/nvvm-next/bin
+ # NVVMIR_LIBRARY_DIR = $(TOP)/nvvm/libdevice
+ #
+ # LD_LIBRARY_PATH += $(TOP)/lib:
+ # PATH += $(CICC_PATH):$(_HERE_):
+ #
+ # INCLUDES += "-I$(TOP)/$(_TARGET_DIR_)/include" $(_SPACE_)
+ #
+ # LIBRARIES =+ $(_SPACE_) "-L$(TOP)/$(_TARGET_DIR_)/lib$(_TARGET_SIZE_)/stubs" "-L$(TOP)/$(_TARGET_DIR_)/lib$(_TARGET_SIZE_)"
+ #
+ # CUDAFE_FLAGS +=
+ # PTXAS_FLAGS +=
+
+ postInstall =
+ let
+ # TODO: Should we also patch the LIBRARIES line's use of $(TOP)/$(_TARGET_DIR_)?
+ oldNvvmDir = lib.concatStringsSep "/" (
+ [ "$(TOP)" ]
+ ++ lib.optionals (cudaOlder "12.5") [ "$(_NVVM_BRANCH_)" ]
+ ++ lib.optionals (cudaAtLeast "12.5") [ "nvvm" ]
+ );
+ newNvvmDir = ''''${!outputBin:?}/nvvm'';
+ in
+ lib.optionalString finalAttrs.finalPackage.meta.available (
+ # From CUDA 13.0, NVVM is available as a separate library and not bundled in the NVCC redist.
+ lib.optionalString (cudaOlder "13.0") ''
+ nixLog "moving $PWD/nvvm to ''${!outputBin:?} and renaming lib64 to lib"
+ moveToOutput "nvvm" "''${!outputBin:?}"
+ mv --verbose --no-clobber "${newNvvmDir}/lib64" "${newNvvmDir}/lib"
+ ''
+ # NVVM is unpacked and made top-level; we cannot make a symlink to it because build systems (like CMake)
+ # may take the target and do relative path operations to it.
+ + lib.optionalString (cudaAtLeast "13.0") ''
+ nixLog "copying ${libnvvm} to ${newNvvmDir} and fixing permissions"
+ cp -rv "${libnvvm}" "${newNvvmDir}"
+ chmod -Rv u+w "${newNvvmDir}"
+ ''
+ # Unconditional patching to remove the use of $(_TARGET_SIZE_) since we don't use lib64 in Nixpkgs
+ + ''
+ nixLog 'removing $(_TARGET_SIZE_) from nvcc.profile'
+ substituteInPlace "''${!outputBin:?}/bin/nvcc.profile" \
+ --replace-fail \
+ '$(_TARGET_SIZE_)' \
+ ""
+ ''
+ # Unconditional patching to switch to the correct include paths.
+ # NOTE: _TARGET_DIR_ appears to be used for the target architecture, which is relevant for cross-compilation.
+ + ''
+ nixLog "patching nvcc.profile to use the correct include paths"
+ substituteInPlace "''${!outputBin:?}/bin/nvcc.profile" \
+ --replace-fail \
+ '$(TOP)/$(_TARGET_DIR_)/include' \
+ "''${!outputInclude:?}/include"
+ ''
+ # Fixup the nvcc.profile to use the correct paths for NVVM.
+ # NOTE: In our replacement substitution, we use double quotes to allow for variable expansion.
+ # NOTE: We use a trailing slash only on the NVVM directory replacement to prevent partial matches.
+ # + lib.optionalString (cudaOlder "13.0") ''
+ + ''
+ nixLog "patching nvcc.profile to use the correct NVVM paths"
+ substituteInPlace "''${!outputBin:?}/bin/nvcc.profile" \
+ --replace-fail \
+ '${oldNvvmDir}/' \
+ "${newNvvmDir}/"
+
+ nixLog "adding ${newNvvmDir} to nvcc.profile"
+ cat << EOF >> "''${!outputBin:?}/bin/nvcc.profile"
+
+ # Expose the split-out nvvm
+ LIBRARIES =+ \$(_SPACE_) "-L${newNvvmDir}/lib"
+ INCLUDES =+ \$(_SPACE_) "-I${newNvvmDir}/include"
+ EOF
+ ''
+ # Add the dependency on backendStdenv.cc to the nvcc.profile.
+ + ''
+ nixLog "adding backendStdenv.cc to nvcc.profile"
+ cat << EOF >> "''${!outputBin:?}/bin/nvcc.profile"
+
+ # Fix a compatible backend compiler
+ PATH += "${backendStdenv.cc}/bin":
+ EOF
+ ''
+ );
+
+ brokenAssertions = [
+ # TODO(@connorbaker): Build fails on x86 when using pkgsLLVM.
+ # .../include/crt/host_defines.h:67:2:
+ # error: "libc++ is not supported on x86 system"
+ #
+ # 67 | #error "libc++ is not supported on x86 system"
+ # | ^
+ #
+ # 1 error generated.
+ #
+ # # --error 0x1 --
+ {
+ message = "cannot use libc++ on x86_64-linux";
+ assertion = backendStdenv.hostNixSystem == "x86_64-linux" -> backendStdenv.cc.libcxx == null;
+ }
+ ];
+
+ meta = {
+ description = "CUDA compiler driver";
+ homepage = "https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc";
+ mainProgram = "nvcc";
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvdisasm.nix b/pkgs/development/cuda-modules/packages/cuda_nvdisasm.nix
new file mode 100644
index 000000000000..981a0ce420a7
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvdisasm.nix
@@ -0,0 +1,18 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvdisasm";
+
+ outputs = [ "out" ];
+
+ meta = {
+ description = "Extracts information from standalone cubin files and presents them in human readable format";
+ longDescription = ''
+ `nvdisasm` extracts information from standalone cubin files and presents them in human readable format. The
+ output of `nvdisasm` includes CUDA assembly code for each kernel, listing of ELF data sections and other CUDA
+ specific sections. Output style and options are controlled through `nvdisasm` command-line options. `nvdisasm`
+ also does control flow analysis to annotate jump/branch targets and makes the output easier to read.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/cuda-binary-utilities#nvdisasm";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvml_dev.nix b/pkgs/development/cuda-modules/packages/cuda_nvml_dev.nix
new file mode 100644
index 000000000000..516ddf67fbcf
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvml_dev.nix
@@ -0,0 +1,47 @@
+{ buildRedist, lib }:
+buildRedist (finalAttrs: {
+ redistName = "cuda";
+ pname = "cuda_nvml_dev";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "stubs"
+ ];
+
+ # TODO(@connorbaker): Add a setup hook to the outputStubs output to automatically replace rpath entries
+ # containing the stubs output with the driver link.
+
+ allowFHSReferences = true;
+
+ # Include the stubs output since it provides libnvidia-ml.so.
+ propagatedBuildOutputs = lib.optionals (lib.elem "stubs" finalAttrs.outputs) [ "stubs" ];
+
+ # TODO: Some programs try to link against libnvidia-ml.so.1, so make an alias.
+ # Not sure about the version number though!
+ postInstall = lib.optionalString (lib.elem "stubs" finalAttrs.outputs) ''
+ pushd "''${!outputStubs:?}/lib/stubs" >/dev/null
+ if [[ -f libnvidia-ml.so && ! -f libnvidia-ml.so.1 ]]; then
+ nixLog "creating versioned symlink for libnvidia-ml.so stub"
+ ln -sr libnvidia-ml.so libnvidia-ml.so.1
+ fi
+ if [[ -f libnvidia-ml.a && ! -f libnvidia-ml.a.1 ]]; then
+ nixLog "creating versioned symlink for libnvidia-ml.a stub"
+ ln -sr libnvidia-ml.a libnvidia-ml.a.1
+ fi
+ nixLog "creating symlinks for stubs in lib directory"
+ ln -srt "''${!outputStubs:?}/lib/" *.so *.so.*
+ popd >/dev/null
+ '';
+
+ meta = {
+ description = "C-based programmatic interface for monitoring and managing various states within Data Center GPUs";
+ longDescription = ''
+ The NVIDIA Management Library (NVML) is a C-based programmatic interface for monitoring and managing various
+ states within Data Center GPUs. It is intended to be a platform for building 3rd party applications, and is also
+ the underlying library for the NVIDIA-supported nvidia-smi tool.
+ '';
+ homepage = "https://developer.nvidia.com/management-library-nvml";
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvprof.nix b/pkgs/development/cuda-modules/packages/cuda_nvprof.nix
new file mode 100644
index 000000000000..ccbab56e12c4
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvprof.nix
@@ -0,0 +1,36 @@
+{
+ buildRedist,
+ cuda_cudart,
+ cuda_cupti,
+ lib,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvprof";
+
+ allowFHSReferences = true;
+
+ outputs = [
+ "out"
+ "bin"
+ "lib"
+ ];
+
+ buildInputs = [
+ (lib.getOutput "stubs" cuda_cudart)
+ cuda_cupti
+ ];
+
+ meta = {
+ description = "Collect and view profiling data from the command-line";
+ longDescription = ''
+ The `nvprof` profiling tool enables you to collect and view profiling data from the command-line. `nvprof`
+ enables the collection of a timeline of CUDA-related activities on both CPU and GPU, including kernel execution,
+ memory transfers, memory set and CUDA API calls and events or metrics for CUDA kernels. Profiling options are
+ provided to `nvprof` through command-line options. Profiling results are displayed in the console after the
+ profiling data is collected, and may also be saved for later viewing by either `nvprof` or the Visual Profiler.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/profiler-users-guide#nvprof";
+ changelog = "https://docs.nvidia.com/cuda/profiler-users-guide#changelog";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvprune.nix b/pkgs/development/cuda-modules/packages/cuda_nvprune.nix
new file mode 100644
index 000000000000..db3c7b60e6f5
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvprune.nix
@@ -0,0 +1,15 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvprune";
+
+ outputs = [ "out" ];
+
+ meta = {
+ description = "Prune host object files and libraries to only contain device code for the specified targets";
+ longDescription = ''
+ `nvprune` prunes host object files and libraries to only contain device code for the specified targets.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/cuda-binary-utilities#nvprune";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvrtc.nix b/pkgs/development/cuda-modules/packages/cuda_nvrtc.nix
new file mode 100644
index 000000000000..88828bd15050
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvrtc.nix
@@ -0,0 +1,25 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvrtc";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "Runtime compilation library for CUDA C++";
+ longDescription = ''
+ NVRTC is a runtime compilation library for CUDA C++. It accepts CUDA C++ source code in character string form
+ and creates handles that can be used to obtain the PTX.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/nvrtc";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvtx.nix b/pkgs/development/cuda-modules/packages/cuda_nvtx.nix
new file mode 100644
index 000000000000..ef079fe0110d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvtx.nix
@@ -0,0 +1,23 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvtx";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ ];
+
+ meta = {
+ description = "C-based Application Programming Interface (API) for annotating events, code ranges, and resources in your applications";
+ longDescription = ''
+ NVTX is a cross-platform API for annotating source code to provide contextual information to developer tools.
+
+ The NVTX API is written in C, with wrappers provided for C++ and Python.
+ '';
+ homepage = "https://github.com/NVIDIA/NVTX";
+ changelog = "https://github.com/NVIDIA/NVTX/releases";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_nvvp.nix b/pkgs/development/cuda-modules/packages/cuda_nvvp.nix
new file mode 100644
index 000000000000..8aeb178a2ace
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_nvvp.nix
@@ -0,0 +1,18 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_nvvp";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "Cross-platform performance profiling tool for optimizing CUDA C/C++ applications";
+ longDescription = ''
+ The NVIDIA Visual Profiler is a cross-platform performance profiling tool that delivers developers vital
+ feedback for optimizing CUDA C/C++ applications.
+ '';
+ homepage = "https://developer.nvidia.com/nvidia-visual-profiler";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_opencl.nix b/pkgs/development/cuda-modules/packages/cuda_opencl.nix
new file mode 100644
index 000000000000..50d94e44dbea
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_opencl.nix
@@ -0,0 +1,22 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_opencl";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ ];
+
+ meta = {
+ description = "Low-level API for heterogeneous computing that runs on CUDA-powered GPUs";
+ longDescription = ''
+ OpenCLâ„¢ (Open Computing Language) is a low-level API for heterogeneous computing that runs on CUDA-powered GPUs.
+ Using the OpenCL API, developers can launch compute kernels written using a limited subset of the C programming
+ language on a GPU.
+ '';
+ homepage = "https://developer.nvidia.com/opencl";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_profiler_api.nix b/pkgs/development/cuda-modules/packages/cuda_profiler_api.nix
new file mode 100644
index 000000000000..39a90d72df2c
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_profiler_api.nix
@@ -0,0 +1,13 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_profiler_api";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ ];
+
+ meta.description = "API for profiling CUDA runtime";
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_sandbox_dev.nix b/pkgs/development/cuda-modules/packages/cuda_sandbox_dev.nix
new file mode 100644
index 000000000000..53ff67a909b1
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_sandbox_dev.nix
@@ -0,0 +1,6 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_sandbox_dev";
+ outputs = [ "out" ];
+}
diff --git a/pkgs/development/cuda-modules/packages/cuda_sanitizer_api.nix b/pkgs/development/cuda-modules/packages/cuda_sanitizer_api.nix
new file mode 100644
index 000000000000..eab5b6c35cb2
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cuda_sanitizer_api.nix
@@ -0,0 +1,18 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "cuda_sanitizer_api";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "Enables the creation of sanitizing and tracing tools that target CUDA applications";
+ longDescription = ''
+ The Compute Sanitizer API enables the creation of sanitizing and tracing tools that target CUDA applications.
+ Examples of such tools are memory and race condition checkers.
+ '';
+ homepage = "https://docs.nvidia.com/compute-sanitizer/SanitizerApiGuide";
+ };
+}
diff --git a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix b/pkgs/development/cuda-modules/packages/cudatoolkit.nix
similarity index 94%
rename from pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
rename to pkgs/development/cuda-modules/packages/cudatoolkit.nix
index 56ef05a09d6c..d122e6312d14 100644
--- a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
+++ b/pkgs/development/cuda-modules/packages/cudatoolkit.nix
@@ -73,8 +73,9 @@ symlinkJoin rec {
};
};
- meta = with lib; {
+ meta = {
description = "Wrapper substituting the deprecated runfile-based CUDA installation";
- license = licenses.nvidiaCuda;
+ license = lib.licenses.nvidiaCudaRedist;
+ teams = [ lib.teams.cuda ];
};
}
diff --git a/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix b/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix
index b9e622b9f31e..1be759846e44 100644
--- a/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix
+++ b/pkgs/development/cuda-modules/packages/cudnn-frontend/package.nix
@@ -1,19 +1,19 @@
{
autoAddDriverRunpath,
+ backendStdenv,
catch2_3,
cmake,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
+ cuda_nvrtc,
+ cudnn,
fetchFromGitHub,
gitUpdater,
lib,
+ libcublas,
ninja,
nlohmann_json,
- stdenv,
- cuda_cccl ? null,
- cuda_cudart ? null,
- cuda_nvcc ? null,
- cuda_nvrtc ? null,
- cudnn ? null,
- libcublas ? null,
}:
let
inherit (lib.lists) optionals;
@@ -23,9 +23,8 @@ let
optionalString
;
in
-
# TODO(@connorbaker): This should be a hybrid C++/Python package.
-stdenv.mkDerivation (finalAttrs: {
+backendStdenv.mkDerivation (finalAttrs: {
pname = "cudnn-frontend";
version = "1.9.0";
@@ -121,7 +120,8 @@ stdenv.mkDerivation (finalAttrs: {
description = "A c++ wrapper for the cudnn backend API";
homepage = "https://github.com/NVIDIA/cudnn-frontend";
license = lib.licenses.mit;
- badPlatforms = optionals (cudnn == null) finalAttrs.meta.platforms;
+ # TODO(@connorbaker): How tightly coupled is this library to specific cuDNN versions?
+ # Should it be marked as broken if it doesn't match our expected version?
platforms = [
"aarch64-linux"
"x86_64-linux"
diff --git a/pkgs/development/cuda-modules/packages/cudnn.nix b/pkgs/development/cuda-modules/packages/cudnn.nix
new file mode 100644
index 000000000000..9dec6fbf5fbb
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cudnn.nix
@@ -0,0 +1,77 @@
+{
+ _cuda,
+ buildRedist,
+ lib,
+ libcublas,
+ patchelf,
+ zlib,
+}:
+buildRedist (finalAttrs: {
+ redistName = "cudnn";
+ pname = "cudnn";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ ];
+
+ buildInputs = [
+ # NOTE: Verions of CUDNN after 9.0 no longer depend on libcublas:
+ # https://docs.nvidia.com/deeplearning/cudnn/latest/release-notes.html?highlight=cublas#cudnn-9-0-0
+ # However, NVIDIA only provides libcublasLT via the libcublas package.
+ (lib.getLib libcublas)
+ zlib
+ ];
+
+ # Tell autoPatchelf about runtime dependencies. *_infer* libraries only
+ # exist in CuDNN 8.
+ # NOTE: Versions from CUDNN releases have four components.
+ postFixup =
+ lib.optionalString
+ (lib.versionAtLeast finalAttrs.version "8.0.5.0" && lib.versionOlder finalAttrs.version "9.0.0.0")
+ ''
+ ${lib.getExe patchelf} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so
+ ${lib.getExe patchelf} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so
+ '';
+
+ # TODO(@connorbaker): Broken conditions for cuDNN used out of scope.
+ # platformAssertions =
+ # let
+ # cudaTooOld = cudaOlder finalAttrs.passthru.featureRelease.minCudaVersion;
+ # cudaTooNew =
+ # (finalAttrs.passthru.featureRelease.maxCudaVersion != null)
+ # && lib.versionOlder finalAttrs.passthru.featureRelease.maxCudaVersion cudaMajorMinorVersion;
+ # in
+ # prevAttrs.passthru.platformAssertions or [ ]
+ # ++ [
+ # {
+ # message = "CUDA version is too old";
+ # assertion = cudaTooOld;
+ # }
+ # {
+ # message = "CUDA version is too new";
+ # assertion = cudaTooNew;
+ # }
+ # ];
+
+ meta = {
+ description = "GPU-accelerated library of primitives for deep neural networks";
+ longDescription = ''
+ The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural
+ networks.
+ '';
+ homepage = "https://developer.nvidia.com/cudnn";
+ changelog = "https://docs.nvidia.com/deeplearning/cudnn/backend/latest/release-notes.html";
+
+ license = _cuda.lib.licenses.cudnn;
+
+ maintainers = with lib.maintainers; [
+ mdaiter
+ samuela
+ connorbaker
+ ];
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/cudnn_8_9.nix b/pkgs/development/cuda-modules/packages/cudnn_8_9.nix
new file mode 100644
index 000000000000..069af8a426d3
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/cudnn_8_9.nix
@@ -0,0 +1,14 @@
+{
+ _cuda,
+ backendStdenv,
+ cudnn,
+}:
+let
+ version = if backendStdenv.hasJetsonCudaCapability then "8.9.5" else "8.9.7";
+in
+# TODO(@connorbaker): Support for old versions of CUDNN should be removed.
+cudnn.overrideAttrs (prevAttrs: {
+ passthru = prevAttrs.passthru // {
+ release = _cuda.manifests.cudnn.${version}.cudnn;
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/driver_assistant.nix b/pkgs/development/cuda-modules/packages/driver_assistant.nix
new file mode 100644
index 000000000000..3224416e7a6f
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/driver_assistant.nix
@@ -0,0 +1,14 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "driver_assistant";
+
+ outputs = [ "out" ];
+
+ platformAssertions = [
+ {
+ message = "Package is not supported; use drivers from linuxPackages";
+ assertion = false;
+ }
+ ];
+}
diff --git a/pkgs/development/cuda-modules/packages/fabricmanager.nix b/pkgs/development/cuda-modules/packages/fabricmanager.nix
new file mode 100644
index 000000000000..a380c3de5d9b
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/fabricmanager.nix
@@ -0,0 +1,19 @@
+{ buildRedist, zlib }:
+buildRedist {
+ redistName = "cuda";
+ pname = "fabricmanager";
+
+ outputs = [
+ "out"
+ "bin"
+ "dev"
+ "include"
+ "lib"
+ ];
+
+ allowFHSReferences = true;
+
+ buildInputs = [ zlib ];
+
+ meta.homepage = "https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide";
+}
diff --git a/pkgs/development/cuda-modules/packages/imex.nix b/pkgs/development/cuda-modules/packages/imex.nix
new file mode 100644
index 000000000000..1325f7044d3d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/imex.nix
@@ -0,0 +1,16 @@
+{ buildRedist, zlib }:
+buildRedist {
+ redistName = "cuda";
+ pname = "imex";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ buildInputs = [ zlib ];
+
+ meta = {
+ description = "Service which supports GPU memory export and import (NVLink P2P) and shared memory operations across OS domains in an NVLink multi-node deployment";
+ homepage = "https://docs.nvidia.com/multi-node-nvlink-systems/imex-guide";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcublas.nix b/pkgs/development/cuda-modules/packages/libcublas.nix
new file mode 100644
index 000000000000..0606bba7eb5d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcublas.nix
@@ -0,0 +1,22 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcublas";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "CUDA Basic Linear Algebra Subroutine library";
+ longDescription = ''
+ The cuBLAS library is an implementation of BLAS (Basic Linear Algebra Subprograms) on top of the NVIDIA CUDA runtime.
+ '';
+ homepage = "https://developer.nvidia.com/cublas";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcudla.nix b/pkgs/development/cuda-modules/packages/libcudla.nix
new file mode 100644
index 000000000000..c8a1b4549dcb
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcudla.nix
@@ -0,0 +1,21 @@
+{
+ backendStdenv,
+ buildRedist,
+ lib,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcudla";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "stubs"
+ ];
+
+ autoPatchelfIgnoreMissingDeps = lib.optionals backendStdenv.hasJetsonCudaCapability [
+ "libnvcudla.so"
+ ];
+}
diff --git a/pkgs/development/cuda-modules/packages/libcufft.nix b/pkgs/development/cuda-modules/packages/libcufft.nix
new file mode 100644
index 000000000000..7b7aa3611936
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcufft.nix
@@ -0,0 +1,19 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcufft";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "High-performance FFT product CUDA library";
+ homepage = "https://developer.nvidia.com/cufft";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcufile.nix b/pkgs/development/cuda-modules/packages/libcufile.nix
new file mode 100644
index 000000000000..1d5ed47ba60d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcufile.nix
@@ -0,0 +1,32 @@
+{
+ buildRedist,
+ cuda_cudart,
+ lib,
+ numactl,
+ rdma-core,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcufile";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ ];
+
+ allowFHSReferences = true;
+
+ buildInputs = [
+ (lib.getOutput "stubs" cuda_cudart)
+ numactl
+ rdma-core
+ ];
+
+ meta = {
+ description = "Library to leverage GDS technology";
+ homepage = "https://docs.nvidia.com/gpudirect-storage/api-reference-guide";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcurand.nix b/pkgs/development/cuda-modules/packages/libcurand.nix
new file mode 100644
index 000000000000..e05287b1c2d0
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcurand.nix
@@ -0,0 +1,24 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcurand";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "Helper module for the cuBLASMp library that allows it to efficiently perform communications between different GPUs";
+ longDescription = ''
+ Communication Abstraction Library (CAL) is a helper module for the cuBLASMp library that allows it to
+ efficiently perform communications between different GPUs.
+ '';
+ homepage = "https://developer.nvidia.com/curand";
+ changelog = "https://docs.nvidia.com/cuda/cublasmp/release_notes";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcusolver.nix b/pkgs/development/cuda-modules/packages/libcusolver.nix
new file mode 100644
index 000000000000..90a9f6de8f37
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcusolver.nix
@@ -0,0 +1,36 @@
+{
+ buildRedist,
+ lib,
+ libcublas,
+ libcusparse,
+ libnvjitlink,
+}:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcusolver";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ buildInputs = [
+ (lib.getLib libcublas)
+ (lib.getLib libcusparse)
+ libnvjitlink
+ ];
+
+ meta = {
+ description = "Collection of dense and sparse direct linear solvers and Eigen solvers";
+ longDescription = ''
+ The NVIDIA cuSOLVER library provides a collection of dense and sparse direct linear solvers and Eigen solvers
+ which deliver significant acceleration for Computer Vision, CFD, Computational Chemistry, and Linear
+ Optimization applications.
+ '';
+ homepage = "https://developer.nvidia.com/cusolver";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcusparse.nix b/pkgs/development/cuda-modules/packages/libcusparse.nix
new file mode 100644
index 000000000000..9553d2da4903
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcusparse.nix
@@ -0,0 +1,26 @@
+{ buildRedist, libnvjitlink }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libcusparse";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ buildInputs = [ libnvjitlink ];
+
+ meta = {
+ description = "GPU-accelerated basic linear algebra subroutines for sparse matrix computations for unstructured sparsity";
+ longDescription = ''
+ The cuSPARSE APIs provides GPU-accelerated basic linear algebra subroutines for sparse matrix computations for
+ unstructured sparsity.
+ '';
+ homepage = "https://developer.nvidia.com/cusparse";
+ changelog = "https://docs.nvidia.com/cuda/cusparse";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libcusparse_lt.nix b/pkgs/development/cuda-modules/packages/libcusparse_lt.nix
new file mode 100644
index 000000000000..9b326baaa96a
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcusparse_lt.nix
@@ -0,0 +1,38 @@
+{
+ _cuda,
+ buildRedist,
+ cuda_cudart,
+ lib,
+ libcublas,
+}:
+buildRedist (finalAttrs: {
+ redistName = "cusparselt";
+ pname = "libcusparse_lt";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ ];
+
+ buildInputs = [
+ (lib.getLib libcublas)
+ ]
+ # For some reason, the 1.4.x release of cusparselt requires the cudart library.
+ ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ];
+
+ meta = {
+ description = "High-performance CUDA library dedicated to general matrix-matrix operations in which at least one operand is a structured sparse matrix with 50% sparsity ratio";
+ longDescription = ''
+ NVIDIA cuSPARSELt is a high-performance CUDA library dedicated to general matrix-matrix operations in which at
+ least one operand is a structured sparse matrix with 50% sparsity ratio.
+ '';
+ homepage = "https://developer.nvidia.com/cusparselt-downloads";
+ changelog = "https://docs.nvidia.com/cuda/cublasmp/release_notes";
+
+ maintainers = [ lib.maintainers.sepiabrown ];
+ license = _cuda.lib.licenses.cusparse_lt;
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/libcutensor.nix b/pkgs/development/cuda-modules/packages/libcutensor.nix
new file mode 100644
index 000000000000..0b193619021d
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libcutensor.nix
@@ -0,0 +1,42 @@
+{
+ _cuda,
+ buildRedist,
+ cuda_cudart,
+ lib,
+ libcublas,
+}:
+buildRedist (finalAttrs: {
+ redistName = "cutensor";
+ pname = "libcutensor";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ ];
+
+ allowFHSReferences = true;
+
+ buildInputs = [
+ (lib.getLib libcublas)
+ ]
+ # For some reason, the 1.4.x release of cuTENSOR requires the cudart library.
+ ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ];
+
+ meta = {
+ description = "GPU-accelerated tensor linear algebra library for tensor contraction, reduction, and elementwise operations";
+ longDescription = ''
+ NVIDIA cuTENSOR is a GPU-accelerated tensor linear algebra library for tensor contraction, reduction, and
+ elementwise operations. Using cuTENSOR, applications can harness the specialized tensor cores on NVIDIA GPUs for
+ high-performance tensor computations and accelerate deep learning training and inference, computer vision,
+ quantum chemistry, and computational physics workloads.
+ '';
+ homepage = "https://developer.nvidia.com/cutensor";
+ changelog = "https://docs.nvidia.com/cuda/cutensor/latest/release_notes.html";
+
+ maintainers = [ lib.maintainers.obsidian-systems-maintenance ];
+ license = _cuda.lib.licenses.cutensor;
+ };
+})
diff --git a/pkgs/development/cuda-modules/packages/libnpp.nix b/pkgs/development/cuda-modules/packages/libnpp.nix
new file mode 100644
index 000000000000..5527345a6aab
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnpp.nix
@@ -0,0 +1,23 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnpp";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "Library of primitives for image and signal processing";
+ longDescription = ''
+ NPP is a library of over 5,000 primitives for image and signal processing that lets you easily perform tasks
+ such as color conversion, image compression, filtering, thresholding, and image manipulation.
+ '';
+ homepage = "https://developer.nvidia.com/npp";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvfatbin.nix b/pkgs/development/cuda-modules/packages/libnvfatbin.nix
new file mode 100644
index 000000000000..965bd22d18cb
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvfatbin.nix
@@ -0,0 +1,12 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvfatbin";
+
+ outputs = [ "out" ];
+
+ meta = {
+ description = "APIs which can be used at runtime to combine multiple CUDA objects into one CUDA fat binary (fatbin)";
+ homepage = "https://docs.nvidia.com/cuda/nvfatbin";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvidia_nscq.nix b/pkgs/development/cuda-modules/packages/libnvidia_nscq.nix
new file mode 100644
index 000000000000..3aa47e0818ab
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvidia_nscq.nix
@@ -0,0 +1,12 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvidia_nscq";
+
+ outputs = [
+ "out"
+ "lib"
+ ];
+
+ allowFHSReferences = true;
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvjitlink.nix b/pkgs/development/cuda-modules/packages/libnvjitlink.nix
new file mode 100644
index 000000000000..4124d3fa86a6
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvjitlink.nix
@@ -0,0 +1,19 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvjitlink";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "APIs which can be used at runtime to link together GPU device code";
+ homepage = "https://docs.nvidia.com/cuda/nvjitlink";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvjpeg.nix b/pkgs/development/cuda-modules/packages/libnvjpeg.nix
new file mode 100644
index 000000000000..4cdb9bddfd12
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvjpeg.nix
@@ -0,0 +1,23 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvjpeg";
+
+ outputs = [
+ "out"
+ "dev"
+ "include"
+ "lib"
+ "static"
+ "stubs"
+ ];
+
+ meta = {
+ description = "Provides high-performance, GPU accelerated JPEG decoding functionality for image formats commonly used in deep learning and hyperscale multimedia applications";
+ longDescription = ''
+ The nvJPEG library provides high-performance, GPU accelerated JPEG decoding functionality for image formats
+ commonly used in deep learning and hyperscale multimedia applications.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/nvjpeg";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvsdm.nix b/pkgs/development/cuda-modules/packages/libnvsdm.nix
new file mode 100644
index 000000000000..f48ecdbc26af
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvsdm.nix
@@ -0,0 +1,16 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvsdm";
+
+ # TODO(@connorbaker): Not sure this is the correct set of outputs.
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "NVSwitch Device Monitoring API";
+ homepage = "https://github.com/NVIDIA/nvsdm";
+ changelog = "https://github.com/NVIDIA/nvsdm/releases";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/libnvvm.nix b/pkgs/development/cuda-modules/packages/libnvvm.nix
new file mode 100644
index 000000000000..868cacae3eba
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/libnvvm.nix
@@ -0,0 +1,25 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "libnvvm";
+
+ # NOTE(@connorbaker): CMake and other build systems may not react well to this library being split into multiple
+ # outputs; they may use relative path accesses.
+ outputs = [ "out" ];
+
+ # Everything is nested under the nvvm directory.
+ prePatch = ''
+ nixLog "un-nesting top-level $PWD/nvvm directory"
+ mv -v "$PWD/nvvm"/* "$PWD/"
+ nixLog "removing empty $PWD/nvvm directory"
+ rmdir -v "$PWD/nvvm"
+ '';
+
+ meta = {
+ description = "Interface for generating PTX code from both binary and text NVVM IR inputs";
+ longDescription = ''
+ libNVVM API provides an interface for generating PTX code from both binary and text NVVM IR inputs.
+ '';
+ homepage = "https://docs.nvidia.com/cuda/libnvvm-api";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/nccl-tests.nix b/pkgs/development/cuda-modules/packages/nccl-tests.nix
index 4ce489a34d00..18118b94bcb8 100644
--- a/pkgs/development/cuda-modules/packages/nccl-tests.nix
+++ b/pkgs/development/cuda-modules/packages/nccl-tests.nix
@@ -2,29 +2,35 @@
# the names of dependencies from that package set directly to avoid evaluation errors
# in the case redistributable packages are not available.
{
- config,
- cudaPackages,
+ backendStdenv,
+ _cuda,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
+ cudaNamePrefix,
fetchFromGitHub,
+ flags,
gitUpdater,
lib,
mpi,
mpiSupport ? false,
+ nccl,
which,
}:
let
- inherit (cudaPackages)
- backendStdenv
- cuda_cccl
- cuda_cudart
- cuda_nvcc
- cudaAtLeast
- nccl
- ;
+ inherit (_cuda.lib) _mkMetaBroken;
+ inherit (lib) licenses maintainers teams;
+ inherit (lib.attrsets) getBin;
+ inherit (lib.lists) optionals;
in
backendStdenv.mkDerivation (finalAttrs: {
+ __structuredAttrs = true;
+ strictDeps = true;
+ # NOTE: Depends on the CUDA package set, so use cudaNamePrefix.
+ name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
pname = "nccl-tests";
- version = "2.15.0";
+ version = "2.14.1";
src = fetchFromGitHub {
owner = "NVIDIA";
@@ -34,11 +40,18 @@ backendStdenv.mkDerivation (finalAttrs: {
};
postPatch = ''
- # fix build failure with GCC14
- substituteInPlace src/Makefile --replace-fail "-std=c++11" "-std=c++14"
- '';
+ nixLog "patching $PWD/src/Makefile to remove NVIDIA's ccbin declaration"
+ substituteInPlace ./src/Makefile \
+ --replace-fail \
+ '-ccbin $(CXX)' \
+ ""
- strictDeps = true;
+ nixLog "patching $PWD/src/Makefile to replace -std=c++11 with -std=c++14"
+ substituteInPlace ./src/Makefile \
+ --replace-fail \
+ '-std=c++11' \
+ '-std=c++14'
+ '';
nativeBuildInputs = [
which
@@ -46,37 +59,55 @@ backendStdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
- nccl
- cuda_nvcc # crt/host_config.h
- cuda_cudart
cuda_cccl #
+ cuda_cudart
+ nccl
]
- ++ lib.optionals mpiSupport [ mpi ];
+ ++ optionals mpiSupport [ mpi ];
makeFlags = [
+ # NOTE: CUDA_HOME is expected to have the bin directory
+ # TODO: This won't work with cross-compilation since cuda_nvcc will come from hostPackages by default (aka pkgs).
+ "CUDA_HOME=${getBin cuda_nvcc}"
"NCCL_HOME=${nccl}"
- "CUDA_HOME=${cuda_nvcc}"
+ "NVCC_GENCODE=${flags.gencodeString}"
]
- ++ lib.optionals mpiSupport [ "MPI=1" ];
+ ++ optionals mpiSupport [ "MPI=1" ];
enableParallelBuilding = true;
installPhase = ''
- mkdir -p $out/bin
- cp -r build/* $out/bin/
+ runHook preInstall
+ mkdir -p "$out/bin"
+ install -Dm755 \
+ $(find build -type f -executable) \
+ "$out/bin"
+ runHook postInstall
'';
- passthru.updateScript = gitUpdater {
- inherit (finalAttrs) pname version;
- rev-prefix = "v";
+ passthru = {
+ brokenAssertions = [
+ {
+ message = "mpi is non-null when mpiSupport is true";
+ assertion = mpiSupport -> mpi != null;
+ }
+ ];
+
+ updateScript = gitUpdater {
+ inherit (finalAttrs) pname version;
+ rev-prefix = "v";
+ };
};
- meta = with lib; {
+ meta = {
description = "Tests to check both the performance and the correctness of NVIDIA NCCL operations";
homepage = "https://github.com/NVIDIA/nccl-tests";
- platforms = platforms.linux;
+ platforms = [
+ "aarch64-linux"
+ "x86_64-linux"
+ ];
license = licenses.bsd3;
- broken = !config.cudaSupport || (mpiSupport && mpi == null);
+ broken = _mkMetaBroken (!(config.inHydra or false)) finalAttrs;
maintainers = with maintainers; [ jmillerpdt ];
teams = [ teams.cuda ];
};
diff --git a/pkgs/development/cuda-modules/packages/nccl.nix b/pkgs/development/cuda-modules/packages/nccl.nix
index 2d89653ebe0d..a160d501cb44 100644
--- a/pkgs/development/cuda-modules/packages/nccl.nix
+++ b/pkgs/development/cuda-modules/packages/nccl.nix
@@ -2,57 +2,62 @@
# the names of dependencies from that package set directly to avoid evaluation errors
# in the case redistributable packages are not available.
{
- lib,
+ _cuda,
+ backendStdenv,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
+ cudaNamePrefix,
fetchFromGitHub,
+ flags,
+ lib,
python3,
which,
- autoAddDriverRunpath,
- cudaPackages,
# passthru.updateScript
gitUpdater,
}:
let
- inherit (cudaPackages)
- backendStdenv
- cuda_cccl
- cuda_cudart
- cuda_nvcc
- cudaAtLeast
- flags
+ inherit (_cuda.lib) _mkMetaBadPlatforms;
+ inherit (backendStdenv) hasJetsonCudaCapability;
+ inherit (lib) licenses maintainers teams;
+ inherit (lib.attrsets)
+ getBin
+ getLib
+ getOutput
;
- version = "2.27.6-1";
- hash = "sha256-/BiLSZaBbVIqOfd8nQlgUJub0YR3SR4B93x2vZpkeiU=";
in
backendStdenv.mkDerivation (finalAttrs: {
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ # NOTE: Depends on the CUDA package set, so use cudaNamePrefix.
+ name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
pname = "nccl";
- version = version;
+ version = "2.27.6-1";
src = fetchFromGitHub {
owner = "NVIDIA";
repo = "nccl";
- rev = "v${finalAttrs.version}";
- hash = hash;
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-/BiLSZaBbVIqOfd8nQlgUJub0YR3SR4B93x2vZpkeiU=";
};
- __structuredAttrs = true;
- strictDeps = true;
-
outputs = [
"out"
"dev"
+ "static"
];
nativeBuildInputs = [
- which
- autoAddDriverRunpath
- python3
cuda_nvcc
+ python3
+ which
];
buildInputs = [
- cuda_nvcc # crt/host_config.h
- cuda_cudart
+ (getOutput "include" cuda_nvcc)
cuda_cccl
+ cuda_cudart
];
env.NIX_CFLAGS_COMPILE = toString [ "-Wno-unused-function" ];
@@ -60,35 +65,54 @@ backendStdenv.mkDerivation (finalAttrs: {
postPatch = ''
patchShebangs ./src/device/generate.py
patchShebangs ./src/device/symmetric/generate.py
+
+ nixLog "patching $PWD/makefiles/common.mk to remove NVIDIA's ccbin declaration"
+ substituteInPlace ./makefiles/common.mk \
+ --replace-fail \
+ '-ccbin $(CXX)' \
+ ""
'';
+ # TODO: This would likely break under cross; need to delineate between build and host packages.
makeFlags = [
- "PREFIX=$(out)"
+ "CUDA_HOME=${getBin cuda_nvcc}"
+ "CUDA_INC=${getOutput "include" cuda_cudart}/include"
+ "CUDA_LIB=${getLib cuda_cudart}/lib"
"NVCC_GENCODE=${flags.gencodeString}"
- "CUDA_HOME=${cuda_nvcc}"
- "CUDA_LIB=${lib.getLib cuda_cudart}/lib"
- "CUDA_INC=${lib.getDev cuda_cudart}/include"
+ "PREFIX=$(out)"
];
enableParallelBuilding = true;
postFixup = ''
- moveToOutput lib/libnccl_static.a $dev
+ moveToOutput lib/libnccl_static.a "$static"
'';
- passthru.updateScript = gitUpdater {
- inherit (finalAttrs) pname version;
- rev-prefix = "v";
+ passthru = {
+ platformAssertions = [
+ {
+ message = "target is not a Jetson device";
+ assertion = !hasJetsonCudaCapability;
+ }
+ ];
+
+ updateScript = gitUpdater {
+ inherit (finalAttrs) pname version;
+ rev-prefix = "v";
+ };
};
- meta = with lib; {
+ meta = {
description = "Multi-GPU and multi-node collective communication primitives for NVIDIA GPUs";
homepage = "https://developer.nvidia.com/nccl";
license = licenses.bsd3;
- platforms = platforms.linux;
+ platforms = [
+ "aarch64-linux"
+ "x86_64-linux"
+ ];
# NCCL is not supported on Jetson, because it does not use NVLink or PCI-e for inter-GPU communication.
# https://forums.developer.nvidia.com/t/can-jetson-orin-support-nccl/232845/9
- badPlatforms = lib.optionals flags.isJetsonBuild [ "aarch64-linux" ];
+ badPlatforms = _mkMetaBadPlatforms (!(config.inHydra or false)) finalAttrs;
maintainers = with maintainers; [
mdaiter
orivej
diff --git a/pkgs/development/cuda-modules/packages/nsight_compute.nix b/pkgs/development/cuda-modules/packages/nsight_compute.nix
new file mode 100644
index 000000000000..0387e1c30e06
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/nsight_compute.nix
@@ -0,0 +1,103 @@
+{
+ backendStdenv,
+ buildRedist,
+ cudaAtLeast,
+ cudaOlder,
+ e2fsprogs,
+ elfutils,
+ flags,
+ lib,
+ qt6,
+ rdma-core,
+ ucx,
+}:
+let
+ archDir =
+ {
+ aarch64-linux = "linux-" + (if flags.isJetsonBuild then "v4l_l4t" else "desktop") + "-t210-a64";
+ x86_64-linux = "linux-desktop-glibc_2_11_3-x64";
+ }
+ .${backendStdenv.hostPlatform.system}
+ or (throw "Unsupported system: ${backendStdenv.hostPlatform.system}");
+in
+buildRedist {
+ redistName = "cuda";
+ pname = "nsight_compute";
+
+ # NOTE(@connorbaker): It might be a problem that when nsight_compute contains hosts and targets of different
+ # architectures, that we patchelf just the binaries matching the builder's platform; autoPatchelfHook prints
+ # messages like
+ # skipping [$out]/host/linux-desktop-glibc_2_11_3-x64/libQt6Core.so.6 because its architecture (x64) differs from
+ # target (AArch64)
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ nativeBuildInputs = [ qt6.wrapQtAppsHook ];
+
+ buildInputs = [
+ (lib.getLib qt6.qtwayland)
+ qt6.qtwebview
+ qt6.qtwebengine
+ rdma-core
+ ]
+ ++ lib.optionals (cudaOlder "12.7") [
+ e2fsprogs
+ ucx
+ ]
+ ++ lib.optionals (cudaAtLeast "12.9") [ elfutils ];
+
+ dontWrapQtApps = true;
+
+ preInstall = ''
+ if [[ -d nsight-compute ]]; then
+ nixLog "Lifting components of Nsight Compute to the top level"
+ mv -v nsight-compute/*/* .
+ nixLog "Removing empty directories"
+ rmdir -pv nsight-compute/*
+ fi
+
+ rm -rf host/${archDir}/Mesa/
+ '';
+
+ postInstall = ''
+ moveToOutput 'ncu' "''${!outputBin}/bin"
+ moveToOutput 'ncu-ui' "''${!outputBin}/bin"
+ moveToOutput 'host/${archDir}' "''${!outputBin}/bin"
+ moveToOutput 'target/${archDir}' "''${!outputBin}/bin"
+ wrapQtApp "''${!outputBin}/bin/host/${archDir}/ncu-ui.bin"
+ ''
+ # NOTE(@connorbaker): No idea what this platform is or how to patchelf for it.
+ + lib.optionalString (flags.isJetsonBuild && cudaOlder "12.9") ''
+ nixLog "Removing QNX 700 target directory for Jetson builds"
+ rm -rfv "''${!outputBin}/target/qnx-700-t210-a64"
+ ''
+ + lib.optionalString (flags.isJetsonBuild && cudaAtLeast "12.8") ''
+ nixLog "Removing QNX 800 target directory for Jetson builds"
+ rm -rfv "''${!outputBin}/target/qnx-800-tegra-a64"
+ '';
+
+ # lib needs libtiff.so.5, but nixpkgs provides libtiff.so.6
+ preFixup = ''
+ patchelf --replace-needed libtiff.so.5 libtiff.so "''${!outputBin}/bin/host/${archDir}/Plugins/imageformats/libqtiff.so"
+ '';
+
+ autoPatchelfIgnoreMissingDeps = [
+ "libnvidia-ml.so.1"
+ "libcuda.so.1"
+ ];
+
+ meta = {
+ description = "Interactive profiler for CUDA and NVIDIA OptiX";
+ longDescription = ''
+ NVIDIA Nsight Compute is an interactive profiler for CUDA and NVIDIA OptiX that provides detailed performance
+ metrics and API debugging via a user interface and command-line tool. Users can run guided analysis and compare
+ results with a customizable and data-driven user interface, as well as post-process and analyze results in their
+ own workflows.
+ '';
+ homepage = "https://developer.nvidia.com/nsight-compute";
+ changelog = "https://docs.nvidia.com/nsight-compute/ReleaseNotes";
+
+ mainProgram = "ncu";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/nsight_systems.nix b/pkgs/development/cuda-modules/packages/nsight_systems.nix
new file mode 100644
index 000000000000..de65f5265c52
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/nsight_systems.nix
@@ -0,0 +1,147 @@
+{
+ backendStdenv,
+ boost178,
+ buildRedist,
+ cuda_cudart,
+ e2fsprogs,
+ gst_all_1,
+ lib,
+ nss,
+ numactl,
+ pulseaudio,
+ qt6,
+ rdma-core,
+ ucx,
+ wayland,
+ xorg,
+}:
+let
+ qtwayland = lib.getLib qt6.qtwayland;
+ qtWaylandPlugins = "${qtwayland}/${qt6.qtbase.qtPluginPrefix}";
+ # NOTE(@connorbaker): nsight_systems doesn't support Jetson, so no need for case splitting on aarch64-linux.
+ hostDir =
+ {
+ aarch64-linux = "host-linux-armv8";
+ x86_64-linux = "host-linux-x64";
+ }
+ .${backendStdenv.hostPlatform.system}
+ or (throw "Unsupported system: ${backendStdenv.hostPlatform.system}");
+ targetDir =
+ {
+ aarch64-linux = "target-linux-sbsa-armv8";
+ x86_64-linux = "target-linux-x64";
+ }
+ .${backendStdenv.hostPlatform.system}
+ or (throw "Unsupported system: ${backendStdenv.hostPlatform.system}");
+in
+buildRedist {
+ redistName = "cuda";
+ pname = "nsight_systems";
+
+ allowFHSReferences = true;
+
+ outputs = [ "out" ];
+
+ # An ad hoc replacement for
+ # https://github.com/ConnorBaker/cuda-redist-find-features/issues/11
+ env.rmPatterns = toString [
+ "${hostDir}/lib{arrow,jpeg}*"
+ "${hostDir}/lib{ssl,ssh,crypto}*"
+ "${hostDir}/libboost*"
+ "${hostDir}/libexec"
+ "${hostDir}/libstdc*"
+ "${hostDir}/python/bin/python"
+ "${hostDir}/Mesa"
+ ];
+
+ # NOTE(@connorbaker): nsight-exporter and nsight-sys are deprecated scripts wrapping nsys, it's fine to remove them.
+ prePatch = ''
+ if [[ -d bin ]]; then
+ nixLog "Removing bin wrapper scripts"
+ for knownWrapper in bin/{nsys{,-ui},nsight-{exporter,sys}}; do
+ [[ -e $knownWrapper ]] && rm -v "$knownWrapper"
+ done
+ unset -v knownWrapper
+
+ nixLog "Removing empty bin directory"
+ rmdir -v bin
+ fi
+
+ if [[ -d nsight-systems ]]; then
+ nixLog "Lifting components of Nsight System to the top level"
+ mv -v nsight-systems/*/* .
+ nixLog "Removing empty nsight-systems directory"
+ rmdir -pv nsight-systems/*
+ fi
+ '';
+
+ postPatch = ''
+ for path in $rmPatterns; do
+ rm -r "$path"
+ done
+ patchShebangs nsight-systems
+ '';
+
+ nativeBuildInputs = [ qt6.wrapQtAppsHook ];
+
+ dontWrapQtApps = true;
+
+ buildInputs = [
+ qt6.qtdeclarative
+ qt6.qtsvg
+ qt6.qtimageformats
+ qt6.qtpositioning
+ qt6.qtscxml
+ qt6.qttools
+ qt6.qtwebengine
+ qt6.qtwayland
+ boost178
+ cuda_cudart.stubs
+ e2fsprogs
+ gst_all_1.gst-plugins-base
+ gst_all_1.gstreamer
+ nss
+ numactl
+ pulseaudio
+ qt6.qtbase
+ qtWaylandPlugins
+ rdma-core
+ ucx
+ wayland
+ xorg.libXcursor
+ xorg.libXdamage
+ xorg.libXrandr
+ xorg.libXtst
+ ]
+ # NOTE(@connorbaker): Seems to be required only for aarch64-linux.
+ ++ lib.optionals backendStdenv.hostPlatform.isAarch64 [
+ gst_all_1.gst-plugins-bad
+ ];
+
+ postInstall = ''
+ moveToOutput '${hostDir}' "''${!outputBin}"
+ moveToOutput '${targetDir}' "''${!outputBin}"
+ moveToOutput 'bin' "''${!outputBin}"
+ wrapQtApp "''${!outputBin}/${hostDir}/nsys-ui.bin"
+ '';
+
+ # lib needs libtiff.so.5, but nixpkgs provides libtiff.so.6
+ preFixup = ''
+ patchelf --replace-needed libtiff.so.5 libtiff.so "''${!outputBin}/${hostDir}/Plugins/imageformats/libqtiff.so"
+ '';
+
+ autoPatchelfIgnoreMissingDeps = [
+ "libnvidia-ml.so.1"
+ ];
+
+ meta = {
+ description = "System-wide performance analysis and visualization tool";
+ longDescription = ''
+ NVIDIA Nsight Systems is a system-wide performance analysis tool designed to visualize an application's
+ algorithms, identify the largest opportunities to optimize, and tune to scale efficiently across any quantity or
+ size of CPUs and GPUs, from large servers to our smallest systems-on-a-chip (SoCs).
+ '';
+ homepage = "https://developer.nvidia.com/nsight-systems";
+ changelog = "https://docs.nvidia.com/nsight-systems/ReleaseNotes";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/nvidia_driver.nix b/pkgs/development/cuda-modules/packages/nvidia_driver.nix
new file mode 100644
index 000000000000..c21a59e7402b
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/nvidia_driver.nix
@@ -0,0 +1,14 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "nvidia_driver";
+
+ outputs = [ "out" ];
+
+ brokenAssertions = [
+ {
+ message = "use drivers from linuxPackages";
+ assertion = false;
+ }
+ ];
+}
diff --git a/pkgs/development/cuda-modules/packages/nvidia_fs.nix b/pkgs/development/cuda-modules/packages/nvidia_fs.nix
new file mode 100644
index 000000000000..1dbe5d9c9baf
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/nvidia_fs.nix
@@ -0,0 +1,19 @@
+{ buildRedist }:
+buildRedist {
+ redistName = "cuda";
+ pname = "nvidia_fs";
+
+ outputs = [ "out" ];
+
+ allowFHSReferences = true;
+
+ meta = {
+ description = "GPUDirect Storage kernel driver to read/write data from supported storage using cufile APIs";
+ longDescription = ''
+ GPUDirect Storage kernel driver nvidia-fs.ko is a kernel module to orchestrate IO directly from DMA/RDMA
+ capable storage to user allocated GPU memory on NVIDIA Graphics cards.
+ '';
+ homepage = "https://github.com/NVIDIA/gds-nvidia-fs";
+ changelog = "https://github.com/NVIDIA/gds-nvidia-fs/releases";
+ };
+}
diff --git a/pkgs/development/cuda-modules/packages/saxpy/package.nix b/pkgs/development/cuda-modules/packages/saxpy/package.nix
index 5e3c2bb168ad..076afb708895 100644
--- a/pkgs/development/cuda-modules/packages/saxpy/package.nix
+++ b/pkgs/development/cuda-modules/packages/saxpy/package.nix
@@ -1,43 +1,34 @@
{
- autoAddDriverRunpath,
+ backendStdenv,
cmake,
- cudaPackages,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
+ cudaNamePrefix,
+ flags,
lib,
+ libcublas,
saxpy,
}:
-let
- inherit (cudaPackages)
- backendStdenv
- cuda_cccl
- cuda_cudart
- cuda_nvcc
- cudaAtLeast
- flags
- libcublas
- ;
- inherit (lib) getDev getLib getOutput;
-in
-backendStdenv.mkDerivation {
- pname = "saxpy";
- version = "unstable-2023-07-11";
-
- src = ./src;
-
+backendStdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
strictDeps = true;
+ name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
+ pname = "saxpy";
+ version = "0-unstable-2023-07-11";
+
+ src = ./src;
+
nativeBuildInputs = [
cmake
- autoAddDriverRunpath
cuda_nvcc
];
buildInputs = [
- (getDev libcublas)
- (getLib libcublas)
- (getOutput "static" libcublas)
- cuda_cudart
cuda_cccl
+ cuda_cudart
+ libcublas
];
cmakeFlags = [
@@ -60,4 +51,4 @@ backendStdenv.mkDerivation {
mainProgram = "saxpy";
platforms = lib.platforms.unix;
};
-}
+})
diff --git a/pkgs/development/cuda-modules/packages/tensorrt.nix b/pkgs/development/cuda-modules/packages/tensorrt.nix
new file mode 100644
index 000000000000..395fb494f1ba
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/tensorrt.nix
@@ -0,0 +1,161 @@
+{
+ _cuda,
+ backendStdenv,
+ buildRedist,
+ cuda_cudart,
+ cudnn,
+ cuda_nvrtc,
+ lib,
+ libcudla, # only for Jetson
+ patchelf,
+}:
+let
+ inherit (_cuda.lib) majorMinorPatch;
+ inherit (backendStdenv) hasJetsonCudaCapability;
+ inherit (lib.attrsets) getLib;
+ inherit (lib.lists) optionals;
+ inherit (lib.strings) concatStringsSep;
+in
+buildRedist (
+ finalAttrs:
+ let
+ majorMinorPatchVersion = majorMinorPatch finalAttrs.version;
+ majorVersion = lib.versions.major finalAttrs.version;
+ in
+ {
+ redistName = "tensorrt";
+ pname = "tensorrt";
+
+ outputs = [
+ "out"
+ "bin"
+ "dev"
+ "include"
+ "lib"
+ "samples"
+ "static"
+ # "stubs" removed in postInstall
+ ];
+
+ allowFHSReferences = true;
+
+ nativeBuildInputs = [ patchelf ];
+
+ buildInputs = [
+ (getLib cudnn)
+ (getLib cuda_nvrtc)
+ cuda_cudart
+ ]
+ ++ optionals hasJetsonCudaCapability [ libcudla ];
+
+ preInstall =
+ let
+ inherit (backendStdenv.hostPlatform) parsed;
+ # x86_64-linux-gnu
+ targetString = concatStringsSep "-" [
+ parsed.cpu.name
+ parsed.kernel.name
+ parsed.abi.name
+ ];
+ in
+ # Replace symlinks to bin and lib with the actual directories from targets.
+ ''
+ for dir in bin lib; do
+ [[ -L "$dir" ]] || continue
+ nixLog "replacing symlink $NIX_BUILD_TOP/$sourceRoot/$dir with $NIX_BUILD_TOP/$sourceRoot/targets/${targetString}/$dir"
+ rm --verbose "$NIX_BUILD_TOP/$sourceRoot/$dir"
+ mv --verbose --no-clobber "$NIX_BUILD_TOP/$sourceRoot/targets/${targetString}/$dir" "$NIX_BUILD_TOP/$sourceRoot/$dir"
+ done
+ unset -v dir
+ ''
+ # Remove symlinks if they exist
+ + ''
+ for dir in include samples; do
+ if [[ -L "$NIX_BUILD_TOP/$sourceRoot/targets/${targetString}/$dir" ]]; then
+ nixLog "removing symlink $NIX_BUILD_TOP/$sourceRoot/targets/${targetString}/$dir"
+ rm --verbose "$NIX_BUILD_TOP/$sourceRoot/targets/${targetString}/$dir"
+ fi
+ done
+ unset -v dir
+
+ if [[ -d "$NIX_BUILD_TOP/$sourceRoot/targets" ]]; then
+ nixLog "removing targets directory"
+ rm --recursive --verbose "$NIX_BUILD_TOP/$sourceRoot/targets" || {
+ nixErrorLog "could not delete $NIX_BUILD_TOP/$sourceRoot/targets: $(ls -laR "$NIX_BUILD_TOP/$sourceRoot/targets")"
+ exit 1
+ }
+ fi
+ '';
+
+ autoPatchelfIgnoreMissingDeps = optionals hasJetsonCudaCapability [
+ "libnvdla_compiler.so"
+ ];
+
+ # Create a symlink for the Onnx header files in include/onnx
+ # NOTE(@connorbaker): This is shared with the tensorrt-oss package, with the `out` output swapped with `include`.
+ # When updating one, check if the other should be updated.
+ postInstall = ''
+ mkdir "''${!outputInclude:?}/include/onnx"
+ pushd "''${!outputInclude:?}/include" >/dev/null
+ nixLog "creating symlinks for Onnx header files"
+ ln -srvt "''${!outputInclude:?}/include/onnx/" NvOnnx*.h
+ popd >/dev/null
+ ''
+ # Move the python directory, which contains header files, to the include output.
+ + ''
+ nixLog "moving python directory to include output"
+ moveToOutput python "''${!outputInclude:?}"
+
+ nixLog "remove python wheels"
+ rm --verbose "''${!outputInclude:?}"/python/*.whl
+ ''
+ + ''
+ nixLog "moving data directory to samples output"
+ moveToOutput data "''${!outputSamples:?}"
+ ''
+ # Remove the Windows library used for cross-compilation if it exists.
+ + ''
+ if [[ -e "''${!outputLib:?}/lib/libnvinfer_builder_resource_win.so.${majorMinorPatchVersion}" ]]; then
+ nixLog "removing Windows library"
+ rm --verbose "''${!outputLib:?}/lib/libnvinfer_builder_resource_win.so.${majorMinorPatchVersion}"
+ fi
+ ''
+ # Remove the stub libraries.
+ + ''
+ nixLog "removing stub libraries"
+ rm --recursive --verbose "''${!outputLib:?}/lib/stubs" || {
+ nixErrorLog "could not delete ''${!outputLib:?}/lib/stubs"
+ exit 1
+ }
+ '';
+
+ # Tell autoPatchelf about runtime dependencies.
+ postFixup = ''
+ nixLog "patchelf-ing ''${!outputBin:?}/bin/trtexec with runtime dependencies"
+ patchelf \
+ "''${!outputBin:?}/bin/trtexec" \
+ --add-needed libnvinfer_plugin.so.${majorVersion}
+ '';
+
+ passthru = {
+ # The CUDNN used with TensorRT.
+ inherit cudnn;
+ };
+
+ meta = {
+ description = "SDK that facilitates high-performance machine learning inference";
+ longDescription = ''
+ NVIDIA TensorRT is an SDK that facilitates high-performance machine learning inference. It complements training
+ frameworks such as TensorFlow, PyTorch, and MXNet. It focuses on running an already-trained network quickly and
+ efficiently on NVIDIA hardware.
+ '';
+ homepage = "https://developer.nvidia.com/tensorrt";
+ # NOTE: As of 2025-08-31, TensorRT doesn't follow the standard naming convention for URL paths that the rest of
+ # the redistributables do. As such, we need to specify downloadPage manually.
+ downloadPage = "https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt";
+ changelog = "https://docs.nvidia.com/deeplearning/tensorrt/latest/getting-started/release-notes.html#release-notes";
+
+ license = _cuda.lib.licenses.tensorrt;
+ };
+ }
+)
diff --git a/pkgs/development/cuda-modules/cuda-library-samples/generic.nix b/pkgs/development/cuda-modules/packages/tests/cuda-library-samples.nix
similarity index 79%
rename from pkgs/development/cuda-modules/cuda-library-samples/generic.nix
rename to pkgs/development/cuda-modules/packages/tests/cuda-library-samples.nix
index 529716220351..67bab4b3483c 100644
--- a/pkgs/development/cuda-modules/cuda-library-samples/generic.nix
+++ b/pkgs/development/cuda-modules/packages/tests/cuda-library-samples.nix
@@ -4,18 +4,17 @@
autoPatchelfHook,
backendStdenv,
cmake,
- cuda_cccl ? null,
- cuda_cudart ? null,
- cuda_nvcc ? null,
+ cuda_cccl,
+ cuda_cudart,
+ cuda_nvcc,
cudatoolkit,
- cusparselt ? null,
- cutensor ? null,
+ libcusparse_lt,
+ libcutensor,
fetchFromGitHub,
lib,
- libcusparse ? null,
+ libcusparse,
setupCudaHook,
}:
-
let
base = backendStdenv.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
@@ -72,7 +71,7 @@ in
sourceRoot = "${finalAttrs.src.name}/cuTENSOR";
- buildInputs = prevAttrs.buildInputs or [ ] ++ [ cutensor ];
+ buildInputs = prevAttrs.buildInputs or [ ] ++ [ libcutensor ];
cmakeFlags = prevAttrs.cmakeFlags or [ ] ++ [
"-DCUTENSOR_EXAMPLE_BINARY_INSTALL_DIR=${placeholder "out"}/bin"
@@ -81,14 +80,10 @@ in
# CUTENSOR_ROOT is double escaped
postPatch = prevAttrs.postPatch or "" + ''
substituteInPlace CMakeLists.txt \
- --replace-fail "\''${CUTENSOR_ROOT}/include" "${lib.getDev cutensor}/include"
+ --replace-fail "\''${CUTENSOR_ROOT}/include" "${lib.getOutput "include" libcutensor}/include"
'';
- CUTENSOR_ROOT = cutensor;
-
- meta = prevAttrs.meta or { } // {
- broken = cutensor == null;
- };
+ CUTENSOR_ROOT = libcutensor;
}
);
@@ -101,7 +96,7 @@ in
nativeBuildInputs = prevAttrs.nativeBuildInputs or [ ] ++ [
cmake
addDriverRunpath
- (lib.getDev cusparselt)
+ (lib.getDev libcusparse_lt)
(lib.getDev libcusparse)
cuda_nvcc
(lib.getDev cuda_cudart) #
@@ -110,8 +105,8 @@ in
postPatch = prevAttrs.postPatch or "" + ''
substituteInPlace CMakeLists.txt \
- --replace-fail "''${CUSPARSELT_ROOT}/lib64/libcusparseLt.so" "${lib.getLib cusparselt}/lib/libcusparseLt.so" \
- --replace-fail "''${CUSPARSELT_ROOT}/lib64/libcusparseLt_static.a" "${lib.getStatic cusparselt}/lib/libcusparseLt_static.a"
+ --replace-fail "''${CUSPARSELT_ROOT}/lib64/libcusparseLt.so" "${lib.getLib libcusparse_lt}/lib/libcusparseLt.so" \
+ --replace-fail "''${CUSPARSELT_ROOT}/lib64/libcusparseLt_static.a" "${lib.getStatic libcusparse_lt}/lib/libcusparseLt_static.a"
'';
postInstall = prevAttrs.postInstall or "" + ''
@@ -121,17 +116,7 @@ in
'';
CUDA_TOOLKIT_PATH = lib.getLib cudatoolkit;
- CUSPARSELT_PATH = lib.getLib cusparselt;
-
- meta = prevAttrs.meta or { } // {
- broken =
- # Base dependencies
- cusparselt == null
- || libcusparse == null
- || cuda_nvcc == null
- || cuda_cudart == null
- || cuda_cccl == null;
- };
+ CUSPARSELT_PATH = lib.getLib libcusparse_lt;
}
);
}
diff --git a/pkgs/development/cuda-modules/tests/flags.nix b/pkgs/development/cuda-modules/packages/tests/flags.nix
similarity index 100%
rename from pkgs/development/cuda-modules/tests/flags.nix
rename to pkgs/development/cuda-modules/packages/tests/flags.nix
diff --git a/pkgs/development/cuda-modules/packages/tests/opencv-and-torch/package.nix b/pkgs/development/cuda-modules/packages/tests/opencv-and-torch/package.nix
new file mode 100644
index 000000000000..86b2780944ea
--- /dev/null
+++ b/pkgs/development/cuda-modules/packages/tests/opencv-and-torch/package.nix
@@ -0,0 +1,122 @@
+{
+ cudaPackages,
+ lib,
+ writeGpuTestPython,
+}:
+let
+ inherit (lib)
+ listToAttrs
+ mapCartesianProduct
+ optionals
+ concatStringsSep
+ optionalString
+ ;
+
+ bools = [
+ true
+ false
+ ];
+
+ configs = {
+ openCVFirst = bools;
+ useOpenCVDefaultCuda = bools;
+ useTorchDefaultCuda = bools;
+ };
+
+ openCVBlock = ''
+
+ import cv2
+ print("OpenCV version:", cv2.__version__)
+
+ # Ensure OpenCV can access the GPU.
+ assert cv2.cuda.getCudaEnabledDeviceCount() > 0, "No CUDA devices found for OpenCV"
+ print("OpenCV CUDA device:", cv2.cuda.printCudaDeviceInfo(cv2.cuda.getDevice()))
+
+ # Ensure OpenCV can access the GPU.
+ print(cv2.getBuildInformation())
+
+ a = cv2.cuda.GpuMat(size=(256, 256), type=cv2.CV_32S, s=1)
+ b = cv2.cuda.GpuMat(size=(256, 256), type=cv2.CV_32S, s=1)
+ c = int(cv2.cuda.sum(cv2.cuda.add(a, b))[0]) # OpenCV returns a Scalar float object.
+
+ assert c == 2 * 256 * 256, f"Expected {2 * 256 * 256} OpenCV, got {c}"
+
+ '';
+
+ torchBlock = ''
+
+ import torch
+ print("Torch version:", torch.__version__)
+
+ # Set up the GPU.
+ torch.cuda.init()
+ # Ensure the GPU is available.
+ assert torch.cuda.is_available(), "CUDA is not available to Torch"
+ print("Torch CUDA device:", torch.cuda.get_device_properties(torch.cuda.current_device()))
+
+ a = torch.ones(256, 256, dtype=torch.int32).cuda()
+ b = torch.ones(256, 256, dtype=torch.int32).cuda()
+ c = (a + b).sum().item()
+ assert c == 2 * 256 * 256, f"Expected {2 * 256 * 256} for Torch, got {c}"
+
+ '';
+
+ mkNamedTest =
+ {
+ openCVFirst,
+ useOpenCVDefaultCuda,
+ useTorchDefaultCuda,
+ }:
+ {
+ name = concatStringsSep "-" (
+ [
+ "test"
+ (if openCVFirst then "opencv" else "torch")
+ ]
+ ++ optionals (if openCVFirst then useOpenCVDefaultCuda else useTorchDefaultCuda) [
+ "with-default-cuda"
+ ]
+ ++ [
+ "then"
+ (if openCVFirst then "torch" else "opencv")
+ ]
+ ++ optionals (if openCVFirst then useTorchDefaultCuda else useOpenCVDefaultCuda) [
+ "with-default-cuda"
+ ]
+ );
+ value =
+ let
+ content = if openCVFirst then openCVBlock + torchBlock else torchBlock + openCVBlock;
+
+ torchName = "torch" + optionalString useTorchDefaultCuda "-with-default-cuda";
+ openCVName = "opencv4" + optionalString useOpenCVDefaultCuda "-with-default-cuda";
+ in
+ # TODO: Ensure the expected CUDA libraries are loaded.
+ # TODO: Ensure GPU access works as expected.
+ writeGpuTestPython {
+ name = if openCVFirst then "${openCVName}-then-${torchName}" else "${torchName}-then-${openCVName}";
+ libraries =
+ # NOTE: These are purposefully in this order.
+ pythonPackages:
+ let
+ effectiveOpenCV = pythonPackages.opencv4.override (prevAttrs: {
+ cudaPackages = if useOpenCVDefaultCuda then prevAttrs.cudaPackages else cudaPackages;
+ });
+ effectiveTorch = pythonPackages.torchWithCuda.override (prevAttrs: {
+ cudaPackages = if useTorchDefaultCuda then prevAttrs.cudaPackages else cudaPackages;
+ });
+ in
+ if openCVFirst then
+ [
+ effectiveOpenCV
+ effectiveTorch
+ ]
+ else
+ [
+ effectiveTorch
+ effectiveOpenCV
+ ];
+ } content;
+ };
+in
+listToAttrs (mapCartesianProduct mkNamedTest configs)
diff --git a/pkgs/development/cuda-modules/tensorrt/releases.nix b/pkgs/development/cuda-modules/tensorrt/releases.nix
deleted file mode 100644
index 9ead3767a286..000000000000
--- a/pkgs/development/cuda-modules/tensorrt/releases.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-# NOTE: Check https://developer.nvidia.com/nvidia-tensorrt-8x-download
-# https://developer.nvidia.com/nvidia-tensorrt-10x-download
-
-# Version policy is to keep the latest minor release for each major release.
-{
- tensorrt.releases = {
- # jetson
- linux-aarch64 = [ ];
- # powerpc
- linux-ppc64le = [ ];
- # server-grade arm
- linux-sbsa = [
- {
- version = "10.8.0.43";
- minCudaVersion = "12.8";
- maxCudaVersion = "12.8";
- cudnnVersion = "9.7";
- filename = "TensorRT-10.8.0.43.Linux.aarch64-gnu.cuda-12.8.tar.gz";
- hash = "sha256-sB5d0sfGQyUhGdA9ku6pcCNBjpL0Wjvg0Ilulikj5Do=";
- }
- {
- version = "10.9.0.34";
- minCudaVersion = "12.8";
- maxCudaVersion = "12.8";
- cudnnVersion = "9.7";
- filename = "TensorRT-10.9.0.34.Linux.aarch64-gnu.cuda-12.8.tar.gz";
- hash = "sha256-uB7CoGf2fwgsE8rsLc71Q4W0Kp3mpOyubzGKotQZZPI=";
- }
- ];
- # x86_64
- linux-x86_64 = [
- {
- version = "10.8.0.43";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- cudnnVersion = "9.7";
- filename = "TensorRT-10.8.0.43.Linux.x86_64-gnu.cuda-12.8.tar.gz";
- hash = "sha256-V31tivU4FTQUuYZ8ZmtPZYUvwusefA6jogbl+vvH1J4=";
- }
- {
- version = "10.9.0.34";
- minCudaVersion = "12.0";
- maxCudaVersion = "12.8";
- cudnnVersion = "9.7";
- filename = "TensorRT-10.9.0.34.Linux.x86_64-gnu.cuda-12.8.tar.gz";
- hash = "sha256-M74OYeO/F3u7yrtIkr8BPwyKxx0r5z8oA4SKOCyxQnI=";
- }
- ];
- };
-}
diff --git a/pkgs/development/cuda-modules/tensorrt/shims.nix b/pkgs/development/cuda-modules/tensorrt/shims.nix
deleted file mode 100644
index b452a515404c..000000000000
--- a/pkgs/development/cuda-modules/tensorrt/shims.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-# Shims to mimic the shape of ../modules/generic/manifests/{feature,redistrib}/release.nix
-{
- package,
- # redistSystem :: String
- # String is `"unsupported"` if the given architecture is unsupported.
- redistSystem,
-}:
-{
- featureRelease = {
- inherit (package) cudnnVersion minCudaVersion maxCudaVersion;
- ${redistSystem}.outputs = {
- bin = true;
- lib = true;
- static = true;
- dev = true;
- sample = true;
- python = true;
- };
- };
- redistribRelease = {
- name = "TensorRT: a high-performance deep learning interface";
- inherit (package) hash filename version;
- };
-}
diff --git a/pkgs/development/cuda-modules/tests/opencv-and-torch/default.nix b/pkgs/development/cuda-modules/tests/opencv-and-torch/default.nix
deleted file mode 100644
index 442bfb8a2dd0..000000000000
--- a/pkgs/development/cuda-modules/tests/opencv-and-torch/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- cudaPackages,
- lib,
- writeGpuTestPython,
- # Configuration flags
- openCVFirst,
- useOpenCVDefaultCuda,
- useTorchDefaultCuda,
-}:
-let
- inherit (lib.strings) optionalString;
-
- openCVBlock = ''
-
- import cv2
- print("OpenCV version:", cv2.__version__)
-
- # Ensure OpenCV can access the GPU.
- assert cv2.cuda.getCudaEnabledDeviceCount() > 0, "No CUDA devices found for OpenCV"
- print("OpenCV CUDA device:", cv2.cuda.printCudaDeviceInfo(cv2.cuda.getDevice()))
-
- # Ensure OpenCV can access the GPU.
- print(cv2.getBuildInformation())
-
- a = cv2.cuda.GpuMat(size=(256, 256), type=cv2.CV_32S, s=1)
- b = cv2.cuda.GpuMat(size=(256, 256), type=cv2.CV_32S, s=1)
- c = int(cv2.cuda.sum(cv2.cuda.add(a, b))[0]) # OpenCV returns a Scalar float object.
-
- assert c == 2 * 256 * 256, f"Expected {2 * 256 * 256} OpenCV, got {c}"
-
- '';
-
- torchBlock = ''
-
- import torch
- print("Torch version:", torch.__version__)
-
- # Set up the GPU.
- torch.cuda.init()
- # Ensure the GPU is available.
- assert torch.cuda.is_available(), "CUDA is not available to Torch"
- print("Torch CUDA device:", torch.cuda.get_device_properties(torch.cuda.current_device()))
-
- a = torch.ones(256, 256, dtype=torch.int32).cuda()
- b = torch.ones(256, 256, dtype=torch.int32).cuda()
- c = (a + b).sum().item()
- assert c == 2 * 256 * 256, f"Expected {2 * 256 * 256} for Torch, got {c}"
-
- '';
-
- content = if openCVFirst then openCVBlock + torchBlock else torchBlock + openCVBlock;
-
- torchName = "torch" + optionalString useTorchDefaultCuda "-with-default-cuda";
- openCVName = "opencv4" + optionalString useOpenCVDefaultCuda "-with-default-cuda";
-in
-# TODO: Ensure the expected CUDA libraries are loaded.
-# TODO: Ensure GPU access works as expected.
-writeGpuTestPython {
- name = if openCVFirst then "${openCVName}-then-${torchName}" else "${torchName}-then-${openCVName}";
- libraries =
- # NOTE: These are purposefully in this order.
- pythonPackages:
- let
- effectiveOpenCV = pythonPackages.opencv4.override (prevAttrs: {
- cudaPackages = if useOpenCVDefaultCuda then prevAttrs.cudaPackages else cudaPackages;
- });
- effectiveTorch = pythonPackages.torchWithCuda.override (prevAttrs: {
- cudaPackages = if useTorchDefaultCuda then prevAttrs.cudaPackages else cudaPackages;
- });
- in
- if openCVFirst then
- [
- effectiveOpenCV
- effectiveTorch
- ]
- else
- [
- effectiveTorch
- effectiveOpenCV
- ];
-} content
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cfe063b4fb6e..5ef79ac7581f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2557,10 +2557,13 @@ with pkgs;
# Top-level fix-point used in `cudaPackages`' internals
_cuda = import ../development/cuda-modules/_cuda;
- cudaPackages_12_6 = callPackage ./cuda-packages.nix { cudaMajorMinorVersion = "12.6"; };
- cudaPackages_12_8 = callPackage ./cuda-packages.nix { cudaMajorMinorVersion = "12.8"; };
- cudaPackages_12_9 = callPackage ./cuda-packages.nix { cudaMajorMinorVersion = "12.9"; };
- cudaPackages_12 = cudaPackages_12_8; # Latest supported by cudnn
+ inherit (callPackages ./cuda-packages.nix { })
+ cudaPackages_12_6
+ cudaPackages_12_8
+ cudaPackages_12_9
+ ;
+
+ cudaPackages_12 = cudaPackages_12_8;
cudaPackages = recurseIntoAttrs cudaPackages_12;
diff --git a/pkgs/top-level/cuda-packages.nix b/pkgs/top-level/cuda-packages.nix
index cc92f7ae3491..3ab93e801d36 100644
--- a/pkgs/top-level/cuda-packages.nix
+++ b/pkgs/top-level/cuda-packages.nix
@@ -1,240 +1,55 @@
-# Notes:
-#
-# Silvan (Tweag) covered some things on recursive attribute sets in the Nix Hour:
-# https://www.youtube.com/watch?v=BgnUFtd1Ivs
-#
-# I (@connorbaker) highly recommend watching it.
-#
-# Most helpful comment regarding recursive attribute sets:
-#
-# https://github.com/NixOS/nixpkgs/pull/256324#issuecomment-1749935979
-#
-# To summarize:
-#
-# - `prev` should only be used to access attributes which are going to be overridden.
-# - `final` should only be used to access `callPackage` to build new packages.
-# - Attribute names are evaluated eagerly ("NAMESET STRICTNESS").
-# - Extensions must not depend on `final` when computing names and count of new attributes.
-#
-# Silvan's recommendation then is to explicitly use `callPackage` to provide everything our
-# extensions need to compute the attribute names, without relying on `final`.
-#
-# I've (@connorbaker) attempted to do that, though I'm unsure of how this will interact with overrides.
{
- config,
_cuda,
- cudaMajorMinorVersion,
+ callPackage,
+ config,
lib,
pkgs,
stdenv,
- runCommand,
}:
let
- inherit (lib)
- attrsets
- customisation
- fixedPoints
- lists
- strings
- versions
- ;
-
- cudaLib = _cuda.lib;
+ # NOTE: Because manifests are used to add redistributables to the package set,
+ # we cannot have values depend on the package set itself, or we run into infinite recursion.
# Since Jetson capabilities are never built by default, we can check if any of them were requested
# through final.config.cudaCapabilities and use that to determine if we should change some manifest versions.
# Copied from backendStdenv.
- jetsonCudaCapabilities = lib.filter (
- cudaCapability: _cuda.db.cudaCapabilityToInfo.${cudaCapability}.isJetson
- ) _cuda.db.allSortedCudaCapabilities;
hasJetsonCudaCapability =
- lib.intersectLists jetsonCudaCapabilities (config.cudaCapabilities or [ ]) != [ ];
- redistSystem = _cuda.lib.getRedistSystem hasJetsonCudaCapability stdenv.hostPlatform.system;
-
- # We must use an instance of Nixpkgs where the CUDA package set we're building is the default; if we do not, members
- # of the versioned, non-default package sets may rely on (transitively) members of the default, unversioned CUDA
- # package set.
- # See `Using cudaPackages.pkgs` in doc/languages-frameworks/cuda.section.md for more information.
- pkgs' =
let
- cudaPackagesUnversionedName = "cudaPackages";
- cudaPackagesMajorVersionName = cudaLib.mkVersionedName cudaPackagesUnversionedName (
- versions.major cudaMajorMinorVersion
- );
- cudaPackagesMajorMinorVersionName = cudaLib.mkVersionedName cudaPackagesUnversionedName cudaMajorMinorVersion;
+ jetsonCudaCapabilities = lib.filter (
+ cudaCapability: _cuda.db.cudaCapabilityToInfo.${cudaCapability}.isJetson
+ ) _cuda.db.allSortedCudaCapabilities;
in
- # If the CUDA version of pkgs matches our CUDA version, we are constructing the default package set and can use
- # pkgs without modification.
- if pkgs.cudaPackages.cudaMajorMinorVersion == cudaMajorMinorVersion then
- pkgs
- else
- pkgs.extend (
- final: _: {
- recurseForDerivations = false;
- # The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
- # minor-versioned and unversioned package sets.
- # cudaPackages_x = cudaPackages_x_y
- ${cudaPackagesMajorVersionName} = final.${cudaPackagesMajorMinorVersionName};
- # cudaPackages = cudaPackages_x
- ${cudaPackagesUnversionedName} = final.${cudaPackagesMajorVersionName};
- }
- );
-
- passthruFunction = final: {
- # NOTE:
- # It is important that _cuda is not part of the package set fixed-point. As described by
- # @SomeoneSerge:
- # > The layering should be: configuration -> (identifies/is part of) cudaPackages -> (is built using) cudaLib.
- # > No arrows should point in the reverse directions.
- # That is to say that cudaLib should only know about package sets and configurations, because it implements
- # functionality for interpreting configurations, resolving them against data, and constructing package sets.
- # This decision is driven both by a separation of concerns and by "NAMESET STRICTNESS" (see above).
- # Also see the comment in `pkgs/top-level/all-packages.nix` about the `_cuda` attribute.
-
- inherit cudaMajorMinorVersion;
-
- pkgs = pkgs';
-
- cudaNamePrefix = "cuda${cudaMajorMinorVersion}";
-
- cudaMajorVersion = versions.major cudaMajorMinorVersion;
- cudaOlder = strings.versionOlder cudaMajorMinorVersion;
- cudaAtLeast = strings.versionAtLeast cudaMajorMinorVersion;
-
- flags =
- cudaLib.formatCapabilities {
- inherit (final.backendStdenv) cudaCapabilities cudaForwardCompat;
- inherit (_cuda.db) cudaCapabilityToInfo;
- }
- # TODO(@connorbaker): Enable the corresponding warnings in `../development/cuda-modules/aliases.nix` after some
- # time to allow users to migrate to cudaLib and backendStdenv.
- // {
- inherit (cudaLib) dropDots;
- cudaComputeCapabilityToName =
- cudaCapability: _cuda.db.cudaCapabilityToInfo.${cudaCapability}.archName;
- dropDot = cudaLib.dropDots;
- isJetsonBuild = final.backendStdenv.hasJetsonCudaCapability;
- };
-
- # Loose packages
- # Barring packages which share a home (e.g., cudatoolkit), new packages
- # should be added to ../development/cuda-modules/packages in "by-name" style, where they will be automatically
- # discovered and added to the package set.
-
- # TODO: Move to aliases.nix once all Nixpkgs has migrated to the splayed CUDA packages
- cudatoolkit = final.callPackage ../development/cuda-modules/cudatoolkit/redist-wrapper.nix { };
-
- tests =
- let
- bools = [
- true
- false
- ];
- configs = {
- openCVFirst = bools;
- useOpenCVDefaultCuda = bools;
- useTorchDefaultCuda = bools;
- };
- builder =
- {
- openCVFirst,
- useOpenCVDefaultCuda,
- useTorchDefaultCuda,
- }@config:
- {
- name = strings.concatStringsSep "-" (
- [
- "test"
- (if openCVFirst then "opencv" else "torch")
- ]
- ++ lists.optionals (if openCVFirst then useOpenCVDefaultCuda else useTorchDefaultCuda) [
- "with-default-cuda"
- ]
- ++ [
- "then"
- (if openCVFirst then "torch" else "opencv")
- ]
- ++ lists.optionals (if openCVFirst then useTorchDefaultCuda else useOpenCVDefaultCuda) [
- "with-default-cuda"
- ]
- );
- value = final.callPackage ../development/cuda-modules/tests/opencv-and-torch config;
- };
- in
- attrsets.listToAttrs (attrsets.mapCartesianProduct builder configs)
- // {
- flags = final.callPackage ../development/cuda-modules/tests/flags.nix { };
- };
+ lib.intersectLists jetsonCudaCapabilities (config.cudaCapabilities or [ ]) != [ ];
+ selectManifests = lib.mapAttrs (name: version: _cuda.manifests.${name}.${version});
+in
+{
+ cudaPackages_12_6 = callPackage ../development/cuda-modules {
+ manifests = selectManifests {
+ cuda = "12.6.3";
+ cudnn = "9.8.0";
+ cusparselt = "0.6.3";
+ cutensor = "2.2.0";
+ tensorrt = if hasJetsonCudaCapability then "10.7.0" else "10.9.0";
+ };
};
- composedExtension = fixedPoints.composeManyExtensions (
- [
- (
- final: _:
- {
- # Prevent missing attribute errors
- # NOTE(@connorbaker): CUDA 12.3 does not have a cuda_compat package; indeed, none of the release supports
- # Jetson devices. To avoid errors in the case that cuda_compat is not defined, we have a dummy package which
- # is always defined, but does nothing, will not build successfully, and has no platforms.
- cuda_compat = runCommand "cuda_compat" { meta.platforms = [ ]; } "false";
- }
- // lib.packagesFromDirectoryRecursive {
- inherit (final) callPackage;
- directory = ../development/cuda-modules/packages;
- }
- )
- (import ../development/cuda-modules/cuda/extension.nix { inherit cudaMajorMinorVersion lib; })
- (import ../development/cuda-modules/generic-builders/multiplex.nix {
- inherit
- cudaLib
- cudaMajorMinorVersion
- lib
- redistSystem
- stdenv
- ;
- pname = "cudnn";
- redistName = "cudnn";
- releasesModule = ../development/cuda-modules/cudnn/releases.nix;
- shimsFn = ../development/cuda-modules/cudnn/shims.nix;
- })
- (import ../development/cuda-modules/cutensor/extension.nix {
- inherit
- cudaLib
- cudaMajorMinorVersion
- lib
- redistSystem
- ;
- })
- (import ../development/cuda-modules/cusparselt/extension.nix {
- inherit
- cudaLib
- lib
- redistSystem
- ;
- })
- (import ../development/cuda-modules/generic-builders/multiplex.nix {
- inherit
- cudaLib
- cudaMajorMinorVersion
- lib
- redistSystem
- stdenv
- ;
- pname = "tensorrt";
- redistName = "tensorrt";
- releasesModule = ../development/cuda-modules/tensorrt/releases.nix;
- shimsFn = ../development/cuda-modules/tensorrt/shims.nix;
- })
- (import ../development/cuda-modules/cuda-library-samples/extension.nix { inherit lib stdenv; })
- ]
- ++ lib.optionals config.allowAliases [
- (import ../development/cuda-modules/aliases.nix { inherit lib; })
- ]
- ++ _cuda.extensions
- );
+ cudaPackages_12_8 = callPackage ../development/cuda-modules {
+ manifests = selectManifests {
+ cuda = "12.8.1";
+ cudnn = "9.8.0";
+ cusparselt = "0.7.1";
+ cutensor = "2.2.0";
+ tensorrt = if hasJetsonCudaCapability then "10.7.0" else "10.9.0";
+ };
+ };
- cudaPackages = customisation.makeScope pkgs'.newScope (
- fixedPoints.extends composedExtension passthruFunction
- );
-in
-cudaPackages
+ cudaPackages_12_9 = callPackage ../development/cuda-modules {
+ manifests = selectManifests {
+ cuda = "12.9.1";
+ cudnn = "9.8.0";
+ cusparselt = "0.7.1";
+ cutensor = "2.2.0";
+ tensorrt = if hasJetsonCudaCapability then "10.7.0" else "10.9.0";
+ };
+ };
+}