| @@ -0,0 +1,74 @@ | |||
| 1 | + | { | |
| 2 | + | description = "llama.cpp with Vulkan"; | |
| 3 | + | ||
| 4 | + | inputs = { | |
| 5 | + | nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; | |
| 6 | + | devshell.url = "github:numtide/devshell"; | |
| 7 | + | devshell.inputs.nixpkgs.follows = "nixpkgs"; | |
| 8 | + | }; | |
| 9 | + | ||
| 10 | + | outputs = { nixpkgs, devshell, flake-utils, ... }: | |
| 11 | + | flake-utils.lib.eachDefaultSystem (system: | |
| 12 | + | let | |
| 13 | + | pkgs = nixpkgs.legacyPackages.${system}; | |
| 14 | + | ||
| 15 | + | # llama.cpp с Vulkan | |
| 16 | + | llama-cpp-vulkan = pkgs.llama-cpp.override { | |
| 17 | + | vulkanSupport = true; | |
| 18 | + | openclSupport = false; # Только Vulkan | |
| 19 | + | cmakeFlags = [ | |
| 20 | + | "-DGGML_VULKAN=ON" | |
| 21 | + | "-DCMAKE_BUILD_TYPE=Release" | |
| 22 | + | ]; | |
| 23 | + | }; | |
| 24 | + | ||
| 25 | + | in { | |
| 26 | + | devShells.default = devshell.legacyPackages.${system}.mkShell { | |
| 27 | + | packages = [ | |
| 28 | + | # llama.cpp с Vulkan | |
| 29 | + | llama-cpp-vulkan | |
| 30 | + | ||
| 31 | + | # Build tools | |
| 32 | + | pkgs.gcc | |
| 33 | + | pkgs.cmake | |
| 34 | + | pkgs ninja | |
| 35 | + | pkgs.pkg-config | |
| 36 | + | ||
| 37 | + | # Vulkan | |
| 38 | + | pkgs.vulkan-loader | |
| 39 | + | pkgs.vulkan-tools | |
| 40 | + | pkgs.vulkan-validation-layers | |
| 41 | + | pkgs.libGL | |
| 42 | + | pkgs.xorg.libX11 | |
| 43 | + | pkgs.xorg.libXrandr | |
| 44 | + | pkgs.wayland | |
| 45 | + | ||
| 46 | + | # Utils | |
| 47 | + | pkgs.git | |
| 48 | + | pkgs.htop | |
| 49 | + | pkgs.neofetch | |
| 50 | + | ]; | |
| 51 | + | ||
| 52 | + | commands = [ | |
| 53 | + | { | |
| 54 | + | package = llama-cpp-vulkan; | |
| 55 | + | help = "llama.cpp Vulkan binary"; | |
| 56 | + | name = "llama-cli"; | |
| 57 | + | } | |
| 58 | + | { | |
| 59 | + | package = pkgs.vulkan-tools; | |
| 60 | + | help = "Vulkan info"; | |
| 61 | + | } | |
| 62 | + | ]; | |
| 63 | + | ||
| 64 | + | env = { | |
| 65 | + | VK_LAYER_PATH = "${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d"; | |
| 66 | + | LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ | |
| 67 | + | pkgs.vulkan-loader | |
| 68 | + | pkgs.libGL | |
| 69 | + | pkgs.xorg.libX11 | |
| 70 | + | ]; | |
| 71 | + | }; | |
| 72 | + | }; | |
| 73 | + | }); | |
| 74 | + | } | |
aquafire / llama_cpp_vulkan.nix
Last active 6 months ago
aquafire revised this gist 9 months ago · f67c4b5
1 file changed, 74 insertions