From 00af3ac5ec9ce44a9bc7df9a085fa5fa49b9283c Mon Sep 17 00:00:00 2001 From: k Date: Sat, 14 Dec 2024 02:09:52 +0000 Subject: [PATCH] added oneapi ollama --- flake.nix | 2 ++ hosts/server/service.nix | 6 ++---- overlays/ollama.nix | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 overlays/ollama.nix diff --git a/flake.nix b/flake.nix index 66c766b..4ce515a 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ inputs.home-manager.nixosModules.default inputs.stylix.nixosModules.stylix nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga + (import ./overlays/ollama.nix) ]; }; @@ -34,6 +35,7 @@ ./hosts/server/configuration.nix inputs.home-manager.nixosModules.default nixos-hardware.nixosModules.system76 + (import ./overlays/ollama.nix) ]; }; diff --git a/hosts/server/service.nix b/hosts/server/service.nix index cc0336d..486919a 100644 --- a/hosts/server/service.nix +++ b/hosts/server/service.nix @@ -31,10 +31,8 @@ ollama = { enable = true; - package = pkgs.ollama.overrideAttrs (oldAttrs: { - NIX_CFLAGS_COMPILE = "${oldAttrs.NIX_CFLAGS_COMPILE or ""} -mavx2 -mfma -march=native -O3"; - }); - }; + package = pkgs.ollama-intel; + }; gitea = { enable = true; diff --git a/overlays/ollama.nix b/overlays/ollama.nix new file mode 100644 index 0000000..793daaf --- /dev/null +++ b/overlays/ollama.nix @@ -0,0 +1,40 @@ +{ config, pkgs, lib, ... }: + +{ + nixpkgs.overlays = [ + (final: prev: { + ollama-intel = prev.ollama.overrideAttrs (oldAttrs: { + buildInputs = oldAttrs.buildInputs or [ ] + ++ [ prev.intel-compute-runtime.drivers ]; + propagatedBuildInputs = oldAttrs.propagetedBuildInputs or [ ] + ++ [ prev.intel-compute-runtime.drivers ]; + + NIX_CFLAGS_COMPILE = + "${oldAttrs.NIX_CFLAGS_COMPILE or ""} -mavx2 -mfma -O3"; + cmakeFlags = [ + "GGML_NATIVE=true" + "BUILD_SHARED_LIBS=true" + "GGML_BLAS=true" + "GGML_SYCL=true" + "GGML_SYCL_F16=false" + "CMAKE_C_COMPILER=icx" + "CMAKE_CXX_COMPILER=icpx" + ]; + + postInstall = (oldAttrs.postInstall or "") + '' + mkdir -p "$out/bin" + cat << EOF > "$out/bin/ollama-wrapped" + #!/bin/sh + export LD_LIBRARY_PATH="${prev.intel-compute-runtime.drivers}/lib" + export OLLAMA_INTEL_GPU=-1 + exec "$out/bin/ollama-base" "\$@" + EOF + chmod +x "$out/bin/ollama-wrapped" + mv $out/bin/ollama $out/bin/ollama-base + ln -s "$out/bin/ollama-wrapped" "$out/bin/ollama" + ''; + }); + }) + ]; +} +