From 8107e28102de4ce3df7d0b67ebc2e87599d8c204 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 15 Jun 2025 08:31:10 +0200 Subject: [PATCH] lkjdsalkjdsalkj --- hardware/gpu/rocm.nix | 119 ++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/hardware/gpu/rocm.nix b/hardware/gpu/rocm.nix index 9a296f7..18dedb4 100644 --- a/hardware/gpu/rocm.nix +++ b/hardware/gpu/rocm.nix @@ -1,65 +1,70 @@ { inputs, pkgs, lib, options, ... }: -lib.mkMerge [ -# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix -inputs.nixos-hardware.nixosModules.common-gpu-amd - -(lib.mkIf (lib.versionOlder (lib.versions.majorMinor lib.version) "24.11") { - hardware.opengl.enable = true; - hardware.opengl.driSupport = true; - hardware.opengl.driSupport32Bit = true; -}) -(lib.mkIf (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.11") { - hardware.graphics.enable = true; - hardware.graphics.enable32Bit = true; -}) { + imports = [ + # https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix + inputs.nixos-hardware.nixosModules.common-gpu-amd + ]; - nixpkgs.config.openglSupport = true; # why is this not set by hardware.opengl.enable ? - nixpkgs.config.rocmSupport = true; - nixpkgs.config.vdpauSupport = true; - nixpkgs.config.vaapiSupport = true; + config = lib.mkMerge [ - services.ollama.acceleration = lib.mkDefault "rocm"; - - hardware.amdgpu.opencl.enable = lib.mkDefault true; - #hardware.amdgpu.amdvlk.enable = lib.mkDefault true; - #hardware.amdgpu.amdvlk.support32Bit.enable = lib.mkDefault true; - - # https://libreddit.noximilien.pbsds.net/r/archlinux/comments/nih9c9/amdgpu_vs_modesetting_in_current_510_kernels_xorg/ - services.xserver.videoDrivers = [ "amdgpu" ]; # use gpu, adaptive sync and and hardware page flipping - #services.xserver.videoDrivers = [ "modesetting" ]; # integrated (non-accelerated) framebuffer, KMS (default in nixos-hardware) - - # https://wiki.nixos.org/wiki/AMD_GPU#HIP - systemd.tmpfiles.rules = let - rocmEnv = pkgs.symlinkJoin { - name = "rocm-combined"; - paths = with pkgs.rocmPackages; [ - rocblas - hipblas - clr - ]; - }; - in [ "L+ /opt/rocm - - - - ${rocmEnv}" ]; - - nixpkgs.overlays = [ - (prev: final: { - blender = prev.blender-hip; + (lib.mkIf (lib.versionOlder (lib.versions.majorMinor lib.version) "24.11") { + hardware.opengl.enable = true; + hardware.opengl.driSupport = true; + hardware.opengl.driSupport32Bit = true; }) + (lib.mkIf (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.11") { + hardware.graphics.enable = true; + hardware.graphics.enable32Bit = true; + }) + { + + nixpkgs.config.openglSupport = true; # why is this not set by hardware.opengl.enable ? + nixpkgs.config.rocmSupport = true; + nixpkgs.config.vdpauSupport = true; + nixpkgs.config.vaapiSupport = true; + + services.ollama.acceleration = lib.mkDefault "rocm"; + + hardware.amdgpu.opencl.enable = lib.mkDefault true; + #hardware.amdgpu.amdvlk.enable = lib.mkDefault true; + #hardware.amdgpu.amdvlk.support32Bit.enable = lib.mkDefault true; + + # https://libreddit.noximilien.pbsds.net/r/archlinux/comments/nih9c9/amdgpu_vs_modesetting_in_current_510_kernels_xorg/ + services.xserver.videoDrivers = [ "amdgpu" ]; # use gpu, adaptive sync and and hardware page flipping + #services.xserver.videoDrivers = [ "modesetting" ]; # integrated (non-accelerated) framebuffer, KMS (default in nixos-hardware) + + # https://wiki.nixos.org/wiki/AMD_GPU#HIP + systemd.tmpfiles.rules = let + rocmEnv = pkgs.symlinkJoin { + name = "rocm-combined"; + paths = with pkgs.rocmPackages; [ + rocblas + hipblas + clr + ]; + }; + in [ "L+ /opt/rocm - - - - ${rocmEnv}" ]; + + nixpkgs.overlays = [ + (prev: final: { + blender = prev.blender-hip; + }) + ]; + + # enable opencl on polaris, (rx580) + environment.variables.ROC_ENABLE_PRE_VEGA = "1"; + + environment.systemPackages = [ + (pkgs.nvtopPackages.amd or pkgs.nvtop-amd) + pkgs.lact + ]; + + # lact - amdgpu GUI tool + systemd.packages = [ pkgs.lact ]; + systemd.services.lactd.enable = true; + systemd.services.lactd.wantedBy = [ "multi-user.target" ]; # add this if you want the unit to auto start at boot time + } + ]; - - # enable opencl on polaris, (rx580) - environment.variables.ROC_ENABLE_PRE_VEGA = "1"; - - environment.systemPackages = [ - (pkgs.nvtopPackages.amd or pkgs.nvtop-amd) - pkgs.lact - ]; - - # lact - amdgpu GUI tool - systemd.packages = [ pkgs.lact ]; - systemd.services.lactd.enable = true; - systemd.services.lactd.wantedBy = [ "multi-user.target" ]; # add this if you want the unit to auto start at boot time } - -]