+357
pkgs/development/cuda-modules/lib/data/cuda.nix
+357
pkgs/development/cuda-modules/lib/data/cuda.nix
···
···+NOTE: Since the capabilities are sorted by version and architecture/family-specific features are+appended to the minor version component, the sorted list groups capabilities by baseline feature+https://developer.nvidia.com/blog/nvidia-blackwell-and-nvidia-cuda-12-9-introduce-family-specific-architecture-features.+NOTE: For baseline feature sets, `dontDefaultAfterCudaMajorMinorVersion` is generally set to the CUDA release+: Whether this capability is part of NVIDIA's line of Jetson embedded computers. This field is notable+More on Jetson devices here: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/+: The CUDA version after which to exclude this capability from the list of default capabilities we build.+# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html+# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html+# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1050/support-matrix/index.html+# https://docs.nvidia.com/cuda/cuda-for-tegra-appnote/index.html#deployment-considerations-for-cuda-upgrade-package+# A5000, A6000, NVIDIA A40, GA106 – RTX 3060, GA104 – RTX 3070, GA107 – RTX 3050, RTX A10, RTX
+32
pkgs/development/cuda-modules/lib/data/default.nix
+32
pkgs/development/cuda-modules/lib/data/default.nix
···
···+The path to the CUDA packages root directory, for use with `callPackage` to create new package sets.
+268
pkgs/development/cuda-modules/lib/data/nvcc.nix
+268
pkgs/development/cuda-modules/lib/data/nvcc.nix
···
···+https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/11.0/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features+# https://docs.nvidia.com/cuda/archive/11.1.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features+# https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-linux/index.html#system-requirements+# https://docs.nvidia.com/cuda/archive/11.4.4/cuda-toolkit-release-notes/index.html#cuda-general-new-features+# NOTE: There is a bug in the version of GLIBC that GCC 11 uses which causes it to fail to compile some CUDA+# https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15+# https://docs.nvidia.com/cuda/archive/11.7.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features+# https://docs.nvidia.com/cuda/archive/11.8.0/cuda-installation-guide-linux/index.html#system-requirements+# https://docs.nvidia.com/cuda/archive/12.0.1/cuda-installation-guide-linux/index.html#system-requirements+# https://docs.nvidia.com/cuda/archive/12.1.1/cuda-toolkit-release-notes/index.html#cuda-compilers-new-features+# https://docs.nvidia.com/cuda/archive/12.2.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/12.3.2/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/12.4.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/12.5.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/12.6.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/archive/12.8.1/cuda-installation-guide-linux/index.html#host-compiler-support-policy+# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy
+56
pkgs/development/cuda-modules/lib/data/redist.nix
+56
pkgs/development/cuda-modules/lib/data/redist.nix
···
···
+13
pkgs/development/cuda-modules/lib/default.nix
+13
pkgs/development/cuda-modules/lib/default.nix
+139
pkgs/development/cuda-modules/lib/utils/assertions.nix
+139
pkgs/development/cuda-modules/lib/utils/assertions.nix
···
···+NOTE: We typically use platfromAssertions instead of brokenAssertions because the presence of packages set to null+means evaluation will fail if package attributes are accessed without checking for null first. OfBorg evaluation+sets allowBroken to true, which means we can't rely on brokenAssertions to prevent evaluation of a package with
+129
pkgs/development/cuda-modules/lib/utils/cuda.nix
+129
pkgs/development/cuda-modules/lib/utils/cuda.nix
···
···+Capabilities built by default are baseline, non-Jetson capabilities with relatively recent CUDA support.+|| lib.versionAtLeast cudaCapabilityInfo.dontDefaultAfterCudaMajorMinorVersion cudaMajorMinorVersion;+lowerBoundSatisfied = lib.versionAtLeast cudaMajorMinorVersion cudaCapabilityInfo.minCudaMajorMinorVersion;+A predicate which, given a package, returns true if the package has a free license or one of NVIDIA's licenses.+This function is intended to be provided as `config.allowUnfreePredicate` when `import`-ing Nixpkgs.
+49
pkgs/development/cuda-modules/lib/utils/default.nix
+49
pkgs/development/cuda-modules/lib/utils/default.nix
···
···
+71
pkgs/development/cuda-modules/lib/utils/meta.nix
+71
pkgs/development/cuda-modules/lib/utils/meta.nix
···
···+Returns a list of bad platforms for a given package if assertsions in `finalAttrs.passthru.platformAssertions`+NOTE: This function requires `finalAttrs.passthru.platformAssertions` to be a list of assertions and+failedAssertionsString = cudaLib.utils._mkFailedAssertionsString finalAttrs.passthru.platformAssertions;+"Package ${finalAttrs.finalPackage.name} is unsupported on this platform due to the following failed assertions:${failedAssertionsString}"+Returns a boolean indicating whether the package is broken as a result of `finalAttrs.passthru.brokenAssertions`,+NOTE: This function requires `finalAttrs.passthru.brokenAssertions` to be a list of assertions and+failedAssertionsString = cudaLib.utils._mkFailedAssertionsString finalAttrs.passthru.brokenAssertions;+"Package ${finalAttrs.finalPackage.name} is marked as broken due to the following failed assertions:${failedAssertionsString}"
+196
pkgs/development/cuda-modules/lib/utils/redist.nix
+196
pkgs/development/cuda-modules/lib/utils/redist.nix
···
···+Returns a boolean indicating whether the provided redist system is supported by any of the provided redist systems.+NOTE: This function returns a list of systems because the redistributable systems `"linux-all"` and `"source"` can+NOTE: This function *will* be called by unsupported systems because `cudaPackages` is evaluated on all systems. As+NOTE: We swap out the default `linux-sbsa` redist (for server-grade ARM chips) with the `linux-aarch64` redist+(which is for Jetson devices) if we're building any Jetson devices. Since both are based on aarch64, we can only+NOTE: This function *will* be called by unsupported systems because `cudaPackages` is evaluated on all systems. As
+379
pkgs/development/cuda-modules/lib/utils/strings.nix
+379
pkgs/development/cuda-modules/lib/utils/strings.nix
···
···+Produces an attribute set of useful data and functionality for packaging CUDA software within Nixpkgs.+: A boolean indicating whether to include the forward compatibility gencode (+PTX) to support future GPU+These are typically used for forward compatibility, when trying to support an architecture newer than the CUDA+The architectures for the given CUDA capabilities, including both real and virtual architectures.+When `cudaForwardCompat` is enabled, the last architecture in the list is used as the forward compatibility architecture.
+76
pkgs/development/cuda-modules/lib/utils/versions.nix
+76
pkgs/development/cuda-modules/lib/utils/versions.nix
···
···
+2
pkgs/top-level/all-packages.nix
+2
pkgs/top-level/all-packages.nix
···
···