From ff29017f488a5b502de05c77bce55ef28241f9a9 Mon Sep 17 00:00:00 2001 From: Hunter LaTourette Date: Sat, 15 Jul 2023 21:41:56 -0400 Subject: [PATCH] chore (*): remove pocs --- .gitignore | 1 - CMakeLists.txt | 1 - Makefile | 7 +- pocs/CMakeLists.txt | 12 -- pocs/vdot/CMakeLists.txt | 9 -- pocs/vdot/q8dot.cpp | 172 ---------------------- pocs/vdot/vdot.cpp | 310 --------------------------------------- 7 files changed, 2 insertions(+), 510 deletions(-) delete mode 100644 pocs/CMakeLists.txt delete mode 100644 pocs/vdot/CMakeLists.txt delete mode 100644 pocs/vdot/q8dot.cpp delete mode 100644 pocs/vdot/vdot.cpp diff --git a/.gitignore b/.gitignore index faec869e0..021e0ecb7 100644 --- a/.gitignore +++ b/.gitignore @@ -38,7 +38,6 @@ models/* /train-text-from-scratch /simple /benchmark-matmult -/vdot /server /Pipfile /embd-input-test diff --git a/CMakeLists.txt b/CMakeLists.txt index d9381dae1..0e10608bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -547,5 +547,4 @@ endif () if (LLAMA_BUILD_EXAMPLES) add_subdirectory(examples) - add_subdirectory(pocs) endif() diff --git a/Makefile b/Makefile index 6c74e1346..01256a023 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Define the default target now so that it is always the first target -BUILD_TARGETS = main quantize quantize-stats perplexity embedding vdot train-text-from-scratch simple server libembdinput.so embd-input-test +BUILD_TARGETS = main quantize quantize-stats perplexity embedding train-text-from-scratch simple server libembdinput.so embd-input-test default: $(BUILD_TARGETS) @@ -294,7 +294,7 @@ libllama.so: llama.o ggml.o $(OBJS) $(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS) clean: - rm -vf *.o *.so main quantize quantize-stats perplexity embedding benchmark-matmult save-load-state server simple vdot train-text-from-scratch embd-input-test build-info.h + rm -vf *.o *.so main quantize quantize-stats perplexity embedding benchmark-matmult save-load-state server simple train-text-from-scratch embd-input-test build-info.h # # Examples @@ -353,9 +353,6 @@ benchmark-matmult: examples/benchmark/benchmark-matmult.cpp build-info.h ggml.o $(CXX) $(CXXFLAGS) $(filter-out %.h,$^) -o $@ $(LDFLAGS) ./$@ -vdot: pocs/vdot/vdot.cpp ggml.o $(OBJS) - $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) - .PHONY: tests clean tests: bash ./tests/run-tests.sh diff --git a/pocs/CMakeLists.txt b/pocs/CMakeLists.txt deleted file mode 100644 index 03e1d2c04..000000000 --- a/pocs/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# dependencies - -find_package(Threads REQUIRED) - -# third-party - -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - -if (EMSCRIPTEN) -else() - add_subdirectory(vdot) -endif() diff --git a/pocs/vdot/CMakeLists.txt b/pocs/vdot/CMakeLists.txt deleted file mode 100644 index fb89a1cd4..000000000 --- a/pocs/vdot/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -set(TARGET vdot) -add_executable(${TARGET} vdot.cpp) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_11) - -set(TARGET q8dot) -add_executable(${TARGET} q8dot.cpp) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_11) diff --git a/pocs/vdot/q8dot.cpp b/pocs/vdot/q8dot.cpp deleted file mode 100644 index 4e0e02357..000000000 --- a/pocs/vdot/q8dot.cpp +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -constexpr int kVecSize = 1 << 16; - -// Copy-pasted from ggml.c -#define QK4_0 32 -typedef struct { - float d; // delta - uint8_t qs[QK4_0 / 2]; // nibbles / quants -} block_q4_0; -static_assert(sizeof(block_q4_0) == sizeof(float) + QK4_0 / 2, "wrong q4_0 block size/padding"); - -#define QK4_1 32 -typedef struct { - float d; // delta - float m; // min - uint8_t qs[QK4_1 / 2]; // nibbles / quants -} block_q4_1; -static_assert(sizeof(block_q4_1) == sizeof(float) * 2 + QK4_1 / 2, "wrong q4_1 block size/padding"); - -// Copy-pasted from ggml.c -#define QK8_0 32 -typedef struct { - float d; // delta - float s; // d * sum(qs[i]) - int8_t qs[QK8_0]; // quants -} block_q8_0; -static_assert(sizeof(block_q8_0) == 2*sizeof(float) + QK8_0, "wrong q8_0 block size/padding"); - -static_assert(QK4_1 == QK8_0, "QK4_1 and QK8_0 must be the same"); -static_assert(QK4_0 == QK8_0, "QK4_0 and QK8_0 must be the same"); - -template -void fillQ4blocks(std::vector& blocks, std::mt19937& rndm) { - for (auto& b : blocks) { - b.d = 1; - for (int i=0; i> 28; - uint8_t v2 = rndm() >> 28; - b.qs[i] = v1 | (v2 << 4); - } - } -} - -void fillQ80blocks(std::vector& blocks, std::mt19937& rndm) { - for (auto& b : blocks) { - b.d = 1; - int sum = 0; - for (int i=0; i> 24) - 128; - sum += b.qs[i]; - } - b.s = b.d * sum; - } -} - -float simpleDot(const block_q4_0& x, const block_q8_0& y) { - int s1 = 0; //, s2 = 0; - for (int i=0; i> 4; - int v3 = x.qs[i+1] & 0xf; - int v4 = x.qs[i+1] >> 4; - int j = 2*i; - s1 += v1*y.qs[j] + v2*y.qs[j+1] + v3*y.qs[j+2] + v4*y.qs[j+3]; - //s2 += y.qs[j] + y.qs[j+1] + y.qs[j+2] + y.qs[j+3]; - } - return y.d * x.d * s1 - 8 * x.d * y.s; - //return y.d * x.d * (s1 - 8 * s2); -} - -float simpleDot(const block_q4_1& x, const block_q8_0& y) { - int s1 = 0; //, s2 = 0; - for (int i=0; i> 4; - int v3 = x.qs[i+1] & 0xf; - int v4 = x.qs[i+1] >> 4; - int j = 2*i; - s1 += v1*y.qs[j] + v2*y.qs[j+1] + v3*y.qs[j+2] + v4*y.qs[j+3]; - //s2 += y.qs[j] + y.qs[j+1] + y.qs[j+2] + y.qs[j+3]; - } - return y.d * x.d * s1 + y.s * x.m; - //return y.d * (x.d * s1 + x.m * s2); -} - -struct Stat { - double sum = 0, sumt = 0, sumt2 = 0, maxt = 0; - int nloop = 0; - void addResult(double s, double t) { - sum += s; - sumt += t; sumt2 += t*t; maxt = std::max(maxt, t); - ++nloop; - } - void reportResult(const char* title) const { - if (nloop < 1) { - printf("%s(%s): no result\n",__func__,title); - return; - } - printf("============ %s\n",title); - printf(" = %g\n",sum/nloop); - auto t = sumt/nloop, dt = sumt2/nloop - t*t; - if (dt > 0) dt = sqrt(dt); - printf("