Team Ai
Apppublic

KBaba7/llama.cpp

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
log.h103 linesDownload Raw Back to common
1#pragma once2 3#include "ggml.h" // for ggml_log_level4 5#define LOG_COL_DEFAULT "\033[0m"6#define LOG_COL_BOLD    "\033[1m"7#define LOG_COL_RED     "\033[31m"8#define LOG_COL_GREEN   "\033[32m"9#define LOG_COL_YELLOW  "\033[33m"10#define LOG_COL_BLUE    "\033[34m"11#define LOG_COL_MAGENTA "\033[35m"12#define LOG_COL_CYAN    "\033[36m"13#define LOG_COL_WHITE   "\033[37m"14 15#ifndef __GNUC__16#    define LOG_ATTRIBUTE_FORMAT(...)17#elif defined(__MINGW32__)18#    define LOG_ATTRIBUTE_FORMAT(...) __attribute__((format(gnu_printf, __VA_ARGS__)))19#else20#    define LOG_ATTRIBUTE_FORMAT(...) __attribute__((format(printf, __VA_ARGS__)))21#endif22 23#define LOG_DEFAULT_DEBUG 124#define LOG_DEFAULT_LLAMA 025 26// needed by the LOG_TMPL macro to avoid computing log arguments if the verbosity lower27// set via common_log_set_verbosity()28extern int common_log_verbosity_thold;29 30void common_log_set_verbosity_thold(int verbosity); // not thread-safe31 32// the common_log uses an internal worker thread to print/write log messages33// when the worker thread is paused, incoming log messages are discarded34struct common_log;35 36struct common_log * common_log_init();37struct common_log * common_log_main(); // singleton, automatically destroys itself on exit38void                common_log_pause (struct common_log * log); // pause  the worker thread, not thread-safe39void                common_log_resume(struct common_log * log); // resume the worker thread, not thread-safe40void                common_log_free  (struct common_log * log);41 42LOG_ATTRIBUTE_FORMAT(3, 4)43void common_log_add(struct common_log * log, enum ggml_log_level level, const char * fmt, ...);44 45// defaults: file = NULL, colors = false, prefix = false, timestamps = false46//47// regular log output:48//49//   ggml_backend_metal_log_allocated_size: allocated buffer, size =  6695.84 MiB, ( 6695.91 / 21845.34)50//   llm_load_tensors: ggml ctx size =    0.27 MiB51//   llm_load_tensors: offloading 32 repeating layers to GPU52//   llm_load_tensors: offloading non-repeating layers to GPU53//54// with prefix = true, timestamps = true, the log output will look like this:55//56//   0.00.035.060 D ggml_backend_metal_log_allocated_size: allocated buffer, size =  6695.84 MiB, ( 6695.91 / 21845.34)57//   0.00.035.064 I llm_load_tensors: ggml ctx size =    0.27 MiB58//   0.00.090.578 I llm_load_tensors: offloading 32 repeating layers to GPU59//   0.00.090.579 I llm_load_tensors: offloading non-repeating layers to GPU60//61// I - info    (stdout, V = 0)62// W - warning (stderr, V = 0)63// E - error   (stderr, V = 0)64// D - debug   (stderr, V = LOG_DEFAULT_DEBUG)65//66 67void common_log_set_file      (struct common_log * log, const char * file);       // not thread-safe68void common_log_set_colors    (struct common_log * log,       bool   colors);     // not thread-safe69void common_log_set_prefix    (struct common_log * log,       bool   prefix);     // whether to output prefix to each log70void common_log_set_timestamps(struct common_log * log,       bool   timestamps); // whether to output timestamps in the prefix71 72// helper macros for logging73// use these to avoid computing log arguments if the verbosity of the log is higher than the threshold74//75// for example:76//77//   LOG_DBG("this is a debug message: %d\n", expensive_function());78//79// this will avoid calling expensive_function() if LOG_DEFAULT_DEBUG > common_log_verbosity_thold80//81 82#define LOG_TMPL(level, verbosity, ...) \83    do { \84        if ((verbosity) <= common_log_verbosity_thold) { \85            common_log_add(common_log_main(), (level), __VA_ARGS__); \86        } \87    } while (0)88 89#define LOG(...)             LOG_TMPL(GGML_LOG_LEVEL_NONE, 0,         __VA_ARGS__)90#define LOGV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_NONE, verbosity, __VA_ARGS__)91 92#define LOG_INF(...) LOG_TMPL(GGML_LOG_LEVEL_INFO,  0,                 __VA_ARGS__)93#define LOG_WRN(...) LOG_TMPL(GGML_LOG_LEVEL_WARN,  0,                 __VA_ARGS__)94#define LOG_ERR(...) LOG_TMPL(GGML_LOG_LEVEL_ERROR, 0,                 __VA_ARGS__)95#define LOG_DBG(...) LOG_TMPL(GGML_LOG_LEVEL_DEBUG, LOG_DEFAULT_DEBUG, __VA_ARGS__)96#define LOG_CNT(...) LOG_TMPL(GGML_LOG_LEVEL_CONT,  0,                 __VA_ARGS__)97 98#define LOG_INFV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_INFO,  verbosity, __VA_ARGS__)99#define LOG_WRNV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_WARN,  verbosity, __VA_ARGS__)100#define LOG_ERRV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_ERROR, verbosity, __VA_ARGS__)101#define LOG_DBGV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_DEBUG, verbosity, __VA_ARGS__)102#define LOG_CNTV(verbosity, ...) LOG_TMPL(GGML_LOG_LEVEL_CONT,  verbosity, __VA_ARGS__)103