Skip to content

Commit

Permalink
feat: fundamental codebase refactor (#156)
Browse files Browse the repository at this point in the history
  • Loading branch information
b4rtaz authored Feb 12, 2025
1 parent 61dd305 commit 121bc8c
Show file tree
Hide file tree
Showing 59 changed files with 6,904 additions and 6,075 deletions.
46 changes: 14 additions & 32 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ on:
pull_request:
branches:
- main
- feat/nn
push:
branches:
- main
- feat/nn
jobs:
build-linux:
name: Linux
Expand All @@ -27,22 +29,12 @@ jobs:
id: build
run: |
make dllama
make dllama-api
make funcs-test
make quants-test
make tokenizer-test
make commands-test
make llama2-tasks-test
- name: funcs-test
run: ./funcs-test
- name: quants-test
run: ./quants-test
- name: tokenizer-test
run: ./tokenizer-test
- name: commands-test
run: ./commands-test
- name: llama2-tasks-test
run: ./llama2-tasks-test
make nn-cpu-test
make nn-cpu-ops-test
- name: nn-cpu-test
run: ./nn-cpu-test
- name: nn-cpu-ops-test
run: ./nn-cpu-ops-test

build-windows:
name: Windows
Expand All @@ -57,19 +49,9 @@ jobs:
id: build
run: |
make dllama
make dllama-api
make funcs-test
make quants-test
make tokenizer-test
make commands-test
make llama2-tasks-test
- name: funcs-test
run: ./funcs-test
- name: quants-test
run: ./quants-test
- name: tokenizer-test
run: ./tokenizer-test
- name: commands-test
run: ./commands-test
- name: llama2-tasks-test
run: ./llama2-tasks-test
make nn-cpu-test
make nn-cpu-ops-test
- name: nn-cpu-test
run: ./nn-cpu-test
- name: nn-cpu-ops-test
run: ./nn-cpu-ops-test
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
*.dSYM
*.data
*.temp
*.tmp
__pycache__

*-test
/socket-benchmark
/models
main
run*.sh
server
Expand Down
104 changes: 54 additions & 50 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,59 +1,63 @@
CXX = g++
CXXFLAGS = -std=c++11 -Werror -O3 -march=native -mtune=native -Wformat -Werror=format-security
CXXFLAGS = -std=c++11 -Werror -Wformat -Werror=format-security

ifndef TERMUX_VERSION
CXXFLAGS += -march=native -mtune=native
endif

ifdef DEBUG
CXXFLAGS += -g
else
CXXFLAGS += -O3
endif

ifdef WVLA
CXXFLAGS += -Wvla-extension
endif

# Conditional settings for Windows
ifeq ($(OS),Windows_NT)
LIBS = -lws2_32 # or -lpthreadGC2 if needed
DELETECMD = del /f
LIBS = -lws2_32
DELETE_CMD = del /f
else
LIBS = -lpthread
DELETECMD = rm -fv
DELETE_CMD = rm -fv
endif

.PHONY: all apps clean tests
.PHONY: clean dllama

apps: dllama dllama-api socket-benchmark
tests: funcs-test quants-test tokenizer-test commands-test llama2-tasks-test
all: apps tests
clean:
$(DELETECMD) *.o dllama dllama-* socket-benchmark mmap-buffer-* *-test *.exe
utils: src/utils.cpp
$(CXX) $(CXXFLAGS) -c src/utils.cpp -o utils.o
quants: src/quants.cpp
$(CXX) $(CXXFLAGS) -c src/quants.cpp -o quants.o
funcs: src/funcs.cpp
$(CXX) $(CXXFLAGS) -c src/funcs.cpp -o funcs.o
commands: src/commands.cpp
$(CXX) $(CXXFLAGS) -c src/commands.cpp -o commands.o
socket: src/socket.cpp
$(CXX) $(CXXFLAGS) -c src/socket.cpp -o socket.o
transformer: src/utils.cpp
$(CXX) $(CXXFLAGS) -c src/transformer.cpp -o transformer.o
tasks: src/tasks.cpp
$(CXX) $(CXXFLAGS) -c src/tasks.cpp -o tasks.o
llama2-tasks: src/llama2-tasks.cpp
$(CXX) $(CXXFLAGS) -c src/llama2-tasks.cpp -o llama2-tasks.o
mixtral-tasks: src/mixtral-tasks.cpp
$(CXX) $(CXXFLAGS) -c src/mixtral-tasks.cpp -o mixtral-tasks.o
tokenizer: src/tokenizer.cpp
$(CXX) $(CXXFLAGS) -c src/tokenizer.cpp -o tokenizer.o
app: src/app.cpp
$(CXX) $(CXXFLAGS) -c src/app.cpp -o app.o

dllama: src/apps/dllama/dllama.cpp utils quants funcs commands socket transformer tasks llama2-tasks mixtral-tasks tokenizer app
$(CXX) $(CXXFLAGS) src/apps/dllama/dllama.cpp -o dllama utils.o quants.o funcs.o commands.o socket.o transformer.o tasks.o llama2-tasks.o mixtral-tasks.o tokenizer.o app.o $(LIBS)
dllama-api: src/apps/dllama-api/dllama-api.cpp utils quants funcs commands socket transformer tasks llama2-tasks mixtral-tasks tokenizer app
$(CXX) $(CXXFLAGS) src/apps/dllama-api/dllama-api.cpp -o dllama-api utils.o quants.o funcs.o commands.o socket.o transformer.o tasks.o llama2-tasks.o mixtral-tasks.o tokenizer.o app.o $(LIBS)
socket-benchmark: src/apps/socket-benchmark/socket-benchmark.cpp socket
$(CXX) $(CXXFLAGS) src/apps/socket-benchmark/socket-benchmark.cpp -o socket-benchmark socket.o $(LIBS)

funcs-test: src/funcs-test.cpp funcs utils quants
$(CXX) $(CXXFLAGS) src/funcs-test.cpp -o funcs-test funcs.o utils.o quants.o $(LIBS)
quants-test: src/quants.cpp utils quants
$(CXX) $(CXXFLAGS) src/quants-test.cpp -o quants-test utils.o quants.o $(LIBS)
tokenizer-test: src/tokenizer-test.cpp tokenizer funcs commands utils quants
$(CXX) $(CXXFLAGS) src/tokenizer-test.cpp -o tokenizer-test tokenizer.o funcs.o commands.o utils.o quants.o $(LIBS)
commands-test: src/commands-test.cpp funcs commands utils quants transformer socket
$(CXX) $(CXXFLAGS) src/commands-test.cpp -o commands-test funcs.o commands.o utils.o quants.o transformer.o socket.o $(LIBS)
llama2-tasks-test: src/llama2-tasks-test.cpp utils quants funcs commands socket transformer tasks llama2-tasks tokenizer
$(CXX) $(CXXFLAGS) src/llama2-tasks-test.cpp -o llama2-tasks-test utils.o quants.o funcs.o commands.o socket.o transformer.o tasks.o llama2-tasks.o tokenizer.o $(LIBS)
$(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)

# 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 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
$(CXX) $(CXXFLAGS) $^ -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
$(CXX) $(CXXFLAGS) $^ -o $@ $(LIBS)
8 changes: 4 additions & 4 deletions src/apps/dllama-api/types.hpp → src/api-types.hpp
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#ifndef DLLAMA_API_TYPES_HPP
#define DLLAMA_API_TYPES_HPP
#ifndef API_TYPES_HPP
#define API_TYPES_HPP

#include <string>

#include "../../common/json.hpp"
#include "json.hpp"

using json = nlohmann::json;

Expand Down Expand Up @@ -145,4 +145,4 @@ std::vector<ChatMessage> parseChatMessages(json &json){
return messages;
}

#endif
#endif
Loading

0 comments on commit 121bc8c

Please sign in to comment.