From 713b65df3e867a92e1b37edcd42087dcbb0c9147 Mon Sep 17 00:00:00 2001 From: Alex Rozanski Date: Thu, 16 Mar 2023 02:30:13 +0100 Subject: [PATCH] add back Makefile and quantize.cpp in correct locations --- Package.swift | 4 +- Sources/{llamaObjCxx => }/cpp/ggml.c | 0 .../include/private => cpp}/ggml.h | 0 Sources/cpp/quantize.cpp | 338 ++++++++++++++++++ Sources/{llamaObjCxx => }/cpp/utils.cpp | 0 .../include/private => cpp}/utils.h | 0 Sources/llamaObjCxx/cpp | 1 + .../{include/public => headers}/LlamaError.h | 0 .../{include/public => headers}/LlamaEvent.h | 0 .../public => headers}/LlamaRunnerBridge.h | 0 .../LlamaRunnerBridgeConfig.h | 0 Sources/llamaObjCxx/module.modulemap | 2 +- llama.xcodeproj/project.pbxproj | 80 ++--- tools/Makefile | 204 +++++++++++ tools/quantize | Bin 0 -> 306581 bytes quantize.sh => tools/quantize.sh | 0 16 files changed, 578 insertions(+), 51 deletions(-) rename Sources/{llamaObjCxx => }/cpp/ggml.c (100%) rename Sources/{llamaObjCxx/include/private => cpp}/ggml.h (100%) create mode 100644 Sources/cpp/quantize.cpp rename Sources/{llamaObjCxx => }/cpp/utils.cpp (100%) rename Sources/{llamaObjCxx/include/private => cpp}/utils.h (100%) create mode 120000 Sources/llamaObjCxx/cpp rename Sources/llamaObjCxx/{include/public => headers}/LlamaError.h (100%) rename Sources/llamaObjCxx/{include/public => headers}/LlamaEvent.h (100%) rename Sources/llamaObjCxx/{include/public => headers}/LlamaRunnerBridge.h (100%) rename Sources/llamaObjCxx/{include/public => headers}/LlamaRunnerBridgeConfig.h (100%) create mode 100644 tools/Makefile create mode 100755 tools/quantize rename quantize.sh => tools/quantize.sh (100%) diff --git a/Package.swift b/Package.swift index 5eb0823..2f3348d 100644 --- a/Package.swift +++ b/Package.swift @@ -16,9 +16,9 @@ let package = Package( name: "llamaObjCxx", dependencies: [], path: "Sources/llamaObjCxx", - publicHeadersPath: "include/public", + publicHeadersPath: "headers", cxxSettings: [ - .headerSearchPath("include/private") + .headerSearchPath("cpp") ]) ], cLanguageStandard: .gnu11, diff --git a/Sources/llamaObjCxx/cpp/ggml.c b/Sources/cpp/ggml.c similarity index 100% rename from Sources/llamaObjCxx/cpp/ggml.c rename to Sources/cpp/ggml.c diff --git a/Sources/llamaObjCxx/include/private/ggml.h b/Sources/cpp/ggml.h similarity index 100% rename from Sources/llamaObjCxx/include/private/ggml.h rename to Sources/cpp/ggml.h diff --git a/Sources/cpp/quantize.cpp b/Sources/cpp/quantize.cpp new file mode 100644 index 0000000..14c7b27 --- /dev/null +++ b/Sources/cpp/quantize.cpp @@ -0,0 +1,338 @@ +#include "ggml.h" + +#include "utils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// TODO: move somewhere else +#define QK 32 + +// default hparams (LLaMA76B) +struct llama_hparams { + int32_t n_vocab = 32000; + int32_t n_ctx = 512; // this is provided as user input? + int32_t n_embd = 4096; + int32_t n_mult = 256; + int32_t n_head = 32; + int32_t n_layer = 32; + int32_t n_rot = 64; + int32_t f16 = 1; +}; + + +// quantize a model +bool llama_model_quantize(const std::string & fname_inp, const std::string & fname_out, int itype) { + ggml_type type = GGML_TYPE_Q4_1; + + switch (itype) { + case 2: type = GGML_TYPE_Q4_0; break; + case 3: type = GGML_TYPE_Q4_1; break; + default: fprintf(stderr, "%s: invalid quantization type %d\n", __func__, itype); return 1; + }; + + if (type != GGML_TYPE_Q4_0 && type != GGML_TYPE_Q4_1) { + fprintf(stderr, "%s: invalid quantization type %d\n", __func__, type); + return false; + } + + gpt_vocab vocab; + + printf("%s: loading model from '%s'\n", __func__, fname_inp.c_str()); + + auto finp = std::ifstream(fname_inp, std::ios::binary); + if (!finp) { + fprintf(stderr, "%s: failed to open '%s' for reading\n", __func__, fname_inp.c_str()); + return false; + } + + auto fout = std::ofstream(fname_out, std::ios::binary); + if (!fout) { + fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname_out.c_str()); + return false; + } + + // verify magic + { + uint32_t magic; + finp.read((char *) &magic, sizeof(magic)); + if (magic != 0x67676d6c) { + fprintf(stderr, "%s: invalid model file '%s' (bad magic)\n", __func__, fname_inp.c_str()); + return false; + } + + fout.write((char *) &magic, sizeof(magic)); + } + + llama_hparams hparams; + + // load hparams + { + finp.read((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); + //finp.read((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); + finp.read((char *) &hparams.n_embd, sizeof(hparams.n_embd)); + finp.read((char *) &hparams.n_mult, sizeof(hparams.n_mult)); + finp.read((char *) &hparams.n_head, sizeof(hparams.n_head)); + finp.read((char *) &hparams.n_layer, sizeof(hparams.n_layer)); + finp.read((char *) &hparams.n_rot, sizeof(hparams.n_rot)); + finp.read((char *) &hparams.f16, sizeof(hparams.f16)); + + printf("%s: n_vocab = %d\n", __func__, hparams.n_vocab); + printf("%s: n_ctx = %d\n", __func__, hparams.n_ctx); + printf("%s: n_embd = %d\n", __func__, hparams.n_embd); + printf("%s: n_mult = %d\n", __func__, hparams.n_mult); + printf("%s: n_head = %d\n", __func__, hparams.n_head); + printf("%s: n_layer = %d\n", __func__, hparams.n_layer); + printf("%s: f16 = %d\n", __func__, hparams.f16); + + fout.write((char *) &hparams.n_vocab, sizeof(hparams.n_vocab)); + //fout.write((char *) &hparams.n_ctx, sizeof(hparams.n_ctx)); + fout.write((char *) &hparams.n_embd, sizeof(hparams.n_embd)); + fout.write((char *) &hparams.n_mult, sizeof(hparams.n_mult)); + fout.write((char *) &hparams.n_head, sizeof(hparams.n_head)); + fout.write((char *) &hparams.n_layer, sizeof(hparams.n_layer)); + fout.write((char *) &hparams.n_rot, sizeof(hparams.n_rot)); + fout.write((char *) &itype, sizeof(hparams.f16)); + } + + // load vocab + { + const int32_t n_vocab = hparams.n_vocab; + + if (n_vocab != hparams.n_vocab) { + fprintf(stderr, "%s: invalid model file '%s' (bad vocab size %d != %d)\n", + __func__, fname_inp.c_str(), n_vocab, hparams.n_vocab); + return false; + } + + std::string word; + for (int i = 0; i < n_vocab; i++) { + uint32_t len; + finp.read ((char *) &len, sizeof(len)); + fout.write((char *) &len, sizeof(len)); + + word.resize(len); + finp.read ((char *) word.data(), len); + fout.write((char *) word.data(), len); + + vocab.token_to_id[word] = i; + vocab.id_to_token[i] = word; + } + } + + // load weights + { + size_t total_size_org = 0; + size_t total_size_new = 0; + + std::vector work; + + std::vector data_u8; + std::vector data_f16; + std::vector data_f32; + + std::vector hist_all(1 << 4, 0); + + while (true) { + int32_t n_dims; + int32_t length; + int32_t ftype; + + finp.read(reinterpret_cast(&n_dims), sizeof(n_dims)); + finp.read(reinterpret_cast(&length), sizeof(length)); + finp.read(reinterpret_cast(&ftype), sizeof(ftype)); + + if (finp.eof()) { + break; + } + + int32_t nelements = 1; + int32_t ne[2] = { 1, 1 }; + for (int i = 0; i < n_dims; ++i) { + finp.read (reinterpret_cast(&ne[i]), sizeof(ne[i])); + nelements *= ne[i]; + } + + std::string name(length, 0); + finp.read (&name[0], length); + + { + static const char * ftype_str[] = { "f32", "f16", "q4_0", "q4_1", }; + printf("%48s - [%5d, %5d], type = %6s ", name.data(), ne[0], ne[1], ftype_str[ftype]); + } + + // regexes of tensor names to be quantized + const std::vector k_names = { + ".*weight", + }; + + bool quantize = false; + for (const auto & s : k_names) { + if (std::regex_match(name, std::regex(s))) { + quantize = true; + break; + } + } + + // quantize only 2D tensors + quantize &= (n_dims == 2); + + if (quantize) { + if (ftype != 0 && ftype != 1) { + fprintf(stderr, "%s: unsupported ftype %d for integer quantization\n", __func__, ftype); + return false; + } + + if (ftype == 1) { + data_f16.resize(nelements); + finp.read(reinterpret_cast(data_f16.data()), nelements * sizeof(ggml_fp16_t)); + data_f32.resize(nelements); + for (int i = 0; i < nelements; ++i) { + data_f32[i] = ggml_fp16_to_fp32(data_f16[i]); + } + } else { + data_f32.resize(nelements); + finp.read(reinterpret_cast(data_f32.data()), nelements * sizeof(float)); + } + + ftype = itype; + } else { + const int bpe = (ftype == 0) ? sizeof(float) : sizeof(uint16_t); + + data_u8.resize(nelements*bpe); + finp.read(reinterpret_cast(data_u8.data()), nelements * bpe); + } + + fout.write(reinterpret_cast(&n_dims), sizeof(n_dims)); + fout.write(reinterpret_cast(&length), sizeof(length)); + fout.write(reinterpret_cast(&ftype), sizeof(ftype)); + for (int i = 0; i < n_dims; ++i) { + fout.write(reinterpret_cast(&ne[i]), sizeof(ne[i])); + } + fout.write(&name[0], length); + + if (quantize) { + printf("quantizing .. "); + work.resize(nelements); // for quantization + + size_t cur_size = 0; + std::vector hist_cur(1 << 4, 0); + + switch (type) { + case GGML_TYPE_Q4_0: + { + cur_size = ggml_quantize_q4_0(data_f32.data(), work.data(), nelements, ne[0], QK, hist_cur.data()); + } break; + case GGML_TYPE_Q4_1: + { + cur_size = ggml_quantize_q4_1(data_f32.data(), work.data(), nelements, ne[0], QK, hist_cur.data()); + } break; + default: + { + fprintf(stderr, "%s: unsupported quantization type %d\n", __func__, type); + return false; + } + } + + fout.write(reinterpret_cast(work.data()), cur_size); + total_size_new += cur_size; + + printf("size = %8.2f MB -> %8.2f MB | hist: ", nelements * sizeof(float)/1024.0/1024.0, cur_size/1024.0/1024.0); + for (int i = 0; i < hist_cur.size(); ++i) { + hist_all[i] += hist_cur[i]; + } + + for (int i = 0; i < hist_cur.size(); ++i) { + printf("%5.3f ", hist_cur[i] / (float)nelements); + } + printf("\n"); + } else { + printf("size = %8.3f MB\n", data_u8.size()/1024.0/1024.0); + fout.write(reinterpret_cast(data_u8.data()), data_u8.size()); + total_size_new += data_u8.size(); + } + + total_size_org += nelements * sizeof(float); + } + + printf("%s: model size = %8.2f MB\n", __func__, total_size_org/1024.0/1024.0); + printf("%s: quant size = %8.2f MB\n", __func__, total_size_new/1024.0/1024.0); + + { + int64_t sum_all = 0; + for (int i = 0; i < hist_all.size(); ++i) { + sum_all += hist_all[i]; + } + + printf("%s: hist: ", __func__); + for (int i = 0; i < hist_all.size(); ++i) { + printf("%5.3f ", hist_all[i] / (float)sum_all); + } + printf("\n"); + } + } + + finp.close(); + fout.close(); + + return true; +} + +// usage: +// ./llama-quantize models/llama/ggml-model.bin models/llama/ggml-model-quant.bin type +// +int main(int argc, char ** argv) { + ggml_time_init(); + if (argc != 4) { + fprintf(stderr, "usage: %s model-f32.bin model-quant.bin type\n", argv[0]); + fprintf(stderr, " type = 2 - q4_0\n"); + fprintf(stderr, " type = 3 - q4_1\n"); + return 1; + } + + // needed to initialize f16 tables + { + struct ggml_init_params params = { 0, NULL }; + struct ggml_context * ctx = ggml_init(params); + ggml_free(ctx); + } + + const std::string fname_inp = argv[1]; + const std::string fname_out = argv[2]; + + const int itype = atoi(argv[3]); + + const int64_t t_main_start_us = ggml_time_us(); + + int64_t t_quantize_us = 0; + + // load the model + { + const int64_t t_start_us = ggml_time_us(); + + if (!llama_model_quantize(fname_inp, fname_out, itype)) { + fprintf(stderr, "%s: failed to quantize model from '%s'\n", __func__, fname_inp.c_str()); + return 1; + } + + t_quantize_us = ggml_time_us() - t_start_us; + } + + // report timing + { + const int64_t t_main_end_us = ggml_time_us(); + + printf("\n"); + printf("%s: quantize time = %8.2f ms\n", __func__, t_quantize_us/1000.0f); + printf("%s: total time = %8.2f ms\n", __func__, (t_main_end_us - t_main_start_us)/1000.0f); + } + + return 0; +} diff --git a/Sources/llamaObjCxx/cpp/utils.cpp b/Sources/cpp/utils.cpp similarity index 100% rename from Sources/llamaObjCxx/cpp/utils.cpp rename to Sources/cpp/utils.cpp diff --git a/Sources/llamaObjCxx/include/private/utils.h b/Sources/cpp/utils.h similarity index 100% rename from Sources/llamaObjCxx/include/private/utils.h rename to Sources/cpp/utils.h diff --git a/Sources/llamaObjCxx/cpp b/Sources/llamaObjCxx/cpp new file mode 120000 index 0000000..abf4cd4 --- /dev/null +++ b/Sources/llamaObjCxx/cpp @@ -0,0 +1 @@ +../cpp \ No newline at end of file diff --git a/Sources/llamaObjCxx/include/public/LlamaError.h b/Sources/llamaObjCxx/headers/LlamaError.h similarity index 100% rename from Sources/llamaObjCxx/include/public/LlamaError.h rename to Sources/llamaObjCxx/headers/LlamaError.h diff --git a/Sources/llamaObjCxx/include/public/LlamaEvent.h b/Sources/llamaObjCxx/headers/LlamaEvent.h similarity index 100% rename from Sources/llamaObjCxx/include/public/LlamaEvent.h rename to Sources/llamaObjCxx/headers/LlamaEvent.h diff --git a/Sources/llamaObjCxx/include/public/LlamaRunnerBridge.h b/Sources/llamaObjCxx/headers/LlamaRunnerBridge.h similarity index 100% rename from Sources/llamaObjCxx/include/public/LlamaRunnerBridge.h rename to Sources/llamaObjCxx/headers/LlamaRunnerBridge.h diff --git a/Sources/llamaObjCxx/include/public/LlamaRunnerBridgeConfig.h b/Sources/llamaObjCxx/headers/LlamaRunnerBridgeConfig.h similarity index 100% rename from Sources/llamaObjCxx/include/public/LlamaRunnerBridgeConfig.h rename to Sources/llamaObjCxx/headers/LlamaRunnerBridgeConfig.h diff --git a/Sources/llamaObjCxx/module.modulemap b/Sources/llamaObjCxx/module.modulemap index 5cdd1b8..fa54a57 100644 --- a/Sources/llamaObjCxx/module.modulemap +++ b/Sources/llamaObjCxx/module.modulemap @@ -1,4 +1,4 @@ module llamaObjCxx { - umbrella "include/public" + umbrella "headers" export * } diff --git a/llama.xcodeproj/project.pbxproj b/llama.xcodeproj/project.pbxproj index 3eb8696..80c7436 100644 --- a/llama.xcodeproj/project.pbxproj +++ b/llama.xcodeproj/project.pbxproj @@ -7,6 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + 8227D27229C2A844003E3197 /* LlamaEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D26E29C2A844003E3197 /* LlamaEvent.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8227D27329C2A844003E3197 /* LlamaRunnerBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D26F29C2A844003E3197 /* LlamaRunnerBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8227D27429C2A844003E3197 /* LlamaError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D27029C2A844003E3197 /* LlamaError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8227D27529C2A844003E3197 /* LlamaRunnerBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D27129C2A844003E3197 /* LlamaRunnerBridgeConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8227D27729C2A87E003E3197 /* ggml.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D27629C2A87E003E3197 /* ggml.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8227D27929C2A883003E3197 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8227D27829C2A883003E3197 /* utils.h */; settings = {ATTRIBUTES = (Private, ); }; }; 82293E5B29BDC71700C67BD9 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82293E5A29BDC71700C67BD9 /* main.swift */; }; 82293E6229BDC73100C67BD9 /* llama.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82293E3929BDC4ED00C67BD9 /* llama.framework */; }; 82293E6529BDC7E200C67BD9 /* LlamaRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82293E6429BDC7E200C67BD9 /* LlamaRunner.swift */; }; @@ -18,12 +24,6 @@ 82819FB729C1DB5800399B7E /* LlamaPredictOperation.hh in Headers */ = {isa = PBXBuildFile; fileRef = 82819F8F29BF387400399B7E /* LlamaPredictOperation.hh */; settings = {ATTRIBUTES = (Private, ); }; }; 82819FB929C1DB5E00399B7E /* ggml.c in Sources */ = {isa = PBXBuildFile; fileRef = 82819F7D29BF2BFC00399B7E /* ggml.c */; }; 82819FBA29C1DB5E00399B7E /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 82819F8129BF2BFC00399B7E /* utils.cpp */; }; - 82819FBB29C1DB6900399B7E /* LlamaError.h in Headers */ = {isa = PBXBuildFile; fileRef = 82819F9729C07BC900399B7E /* LlamaError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82819FBC29C1DB6E00399B7E /* LlamaEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 82819F9429C0526100399B7E /* LlamaEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82819FBD29C1DB7100399B7E /* LlamaRunnerBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 82293E5029BDC5DE00C67BD9 /* LlamaRunnerBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82819FBE29C1DB7500399B7E /* LlamaRunnerBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 82819F8B29BF2F5800399B7E /* LlamaRunnerBridgeConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82819FBF29C1DB7A00399B7E /* ggml.h in Headers */ = {isa = PBXBuildFile; fileRef = 82819FA029C1D72400399B7E /* ggml.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 82819FC029C1DB7D00399B7E /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 82819FA129C1D72400399B7E /* utils.h */; settings = {ATTRIBUTES = (Private, ); }; }; 82819FC529C2585700399B7E /* libllamaObjCxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82819FA929C1DB2900399B7E /* libllamaObjCxx.a */; }; /* End PBXBuildFile section */ @@ -57,8 +57,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 8227D26E29C2A844003E3197 /* LlamaEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LlamaEvent.h; sourceTree = ""; }; + 8227D26F29C2A844003E3197 /* LlamaRunnerBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LlamaRunnerBridge.h; sourceTree = ""; }; + 8227D27029C2A844003E3197 /* LlamaError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LlamaError.h; sourceTree = ""; }; + 8227D27129C2A844003E3197 /* LlamaRunnerBridgeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LlamaRunnerBridgeConfig.h; sourceTree = ""; }; + 8227D27629C2A87E003E3197 /* ggml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ggml.h; path = Sources/cpp/ggml.h; sourceTree = SOURCE_ROOT; }; + 8227D27829C2A883003E3197 /* utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = utils.h; path = Sources/cpp/utils.h; sourceTree = SOURCE_ROOT; }; 82293E3929BDC4ED00C67BD9 /* llama.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = llama.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 82293E5029BDC5DE00C67BD9 /* LlamaRunnerBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LlamaRunnerBridge.h; sourceTree = ""; }; 82293E5129BDC5DE00C67BD9 /* LlamaRunnerBridge.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LlamaRunnerBridge.mm; sourceTree = ""; }; 82293E5829BDC71700C67BD9 /* llamaTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = llamaTest; sourceTree = BUILT_PRODUCTS_DIR; }; 82293E5A29BDC71700C67BD9 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; @@ -67,19 +72,14 @@ 82819F7C29BDF7CB00399B7E /* LlamaTest.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = LlamaTest.xcconfig; sourceTree = ""; }; 82819F7D29BF2BFC00399B7E /* ggml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ggml.c; path = Sources/llamaObjCxx/cpp/ggml.c; sourceTree = SOURCE_ROOT; }; 82819F8129BF2BFC00399B7E /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cpp; path = Sources/llamaObjCxx/cpp/utils.cpp; sourceTree = SOURCE_ROOT; }; - 82819F8B29BF2F5800399B7E /* LlamaRunnerBridgeConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LlamaRunnerBridgeConfig.h; sourceTree = ""; }; 82819F8C29BF2F5800399B7E /* LlamaRunnerBridgeConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LlamaRunnerBridgeConfig.m; sourceTree = ""; }; 82819F8F29BF387400399B7E /* LlamaPredictOperation.hh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = LlamaPredictOperation.hh; sourceTree = ""; }; 82819F9029BF387400399B7E /* LlamaPredictOperation.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LlamaPredictOperation.mm; sourceTree = ""; }; 82819F9329C0526100399B7E /* LlamaEvent.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LlamaEvent.mm; sourceTree = ""; }; - 82819F9429C0526100399B7E /* LlamaEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LlamaEvent.h; sourceTree = ""; }; - 82819F9729C07BC900399B7E /* LlamaError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LlamaError.h; sourceTree = ""; }; 82819F9829C07BC900399B7E /* LlamaError.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LlamaError.m; sourceTree = ""; }; 82819F9B29C0881800399B7E /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 82819F9C29C0897900399B7E /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 82819F9D29C1CCA300399B7E /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; - 82819FA029C1D72400399B7E /* ggml.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ggml.h; sourceTree = ""; }; - 82819FA129C1D72400399B7E /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = ""; }; 82819FA929C1DB2900399B7E /* libllamaObjCxx.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libllamaObjCxx.a; sourceTree = BUILT_PRODUCTS_DIR; }; 82819FC729C2939100399B7E /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; /* End PBXFileReference section */ @@ -111,6 +111,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 8227D26D29C2A825003E3197 /* headers */ = { + isa = PBXGroup; + children = ( + 8227D27029C2A844003E3197 /* LlamaError.h */, + 8227D26E29C2A844003E3197 /* LlamaEvent.h */, + 8227D26F29C2A844003E3197 /* LlamaRunnerBridge.h */, + 8227D27129C2A844003E3197 /* LlamaRunnerBridgeConfig.h */, + ); + path = headers; + sourceTree = ""; + }; 82293E2F29BDC4ED00C67BD9 = { isa = PBXGroup; children = ( @@ -146,7 +157,9 @@ isa = PBXGroup; children = ( 82819F7D29BF2BFC00399B7E /* ggml.c */, + 8227D27629C2A87E003E3197 /* ggml.h */, 82819F8129BF2BFC00399B7E /* utils.cpp */, + 8227D27829C2A883003E3197 /* utils.h */, ); path = cpp; sourceTree = ""; @@ -187,40 +200,11 @@ 82819F9829C07BC900399B7E /* LlamaError.m */, 82293E6329BDC75F00C67BD9 /* bridge */, 82293E4329BDC51A00C67BD9 /* cpp */, - 82819FA429C1DAD800399B7E /* include */, + 8227D26D29C2A825003E3197 /* headers */, ); path = llamaObjCxx; sourceTree = ""; }; - 82819F9F29C1CFAA00399B7E /* public */ = { - isa = PBXGroup; - children = ( - 82819F9729C07BC900399B7E /* LlamaError.h */, - 82819F9429C0526100399B7E /* LlamaEvent.h */, - 82293E5029BDC5DE00C67BD9 /* LlamaRunnerBridge.h */, - 82819F8B29BF2F5800399B7E /* LlamaRunnerBridgeConfig.h */, - ); - path = public; - sourceTree = ""; - }; - 82819FA329C1D9BF00399B7E /* private */ = { - isa = PBXGroup; - children = ( - 82819FA029C1D72400399B7E /* ggml.h */, - 82819FA129C1D72400399B7E /* utils.h */, - ); - path = private; - sourceTree = ""; - }; - 82819FA429C1DAD800399B7E /* include */ = { - isa = PBXGroup; - children = ( - 82819FA329C1D9BF00399B7E /* private */, - 82819F9F29C1CFAA00399B7E /* public */, - ); - path = include; - sourceTree = ""; - }; 82819FC629C289B400399B7E /* Sources */ = { isa = PBXGroup; children = ( @@ -244,13 +228,13 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 82819FBC29C1DB6E00399B7E /* LlamaEvent.h in Headers */, 82819FB729C1DB5800399B7E /* LlamaPredictOperation.hh in Headers */, - 82819FC029C1DB7D00399B7E /* utils.h in Headers */, - 82819FBB29C1DB6900399B7E /* LlamaError.h in Headers */, - 82819FBF29C1DB7A00399B7E /* ggml.h in Headers */, - 82819FBE29C1DB7500399B7E /* LlamaRunnerBridgeConfig.h in Headers */, - 82819FBD29C1DB7100399B7E /* LlamaRunnerBridge.h in Headers */, + 8227D27329C2A844003E3197 /* LlamaRunnerBridge.h in Headers */, + 8227D27929C2A883003E3197 /* utils.h in Headers */, + 8227D27229C2A844003E3197 /* LlamaEvent.h in Headers */, + 8227D27729C2A87E003E3197 /* ggml.h in Headers */, + 8227D27529C2A844003E3197 /* LlamaRunnerBridgeConfig.h in Headers */, + 8227D27429C2A844003E3197 /* LlamaError.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/tools/Makefile b/tools/Makefile new file mode 100644 index 0000000..f943244 --- /dev/null +++ b/tools/Makefile @@ -0,0 +1,204 @@ +ifndef UNAME_S +UNAME_S := $(shell uname -s) +endif + +ifndef UNAME_P +UNAME_P := $(shell uname -p) +endif + +ifndef UNAME_M +UNAME_M := $(shell uname -m) +endif + +CCV := $(shell $(CC) --version | head -n 1) +CXXV := $(shell $(CXX) --version | head -n 1) + +# Mac OS + Arm can report x86_64 +# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789 +ifeq ($(UNAME_S),Darwin) + ifneq ($(UNAME_P),arm) + SYSCTL_M := $(shell sysctl -n hw.optional.arm64) + ifeq ($(SYSCTL_M),1) + # UNAME_P := arm + # UNAME_M := arm64 + warn := $(warning Your arch is announced as x86_64, but it seems to actually be ARM64. Not fixing that can lead to bad performance. For more info see: https://github.com/ggerganov/whisper.cpp/issues/66\#issuecomment-1282546789) + endif + endif +endif + +# +# Compile flags +# + +CPP_PATH = ../Sources/cpp +CFLAGS = -I. -I../Sources/llamaObjCxx/include/private/ -O3 -DNDEBUG -std=c11 -fPIC +CXXFLAGS = -I. -I../Sources/llamaObjCxx/include/private/ -O3 -DNDEBUG -std=c++11 -fPIC +LDFLAGS = + +# OS specific +# TODO: support Windows +ifeq ($(UNAME_S),Linux) + CFLAGS += -pthread + CXXFLAGS += -pthread +endif +ifeq ($(UNAME_S),Darwin) + CFLAGS += -pthread + CXXFLAGS += -pthread +endif +ifeq ($(UNAME_S),FreeBSD) + CFLAGS += -pthread + CXXFLAGS += -pthread +endif +ifeq ($(UNAME_S),NetBSD) + CFLAGS += -pthread + CXXFLAGS += -pthread +endif +ifeq ($(UNAME_S),Haiku) + CFLAGS += -pthread + CXXFLAGS += -pthread +endif + +# Architecture specific +# TODO: probably these flags need to be tweaked on some architectures +# feel free to update the Makefile for your architecture and send a pull request or issue +ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686)) + ifeq ($(UNAME_S),Darwin) + CFLAGS += -mf16c + AVX1_M := $(shell sysctl machdep.cpu.features) + ifneq (,$(findstring FMA,$(AVX1_M))) + CFLAGS += -mfma + endif + ifneq (,$(findstring AVX1.0,$(AVX1_M))) + CFLAGS += -mavx + endif + AVX2_M := $(shell sysctl machdep.cpu.leaf7_features) + ifneq (,$(findstring AVX2,$(AVX2_M))) + CFLAGS += -mavx2 + endif + else ifeq ($(UNAME_S),Linux) + AVX1_M := $(shell grep "avx " /proc/cpuinfo) + ifneq (,$(findstring avx,$(AVX1_M))) + CFLAGS += -mavx + endif + AVX2_M := $(shell grep "avx2 " /proc/cpuinfo) + ifneq (,$(findstring avx2,$(AVX2_M))) + CFLAGS += -mavx2 + endif + FMA_M := $(shell grep "fma " /proc/cpuinfo) + ifneq (,$(findstring fma,$(FMA_M))) + CFLAGS += -mfma + endif + F16C_M := $(shell grep "f16c " /proc/cpuinfo) + ifneq (,$(findstring f16c,$(F16C_M))) + CFLAGS += -mf16c + endif + SSE3_M := $(shell grep "sse3 " /proc/cpuinfo) + ifneq (,$(findstring sse3,$(SSE3_M))) + CFLAGS += -msse3 + endif + else ifeq ($(UNAME_S),Haiku) + AVX1_M := $(shell sysinfo -cpu | grep "AVX ") + ifneq (,$(findstring avx,$(AVX1_M))) + CFLAGS += -mavx + endif + AVX2_M := $(shell sysinfo -cpu | grep "AVX2 ") + ifneq (,$(findstring avx2,$(AVX2_M))) + CFLAGS += -mavx2 + endif + FMA_M := $(shell sysinfo -cpu | grep "FMA ") + ifneq (,$(findstring fma,$(FMA_M))) + CFLAGS += -mfma + endif + F16C_M := $(shell sysinfo -cpu | grep "F16C ") + ifneq (,$(findstring f16c,$(F16C_M))) + CFLAGS += -mf16c + endif + else + CFLAGS += -mfma -mf16c -mavx -mavx2 + endif +endif +ifeq ($(UNAME_M),amd64) + CFLAGS += -mavx -mavx2 -mfma -mf16c +endif +ifneq ($(filter ppc64%,$(UNAME_M)),) + POWER9_M := $(shell grep "POWER9" /proc/cpuinfo) + ifneq (,$(findstring POWER9,$(POWER9_M))) + CFLAGS += -mpower9-vector + endif + # Require c++23's std::byteswap for big-endian support. + ifeq ($(UNAME_M),ppc64) + CXXFLAGS += -std=c++23 -DGGML_BIG_ENDIAN + endif +endif +ifndef LLAMA_NO_ACCELERATE + # Mac M1 - include Accelerate framework + ifeq ($(UNAME_S),Darwin) + CFLAGS += -DGGML_USE_ACCELERATE + LDFLAGS += -framework Accelerate + endif +endif +ifdef LLAMA_OPENBLAS + CFLAGS += -DGGML_USE_OPENBLAS -I/usr/local/include/openblas + LDFLAGS += -lopenblas +endif +ifdef LLAMA_GPROF + CFLAGS += -pg + CXXFLAGS += -pg +endif +ifneq ($(filter aarch64%,$(UNAME_M)),) + CFLAGS += -mcpu=native + CXXFLAGS += -mcpu=native +endif +ifneq ($(filter armv6%,$(UNAME_M)),) + # Raspberry Pi 1, 2, 3 + CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access +endif +ifneq ($(filter armv7%,$(UNAME_M)),) + # Raspberry Pi 4 + CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations +endif +ifneq ($(filter armv8%,$(UNAME_M)),) + # Raspberry Pi 4 + CFLAGS += -mfp16-format=ieee -mno-unaligned-access +endif + +# +# Print build information +# + +$(info I llama.cpp build info: ) +$(info I UNAME_S: $(UNAME_S)) +$(info I UNAME_P: $(UNAME_P)) +$(info I UNAME_M: $(UNAME_M)) +$(info I CFLAGS: $(CFLAGS)) +$(info I CXXFLAGS: $(CXXFLAGS)) +$(info I LDFLAGS: $(LDFLAGS)) +$(info I CC: $(CCV)) +$(info I CXX: $(CXXV)) +$(info ) + +default: quantize + +# +# Build library +# + +ggml.o: $(CPP_PATH)/ggml.c $(CPP_PATH)/ggml.h + $(CC) $(CFLAGS) -c $(CPP_PATH)/ggml.c -o ggml.o + +utils.o: $(CPP_PATH)/utils.cpp $(CPP_PATH)/utils.h + $(CXX) $(CXXFLAGS) -c $(CPP_PATH)/utils.cpp -o utils.o + +clean: + rm -f *.o quantize + +quantize: $(CPP_PATH)/utils.cpp ggml.o utils.o + $(CXX) $(CXXFLAGS) $(CPP_PATH)/quantize.cpp ggml.o utils.o -o quantize $(LDFLAGS) + +# +# Tests +# + +.PHONY: tests +tests: + bash ./tests/run-tests.sh diff --git a/tools/quantize b/tools/quantize new file mode 100755 index 0000000000000000000000000000000000000000..2340781b4f958d67ed49f14c446543d602b5e504 GIT binary patch literal 306581 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

{ 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