Skip to content

Commit 0d36389

Browse files
ggerganovliuyang.marshall
authored andcommitted
make : fix GGML_VULKAN=1 build (ggml-org#2485)
1 parent 570ca7c commit 0d36389

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

Makefile

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ ifdef GGML_RPC
134134
BUILD_TARGETS += rpc-server
135135
endif
136136

137+
ifdef GGML_VULKAN
138+
BUILD_TARGETS += vulkan-shaders-gen
139+
endif
140+
137141
ifeq ($(shell sdl2-config --cflags --libs 2>/dev/null),)
138142
else
139143
BUILD_TARGETS += \
@@ -624,8 +628,8 @@ endif # GGML_CUDA
624628

625629
ifdef GGML_VULKAN
626630
MK_CPPFLAGS += -DGGML_USE_VULKAN
627-
MK_LDFLAGS += -lvulkan
628-
OBJ_GGML += ggml/src/ggml-vulkan.o
631+
MK_LDFLAGS += $(shell pkg-config --libs vulkan)
632+
OBJ_GGML += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o
629633

630634
ifdef GGML_VULKAN_CHECK_RESULTS
631635
MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS
@@ -639,6 +643,10 @@ ifdef GGML_VULKAN_MEMORY_DEBUG
639643
MK_CPPFLAGS += -DGGML_VULKAN_MEMORY_DEBUG
640644
endif
641645

646+
ifdef GGML_VULKAN_PERF
647+
MK_CPPFLAGS += -DGGML_VULKAN_PERF
648+
endif
649+
642650
ifdef GGML_VULKAN_VALIDATE
643651
MK_CPPFLAGS += -DGGML_VULKAN_VALIDATE
644652
endif
@@ -647,10 +655,28 @@ ifdef GGML_VULKAN_RUN_TESTS
647655
MK_CPPFLAGS += -DGGML_VULKAN_RUN_TESTS
648656
endif
649657

650-
ggml/src/ggml-vulkan.o: \
651-
ggml/src/ggml-vulkan.cpp \
652-
ggml/include/ggml-vulkan.h
653-
$(CXX) $(CXXFLAGS) -c $< -o $@
658+
GLSLC_CMD = glslc
659+
_ggml_vk_genshaders_cmd = $(shell pwd)/vulkan-shaders-gen
660+
_ggml_vk_header = ggml/src/ggml-vulkan-shaders.hpp
661+
_ggml_vk_source = ggml/src/ggml-vulkan-shaders.cpp
662+
_ggml_vk_input_dir = ggml/src/vulkan-shaders
663+
_ggml_vk_shader_deps = $(echo $(_ggml_vk_input_dir)/*.comp)
664+
665+
ggml/src/ggml-vulkan.o: ggml/src/ggml-vulkan.cpp ggml/include/ggml-vulkan.h $(_ggml_vk_header) $(_ggml_vk_source)
666+
$(CXX) $(CXXFLAGS) $(shell pkg-config --cflags vulkan) -c $< -o $@
667+
668+
$(_ggml_vk_header): $(_ggml_vk_source)
669+
670+
$(_ggml_vk_source): $(_ggml_vk_shader_deps) vulkan-shaders-gen
671+
$(_ggml_vk_genshaders_cmd) \
672+
--glslc $(GLSLC_CMD) \
673+
--input-dir $(_ggml_vk_input_dir) \
674+
--target-hpp $(_ggml_vk_header) \
675+
--target-cpp $(_ggml_vk_source)
676+
677+
vulkan-shaders-gen: ggml/src/vulkan-shaders/vulkan-shaders-gen.cpp
678+
$(CXX) $(CXXFLAGS) -o $@ $(LDFLAGS) ggml/src/vulkan-shaders/vulkan-shaders-gen.cpp
679+
654680
endif # GGML_VULKAN
655681

656682
ifdef GGML_HIPBLAS

0 commit comments

Comments
 (0)