mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-03-08 04:04:06 +01:00
2.3 KiB
2.3 KiB
Cuda modules
Note
This document is meant to help CUDA maintainers understand the structure of the CUDA packages in Nixpkgs. It is not meant to be a user-facing document. For a user-facing document, see the CUDA section of the manual.
The files in this directory are added (in some way) to the cudaPackages
package set by cuda-packages.nix.
Top-level files
Top-level nix files are included in the initial creation of the cudaPackages
scope. These are typically required for the creation of the finalized
cudaPackages scope:
backend-stdenv.nix: Standard environment for CUDA packages.flags.nix: Flags set, or consumed by, NVCC in order to build packages.gpus.nix: A list of supported NVIDIA GPUs.nvcc-compatibilities.nix: NVCC releases and the version range of GCC/Clang they support.
Top-level directories
cuda: CUDA redistributables! Provides extension tocudaPackagesscope.cudatoolkit: monolothic CUDA Toolkit run-file installer. Provides extension tocudaPackagesscope.cudnn: NVIDIA cuDNN library.cutensor: NVIDIA cuTENSOR library.generic-builders:- Contains a builder
manifest.nixwhich operates on theManifesttype defined inmodules/generic/manifests. Most packages are built using this builder. - Contains a builder
multiplex.nixwhich 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 likecudnnandcutensor.
- Contains a builder
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 thegenericManifestBuilder, even if they don't have manifest files of their own.cudnnandtensorrtare examples of packages which provide such shims. These modules are further described in the Modules documentation.nccl: NVIDIA NCCL library.nccl-tests: NVIDIA NCCL tests.saxpy: Example CMake project that uses CUDA.setup-hooks: Nixpkgs setup hooks for CUDA.tensorrt: NVIDIA TensorRT library.