git: 7826eb339bbe - main - misc/ollama: Fix Vulkan compatibility
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 09 Aug 2024 05:03:38 UTC
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=7826eb339bbede7baa4c75af69360ed9756b6de4 commit 7826eb339bbede7baa4c75af69360ed9756b6de4 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2024-08-09 04:58:03 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2024-08-09 05:03:35 +0000 misc/ollama: Fix Vulkan compatibility --- misc/ollama/Makefile | 7 +++++-- misc/ollama/files/patch-FreeBSD-compatibility | 12 ++++++------ ...atch-llm_llama.cpp_ggml_src_vulkan-shaders_CMakeLists.txt | 9 +++++++++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/misc/ollama/Makefile b/misc/ollama/Makefile index d388e976d172..b44f692681bd 100644 --- a/misc/ollama/Makefile +++ b/misc/ollama/Makefile @@ -1,7 +1,7 @@ PORTNAME= ollama DISTVERSIONPREFIX= v DISTVERSION= 0.3.4 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= misc # machine-learning MAINTAINER= yuri@FreeBSD.org @@ -16,6 +16,7 @@ ONLY_FOR_ARCHS_REASON= bundled patched llama-cpp is placed into the arch-specifi BUILD_DEPENDS= bash:shells/bash \ cmake:devel/cmake-core \ + glslc:graphics/shaderc \ vulkan-headers>0:graphics/vulkan-headers LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader @@ -27,12 +28,14 @@ GO_TARGET= . USE_GITHUB= nodefault GH_TUPLE= ggerganov:llama.cpp:6eeaeba:llama_cpp/llm/llama.cpp +MAKE_ENV= PATH=${PATH}:${WRKSRC}/llm/build/bsd/x86_64_static/bin # workaround to find vulkan-shaders-gen + PLIST_FILES= bin/${PORTNAME} post-patch: # workaround for https://github.com/ollama/ollama/issues/6259 (use of extenral libllama.so) @${REINPLACE_CMD} \ -e '\ - s| llama | llama omp |; \ + s| llama | llama ${LOCALBASE}/lib/libvulkan.so omp pthread |; \ s| llama | ${WRKSRC}/llm/build/bsd/x86_64_static/src/libllama.a |; \ s| ggml | ${WRKSRC}/llm/build/bsd/x86_64_static/ggml/src/libggml.a |; \ ' \ diff --git a/misc/ollama/files/patch-FreeBSD-compatibility b/misc/ollama/files/patch-FreeBSD-compatibility index 03cc31011ab1..ca206363f042 100644 --- a/misc/ollama/files/patch-FreeBSD-compatibility +++ b/misc/ollama/files/patch-FreeBSD-compatibility @@ -143,38 +143,38 @@ new file mode 100644 +COMMON_BSD_DEFS="-DCMAKE_SYSTEM_NAME=$(uname -s)" +CMAKE_TARGETS="--target llama --target ggml" + -+COMMON_CPU_DEFS="${COMMON_BSD_DEFS} -DCMAKE_SYSTEM_PROCESSOR=${ARCH}" ++COMMON_CPU_DEFS="${COMMON_BSD_DEFS} -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DBUILD_SHARED_LIBS=off" + +# Static build for linking into the Go binary +init_vars -+CMAKE_DEFS="${COMMON_CPU_DEFS} -DBUILD_SHARED_LIBS=off -DLLAMA_ACCELERATE=off -DLLAMA_AVX=off -DLLAMA_AVX2=off -DLLAMA_AVX512=off -DLLAMA_FMA=off -DLLAMA_F16C=off ${CMAKE_DEFS}" ++CMAKE_DEFS="${COMMON_CPU_DEFS} -DGGML_VULKAN=on -DGGML_ACCELERATE=off -DGGML_AVX=off -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -DGGML_F16C=off ${CMAKE_DEFS}" +BUILD_DIR="../build/bsd/${ARCH}_static" +echo "Building static library" +build + +init_vars -+CMAKE_DEFS="${COMMON_CPU_DEFS} -DLLAMA_AVX=off -DLLAMA_AVX2=off -DLLAMA_AVX512=off -DLLAMA_FMA=off -DLLAMA_F16C=off ${CMAKE_DEFS}" ++CMAKE_DEFS="${COMMON_CPU_DEFS} -DGGML_AVX=off -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -DGGML_F16C=off ${CMAKE_DEFS}" +BUILD_DIR="../build/bsd/${ARCH}/cpu" +echo "Building LCD CPU" +build +compress + +init_vars -+CMAKE_DEFS="${COMMON_CPU_DEFS} -DLLAMA_AVX=on -DLLAMA_AVX2=off -DLLAMA_AVX512=off -DLLAMA_FMA=off -DLLAMA_F16C=off ${CMAKE_DEFS}" ++CMAKE_DEFS="${COMMON_CPU_DEFS} -DGGML_AVX=on -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -DGGML_F16C=off ${CMAKE_DEFS}" +BUILD_DIR="../build/bsd/${ARCH}/cpu_avx" +echo "Building AVX CPU" +build +compress + +init_vars -+CMAKE_DEFS="${COMMON_CPU_DEFS} -DLLAMA_AVX=on -DLLAMA_AVX2=on -DLLAMA_AVX512=off -DLLAMA_FMA=on -DLLAMA_F16C=on ${CMAKE_DEFS}" ++CMAKE_DEFS="${COMMON_CPU_DEFS} -DGGML_AVX=on -DGGML_AVX2=on -DGGML_AVX512=off -DGGML_FMA=on -DGGML_F16C=on ${CMAKE_DEFS}" +BUILD_DIR="../build/bsd/${ARCH}/cpu_avx2" +echo "Building AVX2 CPU" +build +compress + +init_vars -+CMAKE_DEFS="${COMMON_CPU_DEFS} -DLLAMA_VULKAN=on ${CMAKE_DEFS}" ++CMAKE_DEFS="${COMMON_CPU_DEFS} -DGGML_VULKAN=on ${CMAKE_DEFS}" +BUILD_DIR="../build/bsd/${ARCH}/vulkan" +echo "Building Vulkan GPU" +build diff --git a/misc/ollama/files/patch-llm_llama.cpp_ggml_src_vulkan-shaders_CMakeLists.txt b/misc/ollama/files/patch-llm_llama.cpp_ggml_src_vulkan-shaders_CMakeLists.txt new file mode 100644 index 000000000000..3ada7c2debc2 --- /dev/null +++ b/misc/ollama/files/patch-llm_llama.cpp_ggml_src_vulkan-shaders_CMakeLists.txt @@ -0,0 +1,9 @@ +--- llm/llama.cpp/ggml/src/vulkan-shaders/CMakeLists.txt.orig 2024-08-08 21:55:59 UTC ++++ llm/llama.cpp/ggml/src/vulkan-shaders/CMakeLists.txt +@@ -1,5 +1,6 @@ add_executable(${TARGET} vulkan-shaders-gen.cpp) + + set(TARGET vulkan-shaders-gen) + add_executable(${TARGET} vulkan-shaders-gen.cpp) ++target_link_libraries(${TARGET} PRIVATE pthread) + install(TARGETS ${TARGET} RUNTIME) + target_compile_features(${TARGET} PRIVATE cxx_std_11)