Skip to content

Commit 9803860

Browse files
committed
Update ggml library to v0.9.4
1 parent 90ffdc0 commit 9803860

File tree

4 files changed

+247
-1149
lines changed

4 files changed

+247
-1149
lines changed

CMakeLists.txt

Lines changed: 110 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,121 @@
1+
# Copied from https://github.com/abetlen/llama-cpp-python/blob/main/CMakeLists.txt
2+
# Edits made to remove llama.cpp specific calls
13
cmake_minimum_required(VERSION 3.21)
24

3-
project(
4-
${SKBUILD_PROJECT_NAME}
5-
VERSION ${SKBUILD_PROJECT_VERSION}
6-
)
5+
project(ggml)
76

8-
message(SKBUILD_STATE="${SKBUILD_STATE}")
7+
function(ggml_python_install_target target)
8+
if(NOT TARGET ${target})
9+
return()
10+
endif()
911

10-
if(SKBUILD_STATE STREQUAL "editable")
11-
# Temporary fix for https://github.com/scikit-build/scikit-build-core/issues/374
12-
set(GGML_PYTHON_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib)
13-
else()
14-
set(GGML_PYTHON_INSTALL_DIR ${SKBUILD_PLATLIB_DIR}/ggml/lib)
15-
endif()
12+
install(
13+
TARGETS ${target}
14+
LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
15+
RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
16+
ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
17+
FRAMEWORK DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
18+
RESOURCE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
19+
)
20+
install(
21+
TARGETS ${target}
22+
LIBRARY DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
23+
RUNTIME DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
24+
ARCHIVE DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
25+
FRAMEWORK DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
26+
RESOURCE DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
27+
)
28+
set_target_properties(${target} PROPERTIES
29+
INSTALL_RPATH "$ORIGIN"
30+
BUILD_WITH_INSTALL_RPATH TRUE
31+
)
32+
if(UNIX)
33+
if(APPLE)
34+
set_target_properties(${target} PROPERTIES
35+
INSTALL_RPATH "@loader_path"
36+
BUILD_WITH_INSTALL_RPATH TRUE
37+
)
38+
else()
39+
set_target_properties(${target} PROPERTIES
40+
INSTALL_RPATH "$ORIGIN"
41+
BUILD_WITH_INSTALL_RPATH TRUE
42+
)
43+
endif()
44+
endif()
45+
endfunction()
1646

1747
set(BUILD_SHARED_LIBS "On")
18-
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
48+
49+
set(CMAKE_SKIP_BUILD_RPATH FALSE)
50+
51+
# When building, don't use the install RPATH already
52+
# (but later on when installing)
53+
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
54+
55+
# Add the automatically determined parts of the RPATH
56+
# which point to directories outside the build tree to the install RPATH
57+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
58+
set(CMAKE_SKIP_RPATH FALSE)
59+
60+
# Architecture detection and settings for Apple platforms
1961
if (APPLE)
20-
if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
21-
set(GGML_AVX "Off" CACHE BOOL "ggml: enable AVX" FORCE)
22-
set(GGML_AVX2 "Off" CACHE BOOL "ggml: enable AVX2" FORCE)
23-
set(GGML_FMA "Off" CACHE BOOL "ggml: enable FMA" FORCE)
24-
set(GGML_F16C "Off" CACHE BOOL "ggml: enable F16C" FORCE)
62+
# Get the target architecture
63+
execute_process(
64+
COMMAND uname -m
65+
OUTPUT_VARIABLE HOST_ARCH
66+
OUTPUT_STRIP_TRAILING_WHITESPACE
67+
)
68+
69+
# If CMAKE_OSX_ARCHITECTURES is not set, use the host architecture
70+
if(NOT CMAKE_OSX_ARCHITECTURES)
71+
set(CMAKE_OSX_ARCHITECTURES ${HOST_ARCH} CACHE STRING "Build architecture for macOS" FORCE)
72+
endif()
73+
74+
message(STATUS "Host architecture: ${HOST_ARCH}")
75+
message(STATUS "Target architecture: ${CMAKE_OSX_ARCHITECTURES}")
76+
77+
# Configure based on target architecture
78+
if(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
79+
# Intel Mac settings
80+
set(GGML_AVX "OFF" CACHE BOOL "ggml: enable AVX" FORCE)
81+
set(GGML_AVX2 "OFF" CACHE BOOL "ggml: enable AVX2" FORCE)
82+
set(GGML_FMA "OFF" CACHE BOOL "ggml: enable FMA" FORCE)
83+
set(GGML_F16C "OFF" CACHE BOOL "ggml: enable F16C" FORCE)
2584
endif()
2685

27-
set(GGML_METAL_EMBED_LIBRARY "On" CACHE BOOL "ggml: embed metal library" FORCE)
86+
# Metal settings (enable for both architectures)
87+
set(GGML_METAL "ON" CACHE BOOL "ggml: enable Metal" FORCE)
88+
set(GGML_METAL_EMBED_LIBRARY "ON" CACHE BOOL "ggml: embed metal library" FORCE)
2889
endif()
90+
91+
2992
add_subdirectory(vendor/ggml)
30-
install(
31-
TARGETS ggml
32-
ARCHIVE DESTINATION ${GGML_PYTHON_INSTALL_DIR}
33-
LIBRARY DESTINATION ${GGML_PYTHON_INSTALL_DIR}
34-
RUNTIME DESTINATION ${GGML_PYTHON_INSTALL_DIR}
35-
FRAMEWORK DESTINATION ${GGML_PYTHON_INSTALL_DIR}
36-
RESOURCE DESTINATION ${GGML_PYTHON_INSTALL_DIR}
37-
)
38-
install(
39-
FILES $<TARGET_RUNTIME_DLLS:ggml>
40-
DESTINATION ${GGML_PYTHON_INSTALL_DIR}
41-
)
93+
94+
ggml_python_install_target(ggml)
95+
96+
ggml_python_install_target(ggml-base)
97+
98+
ggml_python_install_target(ggml-amx)
99+
ggml_python_install_target(ggml-blas)
100+
ggml_python_install_target(ggml-can)
101+
ggml_python_install_target(ggml-cpu)
102+
ggml_python_install_target(ggml-cuda)
103+
ggml_python_install_target(ggml-hip)
104+
ggml_python_install_target(ggml-kompute)
105+
ggml_python_install_target(ggml-metal)
106+
ggml_python_install_target(ggml-musa)
107+
ggml_python_install_target(ggml-rpc)
108+
ggml_python_install_target(ggml-sycl)
109+
ggml_python_install_target(ggml-vulkan)
110+
111+
# Workaround for Windows + CUDA https://github.com/abetlen/llama-cpp-python/issues/563
112+
if (WIN32)
113+
install(
114+
FILES $<TARGET_RUNTIME_DLLS:ggml>
115+
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/ggml/lib
116+
)
117+
install(
118+
FILES $<TARGET_RUNTIME_DLLS:ggml>
119+
DESTINATION ${SKBUILD_PLATLIB_DIR}/ggml/lib
120+
)
121+
endif()

ggml/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from .ggml import *
22

3-
__version__ = "0.0.37"
3+
__version__ = "0.0.38"

0 commit comments

Comments
 (0)