aquafire / llama_cpp_vulkan.nix

Last active 6 months ago

Like 0

Revision f67c4b546fc5a74e8f61977770f1e028dd781e62

llama_cpp_vulkan.nix Raw
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}
75