nixpkgs/nixos/modules
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
..
config nixos/users-groups: rename passwordFile in hashedPasswordFile 2023-09-08 21:19:40 +02:00
hardware nvidia,nixos/nvidia: add datacenter drivers compatible with default cudaPkgs 2023-09-12 07:17:33 +02:00
i18n/input-method uim: remove qt4, fix qt5 2023-09-04 13:54:50 +02:00
image modules/image/repart: Fix stripNixStorePrefix 2023-08-22 13:09:03 +02:00
installer nixos/iso-image: Remove leftover false dichotomy between console/serial 2023-09-06 14:10:09 -04:00
misc nixos/doc: Improve documentation of documentation 2023-08-12 22:28:04 +03:00
profiles nixos/installation-device: allow nix-copy for root/nixos user 2023-08-07 16:48:49 +02:00
programs Merge pull request #253071 from linsui/yazi 2023-09-07 22:57:22 +02:00
security nixos/acme: rename option credentialsFile to environmentFile 2023-09-11 16:34:20 +00:00
services nixos/meme-bingo-web: init service 2023-09-12 02:45:58 +00:00
system Merge pull request #244722 from mdlayher/mdl-dhcp 2023-09-11 21:12:56 +02:00
tasks Merge pull request #254429 from ctheune/fix-swraid-for-old-init 2023-09-11 09:11:10 +03:00
testing Merge pull request #219106 from m-bdf/nixos-testing-increase-device-timeout 2023-06-20 11:48:45 +02:00
virtualisation Merge pull request #253146 from rnhmjoj/pr-anbox 2023-09-05 23:46:54 +02:00
module-list.nix nixos/meme-bingo-web: init service 2023-09-12 02:45:58 +00:00
rename.nix nixos/dhcp(46): remove 2023-07-28 16:35:40 +02:00