add: llama-cpp-hexagon #8

Open
doloro wants to merge 4 commits from llama-cpp-hexagon into main
2 changed files with 27 additions and 6 deletions
Showing only changes of commit 0188aff399 - Show all commits
@@ -1,3 +1,6 @@
{ llama-cpp }: { llama-cpp }:
llama-cpp.override { hexagonSupport = true; } llama-cpp.override {
hexagonSupport = true;
blasSupport = false;
}
+23 -5
View File
@@ -36,6 +36,7 @@
llama-cpp, llama-cpp,
shaderc, shaderc,
vulkan-headers, vulkan-headers,
hexagon-sdk,
vulkan-loader, vulkan-loader,
ninja, ninja,
}: }:
@@ -79,16 +80,20 @@ let
vulkan-headers vulkan-headers
vulkan-loader vulkan-loader
]; ];
hexagonBuildInputs = [
hexagon-sdk
];
in in
effectiveStdenv.mkDerivation (finalAttrs: { effectiveStdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp"; pname = "llama-cpp";
version = "6981"; version = "8871";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ggml-org"; owner = "ggml-org";
repo = "llama.cpp"; repo = "llama.cpp";
tag = "b${finalAttrs.version}"; tag = "b${finalAttrs.version}";
hash = "sha256-0WtiHDlMeb+m2XcMwkPFY1mtwVTwRJUoxQSwzpiRbts="; hash = "sha256-dSMomkkG3YFwXAcYTym6Z03u8ZAWFFio8jdQJPMJ/yg=";
leaveDotGit = true; leaveDotGit = true;
postFetch = '' postFetch = ''
git -C "$out" rev-parse --short HEAD > $out/COMMIT git -C "$out" rev-parse --short HEAD > $out/COMMIT
@@ -98,8 +103,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkgs.clang
ninja ninja
pkg-config pkg-config
blas
] ]
++ optionals cudaSupport [ ++ optionals cudaSupport [
cudaPackages.cuda_nvcc cudaPackages.cuda_nvcc
@@ -112,7 +119,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
++ optionals rocmSupport rocmBuildInputs ++ optionals rocmSupport rocmBuildInputs
++ optionals blasSupport [ blas ] ++ optionals blasSupport [ blas ]
++ optionals vulkanSupport vulkanBuildInputs ++ optionals vulkanSupport vulkanBuildInputs
++ [ curl ]; ++ optionals hexagonSupport hexagonBuildInputs
++ [
curl
];
preConfigure = '' preConfigure = ''
prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)" prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)"
@@ -153,9 +163,17 @@ effectiveStdenv.mkDerivation (finalAttrs: {
(cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) (cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
] ]
++ optionals hexagonSupport [ ++ optionals hexagonSupport [
# (cmakeFeature "CMAKE_TOOLCHAIN_FILE" "${finalAttrs.src}/cmake/arm64-linux-clang.cmake")
(cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1")
(cmakeFeature "CMAKE_CXX_FLAGS" "")
(cmakeBool "GGML_OPENMP" false)
(cmakeBool "GGML_LLAMAFILE" false)
(cmakeFeature "GGML_OPENCL" "OFF")
(cmakeFeature "PREBUILT_LIB_DIR" "linux_aarch64")
(cmakeFeature "GGML_HEXAGON_FP32_QUANTIZE_GROUP_SIZE" "128") (cmakeFeature "GGML_HEXAGON_FP32_QUANTIZE_GROUP_SIZE" "128")
(cmakeFeature "HEXAGON_SDK_ROOT" "${pkgs.hexagon-sdk}/opt/hexagon") (cmakeFeature "HEXAGON_SDK_ROOT" "${hexagon-sdk}/opt")
(cmakeFeature "HEXAGON_TOOLS_ROOT" "${pkgs.hexagon-sdk}/opt/hexagon/tools/HEXAGON_Tools/19.0.04") (cmakeFeature "HEXAGON_TOOLS_ROOT" "${hexagon-sdk}/opt/tools/HEXAGON_Tools/19.0.04")
(cmakeFeature "LLAMA_OPENSSL" "OFF")
]; ];
# upstream plans on adding targets at the cmakelevel, remove those # upstream plans on adding targets at the cmakelevel, remove those