Commit Graph

6 Commits

Author SHA1 Message Date
Philip Taron
460c91c5ae
nv-fabricmanager: remove with statements 2024-08-18 06:31:18 -07:00
Edward Tjörnhammar
2571e9c054 nvidia_x11.dc_535: 535.129.03 -> 535.154.05
nvidia_x11.dc_535.fabricmanager: shrink rpath, remove find leftover
2024-02-23 09:44:29 +00:00
Franz Pletz
6c08fe3ccf
Merge pull request #269080 from Stunkymonkey/fabricmanager-deprecate-phases 2024-01-14 18:40:14 +01:00
timothy
6e4d90f0b0 nvidia_x11.dc_535: 535.129.03 2023-12-15 18:20:42 +07:00
Felix Buehler
2b816ea9b9 cudaPackages.fabricmanager: deprecate phases 2023-11-22 00:18:28 +01:00
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