nixpkgs/pkgs/top-level
Edward Tjörnhammar 9b95f21cdb nvidia,nixos/nvidia: add datacenter drivers compatible with default cudaPkgs
For NVLink topology systems we need fabricmanager. Fabricmanager itself is
dependent on the datacenter driver set and not the regular x11 ones, it is also
tightly tied to the driver version. Furhtermore the current cudaPackages
defaults to version 11.8, which corresponds to the 520 datacenter drivers.

Future improvement should be to switch the main nvidia datacenter driver version
on the `config.cudaVersion` since these are well known from:

> https://docs.nvidia.com/deploy/cuda-compatibility/index.html#use-the-right-compat-package

This adds nixos configuration options `hardware.nvidia.datacenter.enable` and
`hardware.nvidia.datacenter.settings` (the settings configure fabricmanager)

Other interesting external links related to this commit are:

* Fabricmanager download site:
    - https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/linux-x86_64/
* Data Center drivers:
    - https://www.nvidia.com/Download/driverResults.aspx/193711/en-us/

Implementation specific details:

* Fabricmanager is added as a passthru package, similar to settings and
  presistenced.
* Adds `use{Settings,Persistenced,Fabricmanager}` with defaults to preserve x11
  expressions.
* Utilizes mkMerge to split the `hardware.nvidia` module into three comment
  delimited sections:
    1. Common
    2. X11/xorg
    3. Data Center
* Uses asserts to make the configurations mutualy exclusive.

Notes:

* Data Center Drivers are `x86_64` only.
* Reuses the `nvidia_x11` attribute in nixpkgs on enable, e.g. doesn't change it
  to `nvidia_driver` and sets that to either `nvidia_x11` or `nvidia_dc`.
* Should have a helper function which is switched on `config.cudaVersion` like
  `selectHighestVersion` but rather `selectCudaCompatibleVersion`.
2023-09-12 07:17:33 +02:00
..
pkg-config testers.hasPkgConfigModules: allow checking multiple pkg-config mods 2023-08-08 19:16:48 +02:00
agda-packages.nix agdaPackages._1lab: init at unstable-2023-03-07 2023-08-06 12:49:13 +02:00
aliases.nix eterm: remove 2023-09-11 04:20:06 +00:00
all-packages.nix meme-bingo-web: init at 0.2.0 2023-09-12 02:45:58 +00:00
beam-packages.nix
by-name-overlay.nix pkgs/by-name: Introduce 2023-09-05 16:10:50 +02:00
config.nix config.cudaSupport: init option 2023-07-20 17:57:31 +03:00
coq-packages.nix coq_8_18: init at 8.18+rc1 2023-09-04 10:02:59 +02:00
cubocore-packages.nix
cuda-packages.nix Merge pull request #240015 from jmillerpdt/init-nccl-tests 2023-08-21 10:33:19 -04:00
darwin-packages.nix Merge branch 'master' into staging-next 2023-08-20 12:01:22 -07:00
default.nix
dhall-packages.nix
dotnet-packages.nix
emacs-packages.nix emacsPackages: update comment about package-directory-list 2023-08-25 10:22:30 +00:00
emscripten-packages.nix
gnuradio-packages.nix
haskell-packages.nix haskellPackages.ghc: 9.4.5 -> 9.4.6 2023-08-08 16:29:20 +02:00
haxe-packages.nix
impure.nix
java-packages.nix javaPackages.jogl_2_4_0: add darwin support 2023-08-03 15:33:11 +02:00
kodi-packages.nix kodiPackages.libretro-nestopia: init at 1.52.0.41 2023-07-25 13:46:54 +03:00
linux-kernels.nix nvidia,nixos/nvidia: add datacenter drivers compatible with default cudaPkgs 2023-09-12 07:17:33 +02:00
lua-packages.nix Merge master into staging-next 2023-07-24 00:02:26 +00:00
make-tarball.nix
metrics.nix
nim-packages.nix nimPackages.safeseq: init at 1.0.0 2023-09-02 09:21:46 +02:00
nixpkgs-basic-release-checks.nix
ocaml-packages.nix ocamlPackages.pp_loc: init at 2.1.0 2023-09-11 05:48:29 +02:00
octave-packages.nix
packages-config.nix
perl-packages.nix Merge pull request #253730 from reckenrode/perlPackages.Tk-fix 2023-09-09 17:23:23 +02:00
php-packages.nix phpExtensions.memcache: init at 8.2 2023-09-11 19:55:27 +02:00
python2-packages.nix python2Packages.ninja: alias it to ninja build tool 2023-08-26 01:13:55 -07:00
python-aliases.nix python310Packages.pyruckus: remove 2023-09-08 10:58:04 +02:00
python-packages.nix Merge pull request #254436 from fabaff/ghunt 2023-09-11 20:10:35 +02:00
qt5-packages.nix
qt6-packages.nix Merge pull request #246977 from Scrumplex/qtstyleplugin-fix-loading-qt6 2023-08-31 16:30:39 -03:00
release-alternatives.nix
release-cross.nix
release-cuda.nix
release-haskell.nix haskell.packages.ghc94.ghc-tags: pin to matching version 1.6 2023-08-17 00:33:57 +02:00
release-lib.nix
release-python.nix
release-r.nix
release-small.nix dhcp: remove 2023-07-28 16:35:40 +02:00
release.nix pkgs/top-level/release: update cc-wrapper attr names 2023-09-07 22:36:15 +03:00
ruby-packages.nix rubyPackages: update 2023-09-08 04:20:00 +00:00
splice.nix lib.customisation: add uncurried form of makeScopeWithSplicing 2023-08-14 02:50:32 +03:00
stage.nix pkgs/by-name: Introduce 2023-09-05 16:10:50 +02:00
unixtools.nix
wine-packages.nix