|
|
@@ -9,27 +9,33 @@
|
|
|
inherit (pkgs.stdenv) isAarch64 isDarwin;
|
|
|
inherit (pkgs.lib) optionals;
|
|
|
isM1 = isAarch64 && isDarwin;
|
|
|
- osSpecific =
|
|
|
- if isM1 then with pkgs.darwin.apple_sdk_11_0.frameworks; [ Accelerate MetalKit MetalPerformanceShaders MetalPerformanceShadersGraph ]
|
|
|
- else if isDarwin then with pkgs.darwin.apple_sdk.frameworks; [ Accelerate CoreGraphics CoreVideo ]
|
|
|
- else [ ];
|
|
|
- pkgs = import nixpkgs {
|
|
|
- inherit system;
|
|
|
- };
|
|
|
- llama-python = pkgs.python310.withPackages (ps: with ps; [
|
|
|
- numpy
|
|
|
- sentencepiece
|
|
|
- ]);
|
|
|
- in
|
|
|
- {
|
|
|
+ osSpecific = if isM1 then
|
|
|
+ with pkgs.darwin.apple_sdk_11_0.frameworks; [
|
|
|
+ Accelerate
|
|
|
+ MetalKit
|
|
|
+ MetalPerformanceShaders
|
|
|
+ MetalPerformanceShadersGraph
|
|
|
+ ]
|
|
|
+ else if isDarwin then
|
|
|
+ with pkgs.darwin.apple_sdk.frameworks; [
|
|
|
+ Accelerate
|
|
|
+ CoreGraphics
|
|
|
+ CoreVideo
|
|
|
+ ]
|
|
|
+ else
|
|
|
+ [ ];
|
|
|
+ pkgs = import nixpkgs { inherit system; };
|
|
|
+ llama-python =
|
|
|
+ pkgs.python310.withPackages (ps: with ps; [ numpy sentencepiece ]);
|
|
|
+ in {
|
|
|
packages.default = pkgs.stdenv.mkDerivation {
|
|
|
name = "llama.cpp";
|
|
|
src = ./.;
|
|
|
- postPatch =
|
|
|
- if isM1 then ''
|
|
|
- substituteInPlace ./ggml-metal.m \
|
|
|
- --replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/ggml-metal.metal\";"
|
|
|
- '' else "";
|
|
|
+ postPatch = if isM1 then ''
|
|
|
+ substituteInPlace ./ggml-metal.m \
|
|
|
+ --replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";"
|
|
|
+ '' else
|
|
|
+ "";
|
|
|
nativeBuildInputs = with pkgs; [ cmake ];
|
|
|
buildInputs = osSpecific;
|
|
|
cmakeFlags = [ "-DLLAMA_BUILD_SERVER=ON" ] ++ (optionals isM1 [
|
|
|
@@ -62,11 +68,7 @@
|
|
|
};
|
|
|
apps.default = self.apps.${system}.llama;
|
|
|
devShells.default = pkgs.mkShell {
|
|
|
- packages = with pkgs; [
|
|
|
- cmake
|
|
|
- llama-python
|
|
|
- ] ++ osSpecific;
|
|
|
+ packages = with pkgs; [ cmake llama-python ] ++ osSpecific;
|
|
|
};
|
|
|
- }
|
|
|
- );
|
|
|
+ });
|
|
|
}
|