{ description = "llama.cpp with Vulkan"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; devshell.url = "github:numtide/devshell"; devshell.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { nixpkgs, devshell, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; # llama.cpp с Vulkan llama-cpp-vulkan = pkgs.llama-cpp.override { vulkanSupport = true; openclSupport = false; # Только Vulkan cmakeFlags = [ "-DGGML_VULKAN=ON" "-DCMAKE_BUILD_TYPE=Release" ]; }; in { devShells.default = devshell.legacyPackages.${system}.mkShell { packages = [ # llama.cpp с Vulkan llama-cpp-vulkan # Build tools pkgs.gcc pkgs.cmake pkgs ninja pkgs.pkg-config # Vulkan pkgs.vulkan-loader pkgs.vulkan-tools pkgs.vulkan-validation-layers pkgs.libGL pkgs.xorg.libX11 pkgs.xorg.libXrandr pkgs.wayland # Utils pkgs.git pkgs.htop pkgs.neofetch ]; commands = [ { package = llama-cpp-vulkan; help = "llama.cpp Vulkan binary"; name = "llama-cli"; } { package = pkgs.vulkan-tools; help = "Vulkan info"; } ]; env = { VK_LAYER_PATH = "${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d"; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ pkgs.vulkan-loader pkgs.libGL pkgs.xorg.libX11 ]; }; }; }); }