mesa.drivers is basically an implementation detail and should never be used
as a dependency of other expressions. It also no longer exists on Darwin.
mesa.osmesa is very niche and should generally be avoided.
mesa.libdrm is used in exactly one place and it's irrelevant there.
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
Eliminate uses of `config.cudaSupport or false` and alike, since the
option is now declared in config.nix with a default value
fd .nix -t f -x sed 's/config\.cudaSupport or false, cudaPackages [?] [{][}]/config.cudaSupport, cudaPackages ? { }/' '{}' -i
fd .nix -t f -x sed 's/config\.cudaSupport or false/config.cudaSupport/' '{}' -i
fd .nix -t f -x sed 's/cudaSupport = pkgs.config.cudaSupport/inherit (pkgs.config) cudaSupport/' '{}' -i
fd .nix -t f -x sed 's/cudaSupport = config.cudaSupport/inherit (config) cudaSupport/' '{}' -i
Added TensorRT backend, refactored backend selection, IMPORTANT also
bumps TensorRT version to 8.5.2 for CUDA 11.7 and 11.8. (Per Nvidia's
documentation, 8.4.0.6 does not officially support 11.7, but we're using
for it. Additionally, KataGo requires 8.5 or better for the new
TensorRT backend. 8.4.0.6 remains the default for 11.6 and lower, in
interest of not messing things up as much as possible.)
New version also adds support for nested residual block networks, such as the
b18 network that was used in the UEC.
* cudaPackages.cudnn: migrate to redist cudaPackages
* cudaPackages.cudnn: fix missing zlib in rpath
* cudaPackages.cudnn: remove the propagated cudatoolkit
* cudaPackages.cudnn: use autoPatchelfHook
instead of custom find ... -exec ldd | grep routine
mark libcudnn_cnn_infer.so as needed for libcudnn.so on cudnn>=8.0.5
- a hint for autoPatchelf, as an alternative to manually adding $ORIGIN
* cudaPackages.cudnn: use automatic hooks for rpath
as a more common way to use addOpenGLRunpath and autoPatchelf with cudaPackages
* cudaPackages.cudnn: consume individual cuda packages
...since cudnn is part of the cuda package set
- introduces the scary useCudatoolkitRunfile function argument
to discourage usage of the runfile-based cudatoolkit
- instead of the rather hidden useRedist term in let ... in
- repeats cudatoolkit_root pattern after cuda_joined in pytorch &c
(the "toolchain view")
- redist packages are marked optional to support cuda<11.4 where the
attributes for redist packages do not exist
* cudaPackages.cudnn: update to pname+version
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
There are many different versions of the `cudatoolkit` and related
cuda packages, and it can be tricky to ensure they remain compatible.
- `cudaPackages` is now a package set with `cudatoolkit`, `cudnn`, `cutensor`, `nccl`, as well as `cudatoolkit` split into smaller packages ("redist");
- expressions should now use `cudaPackages` as parameter instead of the individual cuda packages;
- `makeScope` is now used, so it is possible to use `.overrideScope'` to set e.g. a different `cudnn` version;
- `release-cuda.nix` is introduced to easily evaluate cuda packages using hydra.