Skip to content

Commit 59eba1a

Browse files
ggerganovadutilleul
authored andcommitted
make : fix GGML_VULKAN=1 build (ggml-org#2485)
1 parent 2b66642 commit 59eba1a

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 += \
@@ -626,8 +630,8 @@ endif # GGML_CUDA
626630

627631
ifdef GGML_VULKAN
628632
MK_CPPFLAGS += -DGGML_USE_VULKAN
629-
MK_LDFLAGS += -lvulkan
630-
OBJ_GGML += ggml/src/ggml-vulkan.o
633+
MK_LDFLAGS += $(shell pkg-config --libs vulkan)
634+
OBJ_GGML += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o
631635

632636
ifdef GGML_VULKAN_CHECK_RESULTS
633637
MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS
@@ -641,6 +645,10 @@ ifdef GGML_VULKAN_MEMORY_DEBUG
641645
MK_CPPFLAGS += -DGGML_VULKAN_MEMORY_DEBUG
642646
endif
643647

648+
ifdef GGML_VULKAN_PERF
649+
MK_CPPFLAGS += -DGGML_VULKAN_PERF
650+
endif
651+
644652
ifdef GGML_VULKAN_VALIDATE
645653
MK_CPPFLAGS += -DGGML_VULKAN_VALIDATE
646654
endif
@@ -649,10 +657,28 @@ ifdef GGML_VULKAN_RUN_TESTS
649657
MK_CPPFLAGS += -DGGML_VULKAN_RUN_TESTS
650658
endif
651659

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

658684
ifdef GGML_HIPBLAS

0 commit comments

Comments
 (0)