mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-20 04:33:57 +00:00
.. | ||
cuda | ||
cudatoolkit | ||
cudnn | ||
cutensor | ||
generic-builders | ||
modules | ||
nccl | ||
nccl-tests | ||
saxpy | ||
setup-hooks | ||
tensorrt | ||
backend-stdenv.nix | ||
flags.nix | ||
gpus.nix | ||
nvcc-compatibilities.nix | ||
README.md |
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 tocudaPackages
scope.cudatoolkit
: monolothic CUDA Toolkit run-file installer. Provides extension tocudaPackages
scope.cudnn
: NVIDIA cuDNN library.cutensor
: NVIDIA cuTENSOR library.generic-builders
:- Contains a builder
manifest.nix
which operates on theManifest
type defined inmodules/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 likecudnn
andcutensor
.
- 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.cudnn
andtensorrt
are 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.