@@ -430,11 +430,29 @@ $(TMP)old_cl_grammar-parser.o: GGML/grammar-parser.cpp GGML/grammar-parser.h
430430
431431# VULKAN
432432
433+ PYTHON_CMD = python
434+ GLSLC_CMD = glslc
435+ _llama_vk_genshaders_cmd = $(PYTHON_CMD ) ggml/ggml_vk_generate_shaders.py
436+ _llama_vk_header = ggml/src/ggml-vulkan-shaders.hpp
437+ _llama_vk_source = ggml/src/ggml-vulkan-shaders.cpp
438+ _llama_vk_input_dir = ggml/src/vulkan-shaders
439+ _llama_vk_shader_deps = $(echo $(_llama_vk_input_dir ) /*.comp )
440+
441+ ggml/src/ggml-vulkan.o : ggml/src/ggml-vulkan.cpp ggml/include/ggml-vulkan.h $(_llama_vk_header ) $(_llama_vk_source )
442+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
443+
444+ $(_llama_vk_header ) : $(_llama_vk_source )
433445
446+ $(_llama_vk_source ) : $(_llama_vk_shader_deps )
447+ $(_llama_vk_genshaders_cmd ) \
448+ --glslc $(GLSLC_CMD ) \
449+ --input-dir $(_llama_vk_input_dir ) \
450+ --target-hpp $(_llama_vk_header ) \
451+ --target-cpp $(_llama_vk_source )
434452
435453# CXXFLAGS_VK += -I$(VULKAN_DIR)/include
436454
437- OBJS_VK = $(TMP ) vk_ggml.o $(TMP ) vk_ggml-alloc.o $(TMP ) vk_ggml-backend.o $(TMP ) vk_llama.o $(TMP ) vk_sampling.o $(TMP ) vk_common.o $(TMP ) vk_ggml-quants.o $(TMP ) vk_grammar-parser.o $(TMP ) vk_ggml-vulkan.o $(TMP ) vk_unicode.o $(TMP ) vk_unicode-data.o $(TMP ) vk_sgemm.o
455+ OBJS_VK = $(TMP ) vk_ggml.o $(TMP ) vk_ggml-alloc.o $(TMP ) vk_ggml-backend.o $(TMP ) vk_llama.o $(TMP ) vk_llama-addon.o $( TMP ) vk_sampling.o $(TMP ) vk_common.o $(TMP ) vk_ggml-quants.o $(TMP ) vk_grammar-parser.o $(TMP ) vk_ggml-vulkan.o $(TMP ) vk_unicode.o $(TMP ) vk_unicode-data.o $(TMP ) vk_sgemm.o
438456
439457$(TMP ) vk_ggml.o : base/ggml.c base/ggml.h
440458 $(CC ) $(CFLAGS_VK ) -c $< -o $@
@@ -444,9 +462,6 @@ $(TMP)vk_ggml-alloc.o: base/ggml-alloc.c base/ggml.h base/ggml-alloc.h
444462
445463$(TMP ) vk_ggml-backend.o : base/ggml-backend.c base/ggml.h base/ggml-backend.h
446464 $(CC ) $(CFLAGS_VK ) -c $< -o $@
447-
448- $(TMP ) vk_ggml-vulkan.o : base/ggml-vulkan.cpp base/ggml-vulkan.h
449- $(CXX ) $(CXXFLAGS_VK ) $(LDFLAGS_VK ) -c $< -o $@
450465
451466$(TMP ) vk_ggml-quants.o : base/ggml-quants.c base/ggml.h base/ggml-quants.h base/ggml-common.h
452467 $(CC ) $(CFLAGS_VK ) -c $< -o $@
@@ -460,11 +475,14 @@ $(TMP)vk_unicode-data.o: base/unicode-data.cpp base/unicode-data.h
460475$(TMP ) vk_llama.o : base/llama.cpp base/unicode.h base/ggml.h base/ggml-alloc.h base/ggml-backend.h base/llama.h
461476 $(CXX ) $(CXXFLAGS_VK ) -c $< -o $@
462477
463- VK_COMMON_H_DEPS = base/common.h base/sampling.h base/llama.h
478+ VK_COMMON_H_DEPS = base/common.h base/sampling.h base/llama-addon.h base/llama .h
464479VK_COMMON_DEPS = $(TMP ) vk_common.o $(TMP ) vk_sampling.o $(TMP ) vk_grammar-parser.o
465480
466481$(TMP ) vk_common.o : base/common.cpp $(VK_COMMON_H_DEPS )
467482 $(CXX ) $(CXXFLAGS_VK ) -c $< -o $@
483+
484+ $(TMP ) vk_llama-addon.o : base/llama-addon.cpp $(COMMON_H_DEPS )
485+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
468486
469487$(TMP ) vk_sampling.o : base/sampling.cpp $(VK_COMMON_H_DEPS )
470488 $(CXX ) $(CXXFLAGS_VK ) -c $< -o $@
@@ -475,11 +493,33 @@ $(TMP)vk_sgemm.o: base/sgemm.cpp base/sgemm.h base/ggml.h
475493
476494$(TMP ) vk_grammar-parser.o : base/grammar-parser.cpp base/grammar-parser.h
477495 $(CXX ) $(CXXFLAGS_VK ) -c $< -o $@
496+
497+ PYTHON_CMD = python
498+ GLSLC_CMD = glslc
499+ _llama_vk_genshaders_cmd = $(PYTHON_CMD ) base/ggml_vk_generate_shaders.py
500+ _llama_vk_header = base/ggml-vulkan-shaders.hpp
501+ _llama_vk_source = base/ggml-vulkan-shaders.cpp
502+ _llama_vk_input_dir = base/vulkan-shaders
503+ _llama_vk_shader_deps = $(echo $(_llama_vk_input_dir ) /*.comp )
504+
505+
506+ $(TMP ) vk_ggml-vulkan.o : base/ggml-vulkan.cpp base/ggml-vulkan.h
507+ $(CXX ) $(CXXFLAGS_VK ) $(LDFLAGS_VK ) -c $< -o $@
508+
509+ $(_llama_vk_header ) : $(_llama_vk_source )
510+
511+ $(_llama_vk_source ) : $(_llama_vk_shader_deps )
512+ $(_llama_vk_genshaders_cmd ) \
513+ --glslc $(GLSLC_CMD ) \
514+ --input-dir $(_llama_vk_input_dir ) \
515+ --target-hpp $(_llama_vk_header ) \
516+ --target-cpp $(_llama_vk_source )
517+
478518
479519# ####################################
480520# ############################### GGUF
481521
482- OBJS_GGUF = $(TMP ) ggml.o $(TMP ) ggml-alloc.o $(TMP ) ggml-backend.o $(TMP ) llama.o $(TMP ) sampling.o $(TMP ) common.o $(TMP ) ggml-quants.o $(TMP ) grammar-parser.o $(TMP ) unicode.o $(TMP ) unicode-data.o $(TMP ) sgemm.o
522+ OBJS_GGUF = $(TMP ) ggml.o $(TMP ) ggml-alloc.o $(TMP ) ggml-backend.o $(TMP ) llama.o $(TMP ) llama-addon.o $( TMP ) sampling.o $(TMP ) common.o $(TMP ) ggml-quants.o $(TMP ) grammar-parser.o $(TMP ) unicode.o $(TMP ) unicode-data.o $(TMP ) sgemm.o
483523
484524$(TMP ) tinyfiledialogs/tinyfiledialogs.o : tinyfiledialogs/tinyfiledialogs.c tinyfiledialogs/tinyfiledialogs.h
485525 $(CC ) $(CFLAGS ) -c $< -o $@
@@ -504,23 +544,26 @@ $(TMP)unicode-data.o: base/unicode-data.cpp base/unicode-data.h
504544
505545$(TMP ) llama.o : base/llama.cpp base/unicode.h base/ggml.h base/ggml-alloc.h base/ggml-backend.h base/llama.h
506546 $(CXX ) $(CXXFLAGS ) -c $< -o $@
507-
508- COMMON_H_DEPS = base/common.h base/sampling.h base/llama.h
547+
548+ COMMON_H_DEPS = base/common.h base/sampling.h base/llama-addon.h base/llama .h
509549COMMON_DEPS = $(TMP ) common.o $(TMP ) sampling.o $(TMP ) grammar-parser.o
510550
511551$(TMP ) common.o : base/common.cpp $(COMMON_H_DEPS )
512552 $(CXX ) $(CXXFLAGS ) -c $< -o $@
513-
553+
514554$(TMP ) sampling.o : base/sampling.cpp $(COMMON_H_DEPS )
515555 $(CXX ) $(CXXFLAGS ) -c $< -o $@
516-
556+
557+ $(TMP ) llama-addon.o : base/llama-addon.cpp $(COMMON_H_DEPS )
558+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
559+
517560$(TMP ) sgemm.o : base/sgemm.cpp base/sgemm.h base/ggml.h
518561 $(CXX ) $(CXXFLAGS ) -c $< -o $@
519-
562+
520563$(TMP ) grammar-parser.o : base/grammar-parser.cpp base/grammar-parser.h
521564 $(CXX ) $(CXXFLAGS ) -c $< -o $@
522-
523-
565+
566+
524567# Separate CLBLAST
525568
526569# Mac provides OpenCL as a framework
@@ -537,7 +580,7 @@ CXXFLAGS_UI_CL += -lclblast -lOpenCL
537580
538581
539582# OBJS_GGUF_CL = $(TMP)cl_ggml-quants.o $(TMP)cl_ggml-opencl-gguf.o $(TMP)cl_ggml.o $(TMP)cl_ggml-alloc.o $(TMP)cl_ggml-backend.o $(TMP)cl_llama.o $(TMP)cl_sampling.o $(TMP)cl_common.o $(TMP)cl_grammar-parser.o
540- OBJS_GGUF_CL = $(TMP ) cl_ggml.o $(TMP ) cl_ggml-quants.o $(TMP ) cl_ggml-opencl-gguf.o $(TMP ) cl_ggml-alloc.o $(TMP ) cl_ggml-backend.o $(TMP ) cl_llama.o $(TMP ) cl_sampling.o $(TMP ) cl_common.o $(TMP ) cl_grammar-parser.o $(TMP ) cl_unicode.o $(TMP ) cl_unicode-data.o $(TMP ) cl_sgemm.o
583+ OBJS_GGUF_CL = $(TMP ) cl_ggml.o $(TMP ) cl_ggml-quants.o $(TMP ) cl_ggml-opencl-gguf.o $(TMP ) cl_ggml-alloc.o $(TMP ) cl_ggml-backend.o $(TMP ) cl_llama.o $(TMP ) cl_llama-addon.o $( TMP ) cl_sampling.o $(TMP ) cl_common.o $(TMP ) cl_grammar-parser.o $(TMP ) cl_unicode.o $(TMP ) cl_unicode-data.o $(TMP ) cl_sgemm.o
541584
542585$(TMP ) cl_ggml-opencl-gguf.o : base/ggml-opencl.cpp base/ggml-opencl.h
543586 $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
@@ -566,10 +609,13 @@ $(TMP)cl_unicode-data.o: base/unicode-data.cpp base/unicode-data.h
566609$(TMP ) cl_llama.o : base/llama.cpp base/unicode.h base/ggml.h base/ggml-alloc.h base/ggml-backend.h base/llama.h
567610 $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
568611
569- CL_COMMON_H_DEPS = base/common.h base/sampling.h base/llama.h
612+ CL_COMMON_H_DEPS = base/common.h base/sampling.h base/llama-addon.h base/llama .h
570613
571614$(TMP ) cl_common.o : base/common.cpp $(CL_COMMON_H_DEPS )
572615 $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
616+
617+ $(TMP ) cl_llama-addon.o : base/llama-addon.cpp $(COMMON_H_DEPS )
618+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
573619
574620$(TMP ) cl_sampling.o : base/sampling.cpp $(CL_COMMON_H_DEPS )
575621 $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
0 commit comments