Skip to content

Commit 703573f

Browse files
committed
Merge branch 'master' into xsn/fix_lora
2 parents 87301bd + bda62d7 commit 703573f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2194
-146805
lines changed

.devops/nix/package.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
vulkan-headers,
1919
vulkan-loader,
2020
curl,
21+
shaderc,
2122
useBlas ? builtins.all (x: !x) [
2223
useCuda
2324
useMetalKit
@@ -146,6 +147,7 @@ let
146147
vulkanBuildInputs = [
147148
vulkan-headers
148149
vulkan-loader
150+
shaderc
149151
];
150152
in
151153

.devops/tools.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ arg1="$1"
88
shift
99

1010
if [[ "$arg1" == '--convert' || "$arg1" == '-c' ]]; then
11-
python3 ./convert-hf-to-gguf.py "$@"
11+
python3 ./convert_hf_to_gguf.py "$@"
1212
elif [[ "$arg1" == '--quantize' || "$arg1" == '-q' ]]; then
1313
./llama-quantize "$@"
1414
elif [[ "$arg1" == '--run' || "$arg1" == '-r' ]]; then

.github/workflows/build.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,10 @@ jobs:
355355
- name: Dependencies
356356
id: depends
357357
run: |
358-
sudo apt-get update
359-
sudo apt-get install build-essential libvulkan-dev
358+
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
359+
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
360+
sudo apt-get update -y
361+
sudo apt-get install -y build-essential vulkan-sdk
360362
361363
- name: Build
362364
id: cmake_build

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ llama-batched-swift
6161
out/
6262
tmp/
6363

64+
# Deprecated
65+
66+
/main
67+
/server
68+
6469
# CI
6570

6671
!.github/workflows/*.yml

CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,16 @@ set(LLAMA_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location o
132132
set(LLAMA_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files")
133133
set(LLAMA_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files")
134134

135-
get_directory_property(LLAMA_TRANSIENT_DEFINES COMPILE_DEFINITIONS)
135+
136+
# At the moment some compile definitions are placed within the ggml/src
137+
# directory but not exported on the `ggml` target. This could be improved by
138+
# determining _precisely_ which defines are necessary for the llama-config
139+
# package.
140+
#
141+
get_directory_property(GGML_DIR_DEFINES DIRECTORY ggml/src COMPILE_DEFINITIONS)
142+
get_target_property(GGML_TARGET_DEFINES ggml COMPILE_DEFINITIONS)
143+
set(GGML_TRANSIENT_DEFINES ${GGML_TARGET_DEFINES} ${GGML_DIR_DEFINES})
144+
get_target_property(GGML_LINK_LIBRARIES ggml LINK_LIBRARIES)
136145

137146
set_target_properties(llama PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/include/llama.h)
138147
install(TARGETS llama LIBRARY PUBLIC_HEADER)

Makefile

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ ifdef GGML_RPC
197197
BUILD_TARGETS += rpc-server
198198
endif
199199

200+
ifdef GGML_VULKAN
201+
BUILD_TARGETS += vulkan-shaders-gen
202+
endif
203+
200204
default: $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
201205

202206
test: $(TEST_TARGETS)
@@ -547,11 +551,17 @@ ifdef GGML_OPENBLAS64
547551
endif # GGML_OPENBLAS64
548552

549553
ifdef GGML_BLIS
550-
MK_CPPFLAGS += -DGGML_USE_BLAS -I/usr/local/include/blis -I/usr/include/blis
554+
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_BLIS -I/usr/local/include/blis -I/usr/include/blis
551555
MK_LDFLAGS += -lblis -L/usr/local/lib
552556
OBJ_GGML += ggml/src/ggml-blas.o
553557
endif # GGML_BLIS
554558

559+
ifdef GGML_NVPL
560+
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_NVPL -DNVPL_ILP64 -I/usr/local/include/nvpl_blas -I/usr/include/nvpl_blas
561+
MK_LDFLAGS += -L/usr/local/lib -lnvpl_blas_core -lnvpl_blas_ilp64_gomp
562+
OBJ_GGML += ggml/src/ggml-blas.o
563+
endif # GGML_NVPL
564+
555565
ifndef GGML_NO_LLAMAFILE
556566
MK_CPPFLAGS += -DGGML_USE_LLAMAFILE
557567
OBJ_GGML += ggml/src/llamafile/sgemm.o
@@ -704,8 +714,8 @@ endif # GGML_CUDA
704714

705715
ifdef GGML_VULKAN
706716
MK_CPPFLAGS += -DGGML_USE_VULKAN
707-
MK_LDFLAGS += -lvulkan
708-
OBJ_GGML += ggml/src/ggml-vulkan.o
717+
MK_LDFLAGS += $(shell pkg-config --libs vulkan)
718+
OBJ_GGML += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o
709719

710720
ifdef GGML_VULKAN_CHECK_RESULTS
711721
MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS
@@ -727,10 +737,28 @@ ifdef GGML_VULKAN_RUN_TESTS
727737
MK_CPPFLAGS += -DGGML_VULKAN_RUN_TESTS
728738
endif
729739

730-
ggml/src/ggml-vulkan.o: \
731-
ggml/src/ggml-vulkan.cpp \
732-
ggml/include/ggml-vulkan.h
733-
$(CXX) $(CXXFLAGS) -c $< -o $@
740+
GLSLC_CMD = glslc
741+
_ggml_vk_genshaders_cmd = $(shell pwd)/vulkan-shaders-gen
742+
_ggml_vk_header = ggml/src/ggml-vulkan-shaders.hpp
743+
_ggml_vk_source = ggml/src/ggml-vulkan-shaders.cpp
744+
_ggml_vk_input_dir = ggml/src/vulkan-shaders
745+
_ggml_vk_shader_deps = $(echo $(_ggml_vk_input_dir)/*.comp)
746+
747+
ggml/src/ggml-vulkan.o: ggml/src/ggml-vulkan.cpp ggml/include/ggml-vulkan.h $(_ggml_vk_header) $(_ggml_vk_source)
748+
$(CXX) $(CXXFLAGS) $(shell pkg-config --cflags vulkan) -c $< -o $@
749+
750+
$(_ggml_vk_header): $(_ggml_vk_source)
751+
752+
$(_ggml_vk_source): $(_ggml_vk_shader_deps) vulkan-shaders-gen
753+
$(_ggml_vk_genshaders_cmd) \
754+
--glslc $(GLSLC_CMD) \
755+
--input-dir $(_ggml_vk_input_dir) \
756+
--target-hpp $(_ggml_vk_header) \
757+
--target-cpp $(_ggml_vk_source)
758+
759+
vulkan-shaders-gen: ggml/src/vulkan-shaders/vulkan-shaders-gen.cpp
760+
$(CXX) $(CXXFLAGS) -o $@ $(LDFLAGS) ggml/src/vulkan-shaders/vulkan-shaders-gen.cpp
761+
734762
endif # GGML_VULKAN
735763

736764
ifdef GGML_HIPBLAS
@@ -1110,6 +1138,7 @@ clean:
11101138
rm -vrf ggml/src/ggml-cuda/template-instances/*.o
11111139
rm -rvf $(BUILD_TARGETS)
11121140
rm -rvf $(TEST_TARGETS)
1141+
rm -f vulkan-shaders-gen ggml/src/ggml-vulkan-shaders.hpp ggml/src/ggml-vulkan-shaders.cpp
11131142
rm -rvf $(LEGACY_TARGETS_CLEAN)
11141143
find examples pocs -type f -name "*.o" -delete
11151144

cmake/llama-config.cmake.in

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ set(GGML_CUDA @GGML_CUDA@)
88
set(GGML_METAL @GGML_METAL@)
99
set(GGML_HIPBLAS @GGML_HIPBLAS@)
1010
set(GGML_ACCELERATE @GGML_ACCELERATE@)
11+
set(GGML_VULKAN @GGML_VULKAN@)
12+
set(GGML_VULKAN_CHECK_RESULTS @GGML_VULKAN_CHECK_RESULTS@)
13+
set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@)
14+
set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@)
15+
set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@)
16+
set(GGML_SYCL @GGML_SYCL@)
17+
set(GGML_OPENMP @GGML_OPENMP@)
1118

1219
@PACKAGE_INIT@
1320

@@ -37,18 +44,36 @@ if (GGML_METAL)
3744
find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
3845
endif()
3946

47+
if (GGML_VULKAN)
48+
find_package(Vulkan REQUIRED)
49+
endif()
50+
4051
if (GGML_HIPBLAS)
4152
find_package(hip REQUIRED)
4253
find_package(hipblas REQUIRED)
4354
find_package(rocblas REQUIRED)
4455
endif()
4556

57+
if (GGML_SYCL)
58+
find_package(IntelSYCL REQUIRED)
59+
find_package(MKL REQUIRED)
60+
endif()
61+
62+
if (GGML_OPENMP)
63+
find_package(OpenMP REQUIRED)
64+
endif()
65+
66+
67+
find_library(ggml_LIBRARY ggml
68+
REQUIRED
69+
HINTS ${LLAMA_LIB_DIR})
70+
4671
find_library(llama_LIBRARY llama
4772
REQUIRED
4873
HINTS ${LLAMA_LIB_DIR})
4974

50-
set(_llama_link_deps "Threads::Threads" "@LLAMA_EXTRA_LIBS@")
51-
set(_llama_transient_defines "@LLAMA_TRANSIENT_DEFINES@")
75+
set(_llama_link_deps "${ggml_LIBRARY}" "@GGML_LINK_LIBRARIES@")
76+
set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@")
5277

5378
add_library(llama UNKNOWN IMPORTED)
5479

0 commit comments

Comments
 (0)