aquafire / llama_cpp_vulkan.nix

Last active 6 months ago

Like 0

aquafire revised this gist 9 months ago · f67c4b5

1 file changed, 74 insertions

llama_cpp_vulkan.nix (file created)
@@ -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 + }