Loading nixos/modules/hardware/video/nvidia.nix +50 −22 Original line number Diff line number Diff line Loading @@ -47,7 +47,8 @@ in { TRUNK_LINK_FAILURE_MODE=0; NVSWITCH_FAILURE_MODE=0; ABORT_CUDA_JOBS_ON_FM_EXIT=1; TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; TOPOLOGY_FILE_PATH="${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; DATABASE_PATH="${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; }; defaultText = lib.literalExpression '' { Loading @@ -69,7 +70,8 @@ in { TRUNK_LINK_FAILURE_MODE=0; NVSWITCH_FAILURE_MODE=0; ABORT_CUDA_JOBS_ON_FM_EXIT=1; TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; TOPOLOGY_FILE_PATH="''${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; DATABASE_PATH="''${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; } ''; description = lib.mdDoc '' Loading Loading @@ -584,7 +586,15 @@ in { boot.extraModulePackages = [ nvidia_x11.bin ]; systemd.services.nvidia-fabricmanager = { systemd = { tmpfiles.rules = lib.optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia) "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced"; services = lib.mkMerge [ ({ nvidia-fabricmanager = { enable = true; description = "Start NVIDIA NVLink Management"; wantedBy = [ "multi-user.target" ]; Loading @@ -596,12 +606,30 @@ in { ExecStart = let nv-fab-conf = settingsFormat.generate "fabricmanager.conf" cfg.datacenter.settings; in nvidia_x11.fabricmanager + "/bin/nv-fabricmanager -c " + nv-fab-conf; "${lib.getExe nvidia_x11.fabricmanager} -c ${nv-fab-conf}"; LimitCORE="infinity"; }; }; }) (lib.mkIf cfg.nvidiaPersistenced { "nvidia-persistenced" = { description = "NVIDIA Persistence Daemon"; wantedBy = ["multi-user.target"]; serviceConfig = { Type = "forking"; Restart = "always"; PIDFile = "/var/run/nvidia-persistenced/nvidia-persistenced.pid"; ExecStart = "${lib.getExe nvidia_x11.persistenced} --verbose"; ExecStopPost = "${pkgs.coreutils}/bin/rm -rf /var/run/nvidia-persistenced"; }; }; }) ]; }; environment.systemPackages = lib.optional cfg.datacenter.enable nvidia_x11.fabricmanager; lib.optional cfg.datacenter.enable nvidia_x11.fabricmanager ++ lib.optional cfg.nvidiaPersistenced nvidia_x11.persistenced; }) ]); } pkgs/os-specific/linux/nvidia-x11/default.nix +11 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,17 @@ rec { useFabricmanager = true; }; dc_535 = generic rec { version = "535.129.03"; url = "https://us.download.nvidia.com/tesla/${version}/NVIDIA-Linux-x86_64-${version}.run"; sha256_64bit = "sha256-5tylYmomCMa7KgRs/LfBrzOLnpYafdkKwJu4oSb/AC4="; persistencedSha256 = "sha256-FRMqY5uAJzq3o+YdM2Mdjj8Df6/cuUUAnh52Ne4koME="; fabricmanagerSha256 = "sha256-5KRYS+JLVAhDkBn8Z7e0uJvULQy6dSpwnYsbBxw7Mxg="; useSettings = false; usePersistenced = true; useFabricmanager = true; }; # Update note: # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, # adding to the `nvidia_x11_legacy*` entries. Loading pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { pname = "fabricmanager"; version = fmver; src = fetchurl { url = "https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/" + url = "https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/" + "${sys}/${pname}-${sys}-${fmver}-archive.tar.xz"; inherit sha256; }; Loading pkgs/os-specific/linux/nvidia-x11/generic.nix +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ assert versionOlder version "391" -> sha256_32bit != null; assert useSettings -> settingsSha256 != null; assert usePersistenced -> persistencedSha256 != null; assert useFabricmanager -> fabricmanagerSha256 != null; assert useFabricmanager -> !(useSettings || usePersistenced); assert useFabricmanager -> !useSettings; let nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; Loading pkgs/top-level/linux-kernels.nix +1 −0 Original line number Diff line number Diff line Loading @@ -406,6 +406,7 @@ in { nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; nvidia_dc = nvidiaPackages.dc; nvidia_dc_520 = nvidiaPackages.dc_520; nvidia_dc_535 = nvidiaPackages.dc_535; # this is not a replacement for nvidia_x11* # only the opensource kernel driver exposed for hydra to build Loading Loading
nixos/modules/hardware/video/nvidia.nix +50 −22 Original line number Diff line number Diff line Loading @@ -47,7 +47,8 @@ in { TRUNK_LINK_FAILURE_MODE=0; NVSWITCH_FAILURE_MODE=0; ABORT_CUDA_JOBS_ON_FM_EXIT=1; TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; TOPOLOGY_FILE_PATH="${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; DATABASE_PATH="${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; }; defaultText = lib.literalExpression '' { Loading @@ -69,7 +70,8 @@ in { TRUNK_LINK_FAILURE_MODE=0; NVSWITCH_FAILURE_MODE=0; ABORT_CUDA_JOBS_ON_FM_EXIT=1; TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; TOPOLOGY_FILE_PATH="''${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; DATABASE_PATH="''${nvidia_x11.fabricmanager}/share/nvidia-fabricmanager/nvidia/nvswitch"; } ''; description = lib.mdDoc '' Loading Loading @@ -584,7 +586,15 @@ in { boot.extraModulePackages = [ nvidia_x11.bin ]; systemd.services.nvidia-fabricmanager = { systemd = { tmpfiles.rules = lib.optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia) "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced"; services = lib.mkMerge [ ({ nvidia-fabricmanager = { enable = true; description = "Start NVIDIA NVLink Management"; wantedBy = [ "multi-user.target" ]; Loading @@ -596,12 +606,30 @@ in { ExecStart = let nv-fab-conf = settingsFormat.generate "fabricmanager.conf" cfg.datacenter.settings; in nvidia_x11.fabricmanager + "/bin/nv-fabricmanager -c " + nv-fab-conf; "${lib.getExe nvidia_x11.fabricmanager} -c ${nv-fab-conf}"; LimitCORE="infinity"; }; }; }) (lib.mkIf cfg.nvidiaPersistenced { "nvidia-persistenced" = { description = "NVIDIA Persistence Daemon"; wantedBy = ["multi-user.target"]; serviceConfig = { Type = "forking"; Restart = "always"; PIDFile = "/var/run/nvidia-persistenced/nvidia-persistenced.pid"; ExecStart = "${lib.getExe nvidia_x11.persistenced} --verbose"; ExecStopPost = "${pkgs.coreutils}/bin/rm -rf /var/run/nvidia-persistenced"; }; }; }) ]; }; environment.systemPackages = lib.optional cfg.datacenter.enable nvidia_x11.fabricmanager; lib.optional cfg.datacenter.enable nvidia_x11.fabricmanager ++ lib.optional cfg.nvidiaPersistenced nvidia_x11.persistenced; }) ]); }
pkgs/os-specific/linux/nvidia-x11/default.nix +11 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,17 @@ rec { useFabricmanager = true; }; dc_535 = generic rec { version = "535.129.03"; url = "https://us.download.nvidia.com/tesla/${version}/NVIDIA-Linux-x86_64-${version}.run"; sha256_64bit = "sha256-5tylYmomCMa7KgRs/LfBrzOLnpYafdkKwJu4oSb/AC4="; persistencedSha256 = "sha256-FRMqY5uAJzq3o+YdM2Mdjj8Df6/cuUUAnh52Ne4koME="; fabricmanagerSha256 = "sha256-5KRYS+JLVAhDkBn8Z7e0uJvULQy6dSpwnYsbBxw7Mxg="; useSettings = false; usePersistenced = true; useFabricmanager = true; }; # Update note: # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, # adding to the `nvidia_x11_legacy*` entries. Loading
pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { pname = "fabricmanager"; version = fmver; src = fetchurl { url = "https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/" + url = "https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/" + "${sys}/${pname}-${sys}-${fmver}-archive.tar.xz"; inherit sha256; }; Loading
pkgs/os-specific/linux/nvidia-x11/generic.nix +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ assert versionOlder version "391" -> sha256_32bit != null; assert useSettings -> settingsSha256 != null; assert usePersistenced -> persistencedSha256 != null; assert useFabricmanager -> fabricmanagerSha256 != null; assert useFabricmanager -> !(useSettings || usePersistenced); assert useFabricmanager -> !useSettings; let nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; Loading
pkgs/top-level/linux-kernels.nix +1 −0 Original line number Diff line number Diff line Loading @@ -406,6 +406,7 @@ in { nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; nvidia_dc = nvidiaPackages.dc; nvidia_dc_520 = nvidiaPackages.dc_520; nvidia_dc_535 = nvidiaPackages.dc_535; # this is not a replacement for nvidia_x11* # only the opensource kernel driver exposed for hydra to build Loading