From 6d15d203b6824564b072d8f55fe9eed1c6f7911e Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Fri, 17 Jan 2025 21:25:14 -0500 Subject: python312Packages.llama-cpp-python: enable for Darwin For Darwin, there's no CUDA, hence run CUDA tests only for Linux. Also, if CUDA is used, we need gcc13 or lower, otherwise the build fails with: unsupported GNU version! gcc versions later than 13 are not supported! This change also updates passthru tests so that they are defined on linux only, since darwin has no CUDA anyway. --- .../python-modules/llama-cpp-python/default.nix | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'pkgs/development/python-modules/llama-cpp-python') diff --git a/pkgs/development/python-modules/llama-cpp-python/default.nix b/pkgs/development/python-modules/llama-cpp-python/default.nix index ec69378235e6..ade74c97bef9 100644 --- a/pkgs/development/python-modules/llama-cpp-python/default.nix +++ b/pkgs/development/python-modules/llama-cpp-python/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, + gcc13Stdenv, buildPythonPackage, fetchFromGitHub, @@ -33,6 +34,9 @@ cudaPackages ? { }, }: +let + stdenvTarget = if cudaSupport then gcc13Stdenv else stdenv; +in buildPythonPackage rec { pname = "llama-cpp-python"; version = "0.3.6"; @@ -76,6 +80,8 @@ buildPythonPackage rec { ] ); + stdenv = stdenvTarget; + dependencies = [ diskcache jinja2 @@ -99,7 +105,11 @@ buildPythonPackage rec { passthru = { updateScript = gitUpdater { rev-prefix = "v"; }; - tests.llama-cpp-python = llama-cpp-python.override { cudaSupport = true; }; + tests = lib.optionalAttrs stdenvTarget.hostPlatform.isLinux { + withCuda = llama-cpp-python.override { + cudaSupport = true; + }; + }; }; meta = { @@ -109,12 +119,6 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = with lib.maintainers; [ kirillrdy ]; badPlatforms = [ - # Segfaults during tests: - # tests/test_llama.py .Fatal Python error: Segmentation fault - # Current thread 0x00000001f3decf40 (most recent call first): - # File "/private/tmp/nix-build-python3.12-llama-cpp-python-0.3.2.drv-0/source/llama_cpp/_internals.py", line 51 in __init__ - lib.systems.inspect.patterns.isDarwin - # cc1: error: unknown value ‘native+nodotprod+noi8mm+nosve’ for ‘-mcpu’ "aarch64-linux" ]; -- cgit v1.2.3 From 888795187e29bba2f9d27563a0b3f1fd7b8a4746 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Sun, 26 Jan 2025 22:45:56 +0000 Subject: python312Packages.llama-cpp-python: fix darwin build w/o Metal devices --- pkgs/development/python-modules/llama-cpp-python/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'pkgs/development/python-modules/llama-cpp-python') diff --git a/pkgs/development/python-modules/llama-cpp-python/default.nix b/pkgs/development/python-modules/llama-cpp-python/default.nix index ade74c97bef9..6c07005d4ddf 100644 --- a/pkgs/development/python-modules/llama-cpp-python/default.nix +++ b/pkgs/development/python-modules/llama-cpp-python/default.nix @@ -4,6 +4,7 @@ gcc13Stdenv, buildPythonPackage, fetchFromGitHub, + fetchpatch2, # nativeBuildInputs cmake, @@ -51,6 +52,16 @@ buildPythonPackage rec { }; # src = /home/gaetan/llama-cpp-python; + patches = [ + # fix segfault when running tests due to missing default Metal devices + (fetchpatch2 { + url = "https://github.com/ggerganov/llama.cpp/commit/acd38efee316f3a5ed2e6afcbc5814807c347053.patch?full_index=1"; + stripLen = 1; + extraPrefix = "vendor/llama.cpp/"; + hash = "sha256-71+Lpg9z5KPlaQTX9D85KS2LXFWLQNJJ18TJyyq3/pU="; + }) + ]; + dontUseCmakeConfigure = true; SKBUILD_CMAKE_ARGS = lib.strings.concatStringsSep ";" ( lib.optionals cudaSupport [ -- cgit v1.2.3