summaryrefslogtreecommitdiffstats
path: root/hosts/poweredge-pro/nvidia.nix
blob: 4f641b229764c406267206c75bfcf02dde1c00f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{ lib, config, pkgs, ... }: {
	# Configure nixpkgs for nvidia/cuda
	nixpkgs.config = {
		#cudaSupport = true;
		# Compile CUDA kernels only for the P100 (compute capability 6.0).
		# The container reuses the host's pkgs, so this has to be set here.
		cudaCapabilities = [ "6.0" ];
		allowUnfreePredicate = pkg:
			pkgs._cuda.lib.allowUnfreeCudaPredicate pkg
			|| builtins.elem (lib.getName pkg) [
				"nvidia-x11"
				"nvidia-kernel-modules"
				"open-webui"
			];
	};

	# NVIDIA
	services.xserver.videoDrivers = [ "nvidia" ];  # xserver.videoDrivers does not imply X
	hardware.graphics.enable = true;
	hardware.nvidia = {
		modesetting.enable = true;  # Required
		nvidiaSettings = false;  # Don't need gui
		open = false;
		package = config.boot.kernelPackages.nvidiaPackages.legacy_580;  # Support for P600
		powerManagement.enable = false;  # Can cause bugs
		powerManagement.finegrained = false;  # Only works on turing and newer
	};

	# Packages
	environment.systemPackages = with pkgs; [
		config.hardware.nvidia.package  # nvidia-smi
		nvtopPackages.nvidia
	];
}