-
Notifications
You must be signed in to change notification settings - Fork 143
/
Copy pathMakefile
90 lines (77 loc) · 2.6 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
CXX = g++
CXXFLAGS = -std=c++11 -Werror -Wformat -Werror=format-security
ifndef TERMUX_VERSION
CXXFLAGS += -march=native -mtune=native
endif
ifdef DEBUG
CXXFLAGS += -g -fsanitize=address
else
CXXFLAGS += -O3
endif
ifdef WVLA
CXXFLAGS += -Wvla-extension
endif
ifdef DLLAMA_VULKAN
CGLSLC = glslc
ifeq ($(OS),Windows_NT)
LIBS += -L$(VK_SDK_PATH)\lib -lvulkan-1
CXXFLAGS += -DDLLAMA_VULKAN -I$(VK_SDK_PATH)\include
else
LIBS += -lvulkan
CXXFLAGS += -DDLLAMA_VULKAN
endif
DEPS += nn-vulkan.o
endif
ifeq ($(OS),Windows_NT)
LIBS += -lws2_32
DELETE_CMD = del /f
else
LIBS += -lpthread
DELETE_CMD = rm -fv
endif
.PHONY: clean dllama
clean:
$(DELETE_CMD) *.o dllama dllama-* socket-benchmark mmap-buffer-* *-test *.exe
# nn
nn-quants.o: src/nn/nn-quants.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-core.o: src/nn/nn-core.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-executor.o: src/nn/nn-executor.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-network.o: src/nn/nn-network.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
llamafile-sgemm.o: src/nn/llamafile/sgemm.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-cpu-ops.o: src/nn/nn-cpu-ops.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-cpu.o: src/nn/nn-cpu.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
nn-cpu-test: src/nn/nn-cpu-test.cpp nn-quants.o nn-core.o nn-executor.o llamafile-sgemm.o nn-cpu-ops.o nn-cpu.o
$(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS)
nn-cpu-ops-test: src/nn/nn-cpu-ops-test.cpp nn-quants.o nn-core.o nn-executor.o llamafile-sgemm.o nn-cpu.o
$(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS)
nn-vulkan.o: src/nn/nn-vulkan.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
ifdef DLLAMA_VULKAN
VULKAN_SHADER_SRCS := $(wildcard src/nn/vulkan/*.comp)
VULKAN_SHADER_BINS := $(VULKAN_SHADER_SRCS:.comp=.spv)
DEPS += $(VULKAN_SHADER_BINS)
%.spv: %.comp
$(CGLSLC) -c $< -o $@
nn-vulkan-test: src/nn/nn-vulkan-test.cpp nn-quants.o nn-core.o nn-executor.o nn-vulkan.o ${DEPS}
$(CXX) $(CXXFLAGS) $(filter-out %.spv, $^) -o $@ $(LIBS)
endif
# llm
tokenizer.o: src/tokenizer.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
llm.o: src/llm.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
app.o: src/app.cpp
$(CXX) $(CXXFLAGS) -c $^ -o $@
tokenizer-test: src/tokenizer-test.cpp nn-quants.o nn-core.o llamafile-sgemm.o nn-cpu-ops.o tokenizer.o
$(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS)
dllama: src/dllama.cpp nn-quants.o nn-core.o nn-executor.o nn-network.o llamafile-sgemm.o nn-cpu-ops.o nn-cpu.o tokenizer.o llm.o app.o ${DEPS}
$(CXX) $(CXXFLAGS) $(filter-out %.spv, $^) -o $@ $(LIBS)
dllama-api: src/dllama-api.cpp nn-quants.o nn-core.o nn-executor.o nn-network.o llamafile-sgemm.o nn-cpu-ops.o nn-cpu.o tokenizer.o llm.o app.o ${DEPS}
$(CXX) $(CXXFLAGS) $(filter-out %.spv, $^) -o $@ $(LIBS)