From 491a967455c899d7b554d576bf7bdda2b318ae4f Mon Sep 17 00:00:00 2001 From: Mason M Date: Tue, 25 Jun 2024 19:38:32 -0300 Subject: [PATCH] Add make target for Vulkan shaders --- .gitignore | 2 ++ Makefile | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a0c16e880..c5dd777d1 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,8 @@ ggml-metal-embed.metal llama-batched-swift out/ tmp/ +ggml-vulkan-shaders.hpp +ggml-vulkan-shaders.cpp # CI diff --git a/Makefile b/Makefile index f6e8eb73e..38bee897b 100644 --- a/Makefile +++ b/Makefile @@ -620,8 +620,26 @@ ifdef LLAMA_VULKAN_RUN_TESTS MK_CPPFLAGS += -DGGML_VULKAN_RUN_TESTS endif -ggml-vulkan.o: ggml-vulkan.cpp ggml-vulkan.h +PYTHON_CMD = python +GLSLC_CMD = glslc +_llama_vk_genshaders_cmd = $(PYTHON_CMD) ggml_vk_generate_shaders.py +_llama_vk_header = ggml-vulkan-shaders.hpp +_llama_vk_source = ggml-vulkan-shaders.cpp +_llama_vk_input_dir = vulkan-shaders +_llama_vk_shader_deps = $(echo $(_llama_vk_input_dir)/*.comp) + +ggml-vulkan.o: ggml-vulkan.cpp ggml-vulkan.h $(_llama_vk_header) $(_llama_vk_source) $(CXX) $(CXXFLAGS) -c $< -o $@ + +$(_llama_vk_header): $(_llama_vk_source) + +$(_llama_vk_source): $(_llama_vk_shader_deps) + $(_llama_vk_genshaders_cmd) \ + --glslc $(GLSLC_CMD) \ + --input-dir $(_llama_vk_input_dir) \ + --target-hpp $(_llama_vk_header) \ + --target-cpp $(_llama_vk_source) + endif # LLAMA_VULKAN ifdef LLAMA_HIPBLAS