diff --git a/systems/x86_64-linux/lin-va-desktop/default.nix b/systems/x86_64-linux/lin-va-desktop/default.nix index ce3bbeb..998d293 100755 --- a/systems/x86_64-linux/lin-va-desktop/default.nix +++ b/systems/x86_64-linux/lin-va-desktop/default.nix @@ -1,4 +1,5 @@ { namespace +, config , pkgs , lib , ... @@ -6,6 +7,7 @@ let inherit (lib.${namespace}) enabled; + nvidia-smi = "${config.hardware.nvidia.package.bin}/bin/nvidia-smi"; llama-cpp = pkgs.reichard.llama-cpp; stable-diffusion-cpp = pkgs.reichard.stable-diffusion-cpp.override { cudaSupport = true; @@ -46,6 +48,27 @@ in allowedTCPPorts = [ 8081 ]; }; + # NVIDIA GPU Power Limit + systemd.services = { + nvidia-persistence-mode = { + description = "Enable NVIDIA GPU Persistence Mode"; + after = [ "nvidia-modules-load.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + script = "${nvidia-smi} -pm 1"; + }; + + nvidia-power-limit = { + description = "Set NVIDIA GPU Power Limit"; + after = [ "nvidia-persistence-mode.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.RemainAfterExit = true; + script = "${nvidia-smi} -i 0 -pl 250"; + }; + }; + # System Config reichard = { nix = enabled;