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"; + }; + }; +}