From 2139667ec419cdd953987f4df2ace9da87bbda28 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 21 Jan 2025 08:48:13 +0200 Subject: [PATCH 001/162] metal : fix out-of-bounds write (#11314) ggml-ci --- ggml/src/ggml-metal/ggml-metal.metal | 31 +++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index 8ba43904d..44f04c909 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -4416,7 +4416,6 @@ void kernel_mul_mv_q2_K_f32_impl( device const half * dh = &x[ib].d; for (int row = 0; row < N_DST; row++) { - float4 acc1 = {0.f, 0.f, 0.f, 0.f}; float4 acc2 = {0.f, 0.f, 0.f, 0.f}; for (int i = 0; i < 8; i += 2) { @@ -4447,7 +4446,7 @@ void kernel_mul_mv_q2_K_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -4613,7 +4612,7 @@ void kernel_mul_mv_q3_K_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; if (tiisg == 0) { - for (int row = 0; row < 2; ++row) { + for (int row = 0; row < 2 && first_row + row < args.ne0; ++row) { dst_f32[first_row + row] = sumf1[row]; } } @@ -4729,7 +4728,7 @@ void kernel_mul_mv_q4_K_f32_impl( device float * dst_f32 = (device float *) dst + (int64_t)im*args.ne0*args.ne1 + (int64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -4861,7 +4860,7 @@ void kernel_mul_mv_q5_K_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < 2; ++row) { + for (int row = 0; row < 2 && first_row + row < args.ne0; ++row) { const float tot = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = tot; @@ -4906,6 +4905,10 @@ void kernel_mul_mv_q6_K_f32_impl( const int row = 2*r0 + sgitg; + if (row >= args.ne0) { + return; + } + const uint i12 = im%args.ne12; const uint i13 = im/args.ne12; @@ -5061,7 +5064,7 @@ void kernel_mul_mv_iq2_xxs_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum * 0.25f; @@ -5179,7 +5182,7 @@ void kernel_mul_mv_iq2_xs_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum * 0.25f; @@ -5289,7 +5292,7 @@ void kernel_mul_mv_iq3_xxs_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum * 0.5f; @@ -5401,7 +5404,7 @@ void kernel_mul_mv_iq3_s_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -5514,7 +5517,7 @@ void kernel_mul_mv_iq2_s_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum * 0.25f; @@ -5614,7 +5617,7 @@ void kernel_mul_mv_iq1_s_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -5709,7 +5712,7 @@ void kernel_mul_mv_iq1_m_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < N_DST; ++row) { + for (int row = 0; row < N_DST && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -5799,7 +5802,7 @@ void kernel_mul_mv_iq4_nl_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < 2 && first_row + row < args.ne01; ++row) { + for (int row = 0; row < 2 && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; @@ -5888,7 +5891,7 @@ void kernel_mul_mv_iq4_xs_f32_impl( device float * dst_f32 = (device float *) dst + (uint64_t)im*args.ne0*args.ne1 + (uint64_t)r1*args.ne0; - for (int row = 0; row < 2; ++row) { + for (int row = 0; row < 2 && first_row + row < args.ne0; ++row) { all_sum = simd_sum(sumf[row]); if (tiisg == 0) { dst_f32[first_row + row] = all_sum; From 2e2f8f093cd4fb6bbb87ba84f6b9684fa082f3fa Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Tue, 21 Jan 2025 09:32:35 +0000 Subject: [PATCH 002/162] linenoise.cpp refactoring (#11301) More RAII mainly Signed-off-by: Eric Curtin --- examples/run/linenoise.cpp/linenoise.cpp | 273 +++++++++++------------ examples/run/linenoise.cpp/linenoise.h | 22 +- 2 files changed, 154 insertions(+), 141 deletions(-) diff --git a/examples/run/linenoise.cpp/linenoise.cpp b/examples/run/linenoise.cpp/linenoise.cpp index 050c23012..a68f12a1a 100644 --- a/examples/run/linenoise.cpp/linenoise.cpp +++ b/examples/run/linenoise.cpp/linenoise.cpp @@ -103,24 +103,26 @@ * */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "linenoise.h" +# include "linenoise.h" -#define LINENOISE_DEFAULT_HISTORY_MAX_LEN 100 -#define LINENOISE_MAX_LINE 4096 -static std::vector unsupported_term = {"dumb","cons25","emacs",nullptr}; +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include + +# define LINENOISE_DEFAULT_HISTORY_MAX_LEN 100 +# define LINENOISE_MAX_LINE 4096 +static std::vector unsupported_term = { "dumb", "cons25", "emacs" }; static linenoiseCompletionCallback *completionCallback = NULL; static linenoiseHintsCallback *hintsCallback = NULL; static linenoiseFreeHintsCallback *freeHintsCallback = NULL; @@ -166,21 +168,58 @@ int linenoiseHistoryAdd(const char *line); #define REFRESH_ALL (REFRESH_CLEAN|REFRESH_WRITE) // Do both. static void refreshLine(struct linenoiseState *l); +class File { + public: + FILE * file = nullptr; + + FILE * open(const std::string & filename, const char * mode) { + file = fopen(filename.c_str(), mode); + + return file; + } + + int lock() { + if (file) { + fd = fileno(file); + if (flock(fd, LOCK_EX | LOCK_NB) != 0) { + fd = -1; + + return 1; + } + } + + return 0; + } + + ~File() { + if (fd >= 0) { + flock(fd, LOCK_UN); + } + + if (file) { + fclose(file); + } + } + + private: + int fd = -1; +}; + __attribute__((format(printf, 1, 2))) /* Debugging function. */ #if 0 static void lndebug(const char *fmt, ...) { - static FILE *lndebug_fp = NULL; - if (lndebug_fp == NULL) { - lndebug_fp = fopen("/tmp/lndebug.txt", "a"); + static File file; + if (file.file == nullptr) { + file.open("/tmp/lndebug.txt", "a"); } - if (lndebug_fp != NULL) { + if (file.file != nullptr) { va_list args; va_start(args, fmt); - vfprintf(lndebug_fp, fmt, args); + vfprintf(file.file, fmt, args); va_end(args); - fflush(lndebug_fp); + fflush(file.file); } } #else @@ -213,8 +252,11 @@ void linenoiseSetMultiLine(int ml) { static int isUnsupportedTerm(void) { char *term = getenv("TERM"); if (term == NULL) return 0; - for (int j = 0; unsupported_term[j]; ++j) - if (!strcasecmp(term, unsupported_term[j])) return 1; + for (size_t j = 0; j < unsupported_term.size(); ++j) { + if (!strcasecmp(term, unsupported_term[j])) { + return 1; + } + } return 0; } @@ -334,17 +376,6 @@ static void linenoiseBeep(void) { fflush(stderr); } -/* ============================== Completion ================================ */ - -/* Free a list of completion option populated by linenoiseAddCompletion(). */ -static void freeCompletions(linenoiseCompletions *lc) { - size_t i; - for (i = 0; i < lc->len; i++) - free(lc->cvec[i]); - if (lc->cvec != NULL) - free(lc->cvec); -} - /* Called by completeLine() and linenoiseShow() to render the current * edited line with the proposed completion. If the current completion table * is already available, it is passed as second argument, otherwise the @@ -353,9 +384,9 @@ static void freeCompletions(linenoiseCompletions *lc) { * Flags are the same as refreshLine*(), that is REFRESH_* macros. */ static void refreshLineWithCompletion(struct linenoiseState *ls, linenoiseCompletions *lc, int flags) { /* Obtain the table of completions if the caller didn't provide one. */ - linenoiseCompletions ctable = { 0, NULL }; + linenoiseCompletions ctable; if (lc == NULL) { - completionCallback(ls->buf,&ctable); + completionCallback(ls->buf, &ctable); lc = &ctable; } @@ -364,16 +395,17 @@ static void refreshLineWithCompletion(struct linenoiseState *ls, linenoiseComple struct linenoiseState saved = *ls; ls->len = ls->pos = strlen(lc->cvec[ls->completion_idx]); ls->buf = lc->cvec[ls->completion_idx]; - refreshLineWithFlags(ls,flags); + refreshLineWithFlags(ls, flags); ls->len = saved.len; ls->pos = saved.pos; ls->buf = saved.buf; } else { - refreshLineWithFlags(ls,flags); + refreshLineWithFlags(ls, flags); } - /* Free the completions table if needed. */ - if (lc != &ctable) freeCompletions(&ctable); + if (lc == &ctable) { + ctable.to_free = false; + } } /* This is an helper function for linenoiseEdit*() and is called when the @@ -391,11 +423,11 @@ static void refreshLineWithCompletion(struct linenoiseState *ls, linenoiseComple * possible completions, and the caller should read for the next characters * from stdin. */ static int completeLine(struct linenoiseState *ls, int keypressed) { - linenoiseCompletions lc = { 0, NULL }; + linenoiseCompletions lc; int nwritten; char c = keypressed; - completionCallback(ls->buf,&lc); + completionCallback(ls->buf, &lc); if (lc.len == 0) { linenoiseBeep(); ls->in_completion = 0; @@ -406,7 +438,7 @@ static int completeLine(struct linenoiseState *ls, int keypressed) { ls->in_completion = 1; ls->completion_idx = 0; } else { - ls->completion_idx = (ls->completion_idx+1) % (lc.len+1); + ls->completion_idx = (ls->completion_idx + 1) % (lc.len + 1); if (ls->completion_idx == lc.len) linenoiseBeep(); } c = 0; @@ -420,8 +452,7 @@ static int completeLine(struct linenoiseState *ls, int keypressed) { default: /* Update buffer and return */ if (ls->completion_idx < lc.len) { - nwritten = snprintf(ls->buf,ls->buflen,"%s", - lc.cvec[ls->completion_idx]); + nwritten = snprintf(ls->buf, ls->buflen, "%s", lc.cvec[ls->completion_idx]); ls->len = ls->pos = nwritten; } ls->in_completion = 0; @@ -430,13 +461,12 @@ static int completeLine(struct linenoiseState *ls, int keypressed) { /* Show completion or original buffer */ if (ls->in_completion && ls->completion_idx < lc.len) { - refreshLineWithCompletion(ls,&lc,REFRESH_ALL); + refreshLineWithCompletion(ls, &lc, REFRESH_ALL); } else { refreshLine(ls); } } - freeCompletions(&lc); return c; /* Return last read character */ } @@ -462,53 +492,25 @@ void linenoiseSetFreeHintsCallback(linenoiseFreeHintsCallback *fn) { * user typed . See the example.c source code for a very easy to * understand example. */ void linenoiseAddCompletion(linenoiseCompletions *lc, const char *str) { - size_t len = strlen(str); - char *copy, **cvec; - - copy = (char*) malloc(len + 1); - if (copy == NULL) return; - memcpy(copy,str,len+1); - cvec = (char**) realloc(lc->cvec,sizeof(char*)*(lc->len+1)); - if (cvec == NULL) { - free(copy); + const size_t len = strlen(str); + auto copy = std::make_unique(len + 1); + if (!copy) { return; } + + memcpy(copy.get(), str, len + 1); + char ** cvec = static_cast(std::realloc(lc->cvec, sizeof(char *) * (lc->len + 1))); + if (cvec == nullptr) { + return; + } + lc->cvec = cvec; - lc->cvec[lc->len++] = copy; -} - -/* =========================== Line editing ================================= */ - -/* We define a very simple "append buffer" structure, that is an heap - * allocated string where we can append to. This is useful in order to - * write all the escape sequences in a buffer and flush them to the standard - * output in a single call, to avoid flickering effects. */ -struct abuf { - char *b; - int len; -}; - -static void abInit(struct abuf *ab) { - ab->b = NULL; - ab->len = 0; -} - -static void abAppend(struct abuf *ab, const char *s, int len) { - char *new_ptr = (char*) realloc(ab->b,ab->len+len); - - if (new_ptr == NULL) return; - memcpy(new_ptr+ab->len,s,len); - ab->b = new_ptr; - ab->len += len; -} - -static void abFree(struct abuf *ab) { - free(ab->b); + lc->cvec[lc->len++] = copy.release(); } /* Helper of refreshSingleLine() and refreshMultiLine() to show hints * to the right of the prompt. */ -static void refreshShowHints(struct abuf * ab, struct linenoiseState * l, int plen) { +static void refreshShowHints(std::string & ab, struct linenoiseState * l, int plen) { char seq[64]; if (hintsCallback && plen+l->len < l->cols) { int color = -1, bold = 0; @@ -522,10 +524,11 @@ static void refreshShowHints(struct abuf * ab, struct linenoiseState * l, int pl snprintf(seq,64,"\033[%d;%d;49m",bold,color); else seq[0] = '\0'; - abAppend(ab,seq,strlen(seq)); - abAppend(ab,hint,hintlen); + ab.append(seq); + ab.append(hint, hintlen); if (color != -1 || bold != 0) - abAppend(ab,"\033[0m",4); + ab.append("\033[0m"); + /* Call the function to free the hint returned. */ if (freeHintsCallback) freeHintsCallback(hint); } @@ -546,8 +549,7 @@ static void refreshSingleLine(struct linenoiseState *l, int flags) { char *buf = l->buf; size_t len = l->len; size_t pos = l->pos; - struct abuf ab; - + std::string ab; while((plen+pos) >= l->cols) { buf++; len--; @@ -557,35 +559,34 @@ static void refreshSingleLine(struct linenoiseState *l, int flags) { len--; } - abInit(&ab); /* Cursor to left edge */ snprintf(seq,sizeof(seq),"\r"); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); if (flags & REFRESH_WRITE) { /* Write the prompt and the current buffer content */ - abAppend(&ab,l->prompt,strlen(l->prompt)); + ab.append(l->prompt); if (maskmode == 1) { - while (len--) abAppend(&ab,"*",1); + while (len--) { + ab.append("*"); + } } else { - abAppend(&ab,buf,len); + ab.append(buf, len); } /* Show hits if any. */ - refreshShowHints(&ab,l,plen); + refreshShowHints(ab, l, plen); } /* Erase to right */ snprintf(seq,sizeof(seq),"\x1b[0K"); - abAppend(&ab,seq,strlen(seq)); - + ab.append(seq); if (flags & REFRESH_WRITE) { /* Move cursor to original position. */ snprintf(seq,sizeof(seq),"\r\x1b[%dC", (int)(pos+plen)); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } - if (write(fd,ab.b,ab.len) == -1) {} /* Can't recover from write error. */ - abFree(&ab); + (void) !write(fd, ab.c_str(), ab.size()); /* Can't recover from write error. */ } /* Multi line low level line refresh. @@ -604,26 +605,23 @@ static void refreshMultiLine(struct linenoiseState *l, int flags) { int col; /* colum position, zero-based. */ int old_rows = l->oldrows; int fd = l->ofd, j; - struct abuf ab; - + std::string ab; l->oldrows = rows; /* First step: clear all the lines used before. To do so start by * going to the last row. */ - abInit(&ab); - if (flags & REFRESH_CLEAN) { if (old_rows-rpos > 0) { lndebug("go down %d", old_rows-rpos); snprintf(seq,64,"\x1b[%dB", old_rows-rpos); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } /* Now for every row clear it, go up. */ for (j = 0; j < old_rows-1; j++) { lndebug("clear+up"); snprintf(seq,64,"\r\x1b[0K\x1b[1A"); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } } @@ -631,21 +629,22 @@ static void refreshMultiLine(struct linenoiseState *l, int flags) { /* Clean the top line. */ lndebug("clear"); snprintf(seq,64,"\r\x1b[0K"); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } if (flags & REFRESH_WRITE) { /* Write the prompt and the current buffer content */ - abAppend(&ab,l->prompt,strlen(l->prompt)); + ab.append(l->prompt); if (maskmode == 1) { - unsigned int i; - for (i = 0; i < l->len; i++) abAppend(&ab,"*",1); + for (unsigned int i = 0; i < l->len; ++i) { + ab.append("*"); + } } else { - abAppend(&ab,l->buf,l->len); + ab.append(l->buf, l->len); } /* Show hits if any. */ - refreshShowHints(&ab,l,plen); + refreshShowHints(ab, l, plen); /* If we are at the very end of the screen with our prompt, we need to * emit a newline and move the prompt to the first column. */ @@ -654,9 +653,9 @@ static void refreshMultiLine(struct linenoiseState *l, int flags) { (l->pos+plen) % l->cols == 0) { lndebug(""); - abAppend(&ab,"\n",1); + ab.append("\n"); snprintf(seq,64,"\r"); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); rows++; if (rows > (int)l->oldrows) l->oldrows = rows; } @@ -669,7 +668,7 @@ static void refreshMultiLine(struct linenoiseState *l, int flags) { if (rows-rpos2 > 0) { lndebug("go-up %d", rows-rpos2); snprintf(seq,64,"\x1b[%dA", rows-rpos2); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } /* Set column. */ @@ -679,14 +678,12 @@ static void refreshMultiLine(struct linenoiseState *l, int flags) { snprintf(seq,64,"\r\x1b[%dC", col); else snprintf(seq,64,"\r"); - abAppend(&ab,seq,strlen(seq)); + ab.append(seq); } lndebug("\n"); l->oldpos = l->pos; - - if (write(fd,ab.b,ab.len) == -1) {} /* Can't recover from write error. */ - abFree(&ab); + (void) !write(fd, ab.c_str(), ab.size()); /* Can't recover from write error. */ } /* Calls the two low level functions refreshSingleLine() or @@ -1313,16 +1310,17 @@ int linenoiseHistorySetMaxLen(int len) { * otherwise -1 is returned. */ int linenoiseHistorySave(const char *filename) { mode_t old_umask = umask(S_IXUSR|S_IRWXG|S_IRWXO); - FILE *fp; - int j; - - fp = fopen(filename,"w"); + File file; + file.open(filename, "w"); umask(old_umask); - if (fp == NULL) return -1; + if (file.file == NULL) { + return -1; + } chmod(filename,S_IRUSR|S_IWUSR); - for (j = 0; j < history_len; j++) - fprintf(fp,"%s\n",history[j]); - fclose(fp); + for (int j = 0; j < history_len; ++j) { + fprintf(file.file, "%s\n", history[j]); + } + return 0; } @@ -1332,12 +1330,14 @@ int linenoiseHistorySave(const char *filename) { * If the file exists and the operation succeeded 0 is returned, otherwise * on error -1 is returned. */ int linenoiseHistoryLoad(const char *filename) { - FILE *fp = fopen(filename,"r"); + File file; + file.open(filename, "r"); char buf[LINENOISE_MAX_LINE]; + if (file.file == NULL) { + return -1; + } - if (fp == NULL) return -1; - - while (fgets(buf,LINENOISE_MAX_LINE,fp) != NULL) { + while (fgets(buf, LINENOISE_MAX_LINE, file.file) != NULL) { char *p; p = strchr(buf,'\r'); @@ -1345,7 +1345,6 @@ int linenoiseHistoryLoad(const char *filename) { if (p) *p = '\0'; linenoiseHistoryAdd(buf); } - fclose(fp); return 0; } #endif diff --git a/examples/run/linenoise.cpp/linenoise.h b/examples/run/linenoise.cpp/linenoise.h index 3e25f4de3..a14ec6c74 100644 --- a/examples/run/linenoise.cpp/linenoise.h +++ b/examples/run/linenoise.cpp/linenoise.h @@ -45,6 +45,7 @@ extern "C" { #endif #include /* For size_t. */ +#include extern const char *linenoiseEditMore; @@ -69,10 +70,23 @@ struct linenoiseState { int history_index; /* The history index we are currently editing. */ }; -typedef struct linenoiseCompletions { - size_t len; - char **cvec; -} linenoiseCompletions; +struct linenoiseCompletions { + size_t len = 0; + char ** cvec = nullptr; + bool to_free = true; + + ~linenoiseCompletions() { + if (!to_free) { + return; + } + + for (size_t i = 0; i < len; ++i) { + free(cvec[i]); + } + + free(cvec); + } +}; /* Non blocking API. */ int linenoiseEditStart(struct linenoiseState *l, int stdin_fd, int stdout_fd, char *buf, size_t buflen, const char *prompt); From 6da5bec81c34f3b8a8f1b367cf23ad016e83d332 Mon Sep 17 00:00:00 2001 From: Radoslav Gerganov Date: Tue, 21 Jan 2025 15:06:41 +0200 Subject: [PATCH 003/162] rpc : better caching of the base buffer pointer (#11331) There is no need to use map, just store the base pointer in the buffer context. --- ggml/src/ggml-rpc/ggml-rpc.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ggml/src/ggml-rpc/ggml-rpc.cpp b/ggml/src/ggml-rpc/ggml-rpc.cpp index 63da2b86b..3d0c46578 100644 --- a/ggml/src/ggml-rpc/ggml-rpc.cpp +++ b/ggml/src/ggml-rpc/ggml-rpc.cpp @@ -181,7 +181,7 @@ struct ggml_backend_rpc_context { struct ggml_backend_rpc_buffer_context { std::shared_ptr sock; - std::unordered_map base_cache; + void * base_ptr; uint64_t remote_ptr; }; @@ -423,16 +423,15 @@ static void ggml_backend_rpc_buffer_free_buffer(ggml_backend_buffer_t buffer) { static void * ggml_backend_rpc_buffer_get_base(ggml_backend_buffer_t buffer) { ggml_backend_rpc_buffer_context * ctx = (ggml_backend_rpc_buffer_context *)buffer->context; - if (ctx->base_cache.find(buffer) != ctx->base_cache.end()) { - return ctx->base_cache[buffer]; + if (ctx->base_ptr != nullptr) { + return ctx->base_ptr; } rpc_msg_buffer_get_base_req request = {ctx->remote_ptr}; rpc_msg_buffer_get_base_rsp response; bool status = send_rpc_cmd(ctx->sock, RPC_CMD_BUFFER_GET_BASE, &request, sizeof(request), &response, sizeof(response)); GGML_ASSERT(status); - void * base_ptr = reinterpret_cast(response.base_ptr); - ctx->base_cache[buffer] = base_ptr; - return base_ptr; + ctx->base_ptr = reinterpret_cast(response.base_ptr); + return ctx->base_ptr; } static rpc_tensor serialize_tensor(const ggml_tensor * tensor) { @@ -557,7 +556,7 @@ static ggml_backend_buffer_t ggml_backend_rpc_buffer_type_alloc_buffer(ggml_back if (response.remote_ptr != 0) { ggml_backend_buffer_t buffer = ggml_backend_buffer_init(buft, ggml_backend_rpc_buffer_interface, - new ggml_backend_rpc_buffer_context{sock, {}, response.remote_ptr}, + new ggml_backend_rpc_buffer_context{sock, nullptr, response.remote_ptr}, response.remote_size); return buffer; } else { From e28245f35f2faaf249dd352998b3693a8cc28c51 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Tue, 21 Jan 2025 14:07:12 +0100 Subject: [PATCH 004/162] export-lora : fix tok_embd tensor (#11330) --- examples/export-lora/export-lora.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/examples/export-lora/export-lora.cpp b/examples/export-lora/export-lora.cpp index 99063b5d5..91238e4be 100644 --- a/examples/export-lora/export-lora.cpp +++ b/examples/export-lora/export-lora.cpp @@ -345,8 +345,18 @@ struct lora_merge_ctx { gf = ggml_new_graph(ctx0); struct ggml_tensor * cur = inp_base; for (size_t i = 0; i < adapters.size(); ++i) { - struct ggml_tensor * a_T = ggml_cont(ctx0, ggml_transpose(ctx0, ggml_cast(ctx0, inp_a[i], GGML_TYPE_F32))); - struct ggml_tensor * delta = ggml_mul_mat(ctx0, a_T, ggml_cast(ctx0, inp_b[i], GGML_TYPE_F32)); + struct ggml_tensor * delta; + bool is_tok_embd = string_starts_with(name_base, "token_embd"); + if (is_tok_embd) { + printf("%s : detected token embeddings tensor\n", __func__); + delta = ggml_mul_mat(ctx0, + ggml_cast(ctx0, inp_b[i], GGML_TYPE_F32), + ggml_cast(ctx0, inp_a[i], GGML_TYPE_F32)); + } else { + delta = ggml_mul_mat(ctx0, + ggml_cont(ctx0, ggml_transpose(ctx0, ggml_cast(ctx0, inp_a[i], GGML_TYPE_F32))), + ggml_cast(ctx0, inp_b[i], GGML_TYPE_F32)); + } // scale const float alpha = adapters[i]->alpha; const float rank = (float) inp_b[i]->ne[0]; From 6171c9d25820ccf676b243c172868819d882848f Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Tue, 21 Jan 2025 13:18:51 +0000 Subject: [PATCH 005/162] Add Jinja template support (#11016) * Copy minja from https://github.com/google/minja/commit/58f0ca6dd74bcbfbd4e71229736640322b31c7f9 * Add --jinja and --chat-template-file flags * Add missing include * Avoid print in get_hf_chat_template.py * No designated initializers yet * Try and work around msvc++ non-macro max resolution quirk * Update test_chat_completion.py * Wire LLM_KV_TOKENIZER_CHAT_TEMPLATE_N in llama_model_chat_template * Refactor test-chat-template * Test templates w/ minja * Fix deprecation * Add --jinja to llama-run * Update common_chat_format_example to use minja template wrapper * Test chat_template in e2e test * Update utils.py * Update test_chat_completion.py * Update run.cpp * Update arg.cpp * Refactor common_chat_* functions to accept minja template + use_jinja option * Attempt to fix linkage of LLAMA_CHATML_TEMPLATE * Revert LLAMA_CHATML_TEMPLATE refactor * Normalize newlines in test-chat-templates for windows tests * Forward decl minja::chat_template to avoid eager json dep * Flush stdout in chat template before potential crash * Fix copy elision warning * Rm unused optional include * Add missing optional include to server.cpp * Disable jinja test that has a cryptic windows failure * minja: fix vigogne (https://github.com/google/minja/pull/22) * Apply suggestions from code review Co-authored-by: Xuan Son Nguyen Co-authored-by: Georgi Gerganov * Finish suggested renamings * Move chat_templates inside server_context + remove mutex * Update --chat-template-file w/ recent change to --chat-template * Refactor chat template validation * Guard against missing eos/bos tokens (null token otherwise throws in llama_vocab::impl::token_get_attr) * Warn against missing eos / bos tokens when jinja template references them * rename: common_chat_template[s] * reinstate assert on chat_templates.template_default * Update minja to https://github.com/google/minja/commit/b8437df626ac6cd0ce3b333b3c74ed1129c19f25 * Update minja to https://github.com/google/minja/pull/25 * Update minja from https://github.com/google/minja/pull/27 * rm unused optional header --------- Co-authored-by: Xuan Son Nguyen Co-authored-by: Georgi Gerganov --- Makefile | 2 + common/CMakeLists.txt | 2 + common/arg.cpp | 42 +- common/chat-template.hpp | 249 ++ common/common.cpp | 126 +- common/common.h | 38 +- common/minja.hpp | 2788 +++++++++++++++++ examples/main/main.cpp | 28 +- examples/run/run.cpp | 42 +- examples/server/README.md | 2 +- examples/server/server.cpp | 51 +- .../server/tests/unit/test_chat_completion.py | 16 +- examples/server/tests/utils.py | 7 +- examples/server/utils.hpp | 36 +- examples/simple-chat/simple-chat.cpp | 2 +- include/llama.h | 3 +- scripts/get_hf_chat_template.py | 77 + src/CMakeLists.txt | 2 +- src/llama-arch.cpp | 6 +- src/llama-arch.h | 4 +- src/llama-model.cpp | 6 +- tests/test-chat-template.cpp | 167 +- 22 files changed, 3563 insertions(+), 133 deletions(-) create mode 100644 common/chat-template.hpp create mode 100644 common/minja.hpp create mode 100755 scripts/get_hf_chat_template.py diff --git a/Makefile b/Makefile index 19ae0d5f1..295522ba3 100644 --- a/Makefile +++ b/Makefile @@ -1361,7 +1361,9 @@ llama-server: \ examples/server/httplib.h \ examples/server/index.html.hpp \ examples/server/loading.html.hpp \ + common/chat-template.hpp \ common/json.hpp \ + common/minja.hpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h %.hpp $<,$^) -Iexamples/server $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) $(LWINSOCK2) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index df1cdf9a5..24b7f8741 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -56,6 +56,7 @@ add_library(${TARGET} STATIC arg.cpp arg.h base64.hpp + chat-template.hpp common.cpp common.h console.cpp @@ -64,6 +65,7 @@ add_library(${TARGET} STATIC json.hpp log.cpp log.h + minja.hpp ngram-cache.cpp ngram-cache.h sampling.cpp diff --git a/common/arg.cpp b/common/arg.cpp index 126970950..a6226a34b 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -325,6 +325,14 @@ static bool common_params_parse_ex(int argc, char ** argv, common_params_context throw std::invalid_argument("error: either --embedding or --reranking can be specified, but not both"); } + if (!params.chat_template.empty() && !common_chat_verify_template(params.chat_template, params.use_jinja)) { + throw std::runtime_error(string_format( + "error: the supplied chat template is not supported: %s%s\n", + params.chat_template.c_str(), + params.use_jinja ? "" : "\nnote: llama.cpp was started without --jinja, we only support commonly used templates" + )); + } + return true; } @@ -1947,24 +1955,44 @@ common_params_context common_params_parser_init(common_params & params, llama_ex } } ).set_examples({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--jinja"}, + "use jinja template for chat (default: disabled)", + [](common_params & params) { + params.use_jinja = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER, LLAMA_EXAMPLE_MAIN}).set_env("LLAMA_ARG_JINJA")); add_opt(common_arg( {"--chat-template"}, "JINJA_TEMPLATE", string_format( "set custom jinja chat template (default: template taken from model's metadata)\n" "if suffix/prefix are specified, template will be disabled\n" + "only commonly used templates are accepted (unless --jinja is set before this flag):\n" "list of built-in templates:\n%s", list_builtin_chat_templates().c_str() ), [](common_params & params, const std::string & value) { - if (!common_chat_verify_template(value)) { - throw std::runtime_error(string_format( - "error: the supplied chat template is not supported: %s\n" - "note: llama.cpp does not use jinja parser, we only support commonly used templates\n", - value.c_str() - )); - } params.chat_template = value; } ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CHAT_TEMPLATE")); + add_opt(common_arg( + {"--chat-template-file"}, "JINJA_TEMPLATE_FILE", + string_format( + "set custom jinja chat template file (default: template taken from model's metadata)\n" + "if suffix/prefix are specified, template will be disabled\n" + "only commonly used templates are accepted (unless --jinja is set before this flag):\n" + "list of built-in templates:\n%s", list_builtin_chat_templates().c_str() + ), + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + std::copy( + std::istreambuf_iterator(file), + std::istreambuf_iterator(), + std::back_inserter(params.chat_template)); + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CHAT_TEMPLATE_FILE")); add_opt(common_arg( {"-sps", "--slot-prompt-similarity"}, "SIMILARITY", string_format("how much the prompt of a request must match the prompt of a slot in order to use that slot (default: %.2f, 0.0 = disabled)\n", params.slot_prompt_similarity), diff --git a/common/chat-template.hpp b/common/chat-template.hpp new file mode 100644 index 000000000..b4a90145c --- /dev/null +++ b/common/chat-template.hpp @@ -0,0 +1,249 @@ +/* + Copyright 2024 Google LLC + + Use of this source code is governed by an MIT-style + license that can be found in the LICENSE file or at + https://opensource.org/licenses/MIT. +*/ +// SPDX-License-Identifier: MIT +#pragma once + +#include "minja.hpp" +#include +#include +#include + +using json = nlohmann::ordered_json; + +namespace minja { + +class chat_template { + public: + + private: + bool supports_tools_ = true; + // Meta-Llama-3.1-8B-Instruct's template expects arguments to be an object. + // Most other templates (and OpenAI's API) expect the arguments object to be stringified. + bool requires_object_arguments_ = false; + bool supports_system_role_ = true; + bool supports_parallel_tool_calls_ = false; + std::string source_; + std::string bos_token_; + std::string eos_token_; + std::shared_ptr template_root_; + + std::string try_render( + const nlohmann::ordered_json & messages, + const nlohmann::ordered_json & tools, + bool add_generation_prompt, + const nlohmann::ordered_json & extra_context = nlohmann::ordered_json()) const + { + try { + auto prompt = apply(messages, tools, add_generation_prompt, extra_context); + // fprintf(stderr, "Prompt: %s\n", prompt.c_str()); + return prompt; + } catch (const std::exception & e) { + // fprintf(stderr, "Error: %s\n", e.what()); + return ""; + } + } + + public: + chat_template(const std::string & source, const std::string & bos_token, const std::string & eos_token) + : source_(source), bos_token_(bos_token), eos_token_(eos_token) + { + template_root_ = minja::Parser::parse(source_, { + /* .trim_blocks = */ true, + /* .lstrip_blocks = */ true, + /* .keep_trailing_newline = */ false, + }); + supports_tools_ = source.find("tools") != std::string::npos; + + auto renders_string_arguments = + try_render({ + { + {"role", "user"}, + {"content", "Hey"} + }, + { + {"role", "assistant"}, + {"tool_calls", json::array({ + { + {"id", "call_1___"}, + {"type", "function"}, + {"function", { + {"arguments", "{\"code\": \"print('Hello, World!')\"}"}, + {"name", "ipython"}, + }}, + }, + })}, + } + }, {}, false).find("{\"code\": \"print") != std::string::npos; + if (!renders_string_arguments) { + auto renders_object_arguments = + try_render({ + { + {"role", "user"}, + {"content", "Hey"} + }, + { + {"role", "assistant"}, + {"tool_calls", json::array({ + { + {"id", "call_1___"}, + {"type", "function"}, + {"function", { + {"arguments", { + {"code", "print('Hello, World!')"}, + }}, + {"name", "ipython"}, + }}, + }, + })}, + } + }, {}, false).find("{\"code\": \"print") != std::string::npos; + requires_object_arguments_ = renders_object_arguments; + } + supports_parallel_tool_calls_ = source.find("tool_call_id") != std::string::npos; + + supports_system_role_ = try_render({ + {{"role", "system"}, {"content", ""}}, + {{"role", "user"}, {"content", "Hey"}} + }, {}, false).find("") != std::string::npos; + } + + const std::string & source() const { return source_; } + const std::string & bos_token() const { return bos_token_; } + const std::string & eos_token() const { return eos_token_; } + bool supports_tools() const { return supports_tools_; } + bool supports_parallel_tool_calls() const { return supports_parallel_tool_calls_; } + + std::string apply( + const nlohmann::ordered_json & messages, + const nlohmann::ordered_json & tools, + bool add_generation_prompt, + const nlohmann::ordered_json & extra_context = nlohmann::ordered_json()) const + { + json actual_messages; + + // First, "fix" messages so they have a chance to be rendered correctly by the template + + if (requires_object_arguments_ || !supports_system_role_ || !supports_tools_) { + actual_messages = json::array(); + + std::string pending_system; + auto flush_sys = [&]() { + if (!pending_system.empty()) { + actual_messages.push_back({ + {"role", "user"}, + {"content", pending_system}, + }); + pending_system.clear(); + } + }; + for (const auto & message_ : messages) { + auto message = message_; + if (!message.contains("role") || !message.contains("content")) { + throw std::runtime_error("message must have 'role' and 'content' fields: " + message.dump()); + } + std::string role = message.at("role"); + + if (message.contains("tool_calls")) { + if (requires_object_arguments_ || !supports_tools_) { + for (auto & tool_call : message.at("tool_calls")) { + if (tool_call["type"] == "function") { + auto & function = tool_call.at("function"); + std::string arguments = function.at("arguments"); + function["arguments"] = json::parse(arguments); + } + } + } + if (!supports_tools_) { + auto content = message.at("content"); + auto tool_calls = json::array(); + for (const auto & tool_call : message.at("tool_calls")) { + if (tool_call.at("type") != "function") { + continue; + } + const auto & function = tool_call.at("function"); + auto tc = json { + {"name", function.at("name")}, + {"arguments", function.at("arguments")}, + }; + if (tool_call.contains("id")) { + tc["id"] = tool_call["id"]; + } + tool_calls.push_back(tc); + } + auto obj = json { + {"tool_calls", tool_calls}, + }; + if (!content.is_null() && content != "") { + obj["content"] = content; + } + message["content"] = obj.dump(2); + message.erase("tool_calls"); + } + } + if (!supports_tools_ && role == "tool") { + message["role"] = "user"; + auto obj = json { + {"tool_response", { + {"tool", message.at("name")}, + {"content", message.at("content")}, + }}, + }; + if (message.contains("tool_call_id")) { + obj["tool_response"]["tool_call_id"] = message.at("tool_call_id"); + } + message["content"] = obj.dump(2); + message.erase("name"); + } + + if (!message["content"].is_null() && !supports_system_role_) { + std::string content = message.at("content"); + if (role == "system") { + if (!pending_system.empty()) pending_system += "\n"; + pending_system += content; + continue; + } else { + if (role == "user") { + if (!pending_system.empty()) { + message["content"] = pending_system + (content.empty() ? "" : "\n" + content); + pending_system.clear(); + } + } else { + flush_sys(); + } + } + } + actual_messages.push_back(message); + } + flush_sys(); + } else { + actual_messages = messages; + } + + auto context = minja::Context::make(json({ + {"messages", actual_messages}, + {"add_generation_prompt", add_generation_prompt}, + {"bos_token", bos_token_}, + {"eos_token", eos_token_}, + })); + + if (!tools.is_null()) { + auto tools_val = minja::Value(tools); + context->set("tools", tools_val); + } + if (!extra_context.is_null()) { + for (auto & kv : extra_context.items()) { + minja::Value val(kv.value()); + context->set(kv.key(), val); + } + } + + return template_root_->render(context); + } +}; + +} // namespace minja diff --git a/common/common.cpp b/common/common.cpp index 451826d5d..727ab0a10 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -12,6 +12,7 @@ #include "json.hpp" #include "json-schema-to-grammar.h" #include "llama.h" +#include "chat-template.hpp" #include #include @@ -1728,67 +1729,75 @@ std::string common_detokenize(const struct llama_vocab * vocab, const std::vecto // Chat template utils // -std::string common_get_builtin_chat_template(const struct llama_model * model) { - const char * ptr_tmpl = llama_model_chat_template(model); - return ptr_tmpl == nullptr ? "" : ptr_tmpl; -} - -bool common_chat_verify_template(const std::string & tmpl) { +bool common_chat_verify_template(const std::string & tmpl, bool use_jinja) { + if (use_jinja) { + try { + auto chat_template = minja::chat_template(tmpl, "", ""); + chat_template.apply({{ + {"role", "user"}, + {"content", "test"}, + }}, json(), true); + return true; + } catch (const std::exception & e) { + LOG_ERR("%s: failed to apply template: %s\n", __func__, e.what()); + return false; + } + } llama_chat_message chat[] = {{"user", "test"}}; const int res = llama_chat_apply_template(tmpl.c_str(), chat, 1, true, nullptr, 0); return res >= 0; } -std::string common_chat_apply_template(const struct llama_model * model, - const std::string & tmpl, +std::string common_chat_apply_template( + const common_chat_template & tmpl, const std::vector & msgs, - bool add_ass) { + bool add_ass, + bool use_jinja) { + if (use_jinja) { + auto messages = json::array(); + for (const auto & msg : msgs) { + messages.push_back({{"role", msg.role}, {"content", msg.content}}); + } + return tmpl.apply(messages, /* tools= */ json(), add_ass); + } + int alloc_size = 0; - bool fallback = false; // indicate if we must fallback to default chatml std::vector chat; for (const auto & msg : msgs) { chat.push_back({msg.role.c_str(), msg.content.c_str()}); alloc_size += (msg.role.size() + msg.content.size()) * 1.25; } - const char * ptr_tmpl = tmpl.empty() ? llama_model_chat_template(model) : tmpl.c_str(); std::vector buf(alloc_size); // run the first time to get the total output length - int32_t res = llama_chat_apply_template(ptr_tmpl, chat.data(), chat.size(), add_ass, buf.data(), buf.size()); + int32_t res = llama_chat_apply_template(tmpl.source().c_str(), chat.data(), chat.size(), add_ass, buf.data(), buf.size()); // error: chat template is not supported if (res < 0) { - if (ptr_tmpl != nullptr) { - // if the custom "tmpl" is not supported, we throw an error - // this is a bit redundant (for good), since we're not sure if user validated the custom template with llama_chat_verify_template() - throw std::runtime_error("this custom template is not supported"); - } - - // If the built-in template is not supported, we default to chatml - res = llama_chat_apply_template("chatml", chat.data(), chat.size(), add_ass, buf.data(), buf.size()); - fallback = true; + // if the custom "tmpl" is not supported, we throw an error + // this is a bit redundant (for good), since we're not sure if user validated the custom template with llama_chat_verify_template() + throw std::runtime_error("this custom template is not supported"); } // if it turns out that our buffer is too small, we resize it if ((size_t) res > buf.size()) { buf.resize(res); - res = llama_chat_apply_template( - fallback ? "chatml" : ptr_tmpl, - chat.data(), chat.size(), add_ass, buf.data(), buf.size()); + res = llama_chat_apply_template(tmpl.source().c_str(), chat.data(), chat.size(), add_ass, buf.data(), buf.size()); } std::string formatted_chat(buf.data(), res); return formatted_chat; } -std::string common_chat_format_single(const struct llama_model * model, - const std::string & tmpl, +std::string common_chat_format_single( + const common_chat_template & tmpl, const std::vector & past_msg, const common_chat_msg & new_msg, - bool add_ass) { + bool add_ass, + bool use_jinja) { std::ostringstream ss; - auto fmt_past_msg = past_msg.empty() ? "" : common_chat_apply_template(model, tmpl, past_msg, false); + auto fmt_past_msg = past_msg.empty() ? "" : common_chat_apply_template(tmpl, past_msg, false, use_jinja); std::vector chat_new(past_msg); // if the past_msg ends with a newline, we must preserve it in the formatted version if (add_ass && !fmt_past_msg.empty() && fmt_past_msg.back() == '\n') { @@ -1796,21 +1805,74 @@ std::string common_chat_format_single(const struct llama_model * model, }; // format chat with new_msg chat_new.push_back(new_msg); - auto fmt_new_msg = common_chat_apply_template(model, tmpl, chat_new, add_ass); + auto fmt_new_msg = common_chat_apply_template(tmpl, chat_new, add_ass, use_jinja); // get the diff part ss << fmt_new_msg.substr(fmt_past_msg.size(), fmt_new_msg.size() - fmt_past_msg.size()); return ss.str(); } -std::string common_chat_format_example(const struct llama_model * model, - const std::string & tmpl) { +std::string common_chat_format_example(const common_chat_template & tmpl, bool use_jinja) { std::vector msgs = { {"system", "You are a helpful assistant"}, {"user", "Hello"}, {"assistant", "Hi there"}, {"user", "How are you?"}, }; - return common_chat_apply_template(model, tmpl, msgs, true); + return common_chat_apply_template(tmpl, msgs, true, use_jinja); +} + +common_chat_templates common_chat_templates_from_model(const struct llama_model * model, const std::string & chat_template_override) +{ + auto vocab = llama_model_get_vocab(model); + std::string default_template_src = chat_template_override; + std::string template_tool_use_src = chat_template_override; + bool has_explicit_template = !chat_template_override.empty(); + if (chat_template_override.empty()) { + auto str = llama_model_chat_template(model, /* name */ nullptr); + if (str) { + default_template_src = str; + has_explicit_template = true; + } + str = llama_model_chat_template(model, /* name */ "tool_use"); + if (str) { + template_tool_use_src = str; + has_explicit_template = true; + } + } + if (default_template_src.empty() || default_template_src == "chatml") { + if (!template_tool_use_src.empty()) { + default_template_src = template_tool_use_src; + } else { + default_template_src = R"( + {%- for message in messages -%} + {{- "<|im_start|>" + message.role + "\n" + message.content + "<|im_end|>\n" -}} + {%- endfor -%} + {%- if add_generation_prompt -%} + {{- "<|im_start|>assistant\n" -}} + {%- endif -%} + )"; + } + } + const auto get_token = [&](llama_token token, const char * name, const char * jinja_variable_name) { + if (token == LLAMA_TOKEN_NULL) { + if (default_template_src.find(jinja_variable_name) != std::string::npos + || template_tool_use_src.find(jinja_variable_name) != std::string::npos) { + LOG_WRN("%s: warning: vocab does not have a %s token, jinja template won't work as intended.\n", __func__, name); + } + return std::string(); + } else { + return common_token_to_piece(vocab, token, true); + } + }; + auto token_bos = get_token(llama_vocab_bos(vocab), "BOS", "bos_token"); + auto token_eos = get_token(llama_vocab_eos(vocab), "EOS", "eos_token"); + return { + has_explicit_template, + std::make_unique(default_template_src, token_bos, token_eos), + template_tool_use_src.empty() + ? nullptr + : std::make_unique(template_tool_use_src, token_bos, token_eos) + }; } // diff --git a/common/common.h b/common/common.h index b2709c044..7c9d73ce1 100644 --- a/common/common.h +++ b/common/common.h @@ -334,6 +334,7 @@ struct common_params { std::string hostname = "127.0.0.1"; std::string public_path = ""; // NOLINT std::string chat_template = ""; // NOLINT + bool use_jinja = false; // NOLINT bool enable_chat_template = true; std::vector api_keys; @@ -603,30 +604,43 @@ struct common_chat_msg { std::string content; }; -// Get the built-in chat template for the model. Return empty string if not present. -std::string common_get_builtin_chat_template(const struct llama_model * model); - // Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid -bool common_chat_verify_template(const std::string & tmpl); +bool common_chat_verify_template(const std::string & tmpl, bool use_jinja); + +namespace minja { + class chat_template; +} + +typedef minja::chat_template common_chat_template; + +struct common_chat_templates { + bool has_explicit_template; // Model had builtin template or template overridde was specified. + std::unique_ptr template_default; // always set (defaults to chatml) + std::unique_ptr template_tool_use; +}; // CPP wrapper for llama_chat_apply_template // If the built-in template is not supported, we default to chatml // If the custom "tmpl" is not supported, we throw an error -std::string common_chat_apply_template(const struct llama_model * model, - const std::string & tmpl, +std::string common_chat_apply_template( + const common_chat_template & tmpl, const std::vector & chat, - bool add_ass); + bool add_ass, + bool use_jinja); // Format single message, while taking into account the position of that message in chat history -std::string common_chat_format_single(const struct llama_model * model, - const std::string & tmpl, +std::string common_chat_format_single( + const common_chat_template & tmpl, const std::vector & past_msg, const common_chat_msg & new_msg, - bool add_ass); + bool add_ass, + bool use_jinja); // Returns an example of formatted chat -std::string common_chat_format_example(const struct llama_model * model, - const std::string & tmpl); +std::string common_chat_format_example( + const common_chat_template & tmpl, bool use_jinja); + +common_chat_templates common_chat_templates_from_model(const struct llama_model * model, const std::string & chat_template_override); // // KV cache utils diff --git a/common/minja.hpp b/common/minja.hpp new file mode 100644 index 000000000..f0ee7a49a --- /dev/null +++ b/common/minja.hpp @@ -0,0 +1,2788 @@ +/* + Copyright 2024 Google LLC + + Use of this source code is governed by an MIT-style + license that can be found in the LICENSE file or at + https://opensource.org/licenses/MIT. +*/ +// SPDX-License-Identifier: MIT +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using json = nlohmann::ordered_json; + +namespace minja { + +class Context; + +struct Options { + bool trim_blocks; // removes the first newline after a block + bool lstrip_blocks; // removes leading whitespace on the line of the block + bool keep_trailing_newline; // don't remove last newline +}; + +struct ArgumentsValue; + +inline std::string normalize_newlines(const std::string & s) { +#ifdef _WIN32 + static const std::regex nl_regex("\r\n"); + return std::regex_replace(s, nl_regex, "\n"); +#else + return s; +#endif +} + +/* Values that behave roughly like in Python. */ +class Value : public std::enable_shared_from_this { +public: + using CallableType = std::function &, ArgumentsValue &)>; + using FilterType = std::function &, ArgumentsValue &)>; + +private: + using ObjectType = nlohmann::ordered_map; // Only contains primitive keys + using ArrayType = std::vector; + + std::shared_ptr array_; + std::shared_ptr object_; + std::shared_ptr callable_; + json primitive_; + + Value(const std::shared_ptr & array) : array_(array) {} + Value(const std::shared_ptr & object) : object_(object) {} + Value(const std::shared_ptr & callable) : object_(std::make_shared()), callable_(callable) {} + + /* Python-style string repr */ + static void dump_string(const json & primitive, std::ostringstream & out, char string_quote = '\'') { + if (!primitive.is_string()) throw std::runtime_error("Value is not a string: " + primitive.dump()); + auto s = primitive.dump(); + if (string_quote == '"' || s.find('\'') != std::string::npos) { + out << s; + return; + } + // Reuse json dump, just changing string quotes + out << string_quote; + for (size_t i = 1, n = s.size() - 1; i < n; ++i) { + if (s[i] == '\\' && s[i + 1] == '"') { + out << '"'; + i++; + } else if (s[i] == string_quote) { + out << '\\' << string_quote; + } else { + out << s[i]; + } + } + out << string_quote; + } + void dump(std::ostringstream & out, int indent = -1, int level = 0, bool to_json = false) const { + auto print_indent = [&](int level) { + if (indent > 0) { + out << "\n"; + for (int i = 0, n = level * indent; i < n; ++i) out << ' '; + } + }; + auto print_sub_sep = [&]() { + out << ','; + if (indent < 0) out << ' '; + else print_indent(level + 1); + }; + + auto string_quote = to_json ? '"' : '\''; + + if (is_null()) out << "null"; + else if (array_) { + out << "["; + print_indent(level + 1); + for (size_t i = 0; i < array_->size(); ++i) { + if (i) print_sub_sep(); + (*array_)[i].dump(out, indent, level + 1, to_json); + } + print_indent(level); + out << "]"; + } else if (object_) { + out << "{"; + print_indent(level + 1); + for (auto begin = object_->begin(), it = begin; it != object_->end(); ++it) { + if (it != begin) print_sub_sep(); + if (it->first.is_string()) { + dump_string(it->first, out, string_quote); + } else { + out << string_quote << it->first.dump() << string_quote; + } + out << ": "; + it->second.dump(out, indent, level + 1, to_json); + } + print_indent(level); + out << "}"; + } else if (callable_) { + throw std::runtime_error("Cannot dump callable to JSON"); + } else if (is_boolean() && !to_json) { + out << (this->to_bool() ? "True" : "False"); + } else if (is_string() && !to_json) { + dump_string(primitive_, out, string_quote); + } else { + out << primitive_.dump(); + } + } + +public: + Value() {} + Value(const bool& v) : primitive_(v) {} + Value(const int64_t & v) : primitive_(v) {} + Value(const double& v) : primitive_(v) {} + Value(const std::nullptr_t &) {} + Value(const std::string & v) : primitive_(v) {} + Value(const char * v) : primitive_(std::string(v)) {} + + Value(const json & v) { + if (v.is_object()) { + auto object = std::make_shared(); + for (auto it = v.begin(); it != v.end(); ++it) { + (*object)[it.key()] = it.value(); + } + object_ = std::move(object); + } else if (v.is_array()) { + auto array = std::make_shared(); + for (const auto& item : v) { + array->push_back(Value(item)); + } + array_ = array; + } else { + primitive_ = v; + } + } + + std::vector keys() { + if (!object_) throw std::runtime_error("Value is not an object: " + dump()); + std::vector res; + for (const auto& item : *object_) { + res.push_back(item.first); + } + return res; + } + + size_t size() const { + if (is_object()) return object_->size(); + if (is_array()) return array_->size(); + if (is_string()) return primitive_.get().length(); + throw std::runtime_error("Value is not an array or object: " + dump()); + } + + static Value array(const std::vector values = {}) { + auto array = std::make_shared(); + for (const auto& item : values) { + array->push_back(item); + } + return Value(array); + } + static Value object(const std::shared_ptr object = std::make_shared()) { + return Value(object); + } + static Value callable(const CallableType & callable) { + return Value(std::make_shared(callable)); + } + + void insert(size_t index, const Value& v) { + if (!array_) + throw std::runtime_error("Value is not an array: " + dump()); + array_->insert(array_->begin() + index, v); + } + void push_back(const Value& v) { + if (!array_) + throw std::runtime_error("Value is not an array: " + dump()); + array_->push_back(v); + } + Value pop(const Value& index) { + if (is_array()) { + if (array_->empty()) + throw std::runtime_error("pop from empty list"); + if (index.is_null()) { + auto ret = array_->back(); + array_->pop_back(); + return ret; + } else if (!index.is_number_integer()) { + throw std::runtime_error("pop index must be an integer: " + index.dump()); + } else { + auto i = index.get(); + if (i < 0 || i >= static_cast(array_->size())) + throw std::runtime_error("pop index out of range: " + index.dump()); + auto it = array_->begin() + (i < 0 ? array_->size() + i : i); + auto ret = *it; + array_->erase(it); + return ret; + } + } else if (is_object()) { + if (!index.is_hashable()) + throw std::runtime_error("Unashable type: " + index.dump()); + auto it = object_->find(index.primitive_); + if (it == object_->end()) + throw std::runtime_error("Key not found: " + index.dump()); + auto ret = it->second; + object_->erase(it); + return ret; + } else { + throw std::runtime_error("Value is not an array or object: " + dump()); + } + } + Value get(const Value& key) { + if (array_) { + if (!key.is_number_integer()) { + return Value(); + } + auto index = key.get(); + return array_->at(index < 0 ? array_->size() + index : index); + } else if (object_) { + if (!key.is_hashable()) throw std::runtime_error("Unashable type: " + dump()); + auto it = object_->find(key.primitive_); + if (it == object_->end()) return Value(); + return it->second; + } + return Value(); + } + void set(const Value& key, const Value& value) { + if (!object_) throw std::runtime_error("Value is not an object: " + dump()); + if (!key.is_hashable()) throw std::runtime_error("Unashable type: " + dump()); + (*object_)[key.primitive_] = value; + } + Value call(const std::shared_ptr & context, ArgumentsValue & args) const { + if (!callable_) throw std::runtime_error("Value is not callable: " + dump()); + return (*callable_)(context, args); + } + + bool is_object() const { return !!object_; } + bool is_array() const { return !!array_; } + bool is_callable() const { return !!callable_; } + bool is_null() const { return !object_ && !array_ && primitive_.is_null() && !callable_; } + bool is_boolean() const { return primitive_.is_boolean(); } + bool is_number_integer() const { return primitive_.is_number_integer(); } + bool is_number_float() const { return primitive_.is_number_float(); } + bool is_number() const { return primitive_.is_number(); } + bool is_string() const { return primitive_.is_string(); } + bool is_iterable() const { return is_array() || is_object() || is_string(); } + + bool is_primitive() const { return !array_ && !object_ && !callable_; } + bool is_hashable() const { return is_primitive(); } + + bool empty() const { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (is_string()) return primitive_.empty(); + if (is_array()) return array_->empty(); + if (is_object()) return object_->empty(); + return false; + } + + void for_each(const std::function & callback) const { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (array_) { + for (auto& item : *array_) { + callback(item); + } + } else if (object_) { + for (auto & item : *object_) { + Value key(item.first); + callback(key); + } + } else if (is_string()) { + for (char c : primitive_.get()) { + auto val = Value(std::string(1, c)); + callback(val); + } + } else { + throw std::runtime_error("Value is not iterable: " + dump()); + } + } + + bool to_bool() const { + if (is_null()) return false; + if (is_boolean()) return get(); + if (is_number()) return get() != 0; + if (is_string()) return !get().empty(); + if (is_array()) return !empty(); + return true; + } + + int64_t to_int() const { + if (is_null()) return 0; + if (is_boolean()) return get() ? 1 : 0; + if (is_number()) return static_cast(get()); + if (is_string()) { + try { + return std::stol(get()); + } catch (const std::exception &) { + return 0; + } + } + return 0; + } + + bool operator<(const Value & other) const { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (is_number() && other.is_number()) return get() < other.get(); + if (is_string() && other.is_string()) return get() < other.get(); + throw std::runtime_error("Cannot compare values: " + dump() + " < " + other.dump()); + } + bool operator>=(const Value & other) const { return !(*this < other); } + + bool operator>(const Value & other) const { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (is_number() && other.is_number()) return get() > other.get(); + if (is_string() && other.is_string()) return get() > other.get(); + throw std::runtime_error("Cannot compare values: " + dump() + " > " + other.dump()); + } + bool operator<=(const Value & other) const { return !(*this > other); } + + bool operator==(const Value & other) const { + if (callable_ || other.callable_) { + if (callable_.get() != other.callable_.get()) return false; + } + if (array_) { + if (!other.array_) return false; + if (array_->size() != other.array_->size()) return false; + for (size_t i = 0; i < array_->size(); ++i) { + if (!(*array_)[i].to_bool() || !(*other.array_)[i].to_bool() || (*array_)[i] != (*other.array_)[i]) return false; + } + return true; + } else if (object_) { + if (!other.object_) return false; + if (object_->size() != other.object_->size()) return false; + for (const auto& item : *object_) { + if (!item.second.to_bool() || !other.object_->count(item.first) || item.second != other.object_->at(item.first)) return false; + } + return true; + } else { + return primitive_ == other.primitive_; + } + } + bool operator!=(const Value & other) const { return !(*this == other); } + + bool contains(const char * key) const { return contains(std::string(key)); } + bool contains(const std::string & key) const { + if (array_) { + return false; + } else if (object_) { + return object_->find(key) != object_->end(); + } else { + throw std::runtime_error("contains can only be called on arrays and objects: " + dump()); + } + } + bool contains(const Value & value) const { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (array_) { + for (const auto& item : *array_) { + if (item.to_bool() && item == value) return true; + } + return false; + } else if (object_) { + if (!value.is_hashable()) throw std::runtime_error("Unashable type: " + value.dump()); + return object_->find(value.primitive_) != object_->end(); + } else { + throw std::runtime_error("contains can only be called on arrays and objects: " + dump()); + } + } + void erase(size_t index) { + if (!array_) throw std::runtime_error("Value is not an array: " + dump()); + array_->erase(array_->begin() + index); + } + void erase(const std::string & key) { + if (!object_) throw std::runtime_error("Value is not an object: " + dump()); + object_->erase(key); + } + const Value& at(const Value & index) const { + return const_cast(this)->at(index); + } + Value& at(const Value & index) { + if (!index.is_hashable()) throw std::runtime_error("Unashable type: " + dump()); + if (is_array()) return array_->at(index.get()); + if (is_object()) return object_->at(index.primitive_); + throw std::runtime_error("Value is not an array or object: " + dump()); + } + const Value& at(size_t index) const { + return const_cast(this)->at(index); + } + Value& at(size_t index) { + if (is_null()) + throw std::runtime_error("Undefined value or reference"); + if (is_array()) return array_->at(index); + if (is_object()) return object_->at(index); + throw std::runtime_error("Value is not an array or object: " + dump()); + } + + template + T get(const std::string & key, T default_value) const { + if (!contains(key)) return default_value; + return at(key).get(); + } + + template + T get() const { + if (is_primitive()) return primitive_.get(); + throw std::runtime_error("get not defined for this value type: " + dump()); + } + + std::string dump(int indent=-1, bool to_json=false) const { + std::ostringstream out; + dump(out, indent, 0, to_json); + return out.str(); + } + + Value operator-() const { + if (is_number_integer()) + return -get(); + else + return -get(); + } + std::string to_str() const { + if (is_string()) return get(); + if (is_number_integer()) return std::to_string(get()); + if (is_number_float()) return std::to_string(get()); + if (is_boolean()) return get() ? "True" : "False"; + if (is_null()) return "None"; + return dump(); + } + Value operator+(const Value& rhs) const { + if (is_string() || rhs.is_string()) { + return to_str() + rhs.to_str(); + } else if (is_number_integer() && rhs.is_number_integer()) { + return get() + rhs.get(); + } else if (is_array() && rhs.is_array()) { + auto res = Value::array(); + for (const auto& item : *array_) res.push_back(item); + for (const auto& item : *rhs.array_) res.push_back(item); + return res; + } else { + return get() + rhs.get(); + } + } + Value operator-(const Value& rhs) const { + if (is_number_integer() && rhs.is_number_integer()) + return get() - rhs.get(); + else + return get() - rhs.get(); + } + Value operator*(const Value& rhs) const { + if (is_string() && rhs.is_number_integer()) { + std::ostringstream out; + for (int64_t i = 0, n = rhs.get(); i < n; ++i) { + out << to_str(); + } + return out.str(); + } + else if (is_number_integer() && rhs.is_number_integer()) + return get() * rhs.get(); + else + return get() * rhs.get(); + } + Value operator/(const Value& rhs) const { + if (is_number_integer() && rhs.is_number_integer()) + return get() / rhs.get(); + else + return get() / rhs.get(); + } + Value operator%(const Value& rhs) const { + return get() % rhs.get(); + } +}; + +struct ArgumentsValue { + std::vector args; + std::vector> kwargs; + + bool has_named(const std::string & name) { + for (const auto & p : kwargs) { + if (p.first == name) return true; + } + return false; + } + + Value get_named(const std::string & name) { + for (const auto & [key, value] : kwargs) { + if (key == name) return value; + } + return Value(); + } + + bool empty() { + return args.empty() && kwargs.empty(); + } + + void expectArgs(const std::string & method_name, const std::pair & pos_count, const std::pair & kw_count) { + if (args.size() < pos_count.first || args.size() > pos_count.second || kwargs.size() < kw_count.first || kwargs.size() > kw_count.second) { + std::ostringstream out; + out << method_name << " must have between " << pos_count.first << " and " << pos_count.second << " positional arguments and between " << kw_count.first << " and " << kw_count.second << " keyword arguments"; + throw std::runtime_error(out.str()); + } + } +}; + +template <> +inline json Value::get() const { + if (is_primitive()) return primitive_; + if (is_null()) return json(); + if (array_) { + std::vector res; + for (const auto& item : *array_) { + res.push_back(item.get()); + } + return res; + } + if (object_) { + json res = json::object(); + for (const auto& [key, value] : *object_) { + if (key.is_string()) { + res[key.get()] = value.get(); + } else if (key.is_primitive()) { + res[key.dump()] = value.get(); + } else { + throw std::runtime_error("Invalid key type for conversion to JSON: " + key.dump()); + } + } + if (is_callable()) { + res["__callable__"] = true; + } + return res; + } + throw std::runtime_error("get not defined for this value type: " + dump()); +} + +} // namespace minja + +namespace std { + template <> + struct hash { + size_t operator()(const minja::Value & v) const { + if (!v.is_hashable()) + throw std::runtime_error("Unsupported type for hashing: " + v.dump()); + return std::hash()(v.get()); + } + }; +} // namespace std + +namespace minja { + +static std::string error_location_suffix(const std::string & source, size_t pos) { + auto get_line = [&](size_t line) { + auto start = source.begin(); + for (size_t i = 1; i < line; ++i) { + start = std::find(start, source.end(), '\n') + 1; + } + auto end = std::find(start, source.end(), '\n'); + return std::string(start, end); + }; + auto start = source.begin(); + auto end = source.end(); + auto it = start + pos; + auto line = std::count(start, it, '\n') + 1; + auto max_line = std::count(start, end, '\n') + 1; + auto col = pos - std::string(start, it).rfind('\n'); + std::ostringstream out; + out << " at row " << line << ", column " << col << ":\n"; + if (line > 1) out << get_line(line - 1) << "\n"; + out << get_line(line) << "\n"; + out << std::string(col - 1, ' ') << "^\n"; + if (line < max_line) out << get_line(line + 1) << "\n"; + + return out.str(); +} + +class Context : public std::enable_shared_from_this { + protected: + Value values_; + std::shared_ptr parent_; + public: + Context(Value && values, const std::shared_ptr & parent = nullptr) : values_(std::move(values)), parent_(parent) { + if (!values_.is_object()) throw std::runtime_error("Context values must be an object: " + values_.dump()); + } + virtual ~Context() {} + + static std::shared_ptr builtins(); + static std::shared_ptr make(Value && values, const std::shared_ptr & parent = builtins()); + + std::vector keys() { + return values_.keys(); + } + virtual Value get(const Value & key) { + if (values_.contains(key)) return values_.at(key); + if (parent_) return parent_->get(key); + return Value(); + } + virtual Value & at(const Value & key) { + if (values_.contains(key)) return values_.at(key); + if (parent_) return parent_->at(key); + throw std::runtime_error("Undefined variable: " + key.dump()); + } + virtual bool contains(const Value & key) { + if (values_.contains(key)) return true; + if (parent_) return parent_->contains(key); + return false; + } + virtual void set(const Value & key, Value & value) { + values_.set(key, value); + } +}; + +struct Location { + std::shared_ptr source; + size_t pos; +}; + +class Expression { +protected: + virtual Value do_evaluate(const std::shared_ptr & context) const = 0; +public: + using Parameters = std::vector>>; + + Location location; + + Expression(const Location & location) : location(location) {} + virtual ~Expression() = default; + + Value evaluate(const std::shared_ptr & context) const { + try { + return do_evaluate(context); + } catch (const std::exception & e) { + std::ostringstream out; + out << e.what(); + if (location.source) out << error_location_suffix(*location.source, location.pos); + throw std::runtime_error(out.str()); + } + } +}; + +class VariableExpr : public Expression { + std::string name; +public: + VariableExpr(const Location & location, const std::string& n) + : Expression(location), name(n) {} + std::string get_name() const { return name; } + Value do_evaluate(const std::shared_ptr & context) const override { + if (!context->contains(name)) { + return Value(); + } + return context->at(name); + } +}; + +static void destructuring_assign(const std::vector & var_names, const std::shared_ptr & context, Value& item) { + if (var_names.size() == 1) { + Value name(var_names[0]); + context->set(name, item); + } else { + if (!item.is_array() || item.size() != var_names.size()) { + throw std::runtime_error("Mismatched number of variables and items in destructuring assignment"); + } + for (size_t i = 0; i < var_names.size(); ++i) { + context->set(var_names[i], item.at(i)); + } + } +} + +enum SpaceHandling { Keep, Strip, StripSpaces, StripNewline }; + +class TemplateToken { +public: + enum class Type { Text, Expression, If, Else, Elif, EndIf, For, EndFor, Set, EndSet, Comment, Macro, EndMacro, Filter, EndFilter }; + + static std::string typeToString(Type t) { + switch (t) { + case Type::Text: return "text"; + case Type::Expression: return "expression"; + case Type::If: return "if"; + case Type::Else: return "else"; + case Type::Elif: return "elif"; + case Type::EndIf: return "endif"; + case Type::For: return "for"; + case Type::EndFor: return "endfor"; + case Type::Set: return "set"; + case Type::EndSet: return "endset"; + case Type::Comment: return "comment"; + case Type::Macro: return "macro"; + case Type::EndMacro: return "endmacro"; + case Type::Filter: return "filter"; + case Type::EndFilter: return "endfilter"; + } + return "Unknown"; + } + + TemplateToken(Type type, const Location & location, SpaceHandling pre, SpaceHandling post) : type(type), location(location), pre_space(pre), post_space(post) {} + virtual ~TemplateToken() = default; + + Type type; + Location location; + SpaceHandling pre_space = SpaceHandling::Keep; + SpaceHandling post_space = SpaceHandling::Keep; +}; + +struct TextTemplateToken : public TemplateToken { + std::string text; + TextTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, const std::string& t) : TemplateToken(Type::Text, location, pre, post), text(t) {} +}; + +struct ExpressionTemplateToken : public TemplateToken { + std::shared_ptr expr; + ExpressionTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, std::shared_ptr && e) : TemplateToken(Type::Expression, location, pre, post), expr(std::move(e)) {} +}; + +struct IfTemplateToken : public TemplateToken { + std::shared_ptr condition; + IfTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, std::shared_ptr && c) : TemplateToken(Type::If, location, pre, post), condition(std::move(c)) {} +}; + +struct ElifTemplateToken : public TemplateToken { + std::shared_ptr condition; + ElifTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, std::shared_ptr && c) : TemplateToken(Type::Elif, location, pre, post), condition(std::move(c)) {} +}; + +struct ElseTemplateToken : public TemplateToken { + ElseTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::Else, location, pre, post) {} +}; + +struct EndIfTemplateToken : public TemplateToken { + EndIfTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndIf, location, pre, post) {} +}; + +struct MacroTemplateToken : public TemplateToken { + std::shared_ptr name; + Expression::Parameters params; + MacroTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, std::shared_ptr && n, Expression::Parameters && p) + : TemplateToken(Type::Macro, location, pre, post), name(std::move(n)), params(std::move(p)) {} +}; + +struct EndMacroTemplateToken : public TemplateToken { + EndMacroTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndMacro, location, pre, post) {} +}; + +struct FilterTemplateToken : public TemplateToken { + std::shared_ptr filter; + FilterTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, std::shared_ptr && filter) + : TemplateToken(Type::Filter, location, pre, post), filter(std::move(filter)) {} +}; + +struct EndFilterTemplateToken : public TemplateToken { + EndFilterTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndFilter, location, pre, post) {} +}; + +struct ForTemplateToken : public TemplateToken { + std::vector var_names; + std::shared_ptr iterable; + std::shared_ptr condition; + bool recursive; + ForTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, const std::vector & vns, std::shared_ptr && iter, + std::shared_ptr && c, bool r) + : TemplateToken(Type::For, location, pre, post), var_names(vns), iterable(std::move(iter)), condition(std::move(c)), recursive(r) {} +}; + +struct EndForTemplateToken : public TemplateToken { + EndForTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndFor, location, pre, post) {} +}; + +struct SetTemplateToken : public TemplateToken { + std::string ns; + std::vector var_names; + std::shared_ptr value; + SetTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, const std::string & ns, const std::vector & vns, std::shared_ptr && v) + : TemplateToken(Type::Set, location, pre, post), ns(ns), var_names(vns), value(std::move(v)) {} +}; + +struct EndSetTemplateToken : public TemplateToken { + EndSetTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndSet, location, pre, post) {} +}; + +struct CommentTemplateToken : public TemplateToken { + std::string text; + CommentTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, const std::string& t) : TemplateToken(Type::Comment, location, pre, post), text(t) {} +}; + +class TemplateNode { + Location location_; +protected: + virtual void do_render(std::ostringstream & out, const std::shared_ptr & context) const = 0; + +public: + TemplateNode(const Location & location) : location_(location) {} + void render(std::ostringstream & out, const std::shared_ptr & context) const { + try { + do_render(out, context); + } catch (const std::exception & e) { + std::ostringstream err; + err << e.what(); + if (location_.source) err << error_location_suffix(*location_.source, location_.pos); + throw std::runtime_error(err.str()); + } + } + const Location & location() const { return location_; } + virtual ~TemplateNode() = default; + std::string render(const std::shared_ptr & context) const { + std::ostringstream out; + render(out, context); + return out.str(); + } +}; + +class SequenceNode : public TemplateNode { + std::vector> children; +public: + SequenceNode(const Location & location, std::vector> && c) + : TemplateNode(location), children(std::move(c)) {} + void do_render(std::ostringstream & out, const std::shared_ptr & context) const override { + for (const auto& child : children) child->render(out, context); + } +}; + +class TextNode : public TemplateNode { + std::string text; +public: + TextNode(const Location & location, const std::string& t) : TemplateNode(location), text(t) {} + void do_render(std::ostringstream & out, const std::shared_ptr &) const override { + out << text; + } +}; + +class ExpressionNode : public TemplateNode { + std::shared_ptr expr; +public: + ExpressionNode(const Location & location, std::shared_ptr && e) : TemplateNode(location), expr(std::move(e)) {} + void do_render(std::ostringstream & out, const std::shared_ptr & context) const override { + if (!expr) throw std::runtime_error("ExpressionNode.expr is null"); + auto result = expr->evaluate(context); + if (result.is_string()) { + out << result.get(); + } else if (result.is_boolean()) { + out << (result.get() ? "True" : "False"); + } else if (!result.is_null()) { + out << result.dump(); + } + } +}; + +class IfNode : public TemplateNode { + std::vector, std::shared_ptr>> cascade; +public: + IfNode(const Location & location, std::vector, std::shared_ptr>> && c) + : TemplateNode(location), cascade(std::move(c)) {} + void do_render(std::ostringstream & out, const std::shared_ptr & context) const override { + for (const auto& branch : cascade) { + auto enter_branch = true; + if (branch.first) { + enter_branch = branch.first->evaluate(context).to_bool(); + } + if (enter_branch) { + if (!branch.second) throw std::runtime_error("IfNode.cascade.second is null"); + branch.second->render(out, context); + return; + } + } + } +}; + +class ForNode : public TemplateNode { + std::vector var_names; + std::shared_ptr iterable; + std::shared_ptr condition; + std::shared_ptr body; + bool recursive; + std::shared_ptr else_body; +public: + ForNode(const Location & location, std::vector && var_names, std::shared_ptr && iterable, + std::shared_ptr && condition, std::shared_ptr && body, bool recursive, std::shared_ptr && else_body) + : TemplateNode(location), var_names(var_names), iterable(std::move(iterable)), condition(std::move(condition)), body(std::move(body)), recursive(recursive), else_body(std::move(else_body)) {} + + void do_render(std::ostringstream & out, const std::shared_ptr & context) const override { + // https://jinja.palletsprojects.com/en/3.0.x/templates/#for + if (!iterable) throw std::runtime_error("ForNode.iterable is null"); + if (!body) throw std::runtime_error("ForNode.body is null"); + + auto iterable_value = iterable->evaluate(context); + Value::CallableType loop_function; + + std::function visit = [&](Value& iter) { + auto filtered_items = Value::array(); + if (!iter.is_null()) { + if (!iterable_value.is_iterable()) { + throw std::runtime_error("For loop iterable must be iterable: " + iterable_value.dump()); + } + iterable_value.for_each([&](Value & item) { + destructuring_assign(var_names, context, item); + if (!condition || condition->evaluate(context).to_bool()) { + filtered_items.push_back(item); + } + }); + } + if (filtered_items.empty()) { + if (else_body) { + else_body->render(out, context); + } + } else { + auto loop = recursive ? Value::callable(loop_function) : Value::object(); + loop.set("length", (int64_t) filtered_items.size()); + + size_t cycle_index = 0; + loop.set("cycle", Value::callable([&](const std::shared_ptr &, ArgumentsValue & args) { + if (args.args.empty() || !args.kwargs.empty()) { + throw std::runtime_error("cycle() expects at least 1 positional argument and no named arg"); + } + auto item = args.args[cycle_index]; + cycle_index = (cycle_index + 1) % args.args.size(); + return item; + })); + auto loop_context = Context::make(Value::object(), context); + loop_context->set("loop", loop); + for (size_t i = 0, n = filtered_items.size(); i < n; ++i) { + auto & item = filtered_items.at(i); + destructuring_assign(var_names, loop_context, item); + loop.set("index", (int64_t) i + 1); + loop.set("index0", (int64_t) i); + loop.set("revindex", (int64_t) (n - i)); + loop.set("revindex0", (int64_t) (n - i - 1)); + loop.set("length", (int64_t) n); + loop.set("first", i == 0); + loop.set("last", i == (n - 1)); + loop.set("previtem", i > 0 ? filtered_items.at(i - 1) : Value()); + loop.set("nextitem", i < n - 1 ? filtered_items.at(i + 1) : Value()); + body->render(out, loop_context); + } + } + }; + + if (recursive) { + loop_function = [&](const std::shared_ptr &, ArgumentsValue & args) { + if (args.args.size() != 1 || !args.kwargs.empty() || !args.args[0].is_array()) { + throw std::runtime_error("loop() expects exactly 1 positional iterable argument"); + } + auto & items = args.args[0]; + visit(items); + return Value(); + }; + } + + visit(iterable_value); + } +}; + +class MacroNode : public TemplateNode { + std::shared_ptr name; + Expression::Parameters params; + std::shared_ptr body; + std::unordered_map named_param_positions; +public: + MacroNode(const Location & location, std::shared_ptr && n, Expression::Parameters && p, std::shared_ptr && b) + : TemplateNode(location), name(std::move(n)), params(std::move(p)), body(std::move(b)) { + for (size_t i = 0; i < params.size(); ++i) { + const auto & name = params[i].first; + if (!name.empty()) { + named_param_positions[name] = i; + } + } + } + void do_render(std::ostringstream &, const std::shared_ptr & macro_context) const override { + if (!name) throw std::runtime_error("MacroNode.name is null"); + if (!body) throw std::runtime_error("MacroNode.body is null"); + auto callable = Value::callable([&](const std::shared_ptr & context, ArgumentsValue & args) { + auto call_context = macro_context; + std::vector param_set(params.size(), false); + for (size_t i = 0, n = args.args.size(); i < n; i++) { + auto & arg = args.args[i]; + if (i >= params.size()) throw std::runtime_error("Too many positional arguments for macro " + name->get_name()); + param_set[i] = true; + auto & param_name = params[i].first; + call_context->set(param_name, arg); + } + for (auto & [arg_name, value] : args.kwargs) { + auto it = named_param_positions.find(arg_name); + if (it == named_param_positions.end()) throw std::runtime_error("Unknown parameter name for macro " + name->get_name() + ": " + arg_name); + + call_context->set(arg_name, value); + param_set[it->second] = true; + } + // Set default values for parameters that were not passed + for (size_t i = 0, n = params.size(); i < n; i++) { + if (!param_set[i] && params[i].second != nullptr) { + auto val = params[i].second->evaluate(context); + call_context->set(params[i].first, val); + } + } + return body->render(call_context); + }); + macro_context->set(name->get_name(), callable); + } +}; + +class FilterNode : public TemplateNode { + std::shared_ptr filter; + std::shared_ptr body; + +public: + FilterNode(const Location & location, std::shared_ptr && f, std::shared_ptr && b) + : TemplateNode(location), filter(std::move(f)), body(std::move(b)) {} + + void do_render(std::ostringstream & out, const std::shared_ptr & context) const override { + if (!filter) throw std::runtime_error("FilterNode.filter is null"); + if (!body) throw std::runtime_error("FilterNode.body is null"); + auto filter_value = filter->evaluate(context); + if (!filter_value.is_callable()) { + throw std::runtime_error("Filter must be a callable: " + filter_value.dump()); + } + std::string rendered_body = body->render(context); + + ArgumentsValue filter_args = {{Value(rendered_body)}, {}}; + auto result = filter_value.call(context, filter_args); + out << result.to_str(); + } +}; + +class SetNode : public TemplateNode { + std::string ns; + std::vector var_names; + std::shared_ptr value; +public: + SetNode(const Location & location, const std::string & ns, const std::vector & vns, std::shared_ptr && v) + : TemplateNode(location), ns(ns), var_names(vns), value(std::move(v)) {} + void do_render(std::ostringstream &, const std::shared_ptr & context) const override { + if (!value) throw std::runtime_error("SetNode.value is null"); + if (!ns.empty()) { + if (var_names.size() != 1) { + throw std::runtime_error("Namespaced set only supports a single variable name"); + } + auto & name = var_names[0]; + auto ns_value = context->get(ns); + if (!ns_value.is_object()) throw std::runtime_error("Namespace '" + ns + "' is not an object"); + ns_value.set(name, this->value->evaluate(context)); + } else { + auto val = value->evaluate(context); + destructuring_assign(var_names, context, val); + } + } +}; + +class SetTemplateNode : public TemplateNode { + std::string name; + std::shared_ptr template_value; +public: + SetTemplateNode(const Location & location, const std::string & name, std::shared_ptr && tv) + : TemplateNode(location), name(name), template_value(std::move(tv)) {} + void do_render(std::ostringstream &, const std::shared_ptr & context) const override { + if (!template_value) throw std::runtime_error("SetTemplateNode.template_value is null"); + Value value { template_value->render(context) }; + context->set(name, value); + } +}; + +class IfExpr : public Expression { + std::shared_ptr condition; + std::shared_ptr then_expr; + std::shared_ptr else_expr; +public: + IfExpr(const Location & location, std::shared_ptr && c, std::shared_ptr && t, std::shared_ptr && e) + : Expression(location), condition(std::move(c)), then_expr(std::move(t)), else_expr(std::move(e)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!condition) throw std::runtime_error("IfExpr.condition is null"); + if (!then_expr) throw std::runtime_error("IfExpr.then_expr is null"); + if (condition->evaluate(context).to_bool()) { + return then_expr->evaluate(context); + } + if (else_expr) { + return else_expr->evaluate(context); + } + return nullptr; + } +}; + +class LiteralExpr : public Expression { + Value value; +public: + LiteralExpr(const Location & location, const Value& v) + : Expression(location), value(v) {} + Value do_evaluate(const std::shared_ptr &) const override { return value; } +}; + +class ArrayExpr : public Expression { + std::vector> elements; +public: + ArrayExpr(const Location & location, std::vector> && e) + : Expression(location), elements(std::move(e)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + auto result = Value::array(); + for (const auto& e : elements) { + if (!e) throw std::runtime_error("Array element is null"); + result.push_back(e->evaluate(context)); + } + return result; + } +}; + +class DictExpr : public Expression { + std::vector, std::shared_ptr>> elements; +public: + DictExpr(const Location & location, std::vector, std::shared_ptr>> && e) + : Expression(location), elements(std::move(e)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + auto result = Value::object(); + for (const auto& [key, value] : elements) { + if (!key) throw std::runtime_error("Dict key is null"); + if (!value) throw std::runtime_error("Dict value is null"); + result.set(key->evaluate(context), value->evaluate(context)); + } + return result; + } +}; + +class SliceExpr : public Expression { +public: + std::shared_ptr start, end; + SliceExpr(const Location & location, std::shared_ptr && s, std::shared_ptr && e) + : Expression(location), start(std::move(s)), end(std::move(e)) {} + Value do_evaluate(const std::shared_ptr &) const override { + throw std::runtime_error("SliceExpr not implemented"); + } +}; + +class SubscriptExpr : public Expression { + std::shared_ptr base; + std::shared_ptr index; +public: + SubscriptExpr(const Location & location, std::shared_ptr && b, std::shared_ptr && i) + : Expression(location), base(std::move(b)), index(std::move(i)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!base) throw std::runtime_error("SubscriptExpr.base is null"); + if (!index) throw std::runtime_error("SubscriptExpr.index is null"); + auto target_value = base->evaluate(context); + if (auto slice = dynamic_cast(index.get())) { + auto start = slice->start ? slice->start->evaluate(context).get() : 0; + auto end = slice->end ? slice->end->evaluate(context).get() : (int64_t) target_value.size(); + if (target_value.is_string()) { + std::string s = target_value.get(); + if (start < 0) start = s.size() + start; + if (end < 0) end = s.size() + end; + return s.substr(start, end - start); + } else if (target_value.is_array()) { + if (start < 0) start = target_value.size() + start; + if (end < 0) end = target_value.size() + end; + auto result = Value::array(); + for (auto i = start; i < end; ++i) { + result.push_back(target_value.at(i)); + } + return result; + } else { + throw std::runtime_error(target_value.is_null() ? "Cannot subscript null" : "Subscripting only supported on arrays and strings"); + } + } else { + auto index_value = index->evaluate(context); + if (target_value.is_null()) { + if (auto t = dynamic_cast(base.get())) { + throw std::runtime_error("'" + t->get_name() + "' is " + (context->contains(t->get_name()) ? "null" : "not defined")); + } + throw std::runtime_error("Trying to access property '" + index_value.dump() + "' on null!"); + } + return target_value.get(index_value); + } + } +}; + +class UnaryOpExpr : public Expression { +public: + enum class Op { Plus, Minus, LogicalNot, Expansion, ExpansionDict }; + std::shared_ptr expr; + Op op; + UnaryOpExpr(const Location & location, std::shared_ptr && e, Op o) + : Expression(location), expr(std::move(e)), op(o) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!expr) throw std::runtime_error("UnaryOpExpr.expr is null"); + auto e = expr->evaluate(context); + switch (op) { + case Op::Plus: return e; + case Op::Minus: return -e; + case Op::LogicalNot: return !e.to_bool(); + case Op::Expansion: + case Op::ExpansionDict: + throw std::runtime_error("Expansion operator is only supported in function calls and collections"); + + } + throw std::runtime_error("Unknown unary operator"); + } +}; + +class BinaryOpExpr : public Expression { +public: + enum class Op { StrConcat, Add, Sub, Mul, MulMul, Div, DivDiv, Mod, Eq, Ne, Lt, Gt, Le, Ge, And, Or, In, NotIn, Is, IsNot }; +private: + std::shared_ptr left; + std::shared_ptr right; + Op op; +public: + BinaryOpExpr(const Location & location, std::shared_ptr && l, std::shared_ptr && r, Op o) + : Expression(location), left(std::move(l)), right(std::move(r)), op(o) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!left) throw std::runtime_error("BinaryOpExpr.left is null"); + if (!right) throw std::runtime_error("BinaryOpExpr.right is null"); + auto l = left->evaluate(context); + + auto do_eval = [&](const Value & l) -> Value { + if (op == Op::Is || op == Op::IsNot) { + auto t = dynamic_cast(right.get()); + if (!t) throw std::runtime_error("Right side of 'is' operator must be a variable"); + + auto eval = [&]() { + const auto & name = t->get_name(); + if (name == "none") return l.is_null(); + if (name == "boolean") return l.is_boolean(); + if (name == "integer") return l.is_number_integer(); + if (name == "float") return l.is_number_float(); + if (name == "number") return l.is_number(); + if (name == "string") return l.is_string(); + if (name == "mapping") return l.is_object(); + if (name == "iterable") return l.is_iterable(); + if (name == "sequence") return l.is_array(); + if (name == "defined") return !l.is_null(); + throw std::runtime_error("Unknown type for 'is' operator: " + name); + }; + auto value = eval(); + return Value(op == Op::Is ? value : !value); + } + + if (op == Op::And) { + if (!l.to_bool()) return Value(false); + return right->evaluate(context).to_bool(); + } else if (op == Op::Or) { + if (l.to_bool()) return l; + return right->evaluate(context); + } + + auto r = right->evaluate(context); + switch (op) { + case Op::StrConcat: return l.to_str() + r.to_str(); + case Op::Add: return l + r; + case Op::Sub: return l - r; + case Op::Mul: return l * r; + case Op::Div: return l / r; + case Op::MulMul: return std::pow(l.get(), r.get()); + case Op::DivDiv: return l.get() / r.get(); + case Op::Mod: return l.get() % r.get(); + case Op::Eq: return l == r; + case Op::Ne: return l != r; + case Op::Lt: return l < r; + case Op::Gt: return l > r; + case Op::Le: return l <= r; + case Op::Ge: return l >= r; + case Op::In: return (r.is_array() || r.is_object()) && r.contains(l); + case Op::NotIn: return !(r.is_array() && r.contains(l)); + default: break; + } + throw std::runtime_error("Unknown binary operator"); + }; + + if (l.is_callable()) { + return Value::callable([l, do_eval](const std::shared_ptr & context, ArgumentsValue & args) { + auto ll = l.call(context, args); + return do_eval(ll); //args[0].second); + }); + } else { + return do_eval(l); + } + } +}; + +struct ArgumentsExpression { + std::vector> args; + std::vector>> kwargs; + + ArgumentsValue evaluate(const std::shared_ptr & context) const { + ArgumentsValue vargs; + for (const auto& arg : this->args) { + if (auto un_expr = std::dynamic_pointer_cast(arg)) { + if (un_expr->op == UnaryOpExpr::Op::Expansion) { + auto array = un_expr->expr->evaluate(context); + if (!array.is_array()) { + throw std::runtime_error("Expansion operator only supported on arrays"); + } + array.for_each([&](Value & value) { + vargs.args.push_back(value); + }); + continue; + } else if (un_expr->op == UnaryOpExpr::Op::ExpansionDict) { + auto dict = un_expr->expr->evaluate(context); + if (!dict.is_object()) { + throw std::runtime_error("ExpansionDict operator only supported on objects"); + } + dict.for_each([&](const Value & key) { + vargs.kwargs.push_back({key.get(), dict.at(key)}); + }); + continue; + } + } + vargs.args.push_back(arg->evaluate(context)); + } + for (const auto& [name, value] : this->kwargs) { + vargs.kwargs.push_back({name, value->evaluate(context)}); + } + return vargs; + } +}; + +static std::string strip(const std::string & s) { + auto start = s.find_first_not_of(" \t\n\r"); + if (start == std::string::npos) return ""; + auto end = s.find_last_not_of(" \t\n\r"); + return s.substr(start, end - start + 1); +} + +static std::string html_escape(const std::string & s) { + std::string result; + result.reserve(s.size()); + for (const auto & c : s) { + switch (c) { + case '&': result += "&"; break; + case '<': result += "<"; break; + case '>': result += ">"; break; + case '"': result += """; break; + case '\'': result += "'"; break; + default: result += c; break; + } + } + return result; +} + +class MethodCallExpr : public Expression { + std::shared_ptr object; + std::shared_ptr method; + ArgumentsExpression args; +public: + MethodCallExpr(const Location & location, std::shared_ptr && obj, std::shared_ptr && m, ArgumentsExpression && a) + : Expression(location), object(std::move(obj)), method(std::move(m)), args(std::move(a)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!object) throw std::runtime_error("MethodCallExpr.object is null"); + if (!method) throw std::runtime_error("MethodCallExpr.method is null"); + auto obj = object->evaluate(context); + auto vargs = args.evaluate(context); + if (obj.is_null()) { + throw std::runtime_error("Trying to call method '" + method->get_name() + "' on null"); + } + if (obj.is_array()) { + if (method->get_name() == "append") { + vargs.expectArgs("append method", {1, 1}, {0, 0}); + obj.push_back(vargs.args[0]); + return Value(); + } else if (method->get_name() == "pop") { + vargs.expectArgs("pop method", {0, 1}, {0, 0}); + return obj.pop(vargs.args.empty() ? Value() : vargs.args[0]); + } else if (method->get_name() == "insert") { + vargs.expectArgs("insert method", {2, 2}, {0, 0}); + auto index = vargs.args[0].get(); + if (index < 0 || index > (int64_t) obj.size()) throw std::runtime_error("Index out of range for insert method"); + obj.insert(index, vargs.args[1]); + return Value(); + } + } else if (obj.is_object()) { + if (method->get_name() == "items") { + vargs.expectArgs("items method", {0, 0}, {0, 0}); + auto result = Value::array(); + for (const auto& key : obj.keys()) { + result.push_back(Value::array({key, obj.at(key)})); + } + return result; + } else if (method->get_name() == "pop") { + vargs.expectArgs("pop method", {1, 1}, {0, 0}); + return obj.pop(vargs.args[0]); + } else if (method->get_name() == "get") { + vargs.expectArgs("get method", {1, 2}, {0, 0}); + auto key = vargs.args[0]; + if (vargs.args.size() == 1) { + return obj.contains(key) ? obj.at(key) : Value(); + } else { + return obj.contains(key) ? obj.at(key) : vargs.args[1]; + } + } else if (obj.contains(method->get_name())) { + auto callable = obj.at(method->get_name()); + if (!callable.is_callable()) { + throw std::runtime_error("Property '" + method->get_name() + "' is not callable"); + } + return callable.call(context, vargs); + } + } else if (obj.is_string()) { + auto str = obj.get(); + if (method->get_name() == "strip") { + vargs.expectArgs("strip method", {0, 0}, {0, 0}); + return Value(strip(str)); + } else if (method->get_name() == "endswith") { + vargs.expectArgs("endswith method", {1, 1}, {0, 0}); + auto suffix = vargs.args[0].get(); + return suffix.length() <= str.length() && std::equal(suffix.rbegin(), suffix.rend(), str.rbegin()); + } else if (method->get_name() == "title") { + vargs.expectArgs("title method", {0, 0}, {0, 0}); + auto res = str; + for (size_t i = 0, n = res.size(); i < n; ++i) { + if (i == 0 || std::isspace(res[i - 1])) res[i] = std::toupper(res[i]); + else res[i] = std::tolower(res[i]); + } + return res; + } + } + throw std::runtime_error("Unknown method: " + method->get_name()); + } +}; + +class CallExpr : public Expression { +public: + std::shared_ptr object; + ArgumentsExpression args; + CallExpr(const Location & location, std::shared_ptr && obj, ArgumentsExpression && a) + : Expression(location), object(std::move(obj)), args(std::move(a)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + if (!object) throw std::runtime_error("CallExpr.object is null"); + auto obj = object->evaluate(context); + if (!obj.is_callable()) { + throw std::runtime_error("Object is not callable: " + obj.dump(2)); + } + auto vargs = args.evaluate(context); + return obj.call(context, vargs); + } +}; + +class FilterExpr : public Expression { + std::vector> parts; +public: + FilterExpr(const Location & location, std::vector> && p) + : Expression(location), parts(std::move(p)) {} + Value do_evaluate(const std::shared_ptr & context) const override { + Value result; + bool first = true; + for (const auto& part : parts) { + if (!part) throw std::runtime_error("FilterExpr.part is null"); + if (first) { + first = false; + result = part->evaluate(context); + } else { + if (auto ce = dynamic_cast(part.get())) { + auto target = ce->object->evaluate(context); + ArgumentsValue args = ce->args.evaluate(context); + args.args.insert(args.args.begin(), result); + result = target.call(context, args); + } else { + auto callable = part->evaluate(context); + ArgumentsValue args; + args.args.insert(args.args.begin(), result); + result = callable.call(context, args); + } + } + } + return result; + } + + void prepend(std::shared_ptr && e) { + parts.insert(parts.begin(), std::move(e)); + } +}; + +class Parser { +private: + using CharIterator = std::string::const_iterator; + + std::shared_ptr template_str; + CharIterator start, end, it; + Options options; + + Parser(const std::shared_ptr& template_str, const Options & options) : template_str(template_str), options(options) { + if (!template_str) throw std::runtime_error("Template string is null"); + start = it = this->template_str->begin(); + end = this->template_str->end(); + } + + bool consumeSpaces(SpaceHandling space_handling = SpaceHandling::Strip) { + if (space_handling == SpaceHandling::Strip) { + while (it != end && std::isspace(*it)) ++it; + } + return true; + } + + std::unique_ptr parseString() { + auto doParse = [&](char quote) -> std::unique_ptr { + if (it == end || *it != quote) return nullptr; + std::string result; + bool escape = false; + for (++it; it != end; ++it) { + if (escape) { + escape = false; + switch (*it) { + case 'n': result += '\n'; break; + case 'r': result += '\r'; break; + case 't': result += '\t'; break; + case 'b': result += '\b'; break; + case 'f': result += '\f'; break; + case '\\': result += '\\'; break; + default: + if (*it == quote) { + result += quote; + } else { + result += *it; + } + break; + } + } else if (*it == '\\') { + escape = true; + } else if (*it == quote) { + ++it; + return std::make_unique(std::move(result)); + } else { + result += *it; + } + } + return nullptr; + }; + + consumeSpaces(); + if (it == end) return nullptr; + if (*it == '"') return doParse('"'); + if (*it == '\'') return doParse('\''); + return nullptr; + } + + json parseNumber(CharIterator& it, const CharIterator& end) { + auto before = it; + consumeSpaces(); + auto start = it; + bool hasDecimal = false; + bool hasExponent = false; + + if (it != end && (*it == '-' || *it == '+')) ++it; + + while (it != end) { + if (std::isdigit(*it)) { + ++it; + } else if (*it == '.') { + if (hasDecimal) throw std::runtime_error("Multiple decimal points"); + hasDecimal = true; + ++it; + } else if (it != start && (*it == 'e' || *it == 'E')) { + if (hasExponent) throw std::runtime_error("Multiple exponents"); + hasExponent = true; + ++it; + } else { + break; + } + } + if (start == it) { + it = before; + return json(); // No valid characters found + } + + std::string str(start, it); + try { + return json::parse(str); + } catch (json::parse_error& e) { + throw std::runtime_error("Failed to parse number: '" + str + "' (" + std::string(e.what()) + ")"); + return json(); + } + } + + /** integer, float, bool, string */ + std::shared_ptr parseConstant() { + auto start = it; + consumeSpaces(); + if (it == end) return nullptr; + if (*it == '"' || *it == '\'') { + auto str = parseString(); + if (str) return std::make_shared(*str); + } + static std::regex prim_tok(R"(true\b|True\b|false\b|False\b|None\b)"); + auto token = consumeToken(prim_tok); + if (!token.empty()) { + if (token == "true" || token == "True") return std::make_shared(true); + if (token == "false" || token == "False") return std::make_shared(false); + if (token == "None") return std::make_shared(nullptr); + throw std::runtime_error("Unknown constant token: " + token); + } + + auto number = parseNumber(it, end); + if (!number.is_null()) return std::make_shared(number); + + it = start; + return nullptr; + } + + class expression_parsing_error : public std::runtime_error { + const CharIterator it; + public: + expression_parsing_error(const std::string & message, const CharIterator & it) + : std::runtime_error(message), it(it) {} + size_t get_pos(const CharIterator & begin) const { + return std::distance(begin, it); + } + }; + + bool peekSymbols(const std::vector & symbols) const { + for (const auto & symbol : symbols) { + if (std::distance(it, end) >= (int64_t) symbol.size() && std::string(it, it + symbol.size()) == symbol) { + return true; + } + } + return false; + } + + std::vector consumeTokenGroups(const std::regex & regex, SpaceHandling space_handling = SpaceHandling::Strip) { + auto start = it; + consumeSpaces(space_handling); + std::smatch match; + if (std::regex_search(it, end, match, regex) && match.position() == 0) { + it += match[0].length(); + std::vector ret; + for (size_t i = 0, n = match.size(); i < n; ++i) { + ret.push_back(match[i].str()); + } + return ret; + } + it = start; + return {}; + } + std::string consumeToken(const std::regex & regex, SpaceHandling space_handling = SpaceHandling::Strip) { + auto start = it; + consumeSpaces(space_handling); + std::smatch match; + if (std::regex_search(it, end, match, regex) && match.position() == 0) { + it += match[0].length(); + return match[0].str(); + } + it = start; + return ""; + } + + std::string consumeToken(const std::string & token, SpaceHandling space_handling = SpaceHandling::Strip) { + auto start = it; + consumeSpaces(space_handling); + if (std::distance(it, end) >= (int64_t) token.size() && std::string(it, it + token.size()) == token) { + it += token.size(); + return token; + } + it = start; + return ""; + } + + std::shared_ptr parseExpression(bool allow_if_expr = true) { + auto left = parseLogicalOr(); + if (it == end) return left; + + if (!allow_if_expr) return left; + + static std::regex if_tok(R"(if\b)"); + if (consumeToken(if_tok).empty()) { + return left; + } + + auto location = get_location(); + auto [condition, else_expr] = parseIfExpression(); + return std::make_shared(location, std::move(condition), std::move(left), std::move(else_expr)); + } + + Location get_location() const { + return {template_str, (size_t) std::distance(start, it)}; + } + + std::pair, std::shared_ptr> parseIfExpression() { + auto condition = parseLogicalOr(); + if (!condition) throw std::runtime_error("Expected condition expression"); + + static std::regex else_tok(R"(else\b)"); + std::shared_ptr else_expr; + if (!consumeToken(else_tok).empty()) { + else_expr = parseExpression(); + if (!else_expr) throw std::runtime_error("Expected 'else' expression"); + } + return std::pair(std::move(condition), std::move(else_expr)); + } + + std::shared_ptr parseLogicalOr() { + auto left = parseLogicalAnd(); + if (!left) throw std::runtime_error("Expected left side of 'logical or' expression"); + + static std::regex or_tok(R"(or\b)"); + auto location = get_location(); + while (!consumeToken(or_tok).empty()) { + auto right = parseLogicalAnd(); + if (!right) throw std::runtime_error("Expected right side of 'or' expression"); + left = std::make_shared(location, std::move(left), std::move(right), BinaryOpExpr::Op::Or); + } + return left; + } + + std::shared_ptr parseLogicalNot() { + static std::regex not_tok(R"(not\b)"); + auto location = get_location(); + + if (!consumeToken(not_tok).empty()) { + auto sub = parseLogicalNot(); + if (!sub) throw std::runtime_error("Expected expression after 'not' keyword"); + return std::make_shared(location, std::move(sub), UnaryOpExpr::Op::LogicalNot); + } + return parseLogicalCompare(); + } + + std::shared_ptr parseLogicalAnd() { + auto left = parseLogicalNot(); + if (!left) throw std::runtime_error("Expected left side of 'logical and' expression"); + + static std::regex and_tok(R"(and\b)"); + auto location = get_location(); + while (!consumeToken(and_tok).empty()) { + auto right = parseLogicalNot(); + if (!right) throw std::runtime_error("Expected right side of 'and' expression"); + left = std::make_shared(location, std::move(left), std::move(right), BinaryOpExpr::Op::And); + } + return left; + } + + std::shared_ptr parseLogicalCompare() { + auto left = parseStringConcat(); + if (!left) throw std::runtime_error("Expected left side of 'logical compare' expression"); + + static std::regex compare_tok(R"(==|!=|<=?|>=?|in\b|is\b|not[\r\n\s]+in\b)"); + static std::regex not_tok(R"(not\b)"); + std::string op_str; + while (!(op_str = consumeToken(compare_tok)).empty()) { + auto location = get_location(); + if (op_str == "is") { + auto negated = !consumeToken(not_tok).empty(); + + auto identifier = parseIdentifier(); + if (!identifier) throw std::runtime_error("Expected identifier after 'is' keyword"); + + return std::make_shared( + left->location, + std::move(left), std::move(identifier), + negated ? BinaryOpExpr::Op::IsNot : BinaryOpExpr::Op::Is); + } + auto right = parseStringConcat(); + if (!right) throw std::runtime_error("Expected right side of 'logical compare' expression"); + BinaryOpExpr::Op op; + if (op_str == "==") op = BinaryOpExpr::Op::Eq; + else if (op_str == "!=") op = BinaryOpExpr::Op::Ne; + else if (op_str == "<") op = BinaryOpExpr::Op::Lt; + else if (op_str == ">") op = BinaryOpExpr::Op::Gt; + else if (op_str == "<=") op = BinaryOpExpr::Op::Le; + else if (op_str == ">=") op = BinaryOpExpr::Op::Ge; + else if (op_str == "in") op = BinaryOpExpr::Op::In; + else if (op_str.substr(0, 3) == "not") op = BinaryOpExpr::Op::NotIn; + else throw std::runtime_error("Unknown comparison operator: " + op_str); + left = std::make_shared(get_location(), std::move(left), std::move(right), op); + } + return left; + } + + Expression::Parameters parseParameters() { + consumeSpaces(); + if (consumeToken("(").empty()) throw std::runtime_error("Expected opening parenthesis in param list"); + + Expression::Parameters result; + + while (it != end) { + if (!consumeToken(")").empty()) { + return result; + } + auto expr = parseExpression(); + if (!expr) throw std::runtime_error("Expected expression in call args"); + + if (auto ident = dynamic_cast(expr.get())) { + if (!consumeToken("=").empty()) { + auto value = parseExpression(); + if (!value) throw std::runtime_error("Expected expression in for named arg"); + result.emplace_back(ident->get_name(), std::move(value)); + } else { + result.emplace_back(ident->get_name(), nullptr); + } + } else { + result.emplace_back(std::string(), std::move(expr)); + } + if (consumeToken(",").empty()) { + if (consumeToken(")").empty()) { + throw std::runtime_error("Expected closing parenthesis in call args"); + } + return result; + } + } + throw std::runtime_error("Expected closing parenthesis in call args"); + } + + ArgumentsExpression parseCallArgs() { + consumeSpaces(); + if (consumeToken("(").empty()) throw std::runtime_error("Expected opening parenthesis in call args"); + + ArgumentsExpression result; + + while (it != end) { + if (!consumeToken(")").empty()) { + return result; + } + auto expr = parseExpression(); + if (!expr) throw std::runtime_error("Expected expression in call args"); + + if (auto ident = dynamic_cast(expr.get())) { + if (!consumeToken("=").empty()) { + auto value = parseExpression(); + if (!value) throw std::runtime_error("Expected expression in for named arg"); + result.kwargs.emplace_back(ident->get_name(), std::move(value)); + } else { + result.args.emplace_back(std::move(expr)); + } + } else { + result.args.emplace_back(std::move(expr)); + } + if (consumeToken(",").empty()) { + if (consumeToken(")").empty()) { + throw std::runtime_error("Expected closing parenthesis in call args"); + } + return result; + } + } + throw std::runtime_error("Expected closing parenthesis in call args"); + } + + std::shared_ptr parseIdentifier() { + static std::regex ident_regex(R"((?!(?:not|is|and|or|del)\b)[a-zA-Z_]\w*)"); + auto location = get_location(); + auto ident = consumeToken(ident_regex); + if (ident.empty()) + return nullptr; + return std::make_shared(location, ident); + } + + std::shared_ptr parseStringConcat() { + auto left = parseMathPow(); + if (!left) throw std::runtime_error("Expected left side of 'string concat' expression"); + + static std::regex concat_tok(R"(~(?!\}))"); + if (!consumeToken(concat_tok).empty()) { + auto right = parseLogicalAnd(); + if (!right) throw std::runtime_error("Expected right side of 'string concat' expression"); + left = std::make_shared(get_location(), std::move(left), std::move(right), BinaryOpExpr::Op::StrConcat); + } + return left; + } + + std::shared_ptr parseMathPow() { + auto left = parseMathPlusMinus(); + if (!left) throw std::runtime_error("Expected left side of 'math pow' expression"); + + while (!consumeToken("**").empty()) { + auto right = parseMathPlusMinus(); + if (!right) throw std::runtime_error("Expected right side of 'math pow' expression"); + left = std::make_shared(get_location(), std::move(left), std::move(right), BinaryOpExpr::Op::MulMul); + } + return left; + } + + std::shared_ptr parseMathPlusMinus() { + static std::regex plus_minus_tok(R"(\+|-(?![}%#]\}))"); + + auto left = parseMathMulDiv(); + if (!left) throw std::runtime_error("Expected left side of 'math plus/minus' expression"); + std::string op_str; + while (!(op_str = consumeToken(plus_minus_tok)).empty()) { + auto right = parseMathMulDiv(); + if (!right) throw std::runtime_error("Expected right side of 'math plus/minus' expression"); + auto op = op_str == "+" ? BinaryOpExpr::Op::Add : BinaryOpExpr::Op::Sub; + left = std::make_shared(get_location(), std::move(left), std::move(right), op); + } + return left; + } + + std::shared_ptr parseMathMulDiv() { + auto left = parseMathUnaryPlusMinus(); + if (!left) throw std::runtime_error("Expected left side of 'math mul/div' expression"); + + static std::regex mul_div_tok(R"(\*\*?|//?|%(?!\}))"); + std::string op_str; + while (!(op_str = consumeToken(mul_div_tok)).empty()) { + auto right = parseMathUnaryPlusMinus(); + if (!right) throw std::runtime_error("Expected right side of 'math mul/div' expression"); + auto op = op_str == "*" ? BinaryOpExpr::Op::Mul + : op_str == "**" ? BinaryOpExpr::Op::MulMul + : op_str == "/" ? BinaryOpExpr::Op::Div + : op_str == "//" ? BinaryOpExpr::Op::DivDiv + : BinaryOpExpr::Op::Mod; + left = std::make_shared(get_location(), std::move(left), std::move(right), op); + } + + if (!consumeToken("|").empty()) { + auto expr = parseMathMulDiv(); + if (auto filter = dynamic_cast(expr.get())) { + filter->prepend(std::move(left)); + return expr; + } else { + std::vector> parts; + parts.emplace_back(std::move(left)); + parts.emplace_back(std::move(expr)); + return std::make_shared(get_location(), std::move(parts)); + } + } + return left; + } + + std::shared_ptr call_func(const std::string & name, ArgumentsExpression && args) const { + return std::make_shared(get_location(), std::make_shared(get_location(), name), std::move(args)); + } + + std::shared_ptr parseMathUnaryPlusMinus() { + static std::regex unary_plus_minus_tok(R"(\+|-(?![}%#]\}))"); + auto op_str = consumeToken(unary_plus_minus_tok); + auto expr = parseExpansion(); + if (!expr) throw std::runtime_error("Expected expr of 'unary plus/minus/expansion' expression"); + + if (!op_str.empty()) { + auto op = op_str == "+" ? UnaryOpExpr::Op::Plus : UnaryOpExpr::Op::Minus; + return std::make_shared(get_location(), std::move(expr), op); + } + return expr; + } + + std::shared_ptr parseExpansion() { + static std::regex expansion_tok(R"(\*\*?)"); + auto op_str = consumeToken(expansion_tok); + auto expr = parseValueExpression(); + if (op_str.empty()) return expr; + if (!expr) throw std::runtime_error("Expected expr of 'expansion' expression"); + return std::make_shared(get_location(), std::move(expr), op_str == "*" ? UnaryOpExpr::Op::Expansion : UnaryOpExpr::Op::ExpansionDict); + } + + std::shared_ptr parseValueExpression() { + auto parseValue = [&]() -> std::shared_ptr { + auto location = get_location(); + auto constant = parseConstant(); + if (constant) return std::make_shared(location, *constant); + + static std::regex null_regex(R"(null\b)"); + if (!consumeToken(null_regex).empty()) return std::make_shared(location, Value()); + + auto identifier = parseIdentifier(); + if (identifier) return identifier; + + auto braced = parseBracedExpressionOrArray(); + if (braced) return braced; + + auto array = parseArray(); + if (array) return array; + + auto dictionary = parseDictionary(); + if (dictionary) return dictionary; + + throw std::runtime_error("Expected value expression"); + }; + + auto value = parseValue(); + + while (it != end && consumeSpaces() && peekSymbols({ "[", "." })) { + if (!consumeToken("[").empty()) { + std::shared_ptr index; + if (!consumeToken(":").empty()) { + auto slice_end = parseExpression(); + index = std::make_shared(slice_end->location, nullptr, std::move(slice_end)); + } else { + auto slice_start = parseExpression(); + if (!consumeToken(":").empty()) { + consumeSpaces(); + if (peekSymbols({ "]" })) { + index = std::make_shared(slice_start->location, std::move(slice_start), nullptr); + } else { + auto slice_end = parseExpression(); + index = std::make_shared(slice_start->location, std::move(slice_start), std::move(slice_end)); + } + } else { + index = std::move(slice_start); + } + } + if (!index) throw std::runtime_error("Empty index in subscript"); + if (consumeToken("]").empty()) throw std::runtime_error("Expected closing bracket in subscript"); + + value = std::make_shared(value->location, std::move(value), std::move(index)); + } else if (!consumeToken(".").empty()) { + auto identifier = parseIdentifier(); + if (!identifier) throw std::runtime_error("Expected identifier in subscript"); + + consumeSpaces(); + if (peekSymbols({ "(" })) { + auto callParams = parseCallArgs(); + value = std::make_shared(identifier->location, std::move(value), std::move(identifier), std::move(callParams)); + } else { + auto key = std::make_shared(identifier->location, Value(identifier->get_name())); + value = std::make_shared(identifier->location, std::move(value), std::move(key)); + } + } + consumeSpaces(); + } + + if (peekSymbols({ "(" })) { + auto location = get_location(); + auto callParams = parseCallArgs(); + value = std::make_shared(location, std::move(value), std::move(callParams)); + } + return value; + } + + std::shared_ptr parseBracedExpressionOrArray() { + if (consumeToken("(").empty()) return nullptr; + + auto expr = parseExpression(); + if (!expr) throw std::runtime_error("Expected expression in braced expression"); + + if (!consumeToken(")").empty()) { + return expr; // Drop the parentheses + } + + std::vector> tuple; + tuple.emplace_back(std::move(expr)); + + while (it != end) { + if (consumeToken(",").empty()) throw std::runtime_error("Expected comma in tuple"); + auto next = parseExpression(); + if (!next) throw std::runtime_error("Expected expression in tuple"); + tuple.push_back(std::move(next)); + + if (!consumeToken(")").empty()) { + return std::make_shared(get_location(), std::move(tuple)); + } + } + throw std::runtime_error("Expected closing parenthesis"); + } + + std::shared_ptr parseArray() { + if (consumeToken("[").empty()) return nullptr; + + std::vector> elements; + if (!consumeToken("]").empty()) { + return std::make_shared(get_location(), std::move(elements)); + } + auto first_expr = parseExpression(); + if (!first_expr) throw std::runtime_error("Expected first expression in array"); + elements.push_back(std::move(first_expr)); + + while (it != end) { + if (!consumeToken(",").empty()) { + auto expr = parseExpression(); + if (!expr) throw std::runtime_error("Expected expression in array"); + elements.push_back(std::move(expr)); + } else if (!consumeToken("]").empty()) { + return std::make_shared(get_location(), std::move(elements)); + } else { + throw std::runtime_error("Expected comma or closing bracket in array"); + } + } + throw std::runtime_error("Expected closing bracket"); + } + + std::shared_ptr parseDictionary() { + if (consumeToken("{").empty()) return nullptr; + + std::vector, std::shared_ptr>> elements; + if (!consumeToken("}").empty()) { + return std::make_shared(get_location(), std::move(elements)); + } + + auto parseKeyValuePair = [&]() { + auto key = parseExpression(); + if (!key) throw std::runtime_error("Expected key in dictionary"); + if (consumeToken(":").empty()) throw std::runtime_error("Expected colon betweek key & value in dictionary"); + auto value = parseExpression(); + if (!value) throw std::runtime_error("Expected value in dictionary"); + elements.emplace_back(std::pair(std::move(key), std::move(value))); + }; + + parseKeyValuePair(); + + while (it != end) { + if (!consumeToken(",").empty()) { + parseKeyValuePair(); + } else if (!consumeToken("}").empty()) { + return std::make_shared(get_location(), std::move(elements)); + } else { + throw std::runtime_error("Expected comma or closing brace in dictionary"); + } + } + throw std::runtime_error("Expected closing brace"); + } + + SpaceHandling parsePreSpace(const std::string& s) const { + if (s == "-") + return SpaceHandling::Strip; + return SpaceHandling::Keep; + } + + SpaceHandling parsePostSpace(const std::string& s) const { + if (s == "-") return SpaceHandling::Strip; + return SpaceHandling::Keep; + } + + using TemplateTokenVector = std::vector>; + using TemplateTokenIterator = TemplateTokenVector::const_iterator; + + std::vector parseVarNames() { + static std::regex varnames_regex(R"(((?:\w+)(?:[\r\n\s]*,[\r\n\s]*(?:\w+))*)[\r\n\s]*)"); + + std::vector group; + if ((group = consumeTokenGroups(varnames_regex)).empty()) throw std::runtime_error("Expected variable names"); + std::vector varnames; + std::istringstream iss(group[1]); + std::string varname; + while (std::getline(iss, varname, ',')) { + varnames.push_back(strip(varname)); + } + return varnames; + } + + std::runtime_error unexpected(const TemplateToken & token) const { + return std::runtime_error("Unexpected " + TemplateToken::typeToString(token.type) + + error_location_suffix(*template_str, token.location.pos)); + } + std::runtime_error unterminated(const TemplateToken & token) const { + return std::runtime_error("Unterminated " + TemplateToken::typeToString(token.type) + + error_location_suffix(*template_str, token.location.pos)); + } + + TemplateTokenVector tokenize() { + static std::regex comment_tok(R"(\{#([-~]?)(.*?)([-~]?)#\})"); + static std::regex expr_open_regex(R"(\{\{([-~])?)"); + static std::regex block_open_regex(R"(^\{%([-~])?[\s\n\r]*)"); + static std::regex block_keyword_tok(R"((if|else|elif|endif|for|endfor|set|endset|block|endblock|macro|endmacro|filter|endfilter)\b)"); + static std::regex non_text_open_regex(R"(\{\{|\{%|\{#)"); + static std::regex expr_close_regex(R"([\s\n\r]*([-~])?\}\})"); + static std::regex block_close_regex(R"([\s\n\r]*([-~])?%\})"); + + TemplateTokenVector tokens; + std::vector group; + std::string text; + std::smatch match; + + try { + while (it != end) { + auto location = get_location(); + + if (!(group = consumeTokenGroups(comment_tok, SpaceHandling::Keep)).empty()) { + auto pre_space = parsePreSpace(group[1]); + auto content = group[2]; + auto post_space = parsePostSpace(group[3]); + tokens.push_back(std::make_unique(location, pre_space, post_space, content)); + } else if (!(group = consumeTokenGroups(expr_open_regex, SpaceHandling::Keep)).empty()) { + auto pre_space = parsePreSpace(group[1]); + auto expr = parseExpression(); + + if ((group = consumeTokenGroups(expr_close_regex)).empty()) { + throw std::runtime_error("Expected closing expression tag"); + } + + auto post_space = parsePostSpace(group[1]); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(expr))); + } else if (!(group = consumeTokenGroups(block_open_regex, SpaceHandling::Keep)).empty()) { + auto pre_space = parsePreSpace(group[1]); + + std::string keyword; + + auto parseBlockClose = [&]() -> SpaceHandling { + if ((group = consumeTokenGroups(block_close_regex)).empty()) throw std::runtime_error("Expected closing block tag"); + return parsePostSpace(group[1]); + }; + + if ((keyword = consumeToken(block_keyword_tok)).empty()) throw std::runtime_error("Expected block keyword"); + + if (keyword == "if") { + auto condition = parseExpression(); + if (!condition) throw std::runtime_error("Expected condition in if block"); + + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(condition))); + } else if (keyword == "elif") { + auto condition = parseExpression(); + if (!condition) throw std::runtime_error("Expected condition in elif block"); + + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(condition))); + } else if (keyword == "else") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "endif") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "for") { + static std::regex recursive_tok(R"(recursive\b)"); + static std::regex if_tok(R"(if\b)"); + + auto varnames = parseVarNames(); + static std::regex in_tok(R"(in\b)"); + if (consumeToken(in_tok).empty()) throw std::runtime_error("Expected 'in' keyword in for block"); + auto iterable = parseExpression(/* allow_if_expr = */ false); + if (!iterable) throw std::runtime_error("Expected iterable in for block"); + + std::shared_ptr condition; + if (!consumeToken(if_tok).empty()) { + condition = parseExpression(); + } + auto recursive = !consumeToken(recursive_tok).empty(); + + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(varnames), std::move(iterable), std::move(condition), recursive)); + } else if (keyword == "endfor") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "set") { + static std::regex namespaced_var_regex(R"((\w+)[\s\n\r]*\.[\s\n\r]*(\w+))"); + + std::string ns; + std::vector var_names; + std::shared_ptr value; + if (!(group = consumeTokenGroups(namespaced_var_regex)).empty()) { + ns = group[1]; + var_names.push_back(group[2]); + + if (consumeToken("=").empty()) throw std::runtime_error("Expected equals sign in set block"); + + value = parseExpression(); + if (!value) throw std::runtime_error("Expected value in set block"); + } else { + var_names = parseVarNames(); + + if (!consumeToken("=").empty()) { + value = parseExpression(); + if (!value) throw std::runtime_error("Expected value in set block"); + } + } + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, ns, var_names, std::move(value))); + } else if (keyword == "endset") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "macro") { + auto macroname = parseIdentifier(); + if (!macroname) throw std::runtime_error("Expected macro name in macro block"); + auto params = parseParameters(); + + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(macroname), std::move(params))); + } else if (keyword == "endmacro") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "filter") { + auto filter = parseExpression(); + if (!filter) throw std::runtime_error("Expected expression in filter block"); + + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, std::move(filter))); + } else if (keyword == "endfilter") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else { + throw std::runtime_error("Unexpected block: " + keyword); + } + } else if (std::regex_search(it, end, match, non_text_open_regex)) { + auto text_end = it + match.position(); + text = std::string(it, text_end); + it = text_end; + tokens.push_back(std::make_unique(location, SpaceHandling::Keep, SpaceHandling::Keep, text)); + } else { + text = std::string(it, end); + it = end; + tokens.push_back(std::make_unique(location, SpaceHandling::Keep, SpaceHandling::Keep, text)); + } + } + return tokens; + } catch (const std::exception & e) { + throw std::runtime_error(e.what() + error_location_suffix(*template_str, std::distance(start, it))); + } + } + + std::shared_ptr parseTemplate( + const TemplateTokenIterator & begin, + TemplateTokenIterator & it, + const TemplateTokenIterator & end, + bool fully = false) const { + std::vector> children; + while (it != end) { + const auto start = it; + const auto & token = *(it++); + if (auto if_token = dynamic_cast(token.get())) { + std::vector, std::shared_ptr>> cascade; + cascade.emplace_back(std::move(if_token->condition), parseTemplate(begin, it, end)); + + while (it != end && (*it)->type == TemplateToken::Type::Elif) { + auto elif_token = dynamic_cast((*(it++)).get()); + cascade.emplace_back(std::move(elif_token->condition), parseTemplate(begin, it, end)); + } + + if (it != end && (*it)->type == TemplateToken::Type::Else) { + cascade.emplace_back(nullptr, parseTemplate(begin, ++it, end)); + } + if (it == end || (*(it++))->type != TemplateToken::Type::EndIf) { + throw unterminated(**start); + } + children.emplace_back(std::make_shared(token->location, std::move(cascade))); + } else if (auto for_token = dynamic_cast(token.get())) { + auto body = parseTemplate(begin, it, end); + auto else_body = std::shared_ptr(); + if (it != end && (*it)->type == TemplateToken::Type::Else) { + else_body = parseTemplate(begin, ++it, end); + } + if (it == end || (*(it++))->type != TemplateToken::Type::EndFor) { + throw unterminated(**start); + } + children.emplace_back(std::make_shared(token->location, std::move(for_token->var_names), std::move(for_token->iterable), std::move(for_token->condition), std::move(body), for_token->recursive, std::move(else_body))); + } else if (auto text_token = dynamic_cast(token.get())) { + SpaceHandling pre_space = (it - 1) != begin ? (*(it - 2))->post_space : SpaceHandling::Keep; + SpaceHandling post_space = it != end ? (*it)->pre_space : SpaceHandling::Keep; + + auto text = text_token->text; + if (post_space == SpaceHandling::Strip) { + static std::regex trailing_space_regex(R"((\s|\r|\n)+$)"); + text = std::regex_replace(text, trailing_space_regex, ""); + } else if (options.lstrip_blocks && it != end) { + auto i = text.size(); + while (i > 0 && (text[i - 1] == ' ' || text[i - 1] == '\t')) i--; + if ((i == 0 && (it - 1) == begin) || (i > 0 && text[i - 1] == '\n')) { + text.resize(i); + } + } + if (pre_space == SpaceHandling::Strip) { + static std::regex leading_space_regex(R"(^(\s|\r|\n)+)"); + text = std::regex_replace(text, leading_space_regex, ""); + } else if (options.trim_blocks && (it - 1) != begin && !dynamic_cast((*(it - 2)).get())) { + if (text.length() > 0 && text[0] == '\n') { + text.erase(0, 1); + } + } + if (it == end && !options.keep_trailing_newline) { + auto i = text.size(); + if (i > 0 && text[i - 1] == '\n') { + i--; + if (i > 0 && text[i - 1] == '\r') i--; + text.resize(i); + } + } + children.emplace_back(std::make_shared(token->location, text)); + } else if (auto expr_token = dynamic_cast(token.get())) { + children.emplace_back(std::make_shared(token->location, std::move(expr_token->expr))); + } else if (auto set_token = dynamic_cast(token.get())) { + if (set_token->value) { + children.emplace_back(std::make_shared(token->location, set_token->ns, set_token->var_names, std::move(set_token->value))); + } else { + auto value_template = parseTemplate(begin, it, end); + if (it == end || (*(it++))->type != TemplateToken::Type::EndSet) { + throw unterminated(**start); + } + if (!set_token->ns.empty()) throw std::runtime_error("Namespaced set not supported in set with template value"); + if (set_token->var_names.size() != 1) throw std::runtime_error("Structural assignment not supported in set with template value"); + auto & name = set_token->var_names[0]; + children.emplace_back(std::make_shared(token->location, name, std::move(value_template))); + } + } else if (auto macro_token = dynamic_cast(token.get())) { + auto body = parseTemplate(begin, it, end); + if (it == end || (*(it++))->type != TemplateToken::Type::EndMacro) { + throw unterminated(**start); + } + children.emplace_back(std::make_shared(token->location, std::move(macro_token->name), std::move(macro_token->params), std::move(body))); + } else if (auto filter_token = dynamic_cast(token.get())) { + auto body = parseTemplate(begin, it, end); + if (it == end || (*(it++))->type != TemplateToken::Type::EndFilter) { + throw unterminated(**start); + } + children.emplace_back(std::make_shared(token->location, std::move(filter_token->filter), std::move(body))); + } else if (dynamic_cast(token.get())) { + // Ignore comments + } else if (dynamic_cast(token.get()) + || dynamic_cast(token.get()) + || dynamic_cast(token.get()) + || dynamic_cast(token.get()) + || dynamic_cast(token.get()) + || dynamic_cast(token.get()) + || dynamic_cast(token.get())) { + it--; // unconsume the token + break; // exit the loop + } else { + throw unexpected(**(it-1)); + } + } + if (fully && it != end) { + throw unexpected(**it); + } + if (children.empty()) { + return std::make_shared(Location { template_str, 0 }, std::string()); + } else if (children.size() == 1) { + return std::move(children[0]); + } else { + return std::make_shared(children[0]->location(), std::move(children)); + } + } + +public: + + static std::shared_ptr parse(const std::string& template_str, const Options & options) { + Parser parser(std::make_shared(normalize_newlines(template_str)), options); + auto tokens = parser.tokenize(); + TemplateTokenIterator begin = tokens.begin(); + auto it = begin; + TemplateTokenIterator end = tokens.end(); + return parser.parseTemplate(begin, it, end, /* full= */ true); + } +}; + +static Value simple_function(const std::string & fn_name, const std::vector & params, const std::function &, Value & args)> & fn) { + std::map named_positions; + for (size_t i = 0, n = params.size(); i < n; i++) named_positions[params[i]] = i; + + return Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) -> Value { + auto args_obj = Value::object(); + std::vector provided_args(params.size()); + for (size_t i = 0, n = args.args.size(); i < n; i++) { + auto & arg = args.args[i]; + if (i < params.size()) { + args_obj.set(params[i], arg); + provided_args[i] = true; + } else { + throw std::runtime_error("Too many positional params for " + fn_name); + } + } + for (auto & [name, value] : args.kwargs) { + auto named_pos_it = named_positions.find(name); + if (named_pos_it == named_positions.end()) { + throw std::runtime_error("Unknown argument " + name + " for function " + fn_name); + } + provided_args[named_pos_it->second] = true; + args_obj.set(name, value); + } + return fn(context, args_obj); + }); +} + +inline std::shared_ptr Context::builtins() { + auto globals = Value::object(); + + globals.set("raise_exception", simple_function("raise_exception", { "message" }, [](const std::shared_ptr &, Value & args) -> Value { + throw std::runtime_error(args.at("message").get()); + })); + globals.set("tojson", simple_function("tojson", { "value", "indent" }, [](const std::shared_ptr &, Value & args) { + return Value(args.at("value").dump(args.get("indent", -1), /* tojson= */ true)); + })); + globals.set("items", simple_function("items", { "object" }, [](const std::shared_ptr &, Value & args) { + auto items = Value::array(); + if (args.contains("object")) { + auto & obj = args.at("object"); + if (obj.is_string()) { + auto json_obj = json::parse(obj.get()); + for (const auto & kv : json_obj.items()) { + items.push_back(Value::array({kv.key(), kv.value()})); + } + } else if (!obj.is_null()) { + for (auto & key : obj.keys()) { + items.push_back(Value::array({key, obj.at(key)})); + } + } + } + return items; + })); + globals.set("last", simple_function("last", { "items" }, [](const std::shared_ptr &, Value & args) { + auto items = args.at("items"); + if (!items.is_array()) throw std::runtime_error("object is not a list"); + if (items.size() == 0) return Value(); + return items.at(items.size() - 1); + })); + globals.set("trim", simple_function("trim", { "text" }, [](const std::shared_ptr &, Value & args) { + auto & text = args.at("text"); + return text.is_null() ? text : Value(strip(text.get())); + })); + globals.set("lower", simple_function("lower", { "text" }, [](const std::shared_ptr &, Value & args) { + auto text = args.at("text"); + if (text.is_null()) return text; + std::string res; + auto str = text.get(); + std::transform(str.begin(), str.end(), std::back_inserter(res), ::tolower); + return Value(res); + })); + globals.set("default", Value::callable([=](const std::shared_ptr &, ArgumentsValue & args) { + args.expectArgs("default", {2, 3}, {0, 1}); + auto & value = args.args[0]; + auto & default_value = args.args[1]; + bool boolean = false; + if (args.args.size() == 3) { + boolean = args.args[2].get(); + } else { + Value bv = args.get_named("boolean"); + if (!bv.is_null()) { + boolean = bv.get(); + } + } + return boolean ? (value.to_bool() ? value : default_value) : value.is_null() ? default_value : value; + })); + auto escape = simple_function("escape", { "text" }, [](const std::shared_ptr &, Value & args) { + return Value(html_escape(args.at("text").get())); + }); + globals.set("e", escape); + globals.set("escape", escape); + globals.set("joiner", simple_function("joiner", { "sep" }, [](const std::shared_ptr &, Value & args) { + auto sep = args.get("sep", ""); + auto first = std::make_shared(true); + return simple_function("", {}, [sep, first](const std::shared_ptr &, const Value &) -> Value { + if (*first) { + *first = false; + return ""; + } + return sep; + }); + return Value(html_escape(args.at("text").get())); + })); + globals.set("count", simple_function("count", { "items" }, [](const std::shared_ptr &, Value & args) { + return Value((int64_t) args.at("items").size()); + })); + globals.set("dictsort", simple_function("dictsort", { "value" }, [](const std::shared_ptr &, Value & args) { + if (args.size() != 1) throw std::runtime_error("dictsort expects exactly 1 argument (TODO: fix implementation)"); + auto & value = args.at("value"); + auto keys = value.keys(); + std::sort(keys.begin(), keys.end()); + auto res = Value::array(); + for (auto & key : keys) { + res.push_back(Value::array({key, value.at(key)})); + } + return res; + })); + globals.set("join", simple_function("join", { "items", "d" }, [](const std::shared_ptr &, Value & args) { + auto do_join = [](Value & items, const std::string & sep) { + std::ostringstream oss; + auto first = true; + for (size_t i = 0, n = items.size(); i < n; ++i) { + if (first) first = false; + else oss << sep; + oss << items.at(i).to_str(); + } + return Value(oss.str()); + }; + auto sep = args.get("d", ""); + if (args.contains("items")) { + auto & items = args.at("items"); + return do_join(items, sep); + } else { + return simple_function("", {"items"}, [sep, do_join](const std::shared_ptr &, Value & args) { + auto & items = args.at("items"); + if (!items.to_bool() || !items.is_array()) throw std::runtime_error("join expects an array for items, got: " + items.dump()); + return do_join(items, sep); + }); + } + })); + globals.set("namespace", Value::callable([=](const std::shared_ptr &, ArgumentsValue & args) { + auto ns = Value::object(); + args.expectArgs("namespace", {0, 0}, {0, (std::numeric_limits::max)()}); + for (auto & [name, value] : args.kwargs) { + ns.set(name, value); + } + return ns; + })); + auto equalto = simple_function("equalto", { "expected", "actual" }, [](const std::shared_ptr &, Value & args) -> Value { + return args.at("actual") == args.at("expected"); + }); + globals.set("equalto", equalto); + globals.set("==", equalto); + globals.set("length", simple_function("length", { "items" }, [](const std::shared_ptr &, Value & args) -> Value { + auto & items = args.at("items"); + return (int64_t) items.size(); + })); + globals.set("safe", simple_function("safe", { "value" }, [](const std::shared_ptr &, Value & args) -> Value { + return args.at("value").to_str(); + })); + globals.set("string", simple_function("string", { "value" }, [](const std::shared_ptr &, Value & args) -> Value { + return args.at("value").to_str(); + })); + globals.set("int", simple_function("int", { "value" }, [](const std::shared_ptr &, Value & args) -> Value { + return args.at("value").to_int(); + })); + globals.set("list", simple_function("list", { "items" }, [](const std::shared_ptr &, Value & args) -> Value { + auto & items = args.at("items"); + if (!items.is_array()) throw std::runtime_error("object is not iterable"); + return items; + })); + globals.set("unique", simple_function("unique", { "items" }, [](const std::shared_ptr &, Value & args) -> Value { + auto & items = args.at("items"); + if (!items.is_array()) throw std::runtime_error("object is not iterable"); + std::unordered_set seen; + auto result = Value::array(); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto pair = seen.insert(items.at(i)); + if (pair.second) { + result.push_back(items.at(i)); + } + } + return result; + })); + auto make_filter = [](const Value & filter, Value & extra_args) -> Value { + return simple_function("", { "value" }, [=](const std::shared_ptr & context, Value & args) { + auto & value = args.at("value"); + ArgumentsValue actual_args; + actual_args.args.emplace_back(value); + for (size_t i = 0, n = extra_args.size(); i < n; i++) { + actual_args.args.emplace_back(extra_args.at(i)); + } + return filter.call(context, actual_args); + }); + }; + // https://jinja.palletsprojects.com/en/3.0.x/templates/#jinja-filters.reject + globals.set("reject", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { + args.expectArgs("reject", {2, (std::numeric_limits::max)()}, {0, 0}); + auto & items = args.args[0]; + auto filter_fn = context->get(args.args[1]); + if (filter_fn.is_null()) throw std::runtime_error("Undefined filter: " + args.args[1].dump()); + + auto filter_args = Value::array(); + for (size_t i = 2, n = args.args.size(); i < n; i++) { + filter_args.push_back(args.args[i]); + } + auto filter = make_filter(filter_fn, filter_args); + + auto res = Value::array(); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto & item = items.at(i); + ArgumentsValue filter_args; + filter_args.args.emplace_back(item); + auto pred_res = filter.call(context, filter_args); + if (!pred_res.to_bool()) { + res.push_back(item); + } + } + return res; + })); + globals.set("map", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { + auto res = Value::array(); + if (args.args.size() == 1 && + ((args.has_named("attribute") && args.kwargs.size() == 1) || (args.has_named("default") && args.kwargs.size() == 2))) { + auto & items = args.args[0]; + auto attr_name = args.get_named("attribute"); + auto default_value = args.get_named("default"); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto & item = items.at(i); + auto attr = item.get(attr_name); + res.push_back(attr.is_null() ? default_value : attr); + } + } else if (args.kwargs.empty() && args.args.size() >= 2) { + auto fn = context->get(args.args[1]); + if (fn.is_null()) throw std::runtime_error("Undefined filter: " + args.args[1].dump()); + ArgumentsValue filter_args { {Value()}, {} }; + for (size_t i = 2, n = args.args.size(); i < n; i++) { + filter_args.args.emplace_back(args.args[i]); + } + for (size_t i = 0, n = args.args[0].size(); i < n; i++) { + auto & item = args.args[0].at(i); + filter_args.args[0] = item; + res.push_back(fn.call(context, filter_args)); + } + } else { + throw std::runtime_error("Invalid or unsupported arguments for map"); + } + return res; + })); + globals.set("indent", simple_function("indent", { "text", "indent", "first" }, [](const std::shared_ptr &, Value & args) { + auto text = args.at("text").get(); + auto first = args.get("first", false); + std::string out; + std::string indent(args.get("indent", 0), ' '); + std::istringstream iss(text); + std::string line; + auto is_first = true; + while (std::getline(iss, line, '\n')) { + auto needs_indent = !is_first || first; + if (is_first) is_first = false; + else out += "\n"; + if (needs_indent) out += indent; + out += line; + } + if (!text.empty() && text.back() == '\n') out += "\n"; + return out; + })); + globals.set("selectattr", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { + args.expectArgs("selectattr", {2, (std::numeric_limits::max)()}, {0, 0}); + auto & items = args.args[0]; + if (items.is_null()) + return Value::array(); + auto attr_name = args.args[1].get(); + + bool has_test = false; + Value test_fn; + ArgumentsValue test_args {{Value()}, {}}; + if (args.args.size() >= 3) { + has_test = true; + test_fn = context->get(args.args[2]); + if (test_fn.is_null()) throw std::runtime_error("Undefined test: " + args.args[2].dump()); + for (size_t i = 3, n = args.args.size(); i < n; i++) { + test_args.args.emplace_back(args.args[i]); + } + test_args.kwargs = args.kwargs; + } + + auto res = Value::array(); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto & item = items.at(i); + auto attr = item.get(attr_name); + if (has_test) { + test_args.args[0] = attr; + if (test_fn.call(context, test_args).to_bool()) { + res.push_back(item); + } + } else { + res.push_back(attr); + } + } + return res; + })); + globals.set("range", Value::callable([=](const std::shared_ptr &, ArgumentsValue & args) { + std::vector startEndStep(3); + std::vector param_set(3); + if (args.args.size() == 1) { + startEndStep[1] = args.args[0].get(); + param_set[1] = true; + } else { + for (size_t i = 0; i < args.args.size(); i++) { + auto & arg = args.args[i]; + auto v = arg.get(); + startEndStep[i] = v; + param_set[i] = true; + } + } + for (auto & [name, value] : args.kwargs) { + size_t i; + if (name == "start") i = 0; + else if (name == "end") i = 1; + else if (name == "step") i = 2; + else throw std::runtime_error("Unknown argument " + name + " for function range"); + + if (param_set[i]) { + throw std::runtime_error("Duplicate argument " + name + " for function range"); + } + startEndStep[i] = value.get(); + param_set[i] = true; + } + if (!param_set[1]) { + throw std::runtime_error("Missing required argument 'end' for function range"); + } + int64_t start = param_set[0] ? startEndStep[0] : 0; + int64_t end = startEndStep[1]; + int64_t step = param_set[2] ? startEndStep[2] : 1; + + auto res = Value::array(); + if (step > 0) { + for (int64_t i = start; i < end; i += step) { + res.push_back(Value(i)); + } + } else { + for (int64_t i = start; i > end; i += step) { + res.push_back(Value(i)); + } + } + return res; + })); + + return std::make_shared(std::move(globals)); +} + +inline std::shared_ptr Context::make(Value && values, const std::shared_ptr & parent) { + return std::make_shared(values.is_null() ? Value::object() : std::move(values), parent); +} + +} // namespace minja diff --git a/examples/main/main.cpp b/examples/main/main.cpp index 39666a0e8..da2a03ab9 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -4,6 +4,7 @@ #include "log.h" #include "sampling.h" #include "llama.h" +#include "chat-template.hpp" #include #include @@ -84,14 +85,6 @@ static void sigint_handler(int signo) { } #endif -static std::string chat_add_and_format(struct llama_model * model, std::vector & chat_msgs, const std::string & role, const std::string & content) { - common_chat_msg new_msg{role, content}; - auto formatted = common_chat_format_single(model, g_params->chat_template, chat_msgs, new_msg, role == "user"); - chat_msgs.push_back({role, content}); - LOG_DBG("formatted: '%s'\n", formatted.c_str()); - return formatted; -} - int main(int argc, char ** argv) { common_params params; g_params = ¶ms; @@ -165,6 +158,7 @@ int main(int argc, char ** argv) { } const llama_vocab * vocab = llama_model_get_vocab(model); + auto chat_templates = common_chat_templates_from_model(model, params.chat_template); LOG_INF("%s: llama threadpool init, n_threads = %d\n", __func__, (int) params.cpuparams.n_threads); @@ -207,7 +201,7 @@ int main(int argc, char ** argv) { } // auto enable conversation mode if chat template is available - const bool has_chat_template = !common_get_builtin_chat_template(model).empty() || !params.chat_template.empty(); + const bool has_chat_template = chat_templates.has_explicit_template && chat_templates.template_default; if (params.conversation_mode == COMMON_CONVERSATION_MODE_AUTO) { if (has_chat_template) { LOG_INF("%s: chat template is available, enabling conversation mode (disable it with -no-cnv)\n", __func__); @@ -225,7 +219,7 @@ int main(int argc, char ** argv) { // print chat template example in conversation mode if (params.conversation_mode) { if (params.enable_chat_template) { - LOG_INF("%s: chat template example:\n%s\n", __func__, common_chat_format_example(model, params.chat_template).c_str()); + LOG_INF("%s: chat template example:\n%s\n", __func__, common_chat_format_example(*chat_templates.template_default, params.use_jinja).c_str()); } else { LOG_INF("%s: in-suffix/prefix is specified, chat template will be disabled\n", __func__); } @@ -269,10 +263,18 @@ int main(int argc, char ** argv) { std::vector embd_inp; + auto chat_add_and_format = [&chat_msgs, &chat_templates](const std::string & role, const std::string & content) { + common_chat_msg new_msg{role, content}; + auto formatted = common_chat_format_single(*chat_templates.template_default, chat_msgs, new_msg, role == "user", g_params->use_jinja); + chat_msgs.push_back({role, content}); + LOG_DBG("formatted: '%s'\n", formatted.c_str()); + return formatted; + }; + { auto prompt = (params.conversation_mode && params.enable_chat_template) // format the system prompt in conversation mode (fallback to default if empty) - ? chat_add_and_format(model, chat_msgs, "system", params.prompt.empty() ? DEFAULT_SYSTEM_MESSAGE : params.prompt) + ? chat_add_and_format("system", params.prompt.empty() ? DEFAULT_SYSTEM_MESSAGE : params.prompt) // otherwise use the prompt as is : params.prompt; if (params.interactive_first || !params.prompt.empty() || session_tokens.empty()) { @@ -779,7 +781,7 @@ int main(int argc, char ** argv) { } if (params.enable_chat_template) { - chat_add_and_format(model, chat_msgs, "assistant", assistant_ss.str()); + chat_add_and_format("assistant", assistant_ss.str()); } is_interacting = true; LOG("\n"); @@ -844,7 +846,7 @@ int main(int argc, char ** argv) { bool format_chat = params.conversation_mode && params.enable_chat_template; std::string user_inp = format_chat - ? chat_add_and_format(model, chat_msgs, "user", std::move(buffer)) + ? chat_add_and_format("user", std::move(buffer)) : std::move(buffer); // TODO: one inconvenient of current chat template implementation is that we can't distinguish between user input and special tokens (prefix/postfix) const auto line_pfx = common_tokenize(ctx, params.input_prefix, false, true); diff --git a/examples/run/run.cpp b/examples/run/run.cpp index d04108e71..e567ad716 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -28,6 +28,7 @@ #include "json.hpp" #include "linenoise.cpp/linenoise.h" #include "llama-cpp.h" +#include "chat-template.hpp" #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) || defined(_WIN32) [[noreturn]] static void sigint_handler(int) { @@ -105,6 +106,7 @@ class Opt { llama_model_params model_params; std::string model_; std::string user; + bool use_jinja = false; int context_size = -1, ngl = -1; float temperature = -1; bool verbose = false; @@ -156,6 +158,8 @@ class Opt { } else if (options_parsing && (parse_flag(argv, i, "-v", "--verbose") || parse_flag(argv, i, "-v", "--log-verbose"))) { verbose = true; + } else if (options_parsing && strcmp(argv[i], "--jinja") == 0) { + use_jinja = true; } else if (options_parsing && parse_flag(argv, i, "-h", "--help")) { help = true; return 0; @@ -713,13 +717,31 @@ static void add_message(const char * role, const std::string & text, LlamaData & } // Function to apply the chat template and resize `formatted` if needed -static int apply_chat_template(LlamaData & llama_data, const bool append) { +static int apply_chat_template(const common_chat_template & tmpl, LlamaData & llama_data, const bool append, bool use_jinja) { + if (use_jinja) { + json messages = json::array(); + for (const auto & msg : llama_data.messages) { + messages.push_back({ + {"role", msg.role}, + {"content", msg.content}, + }); + } + try { + auto result = tmpl.apply(messages, /* tools= */ json(), append); + llama_data.fmtted.resize(result.size() + 1); + memcpy(llama_data.fmtted.data(), result.c_str(), result.size() + 1); + return result.size(); + } catch (const std::exception & e) { + printe("failed to render the chat template: %s\n", e.what()); + return -1; + } + } int result = llama_chat_apply_template( - llama_model_chat_template(llama_data.model.get()), llama_data.messages.data(), llama_data.messages.size(), append, + tmpl.source().c_str(), llama_data.messages.data(), llama_data.messages.size(), append, append ? llama_data.fmtted.data() : nullptr, append ? llama_data.fmtted.size() : 0); if (append && result > static_cast(llama_data.fmtted.size())) { llama_data.fmtted.resize(result); - result = llama_chat_apply_template(llama_model_chat_template(llama_data.model.get()), llama_data.messages.data(), + result = llama_chat_apply_template(tmpl.source().c_str(), llama_data.messages.data(), llama_data.messages.size(), append, llama_data.fmtted.data(), llama_data.fmtted.size()); } @@ -871,8 +893,8 @@ static int generate_response(LlamaData & llama_data, const std::string & prompt, } // Helper function to apply the chat template and handle errors -static int apply_chat_template_with_error_handling(LlamaData & llama_data, const bool append, int & output_length) { - const int new_len = apply_chat_template(llama_data, append); +static int apply_chat_template_with_error_handling(const common_chat_template & tmpl, LlamaData & llama_data, const bool append, int & output_length, bool use_jinja) { + const int new_len = apply_chat_template(tmpl, llama_data, append, use_jinja); if (new_len < 0) { printe("failed to apply the chat template\n"); return -1; @@ -931,9 +953,11 @@ static int get_user_input(std::string & user_input, const std::string & user) { } // Main chat loop function -static int chat_loop(LlamaData & llama_data, const std::string & user) { +static int chat_loop(LlamaData & llama_data, const std::string & user, bool use_jinja) { int prev_len = 0; llama_data.fmtted.resize(llama_n_ctx(llama_data.context.get())); + auto chat_templates = common_chat_templates_from_model(llama_data.model.get(), ""); + GGML_ASSERT(chat_templates.template_default); static const bool stdout_a_terminal = is_stdout_a_terminal(); while (true) { // Get user input @@ -944,7 +968,7 @@ static int chat_loop(LlamaData & llama_data, const std::string & user) { add_message("user", user.empty() ? user_input : user, llama_data); int new_len; - if (apply_chat_template_with_error_handling(llama_data, true, new_len) < 0) { + if (apply_chat_template_with_error_handling(*chat_templates.template_default, llama_data, true, new_len, use_jinja) < 0) { return 1; } @@ -959,7 +983,7 @@ static int chat_loop(LlamaData & llama_data, const std::string & user) { } add_message("assistant", response, llama_data); - if (apply_chat_template_with_error_handling(llama_data, false, prev_len) < 0) { + if (apply_chat_template_with_error_handling(*chat_templates.template_default, llama_data, false, prev_len, use_jinja) < 0) { return 1; } } @@ -1019,7 +1043,7 @@ int main(int argc, const char ** argv) { return 1; } - if (chat_loop(llama_data, opt.user)) { + if (chat_loop(llama_data, opt.user, opt.use_jinja)) { return 1; } diff --git a/examples/server/README.md b/examples/server/README.md index 1f0a27d96..5022de672 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -126,7 +126,7 @@ The project is under active development, and we are [looking for feedback and co | `--grammar GRAMMAR` | BNF-like grammar to constrain generations (see samples in grammars/ dir) (default: '') | | `--grammar-file FNAME` | file to read grammar from | | `-j, --json-schema SCHEMA` | JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object
For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead | - +| `--jinja` | Enable experimental Jinja templating engine (needed for tool use) | **Example-specific params** diff --git a/examples/server/server.cpp b/examples/server/server.cpp index f35206d7b..5f08c4ecc 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1688,6 +1688,8 @@ struct server_context { // Necessary similarity of prompt for slot selection float slot_prompt_similarity = 0.0f; + common_chat_templates chat_templates; + ~server_context() { // Clear any sampling context for (server_slot & slot : slots) { @@ -1767,14 +1769,39 @@ struct server_context { cparams_dft.type_v = GGML_TYPE_F16; } + chat_templates = common_chat_templates_from_model(model, params_base.chat_template); + GGML_ASSERT(chat_templates.template_default.get() != nullptr); + return true; } - bool validate_builtin_chat_template() const { + bool validate_builtin_chat_template(bool use_jinja) const { llama_chat_message chat[] = {{"user", "test"}}; - const char * tmpl = llama_model_chat_template(model); - const int32_t chat_res = llama_chat_apply_template(tmpl, chat, 1, true, nullptr, 0); - return chat_res > 0; + + if (use_jinja) { + auto templates = common_chat_templates_from_model(model, ""); + GGML_ASSERT(templates.template_default); + try { + templates.template_default->apply({{ + {"role", "user"}, + {"content", "test"}, + }}, json(), true); + if (templates.template_tool_use) { + templates.template_tool_use->apply({{ + {"role", "user"}, + {"content", "test"}, + }}, json(), true); + } + return true; + } catch (const std::exception & e) { + SRV_ERR("failed to apply template: %s\n", e.what()); + return false; + } + } else { + const char * tmpl = llama_model_chat_template(model, /* name */ nullptr); + const int32_t chat_res = llama_chat_apply_template(tmpl, chat, 1, true, nullptr, 0); + return chat_res > 0; + } } void init() { @@ -3659,9 +3686,12 @@ int main(int argc, char ** argv) { { "default_generation_settings", ctx_server.default_generation_settings_for_props }, { "total_slots", ctx_server.params_base.n_parallel }, { "model_path", ctx_server.params_base.model }, - { "chat_template", common_get_builtin_chat_template(ctx_server.model) }, + { "chat_template", ctx_server.chat_templates.template_default->source() }, { "build_info", build_info }, }; + if (ctx_server.params_base.use_jinja && ctx_server.chat_templates.template_tool_use) { + data["chat_template_tool_use"] = ctx_server.chat_templates.template_tool_use->source(); + } res_ok(res, data); }; @@ -3889,7 +3919,10 @@ int main(int argc, char ** argv) { return; } - json data = oaicompat_chat_completion_params_parse(ctx_server.model, json::parse(req.body), params.chat_template); + auto body = json::parse(req.body); + const auto & chat_template = body.contains("tools") && ctx_server.chat_templates.template_tool_use ? *ctx_server.chat_templates.template_tool_use : *ctx_server.chat_templates.template_default; + json data = oaicompat_completion_params_parse(body, chat_template, params.use_jinja); + return handle_completions_impl( SERVER_TASK_TYPE_COMPLETION, data, @@ -4299,7 +4332,7 @@ int main(int argc, char ** argv) { // if a custom chat template is not supplied, we will use the one that comes with the model (if any) if (params.chat_template.empty()) { - if (!ctx_server.validate_builtin_chat_template()) { + if (!ctx_server.validate_builtin_chat_template(params.use_jinja)) { LOG_WRN("%s: The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses\n", __func__); params.chat_template = "chatml"; } @@ -4307,8 +4340,8 @@ int main(int argc, char ** argv) { // print sample chat example to make it clear which template is used LOG_INF("%s: chat template, chat_template: %s, example_format: '%s'\n", __func__, - params.chat_template.empty() ? "(built-in)" : params.chat_template.c_str(), - common_chat_format_example(ctx_server.model, params.chat_template).c_str()); + ctx_server.chat_templates.template_default->source().c_str(), + common_chat_format_example(*ctx_server.chat_templates.template_default, ctx_server.params_base.use_jinja).c_str()); ctx_server.queue_tasks.on_new_task(std::bind( &server_context::process_single_task, &ctx_server, std::placeholders::_1)); diff --git a/examples/server/tests/unit/test_chat_completion.py b/examples/server/tests/unit/test_chat_completion.py index b15dba6eb..2e15348dc 100644 --- a/examples/server/tests/unit/test_chat_completion.py +++ b/examples/server/tests/unit/test_chat_completion.py @@ -4,22 +4,26 @@ from utils import * server = ServerPreset.tinyllama2() - -@pytest.fixture(scope="module", autouse=True) +@pytest.fixture(autouse=True) def create_server(): global server server = ServerPreset.tinyllama2() @pytest.mark.parametrize( - "model,system_prompt,user_prompt,max_tokens,re_content,n_prompt,n_predicted,finish_reason", + "model,system_prompt,user_prompt,max_tokens,re_content,n_prompt,n_predicted,finish_reason,jinja,chat_template", [ - (None, "Book", "What is the best book", 8, "(Suddenly)+", 77, 8, "length"), - ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length"), + (None, "Book", "What is the best book", 8, "(Suddenly)+", 77, 8, "length", False, None), + (None, "Book", "What is the best book", 8, "(Suddenly)+", 77, 8, "length", True, None), + (None, "Book", "What is the best book", 8, "^ blue", 23, 8, "length", True, "This is not a chat template, it is"), + ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", False, None), + ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", True, None), ] ) -def test_chat_completion(model, system_prompt, user_prompt, max_tokens, re_content, n_prompt, n_predicted, finish_reason): +def test_chat_completion(model, system_prompt, user_prompt, max_tokens, re_content, n_prompt, n_predicted, finish_reason, jinja, chat_template): global server + server.jinja = jinja + server.chat_template = chat_template server.start() res = server.make_request("POST", "/chat/completions", data={ "model": model, diff --git a/examples/server/tests/utils.py b/examples/server/tests/utils.py index 9d1a7a5b0..9964db2f9 100644 --- a/examples/server/tests/utils.py +++ b/examples/server/tests/utils.py @@ -72,13 +72,14 @@ class ServerProcess: pooling: str | None = None draft: int | None = None api_key: str | None = None - response_format: str | None = None lora_files: List[str] | None = None disable_ctx_shift: int | None = False draft_min: int | None = None draft_max: int | None = None no_webui: bool | None = None + jinja: bool | None = None chat_template: str | None = None + chat_template_file: str | None = None # session variables process: subprocess.Popen | None = None @@ -169,8 +170,12 @@ class ServerProcess: server_args.extend(["--draft-min", self.draft_min]) if self.no_webui: server_args.append("--no-webui") + if self.jinja: + server_args.append("--jinja") if self.chat_template: server_args.extend(["--chat-template", self.chat_template]) + if self.chat_template_file: + server_args.extend(["--chat-template-file", self.chat_template_file]) args = [str(arg) for arg in [server_path, *server_args]] print(f"bench: starting server with: {' '.join(args)}") diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index 699480f90..c5987250c 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -16,6 +16,8 @@ // Change JSON_ASSERT from assert() to GGML_ASSERT: #define JSON_ASSERT GGML_ASSERT #include "json.hpp" +#include "minja.hpp" +#include "chat-template.hpp" #include #include @@ -349,7 +351,7 @@ static llama_tokens format_infill( } // Format given chat. If tmpl is empty, we take the template from model metadata -inline std::string format_chat(const struct llama_model * model, const std::string & tmpl, const std::vector & messages) { +inline std::string format_chat(const common_chat_template & tmpl, const std::vector & messages) { std::vector chat; for (size_t i = 0; i < messages.size(); ++i) { @@ -377,7 +379,7 @@ inline std::string format_chat(const struct llama_model * model, const std::stri chat.push_back({role, content}); } - const auto formatted_chat = common_chat_apply_template(model, tmpl, chat, true); + const auto formatted_chat = common_chat_apply_template(tmpl, chat, true, /* use_jinja= */ false); LOG_DBG("formatted_chat: '%s'\n", formatted_chat.c_str()); return formatted_chat; @@ -576,14 +578,23 @@ static json oaicompat_completion_params_parse(const json & body) { return llama_params; } -static json oaicompat_chat_completion_params_parse( - const struct llama_model * model, - const json & body, /* openai api json semantics */ - const std::string & chat_template) { +static json oaicompat_completion_params_parse( + const json & body, /* openai api json semantics */ + const common_chat_template & tmpl, + bool use_jinja) +{ json llama_params; - // Apply chat template to the list of messages - llama_params["prompt"] = format_chat(model, chat_template, body.at("messages")); + auto tools = json_value(body, "tools", json()); + auto has_tools = tools.is_array() && !tools.empty(); + + if (has_tools) { + if (use_jinja) { + LOG_WRN("tools param is not fully supported yet\n"); + } else { + throw std::runtime_error("tools param requires --jinja flag"); + } + } // Handle "stop" field if (body.contains("stop") && body.at("stop").is_string()) { @@ -606,6 +617,13 @@ static json oaicompat_chat_completion_params_parse( } } + // Apply chat template to the list of messages + if (use_jinja) { + llama_params["prompt"] = tmpl.apply(body.at("messages"), tools, /* add_generation_prompt= */ true); + } else { + llama_params["prompt"] = format_chat(tmpl, body.at("messages")); + } + // Handle "n" field int n_choices = json_value(body, "n", 1); if (n_choices != 1) { @@ -621,7 +639,7 @@ static json oaicompat_chat_completion_params_parse( } // Params supported by OAI but unsupported by llama.cpp - static const std::vector unsupported_params { "tools", "tool_choice" }; + static const std::vector unsupported_params { "tool_choice" }; for (const auto & param : unsupported_params) { if (body.contains(param)) { throw std::runtime_error("Unsupported param: " + param); diff --git a/examples/simple-chat/simple-chat.cpp b/examples/simple-chat/simple-chat.cpp index 212b3fd79..c5534cc13 100644 --- a/examples/simple-chat/simple-chat.cpp +++ b/examples/simple-chat/simple-chat.cpp @@ -163,7 +163,7 @@ int main(int argc, char ** argv) { break; } - const char * tmpl = llama_model_chat_template(model); + const char * tmpl = llama_model_chat_template(model, /* name */ nullptr); // add the user input to the message list and format it messages.push_back({"user", strdup(user.c_str())}); diff --git a/include/llama.h b/include/llama.h index 298b8d1bc..3b75e7607 100644 --- a/include/llama.h +++ b/include/llama.h @@ -510,7 +510,8 @@ extern "C" { LLAMA_API uint64_t llama_model_size(const struct llama_model * model); // Get the default chat template. Returns nullptr if not available - LLAMA_API const char * llama_model_chat_template(const struct llama_model * model); + // If name is NULL, returns the default chat template + LLAMA_API const char * llama_model_chat_template(const struct llama_model * model, const char * name); // Returns the total number of parameters in the model LLAMA_API uint64_t llama_model_n_params(const struct llama_model * model); diff --git a/scripts/get_hf_chat_template.py b/scripts/get_hf_chat_template.py new file mode 100755 index 000000000..23bb1de59 --- /dev/null +++ b/scripts/get_hf_chat_template.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +''' + Fetches the Jinja chat template of a HuggingFace model. + If a model has multiple chat templates, you can specify the variant name. + + Syntax: + ./scripts/get_hf_chat_template.py model_id [variant] + + Examples: + ./scripts/get_hf_chat_template.py NousResearch/Meta-Llama-3-8B-Instruct + ./scripts/get_hf_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use + ./scripts/get_hf_chat_template.py meta-llama/Llama-3.2-3B-Instruct +''' + +import json +import re +import sys + + +def get_hf_chat_template(model_id, variant=None): + try: + # Use huggingface_hub library if available. + # Allows access to gated models if the user has access and ran `huggingface-cli login`. + from huggingface_hub import hf_hub_download + with open(hf_hub_download(repo_id=model_id, filename="tokenizer_config.json")) as f: + config_str = f.read() + except ImportError: + import requests + assert re.match(r"^[\w.-]+/[\w.-]+$", model_id), f"Invalid model ID: {model_id}" + response = requests.get(f"https://huggingface.co/{model_id}/resolve/main/tokenizer_config.json") + if response.status_code == 401: + raise Exception('Access to this model is gated, please request access, authenticate with `huggingface-cli login` and make sure to run `pip install huggingface_hub`') + response.raise_for_status() + config_str = response.text + + try: + config = json.loads(config_str) + except json.JSONDecodeError: + # Fix https://huggingface.co/NousResearch/Meta-Llama-3-8B-Instruct/blob/main/tokenizer_config.json + # (Remove extra '}' near the end of the file) + config = json.loads(re.sub(r'\}([\n\s]*\}[\n\s]*\],[\n\s]*"clean_up_tokenization_spaces")', r'\1', config_str)) + + chat_template = config['chat_template'] + if isinstance(chat_template, str): + return chat_template + else: + variants = { + ct['name']: ct['template'] + for ct in chat_template + } + + def format_variants(): + return ', '.join(f'"{v}"' for v in variants.keys()) + + if variant is None: + if 'default' not in variants: + raise Exception(f'Please specify a chat template variant (one of {format_variants()})') + variant = 'default' + sys.stderr.write(f'Note: picked "default" chat template variant (out of {format_variants()})\n') + elif variant not in variants: + raise Exception(f"Variant {variant} not found in chat template (found {format_variants()})") + + return variants[variant] + + +def main(args): + if len(args) < 1: + raise ValueError("Please provide a model ID and an optional variant name") + model_id = args[0] + variant = None if len(args) < 2 else args[1] + + template = get_hf_chat_template(model_id, variant) + sys.stdout.write(template) + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aeb75bf3e..e1b02e4c0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,7 +29,7 @@ add_library(llama unicode-data.cpp ) -target_include_directories(llama PUBLIC . ../include) +target_include_directories(llama PUBLIC . ../include ../common) target_compile_features (llama PUBLIC cxx_std_17) # don't bump target_link_libraries(llama PUBLIC ggml) diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index d7d277e72..a7260f495 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -179,6 +179,7 @@ static const std::map LLM_KV_NAMES = { { LLM_KV_TOKENIZER_HF_JSON, "tokenizer.huggingface.json" }, { LLM_KV_TOKENIZER_RWKV, "tokenizer.rwkv.world" }, { LLM_KV_TOKENIZER_CHAT_TEMPLATE, "tokenizer.chat_template" }, + { LLM_KV_TOKENIZER_CHAT_TEMPLATE_N, "tokenizer.chat_template.%s" }, { LLM_KV_TOKENIZER_FIM_PRE_ID, "tokenizer.ggml.fim_pre_token_id" }, { LLM_KV_TOKENIZER_FIM_SUF_ID, "tokenizer.ggml.fim_suf_token_id" }, { LLM_KV_TOKENIZER_FIM_MID_ID, "tokenizer.ggml.fim_mid_token_id" }, @@ -1443,10 +1444,11 @@ static const std::map LLM_TENSOR_INFOS = { {LLM_TENSOR_CONVNEXT_GAMMA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, }; -LLM_KV::LLM_KV(llm_arch arch) : arch(arch) {} +LLM_KV::LLM_KV(llm_arch arch, const char * suffix) : arch(arch), suffix(suffix) {} std::string LLM_KV::operator()(llm_kv kv) const { - return ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch)); + return suffix ? ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch), suffix) + : ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch)); } std::string LLM_TN_IMPL::str() const { diff --git a/src/llama-arch.h b/src/llama-arch.h index 349844790..122fdcebe 100644 --- a/src/llama-arch.h +++ b/src/llama-arch.h @@ -177,6 +177,7 @@ enum llm_kv { LLM_KV_TOKENIZER_HF_JSON, LLM_KV_TOKENIZER_RWKV, LLM_KV_TOKENIZER_CHAT_TEMPLATE, + LLM_KV_TOKENIZER_CHAT_TEMPLATE_N, LLM_KV_TOKENIZER_FIM_PRE_ID, LLM_KV_TOKENIZER_FIM_SUF_ID, LLM_KV_TOKENIZER_FIM_MID_ID, @@ -335,9 +336,10 @@ enum llm_tensor_layer { }; struct LLM_KV { - LLM_KV(llm_arch arch); + LLM_KV(llm_arch arch, const char * suffix = nullptr); llm_arch arch; + const char * suffix; std::string operator()(llm_kv kv) const; }; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 590386e64..031b4c30b 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -3955,8 +3955,10 @@ uint64_t llama_model_size(const struct llama_model * model) { return model->size(); } -const char * llama_model_chat_template(const struct llama_model * model) { - const auto & it = model->gguf_kv.find(LLM_KV(model->arch)(LLM_KV_TOKENIZER_CHAT_TEMPLATE)); +const char * llama_model_chat_template(const struct llama_model * model, const char * name) { + const auto key = name ? LLM_KV(model->arch, name)(LLM_KV_TOKENIZER_CHAT_TEMPLATE_N) + : LLM_KV(model->arch)(LLM_KV_TOKENIZER_CHAT_TEMPLATE); + const auto & it = model->gguf_kv.find(key); if (it == model->gguf_kv.end()) { return nullptr; } diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index 5ec318bd4..190643136 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -7,6 +7,16 @@ #include "llama.h" #include "common.h" +#include "chat-template.hpp" + +static std::string normalize_newlines(const std::string & s) { +#ifdef _WIN32 + static const std::regex nl_regex("\r\n"); + return std::regex_replace(s, nl_regex, "\n"); +#else + return s; +#endif +} int main(void) { std::vector conversation { @@ -21,156 +31,228 @@ int main(void) { std::string name; std::string template_str; std::string expected_output; + std::string expected_output_jinja; + std::string bos_token = ""; + std::string eos_token = ""; + bool supported_with_jinja = true; }; std::vector test_cases { { /* .name= */ "teknium/OpenHermes-2.5-Mistral-7B", /* .template_str= */ "{% for message in messages %}{{'<|im_start|>' + message['role'] + '\\n' + message['content'] + '<|im_end|>' + '\\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\\n' }}{% endif %}", /* .expected_output= */ "<|im_start|>system\nYou are a helpful assistant<|im_end|>\n<|im_start|>user\nHello<|im_end|>\n<|im_start|>assistant\nHi there<|im_end|>\n<|im_start|>user\nWho are you<|im_end|>\n<|im_start|>assistant\n I am an assistant <|im_end|>\n<|im_start|>user\nAnother question<|im_end|>\n<|im_start|>assistant\n", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "mistralai/Mistral-7B-Instruct-v0.2 (NOTE: Old pre-v1 without a system prompt)", /* .template_str= */ "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if message['role'] == 'user' %}{{ '[INST] ' + message['content'] + ' [/INST]' }}{% elif message['role'] == 'assistant' %}{{ message['content'] + eos_token}}{% else %}{{ raise_exception('Only user and assistant roles are supported!') }}{% endif %}{% endfor %}", /* .expected_output= */ "[INST] You are a helpful assistant\nHello [/INST]Hi there[INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "TheBloke/FusionNet_34Bx2_MoE-AWQ", - /* .template_str= */ "{%- for idx in range(0, messages|length) -%}\\n{%- if messages[idx]['role'] == 'user' -%}\\n{%- if idx > 1 -%}\\n{{- bos_token + '[INST] ' + messages[idx]['content'] + ' [/INST]' -}}\\n{%- else -%}\\n{{- messages[idx]['content'] + ' [/INST]' -}}\\n{%- endif -%}\\n{% elif messages[idx]['role'] == 'system' %}\\n{{- '[INST] <>\\\\n' + messages[idx]['content'] + '\\\\n<>\\\\n\\\\n' -}}\\n{%- elif messages[idx]['role'] == 'assistant' -%}\\n{{- ' ' + messages[idx]['content'] + ' ' + eos_token -}}\\n{% endif %}\\n{% endfor %}", - /* .expected_output= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST]Hi there[INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .template_str= */ "{%- for idx in range(0, messages|length) -%}\n{%- if messages[idx]['role'] == 'user' -%}\n{%- if idx > 1 -%}\n{{- bos_token + '[INST] ' + messages[idx]['content'] + ' [/INST]' -}}\n{%- else -%}\n{{- messages[idx]['content'] + ' [/INST]' -}}\n{%- endif -%}\n{% elif messages[idx]['role'] == 'system' %}\n{{- '[INST] <>\\n' + messages[idx]['content'] + '\\n<>\\n\\n' -}}\n{%- elif messages[idx]['role'] == 'assistant' -%}\n{{- ' ' + messages[idx]['content'] + ' ' + eos_token -}}\n{% endif %}\n{% endfor %}", + /* .expected_output= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST]Hi there[INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .expected_output_jinja= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST] Hi there [INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "bofenghuang/vigogne-2-70b-chat", - /* .template_str= */ "{{ bos_token }}{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif true == true and not '<>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<>\\\\n' + system_message + '\\\\n<>\\\\n\\\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<>\\\\n' + content.strip() + '\\\\n<>\\\\n\\\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}", - /* .expected_output= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST]Hi there[INST] Who are you [/INST]I am an assistant[INST] Another question [/INST]", + /* .template_str= */ "{{ bos_token }}{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif true == true and not '<>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<>\\n' + system_message + '\\n<>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<>\\n' + content.strip() + '\\n<>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}", + /* .expected_output= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST]Hi there[INST] Who are you [/INST]I am an assistant[INST] Another question [/INST]", + /* .expected_output_jinja= */ "[INST] <>\nYou are a helpful assistant\n<>\n\nHello [/INST] Hi there [INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "mlabonne/AlphaMonarch-7B", /* .template_str= */ "{% for message in messages %}{{bos_token + message['role'] + '\\n' + message['content'] + eos_token + '\\n'}}{% endfor %}{% if add_generation_prompt %}{{ bos_token + 'assistant\\n' }}{% endif %}", - /* .expected_output= */ "system\nYou are a helpful assistant\nuser\nHello\nassistant\nHi there\nuser\nWho are you\nassistant\n I am an assistant \nuser\nAnother question\nassistant\n", + /* .expected_output= */ "system\nYou are a helpful assistant\nuser\nHello\nassistant\nHi there\nuser\nWho are you\nassistant\n I am an assistant \nuser\nAnother question\nassistant\n", + /* .expected_output_jinja= */ "system\nYou are a helpful assistant\nuser\nHello\nassistant\nHi there\nuser\nWho are you\nassistant\n I am an assistant \nuser\nAnother question\nassistant\n", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "google/gemma-7b-it", /* .template_str= */ "{% if messages[0]['role'] == 'system' %}{{ raise_exception('System role not supported') }}{% endif %}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '' + role + '\\n' + message['content'] | trim + '\\n' }}{% endfor %}{% if add_generation_prompt %}{{'model\\n'}}{% endif %}", - /* .expected_output= */ "user\nYou are a helpful assistant\n\nHello\nmodel\nHi there\nuser\nWho are you\nmodel\nI am an assistant\nuser\nAnother question\nmodel\n", + /* .expected_output= */ "user\nYou are a helpful assistant\n\nHello\nmodel\nHi there\nuser\nWho are you\nmodel\nI am an assistant\nuser\nAnother question\nmodel\n", + /* .expected_output_jinja= */ "user\nYou are a helpful assistant\nHello\nmodel\nHi there\nuser\nWho are you\nmodel\nI am an assistant\nuser\nAnother question\nmodel\n", }, { /* .name= */ "OrionStarAI/Orion-14B-Chat", /* .template_str= */ "{% for message in messages %}{% if loop.first %}{{ bos_token }}{% endif %}{% if message['role'] == 'user' %}{{ 'Human: ' + message['content'] + '\\n\\nAssistant: ' + eos_token }}{% elif message['role'] == 'assistant' %}{{ message['content'] + eos_token }}{% endif %}{% endfor %}", - /* .expected_output= */ "Human: You are a helpful assistant\n\nHello\n\nAssistant: Hi thereHuman: Who are you\n\nAssistant: I am an assistant Human: Another question\n\nAssistant: ", + /* .expected_output= */ "Human: You are a helpful assistant\n\nHello\n\nAssistant: Hi thereHuman: Who are you\n\nAssistant: I am an assistant Human: Another question\n\nAssistant: ", + /* .expected_output_jinja= */ "Human: You are a helpful assistant\nHello\n\nAssistant: Hi thereHuman: Who are you\n\nAssistant: I am an assistant Human: Another question\n\nAssistant: ", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "openchat/openchat-3.5-0106", // The included chat_template differs from the author's suggestions here: https://huggingface.co/openchat/openchat_3.5/discussions/5#65448109b4a3f3a2f486fd9d // So we match against the included template but implement the suggested version. /* .template_str= */ "{{ bos_token }}{% for message in messages %}{{ 'GPT4 Correct ' + message['role'].title() + ': ' + message['content'] + '<|end_of_turn|>'}}{% endfor %}{% if add_generation_prompt %}{{ 'GPT4 Correct Assistant:' }}{% endif %}", - /* .expected_output= */ "You are a helpful assistant<|end_of_turn|>GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi there<|end_of_turn|>GPT4 Correct User: Who are you<|end_of_turn|>GPT4 Correct Assistant: I am an assistant <|end_of_turn|>GPT4 Correct User: Another question<|end_of_turn|>GPT4 Correct Assistant:", + /* .expected_output= */ "You are a helpful assistant<|end_of_turn|>GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi there<|end_of_turn|>GPT4 Correct User: Who are you<|end_of_turn|>GPT4 Correct Assistant: I am an assistant <|end_of_turn|>GPT4 Correct User: Another question<|end_of_turn|>GPT4 Correct Assistant:", + /* .expected_output_jinja= */ "GPT4 Correct System: You are a helpful assistant<|end_of_turn|>GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi there<|end_of_turn|>GPT4 Correct User: Who are you<|end_of_turn|>GPT4 Correct Assistant: I am an assistant <|end_of_turn|>GPT4 Correct User: Another question<|end_of_turn|>GPT4 Correct Assistant:", }, { /* .name= */ "deepseek-ai/deepseek-coder-33b-instruct", /* .template_str= */ "{% if not add_generation_prompt is defined %}\n{% set add_generation_prompt = false %}\n{% endif %}\n{%- set ns = namespace(found=false) -%}\n{%- for message in messages -%}\n {%- if message['role'] == 'system' -%}\n {%- set ns.found = true -%}\n {%- endif -%}\n{%- endfor -%}\n{{bos_token}}{%- if not ns.found -%}\n{{'You are an AI programming assistant, utilizing the Deepseek Coder model, developed by Deepseek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer\\n'}}\n{%- endif %}\n{%- for message in messages %}\n {%- if message['role'] == 'system' %}\n{{ message['content'] }}\n {%- else %}\n {%- if message['role'] == 'user' %}\n{{'### Instruction:\\n' + message['content'] + '\\n'}}\n {%- else %}\n{{'### Response:\\n' + message['content'] + '\\n<|EOT|>\\n'}}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{% if add_generation_prompt %}\n{{'### Response:'}}\n{% endif %}", /* .expected_output= */ "You are a helpful assistant### Instruction:\nHello\n### Response:\nHi there\n<|EOT|>\n### Instruction:\nWho are you\n### Response:\n I am an assistant \n<|EOT|>\n### Instruction:\nAnother question\n### Response:\n", + /* .expected_output_jinja= */ "", }, { /* .name= */ "eachadea/vicuna-13b-1.1", // No template included in tokenizer_config.json, so this template likely needs to be manually set. /* .template_str= */ "{%- for message in messages %}{%- if message['role'] == 'system' -%}{{- '' + message['content'] + '\n\n' -}}{%- else -%}{%- if message['role'] == 'user' -%}{{-'USER: ' + message['content'] + '\n'-}}{%- else -%}{{-'ASSISTANT: ' + message['content'] + '\n' -}}{%- endif -%}{%- endif -%}{%- endfor -%}{%- if add_generation_prompt -%}{{-'ASSISTANT:'-}}{%- endif -%}", /* .expected_output= */ "You are a helpful assistant\n\nUSER: Hello\nASSISTANT: Hi there\nUSER: Who are you\nASSISTANT: I am an assistant \nUSER: Another question\nASSISTANT:", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "Orca-Vicuna", // No template included in tokenizer_config.json, so this template likely needs to be manually set. /* .template_str= */ "{%- for message in messages %}{%- if message['role'] == 'system' -%}{{-'SYSTEM: ' + message['content'] + '\n' -}}{%- else -%}{%- if message['role'] == 'user' -%}{{-'USER: ' + message['content'] + '\n'-}}{%- else -%}{{-'ASSISTANT: ' + message['content'] + '\n' -}}{%- endif -%}{%- endif -%}{%- endfor -%}{%- if add_generation_prompt -%}{{-'ASSISTANT:'-}}{%- endif -%}", /* .expected_output= */ "SYSTEM: You are a helpful assistant\nUSER: Hello\nASSISTANT: Hi there\nUSER: Who are you\nASSISTANT: I am an assistant \nUSER: Another question\nASSISTANT:", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "CohereForAI/c4ai-command-r-plus", /* .template_str= */ "{{ bos_token }}{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif false == true %}{% set loop_messages = messages %}{% set system_message = 'You are Command-R, a brilliant, sophisticated, AI-assistant trained to assist human users by providing thorough responses. You are trained by Cohere.' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% if system_message != false %}{{ '<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>' + system_message + '<|END_OF_TURN_TOKEN|>' }}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% set content = message['content'] %}{% if message['role'] == 'user' %}{{ '<|START_OF_TURN_TOKEN|><|USER_TOKEN|>' + content.strip() + '<|END_OF_TURN_TOKEN|>' }}{% elif message['role'] == 'assistant' %}{{ '<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>' + content.strip() + '<|END_OF_TURN_TOKEN|>' }}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ '<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>' }}{% endif %}", /* .expected_output= */ "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>You are a helpful assistant<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hello<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>Hi there<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Who are you<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>I am an assistant<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Another question<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>", + /* .expected_output_jinja= */ "", }, { /* .name= */ "Llama-3", /* .template_str= */ "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}", /* .expected_output= */ "<|start_header_id|>system<|end_header_id|>\n\nYou are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>\n\nHello<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\nHi there<|eot_id|><|start_header_id|>user<|end_header_id|>\n\nWho are you<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\nI am an assistant<|eot_id|><|start_header_id|>user<|end_header_id|>\n\nAnother question<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n", + /* .expected_output_jinja= */ "", }, { /* .name= */ "Phi-3-mini", /* .template_str= */ "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'user') %}{{'<|user|>' + '\n' + message['content'] + '<|end|>' + '\n' + '<|assistant|>' + '\n'}}{% elif (message['role'] == 'assistant') %}{{message['content'] + '<|end|>' + '\n'}}{% endif %}{% endfor %}", - /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output_jinja= */ "<|user|>\nYou are a helpful assistant\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", }, { /* .name= */ "Phi-3-small", /* .template_str= */ "{{ bos_token }}{% for message in messages %}{{'<|' + message['role'] + '|>' + '\n' + message['content'] + '<|end|>\n' }}{% endfor %}{% if add_generation_prompt %}{{ '<|assistant|>\n' }}{% else %}{{ eos_token }}{% endif %}", /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output_jinja= */ "", }, { /* .name= */ "Phi-3-medium", /* .template_str= */ "{% for message in messages %}{% if (message['role'] == 'user') %}{{'<|user|>' + '\n' + message['content'] + '<|end|>' + '\n' + '<|assistant|>' + '\n'}}{% elif (message['role'] == 'assistant') %}{{message['content'] + '<|end|>' + '\n'}}{% endif %}{% endfor %}", - /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output_jinja= */ "<|user|>\nYou are a helpful assistant\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", }, { /* .name= */ "Phi-3-vision", /* .template_str= */ "{% for message in messages %}{{'<|' + message['role'] + '|>' + '\n' + message['content'] + '<|end|>\n' }}{% endfor %}{% if add_generation_prompt and messages[-1]['role'] != 'assistant' %}{{- '<|assistant|>\n' -}}{% endif %}", /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|end|>\n<|user|>\nHello<|end|>\n<|assistant|>\nHi there<|end|>\n<|user|>\nWho are you<|end|>\n<|assistant|>\n I am an assistant <|end|>\n<|user|>\nAnother question<|end|>\n<|assistant|>\n", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "ChatGLM3", /* .template_str= */ "{% for message in messages %}{% if loop.first %}[gMASK]sop<|{{ message['role'] }}|>\n {{ message['content'] }}{% else %}<|{{ message['role'] }}|>\n {{ message['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>{% endif %}", - /* .expected_output= */ "[gMASK]sop<|system|>\n You are a helpful assistant<|user|>\n Hello<|assistant|>\n Hi there<|user|>\n Who are you<|assistant|>\n I am an assistant <|user|>\n Another question<|assistant|>", + /* .expected_output= */ "[gMASK]sop<|system|>\n You are a helpful assistant<|user|>\n Hello<|assistant|>\n Hi there<|user|>\n Who are you<|assistant|>\n I am an assistant <|user|>\n Another question<|assistant|>", + /* .expected_output_jinja= */ "[gMASK]sop<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", }, { /* .name= */ "ChatGLM4", /* .template_str= */ u8"[gMASK]{% for item in messages %}{% if item['tools'] is defined %}<|system|>\n你是一个名为 ChatGLM 的人工智能助手。你是基于智谱AI训练的语言模型 GLM-4 模型开发的,你的任务是针对用户的问题和要求提供适当的答复和支持。\n\n# 可用工具{% set tools = item['tools'] %}{% for tool in tools %}{% if tool['type'] == 'function' %}\n\n## {{ tool['function']['name'] }}\n\n{{ tool['function'] | tojson(indent=4) }}\n......{% endif %}{% endfor %}{% endif %}{% if item['content'] %}<|{{ item['role'] }}|>{{ item['metadata'] }}\n{{ item['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>{% endif %}", /* .expected_output= */ "[gMASK]<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "MiniCPM-3B-OpenHermes-2.5-v2-GGUF", /* .template_str= */ u8"{% for message in messages %}{% if message['role'] == 'user' %}{{'<用户>' + message['content'].strip() + ''}}{% else %}{{message['content'].strip()}}{% endif %}{% endfor %}", /* .expected_output= */ u8"You are a helpful assistant<用户>HelloHi there<用户>Who are youI am an assistant<用户>Another question", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "DeepSeek-V2", /* .template_str= */ "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{{ bos_token }}{% for message in messages %}{% if message['role'] == 'user' %}{{ 'User: ' + message['content'] + '\n\n' }}{% elif message['role'] == 'assistant' %}{{ 'Assistant: ' + message['content'] + eos_token }}{% elif message['role'] == 'system' %}{{ message['content'] + '\n\n' }}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ 'Assistant:' }}{% endif %}", /* .expected_output= */ u8"You are a helpful assistant\n\nUser: Hello\n\nAssistant: Hi there<|end▁of▁sentence|>User: Who are you\n\nAssistant: I am an assistant <|end▁of▁sentence|>User: Another question\n\nAssistant:", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "<|end▁of▁sentence|>", }, { /* .name= */ "ibm-granite/granite-3.0-8b-instruct", /* .template_str= */ "{%- if tools %}\n {{- '<|start_of_role|>available_tools<|end_of_role|>\n' }}\n {%- for tool in tools %}\n {{- tool | tojson(indent=4) }}\n {%- if not loop.last %}\n {{- '\n\n' }}\n {%- endif %}\n {%- endfor %}\n {{- '<|end_of_text|>\n' }}\n{%- endif %}\n{%- for message in messages %}\n {%- if message['role'] == 'system' %}\n {{- '<|start_of_role|>system<|end_of_role|>' + message['content'] + '<|end_of_text|>\n' }}\n {%- elif message['role'] == 'user' %}\n {{- '<|start_of_role|>user<|end_of_role|>' + message['content'] + '<|end_of_text|>\n' }}\n {%- elif message['role'] == 'assistant' %}\n {{- '<|start_of_role|>assistant<|end_of_role|>' + message['content'] + '<|end_of_text|>\n' }}\n {%- elif message['role'] == 'assistant_tool_call' %}\n {{- '<|start_of_role|>assistant<|end_of_role|><|tool_call|>' + message['content'] + '<|end_of_text|>\n' }}\n {%- elif message['role'] == 'tool_response' %}\n {{- '<|start_of_role|>tool_response<|end_of_role|>' + message['content'] + '<|end_of_text|>\n' }}\n {%- endif %}\n {%- if loop.last and add_generation_prompt %}\n {{- '<|start_of_role|>assistant<|end_of_role|>' }}\n {%- endif %}\n{%- endfor %}", - /* .expected_output= */ "<|start_of_role|>system<|end_of_role|>You are a helpful assistant<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Hello<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>Hi there<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Who are you<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|> I am an assistant <|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Another question<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>\n", + /* .expected_output= */ "<|start_of_role|>system<|end_of_role|>You are a helpful assistant<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Hello<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>Hi there<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Who are you<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|> I am an assistant <|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Another question<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>\n", + /* .expected_output_jinja= */ "<|start_of_role|>system<|end_of_role|>You are a helpful assistant<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Hello<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>Hi there<|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Who are you<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|> I am an assistant <|end_of_text|>\n<|start_of_role|>user<|end_of_role|>Another question<|end_of_text|>\n<|start_of_role|>assistant<|end_of_role|>", }, { /* .name= */ "mistralai/Mistral-7B-Instruct-v0.2 (mistralai 'v1' template with a system prompt)", /* .template_str= */ "{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content'] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set loop_messages = messages %}\n{%- endif %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}\n {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}\n {%- endif %}\n {%- if message['role'] == 'user' %}\n {%- if loop.first and system_message is defined %}\n {{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }}\n {%- else %}\n {{- ' [INST] ' + message['content'] + ' [/INST]' }}\n {%- endif %}\n {%- elif message['role'] == 'assistant' %}\n {{- ' ' + message['content'] + eos_token}}\n {%- else %}\n {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }}\n {%- endif %}\n{%- endfor %}\n", /* .expected_output= */ " [INST] You are a helpful assistant\n\nHello [/INST] Hi there [INST] Who are you [/INST] I am an assistant [INST] Another question [/INST]", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "Mistral-Large-Instruct-2407 (mistralai 'v3' template; modified to have system prompt at start)", /* .template_str= */ "{%- if messages[0][\"role\"] == \"system\" %}\n {%- set system_message = messages[0][\"content\"] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set loop_messages = messages %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n{%- set user_messages = loop_messages | selectattr(\"role\", \"equalto\", \"user\") | list %}\n\n{#- This block checks for alternating user/assistant messages, skipping tool calling messages #}\n{%- set ns = namespace() %}\n{%- set ns.index = 0 %}\n{%- for message in loop_messages %}\n {%- if not (message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n {%- if (message[\"role\"] == \"user\") != (ns.index % 2 == 0) %}\n {{- raise_exception(\"After the optional system message, conversation roles must alternate user/assistant/user/assistant/...\") }}\n {%- endif %}\n {%- set ns.index = ns.index + 1 %}\n {%- endif %}\n{%- endfor %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n {%- if message[\"role\"] == \"user\" %}\n {%- if tools is not none and (message == user_messages[-1]) %}\n {{- \"[AVAILABLE_TOOLS] [\" }}\n {%- for tool in tools %}\n {%- set tool = tool.function %}\n {{- '{\"type\": \"function\", \"function\": {' }}\n {%- for key, val in tool.items() if key != \"return\" %}\n {%- if val is string %}\n {{- '\"' + key + '\": \"' + val + '\"' }}\n {%- else %}\n {{- '\"' + key + '\": ' + val|tojson }}\n {%- endif %}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \"}}\" }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]\" }}\n {%- endif %}\n {%- endfor %}\n {{- \"[/AVAILABLE_TOOLS]\" }}\n {%- endif %}\n {%- if loop.last and system_message is defined %}\n {{- \"[INST] \" + system_message + \"\\n\\n\" + message[\"content\"] + \"[/INST]\" }}\n {%- else %}\n {{- \"[INST] \" + message[\"content\"] + \"[/INST]\" }}\n {%- endif %}\n {%- elif message.tool_calls is defined and message.tool_calls is not none %}\n {{- \"[TOOL_CALLS] [\" }}\n {%- for tool_call in message.tool_calls %}\n {%- set out = tool_call.function|tojson %}\n {{- out[:-1] }}\n {%- if not tool_call.id is defined or tool_call.id|length != 9 %}\n {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n {%- endif %}\n {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]\" + eos_token }}\n {%- endif %}\n {%- endfor %}\n {%- elif message[\"role\"] == \"assistant\" %}\n {{- \" \" + message[\"content\"]|trim + eos_token}}\n {%- elif message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {%- if message.content is defined and message.content.content is defined %}\n {%- set content = message.content.content %}\n {%- else %}\n {%- set content = message.content %}\n {%- endif %}\n {{- '[TOOL_RESULTS] {\"content\": ' + content|string + \", \" }}\n {%- if not message.tool_call_id is defined or message.tool_call_id|length != 9 %}\n {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n {%- endif %}\n {{- '\"call_id\": \"' + message.tool_call_id + '\"}[/TOOL_RESULTS]' }}\n {%- else %}\n {{- raise_exception(\"Only user and assistant roles are supported, with the exception of an initial optional system message!\") }}\n {%- endif %}\n{%- endfor %}\n", - /* .expected_output= */ "[INST] You are a helpful assistant\n\nHello[/INST] Hi there[INST] Who are you[/INST] I am an assistant[INST] Another question[/INST]", + /* .expected_output= */ "[INST] You are a helpful assistant\n\nHello[/INST] Hi there[INST] Who are you[/INST] I am an assistant[INST] Another question[/INST]", + /* .expected_output_jinja= */ "[INST] Hello[/INST] Hi there[INST] Who are you[/INST] I am an assistant[INST] You are a helpful assistant\n\nAnother question[/INST]", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "Mistral-Nemo-Instruct-2407 (mistralai 'v3-tekken' template; modified to have system prompt at start)", /* .template_str= */ "{%- if messages[0][\"role\"] == \"system\" %}\n {%- set system_message = messages[0][\"content\"] %}\n {%- set loop_messages = messages[1:] %}\n{%- else %}\n {%- set loop_messages = messages %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n{%- set user_messages = loop_messages | selectattr(\"role\", \"equalto\", \"user\") | list %}\n\n{#- This block checks for alternating user/assistant messages, skipping tool calling messages #}\n{%- set ns = namespace() %}\n{%- set ns.index = 0 %}\n{%- for message in loop_messages %}\n {%- if not (message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n {%- if (message[\"role\"] == \"user\") != (ns.index % 2 == 0) %}\n {{- raise_exception(\"After the optional system message, conversation roles must alternate user/assistant/user/assistant/...\") }}\n {%- endif %}\n {%- set ns.index = ns.index + 1 %}\n {%- endif %}\n{%- endfor %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n {%- if message[\"role\"] == \"user\" %}\n {%- if tools is not none and (message == user_messages[-1]) %}\n {{- \"[AVAILABLE_TOOLS][\" }}\n {%- for tool in tools %}\n {%- set tool = tool.function %}\n {{- '{\"type\": \"function\", \"function\": {' }}\n {%- for key, val in tool.items() if key != \"return\" %}\n {%- if val is string %}\n {{- '\"' + key + '\": \"' + val + '\"' }}\n {%- else %}\n {{- '\"' + key + '\": ' + val|tojson }}\n {%- endif %}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- endif %}\n {%- endfor %}\n {{- \"}}\" }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]\" }}\n {%- endif %}\n {%- endfor %}\n {{- \"[/AVAILABLE_TOOLS]\" }}\n {%- endif %}\n {%- if loop.last and system_message is defined %}\n {{- \"[INST]\" + system_message + \"\\n\\n\" + message[\"content\"] + \"[/INST]\" }}\n {%- else %}\n {{- \"[INST]\" + message[\"content\"] + \"[/INST]\" }}\n {%- endif %}\n {%- elif (message.tool_calls is defined and message.tool_calls is not none) %}\n {{- \"[TOOL_CALLS][\" }}\n {%- for tool_call in message.tool_calls %}\n {%- set out = tool_call.function|tojson %}\n {{- out[:-1] }}\n {%- if not tool_call.id is defined or tool_call.id|length != 9 %}\n {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n {%- endif %}\n {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n {%- if not loop.last %}\n {{- \", \" }}\n {%- else %}\n {{- \"]\" + eos_token }}\n {%- endif %}\n {%- endfor %}\n {%- elif message[\"role\"] == \"assistant\" %}\n {{- message[\"content\"] + eos_token}}\n {%- elif message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n {%- if message.content is defined and message.content.content is defined %}\n {%- set content = message.content.content %}\n {%- else %}\n {%- set content = message.content %}\n {%- endif %}\n {{- '[TOOL_RESULTS]{\"content\": ' + content|string + \", \" }}\n {%- if not message.tool_call_id is defined or message.tool_call_id|length != 9 %}\n {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n {%- endif %}\n {{- '\"call_id\": \"' + message.tool_call_id + '\"}[/TOOL_RESULTS]' }}\n {%- else %}\n {{- raise_exception(\"Only user and assistant roles are supported, with the exception of an initial optional system message!\") }}\n {%- endif %}\n{%- endfor %}\n", - /* .expected_output= */ "[INST]You are a helpful assistant\n\nHello[/INST]Hi there[INST]Who are you[/INST] I am an assistant [INST]Another question[/INST]", + /* .expected_output= */ "[INST]You are a helpful assistant\n\nHello[/INST]Hi there[INST]Who are you[/INST] I am an assistant [INST]Another question[/INST]", + /* .expected_output_jinja= */ "[INST]Hello[/INST]Hi there[INST]Who are you[/INST] I am an assistant [INST]You are a helpful assistant\n\nAnother question[/INST]", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "mistralai/Mistral-Large-Instruct-2411 (mistralai 'v7' template)", /* .template_str= */ "{{ bos_token }}{% for message in messages %}{% if message['role'] == 'user' %}{{ '[INST] ' + message['content'] + '[/INST]' }}{% elif message['role'] == 'system' %}{{ '[SYSTEM_PROMPT] ' + message['content'] + '[/SYSTEM_PROMPT]' }}{% elif message['role'] == 'assistant' %}{{ ' ' + message['content'] + eos_token }}{% else %}{{ raise_exception('Only user, system and assistant roles are supported!') }}{% endif %}{% endfor %}", /* .expected_output= */ "[SYSTEM_PROMPT] You are a helpful assistant[/SYSTEM_PROMPT][INST] Hello[/INST] Hi there[INST] Who are you[/INST] I am an assistant [INST] Another question[/INST]", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "ai-sage/GigaChat-20B-A3B-instruct", /* .template_str= */ "{% if messages[0]['role'] == 'system' -%}\n {%- set loop_messages = messages[1:] -%}\n {%- set system_message = bos_token + messages[0]['content'] + additional_special_tokens[1] -%}\n{%- else -%}\n {%- set loop_messages = messages -%}\n {%- set system_message = bos_token + '' -%}\n{%- endif -%}\n{%- for message in loop_messages %}\n {% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}\n {{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}\n {% endif %}\n \n {%- if loop.index0 == 0 -%}\n {{ system_message -}}\n {%- endif -%}\n {%- if message['role'] == 'user' -%}\n {{ message['role'] + additional_special_tokens[0] + message['content'] + additional_special_tokens[1] -}}\n {{ 'available functions' + additional_special_tokens[0] + additional_special_tokens[2] + additional_special_tokens[3] + additional_special_tokens[1] -}}\n {%- endif -%}\n {%- if message['role'] == 'assistant' -%}\n {{ message['role'] + additional_special_tokens[0] + message['content'] + additional_special_tokens[1] -}}\n {%- endif -%}\n {%- if loop.last and add_generation_prompt -%}\n {{ 'assistant' + additional_special_tokens[0] -}}\n {%- endif -%}\n{%- endfor %}", /* .expected_output= */ "You are a helpful assistant<|message_sep|>user<|role_sep|>Hello<|message_sep|>available functions<|role_sep|>[]<|message_sep|>assistant<|role_sep|>Hi there<|message_sep|>user<|role_sep|>Who are you<|message_sep|>available functions<|role_sep|>[]<|message_sep|>assistant<|role_sep|> I am an assistant <|message_sep|>user<|role_sep|>Another question<|message_sep|>available functions<|role_sep|>[]<|message_sep|>assistant<|role_sep|>", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", + /* .supported_with_jinja= */ false, // Requires additional_special_tokens as extra context }, { /* .name= */ "Infinigence/Megrez-3B-Instruct", /* .template_str= */ u8"{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|role_start|>system<|role_end|>你是Megrez-3B-Instruct,将针对用户的问题给出详细的、积极的回答。<|turn_end|>' }}{% endif %}{{ '<|role_start|>' + message['role'] + '<|role_end|>' + message['content'] + '<|turn_end|>' }}{% endfor %}{% if add_generation_prompt %}{{ '<|role_start|>assistant<|role_end|>' }}{% endif %}", /* .expected_output= */ "<|role_start|>system<|role_end|>You are a helpful assistant<|turn_end|><|role_start|>user<|role_end|>Hello<|turn_end|><|role_start|>assistant<|role_end|>Hi there<|turn_end|><|role_start|>user<|role_end|>Who are you<|turn_end|><|role_start|>assistant<|role_end|> I am an assistant <|turn_end|><|role_start|>user<|role_end|>Another question<|turn_end|><|role_start|>assistant<|role_end|>", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, { /* .name= */ "phi-4", /* .template_str= */ "{% for message in messages %}{% if (message['role'] == 'system') %}{{'<|im_start|>system<|im_sep|>' + message['content'] + '<|im_end|>'}}{% elif (message['role'] == 'user') %}{{'<|im_start|>user<|im_sep|>' + message['content'] + '<|im_end|><|im_start|>assistant<|im_sep|>'}}{% elif (message['role'] == 'assistant') %}{{message['content'] + '<|im_end|>'}}{% endif %}{% endfor %}", /* .expected_output= */ "<|im_start|>system<|im_sep|>You are a helpful assistant<|im_end|><|im_start|>user<|im_sep|>Hello<|im_end|><|im_start|>assistant<|im_sep|>Hi there<|im_end|><|im_start|>user<|im_sep|>Who are you<|im_end|><|im_start|>assistant<|im_sep|> I am an assistant <|im_end|><|im_start|>user<|im_sep|>Another question<|im_end|><|im_start|>assistant<|im_sep|>", + /* .expected_output_jinja= */ "", + /* .bos_token= */ "", + /* .eos_token= */ "", }, }; std::vector formatted_chat(1024); @@ -190,6 +272,7 @@ int main(void) { // test invalid chat template res = llama_chat_apply_template("INVALID TEMPLATE", conversation.data(), conversation.size(), true, formatted_chat.data(), formatted_chat.size()); assert(res < 0); + const auto add_generation_prompt = true; for (const auto & test_case : test_cases) { printf("\n\n=== %s ===\n\n", test_case.name.c_str()); @@ -198,26 +281,59 @@ int main(void) { test_case.template_str.c_str(), conversation.data(), conversation.size(), - true, + add_generation_prompt, formatted_chat.data(), formatted_chat.size() ); formatted_chat.resize(res); std::string output(formatted_chat.data(), formatted_chat.size()); - printf("%s\n", output.c_str()); - printf("-------------------------\n"); - assert(output == test_case.expected_output); + if (output != test_case.expected_output) { + printf("Expected:\n%s\n", test_case.expected_output.c_str()); + printf("-------------------------\n"); + printf("Actual:\n%s\n", output.c_str()); + fflush(stdout); + assert(output == test_case.expected_output); + } } + json messages = json::array(); + for (const auto & msg : conversation) { + messages.push_back({ + {"role", msg.role}, + {"content", msg.content}, + }); + } + for (const auto & test_case : test_cases) { + if (!test_case.supported_with_jinja) { + continue; + } + printf("\n\n=== %s (jinja) ===\n\n", test_case.name.c_str()); + try { + minja::chat_template tmpl(test_case.template_str, test_case.bos_token, test_case.eos_token); + auto output = normalize_newlines(tmpl.apply(messages, json(), add_generation_prompt)); + auto expected_output = normalize_newlines(test_case.expected_output_jinja.empty() ? test_case.expected_output : test_case.expected_output_jinja); + if (output != expected_output) { + printf("Expected:\n%s\n", expected_output.c_str()); + printf("-------------------------\n"); + printf("Actual:\n%s\n", output.c_str()); + fflush(stdout); + assert(output == expected_output); + } + } catch (const std::exception & e) { + printf("ERROR: %s\n", e.what()); + assert(false); + } + } // test llama_chat_format_single for system message printf("\n\n=== llama_chat_format_single (system message) ===\n\n"); std::vector chat2; common_chat_msg sys_msg{"system", "You are a helpful assistant"}; - auto fmt_sys = [&](std::string tmpl) { - auto output = common_chat_format_single(nullptr, tmpl, chat2, sys_msg, false); - printf("fmt_sys(%s) : %s\n", tmpl.c_str(), output.c_str()); + auto fmt_sys = [&](std::string tmpl_str) { + minja::chat_template tmpl(tmpl_str, "", ""); + auto output = common_chat_format_single(tmpl, chat2, sys_msg, false, /* use_jinja= */ false); + printf("fmt_sys(%s) : %s\n", tmpl_str.c_str(), output.c_str()); printf("-------------------------\n"); return output; }; @@ -241,9 +357,10 @@ int main(void) { chat2.push_back({"assistant", "I am assistant"}); common_chat_msg new_msg{"user", "How are you"}; - auto fmt_single = [&](std::string tmpl) { - auto output = common_chat_format_single(nullptr, tmpl, chat2, new_msg, true); - printf("fmt_single(%s) : %s\n", tmpl.c_str(), output.c_str()); + auto fmt_single = [&](std::string tmpl_str) { + minja::chat_template tmpl(tmpl_str, "", ""); + auto output = common_chat_format_single(tmpl, chat2, new_msg, true, /* use_jinja= */ false); + printf("fmt_single(%s) : %s\n", tmpl_str.c_str(), output.c_str()); printf("-------------------------\n"); return output; }; @@ -258,7 +375,5 @@ int main(void) { assert(fmt_single("llama3") == "<|start_header_id|>user<|end_header_id|>\n\nHow are you<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"); assert(fmt_single("gigachat") == "user<|role_sep|>How are you<|message_sep|>available functions<|role_sep|>[]<|message_sep|>assistant<|role_sep|>"); - printf("Test chat templates: OK\n"); - return 0; } From 3e3357fd77bcf5bd8cfcc53ca53d4a5532e67e1b Mon Sep 17 00:00:00 2001 From: tc-mb <157115220+tc-mb@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:35:48 +0800 Subject: [PATCH 006/162] llava : support Minicpm-omni (#11289) * init * add readme * update readme * no use make * update readme * update fix code * fix editorconfig-checker * no change convert py * use clip_image_u8_free --- examples/llava/README-minicpmo2.6.md | 46 +++++++++++++++++++ examples/llava/clip.cpp | 29 +++++++++++- examples/llava/llava.cpp | 13 ++---- examples/llava/minicpmv-cli.cpp | 10 +++- .../minicpmv-convert-image-encoder-to-gguf.py | 15 ++++-- examples/llava/minicpmv-surgery.py | 2 +- 6 files changed, 100 insertions(+), 15 deletions(-) create mode 100644 examples/llava/README-minicpmo2.6.md diff --git a/examples/llava/README-minicpmo2.6.md b/examples/llava/README-minicpmo2.6.md new file mode 100644 index 000000000..8713a43d6 --- /dev/null +++ b/examples/llava/README-minicpmo2.6.md @@ -0,0 +1,46 @@ +## MiniCPM-o 2.6 +Currently, this readme only supports minicpm-omni's image capabilities, and we will update the full-mode support as soon as possible. + +### Prepare models and code + +Download [MiniCPM-o-2_6](https://huggingface.co/openbmb/MiniCPM-o-2_6) PyTorch model from huggingface to "MiniCPM-o-2_6" folder. + +Clone llama.cpp: +```bash +git clone git@github.com:OpenBMB/llama.cpp.git +cd llama.cpp +git checkout minicpm-omni +``` + +### Usage of MiniCPM-o 2.6 + +Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-o-2_6-gguf) by us) + +```bash +python ./examples/llava/minicpmv-surgery.py -m ../MiniCPM-o-2_6 +python ./examples/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-o-2_6 --minicpmv-projector ../MiniCPM-o-2_6/minicpmv.projector --output-dir ../MiniCPM-o-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 4 +python ./convert_hf_to_gguf.py ../MiniCPM-o-2_6/model + +# quantize int4 version +./llama-quantize ../MiniCPM-o-2_6/model/ggml-model-f16.gguf ../MiniCPM-o-2_6/model/ggml-model-Q4_K_M.gguf Q4_K_M +``` + +Build llama.cpp using `CMake`: +https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md + +```bash +cmake -B build +cmake --build build --config Release +``` + +Inference on Linux or Mac +``` +# run f16 version +./llama-minicpmv-cli -m ../MiniCPM-o-2_6/model/ggml-model-f16.gguf --mmproj ../MiniCPM-o-2_6/mmproj-model-f16.gguf -c 4096 --temp 0.7 --top-p 0.8 --top-k 100 --repeat-penalty 1.05 --image xx.jpg -p "What is in the image?" + +# run quantized int4 version +./llama-minicpmv-cli -m ../MiniCPM-o-2_6/model/ggml-model-Q4_K_M.gguf --mmproj ../MiniCPM-o-2_6/mmproj-model-f16.gguf -c 4096 --temp 0.7 --top-p 0.8 --top-k 100 --repeat-penalty 1.05 --image xx.jpg -p "What is in the image?" + +# or run in interactive mode +./llama-minicpmv-cli -m ../MiniCPM-o-2_6/model/ggml-model-Q4_K_M.gguf --mmproj ../MiniCPM-o-2_6/mmproj-model-f16.gguf -c 4096 --temp 0.7 --top-p 0.8 --top-k 100 --repeat-penalty 1.05 --image xx.jpg -i +``` diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 7a8a3156b..24073c5a9 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -718,6 +718,9 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 else if (ctx->minicpmv_version == 3) { pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 3584, pos_w * pos_h, 1); } + else if (ctx->minicpmv_version == 4) { + pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 3584, pos_w * pos_h, 1); + } ggml_set_name(pos_embed, "pos_embed"); ggml_set_input(pos_embed); } @@ -1053,6 +1056,11 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 n_head = hidden_size/d_head; num_query = 64; } + else if (ctx->minicpmv_version == 4) { + hidden_size = 3584; + n_head = hidden_size/d_head; + num_query = 64; + } struct ggml_tensor * Q = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_q_w, q), model.mm_model_attn_q_b); Q = ggml_scale_inplace(ctx0, Q, 1.0f / sqrt((float)d_head)); @@ -2041,6 +2049,7 @@ static std::vector> uhd_slice_image(const clip_imag images[images.size()-1].push_back(patch); } } + clip_image_u8_free(refine_image); } return images; } @@ -2079,6 +2088,13 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, cli clip_image_f32_free(res); } } + for (size_t i = 0; i < imgs.size(); ++i) { + for (size_t j = 0; j < imgs[i].size(); ++j) { + if (imgs[i][j] != nullptr) { + clip_image_u8_free(imgs[i][j]); + } + } + } return true; } else if (ctx->has_qwen2vl_merger) { @@ -2335,6 +2351,9 @@ int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * i else if (ctx->minicpmv_version == 3) { n_patches = 64; } + else if (ctx->minicpmv_version == 4) { + n_patches = 64; + } } else if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { int patch_size = params.patch_size * 2; int x_patch = img->nx / patch_size + (int)(img->nx % patch_size > 0); @@ -2514,8 +2533,8 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit/blob/d66538faeba44480d0bfaa42145eef26f9423199/modeling_siglip.py#L316 struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); int* positions_data = (int*)malloc(ggml_nbytes(positions)); - int bucket_coords_h[70]; - int bucket_coords_w[70]; + int bucket_coords_h[1024]; + int bucket_coords_w[1024]; for (int i = 0; i < pos_h; i++){ bucket_coords_h[i] = std::floor(70.0*i/pos_h); } @@ -2543,6 +2562,9 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima else if (ctx->minicpmv_version == 3) { embed_dim = 3584; } + else if (ctx->minicpmv_version == 4) { + embed_dim = 3584; + } auto pos_embed_t = get_2d_sincos_pos_embed(embed_dim, std::make_pair(pos_w, pos_h)); float * pos_embed_data = (float *)malloc(ggml_nbytes(pos_embed)); @@ -2786,6 +2808,9 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { else if (ctx->minicpmv_version == 3) { return 3584; } + else if (ctx->minicpmv_version == 4) { + return 3584; + } } if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { return ctx->vision_model.mm_1_b->ne[0]; diff --git a/examples/llava/llava.cpp b/examples/llava/llava.cpp index c598caf3d..2cac7933d 100644 --- a/examples/llava/llava.cpp +++ b/examples/llava/llava.cpp @@ -216,7 +216,7 @@ static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector return true; } -static clip_image_f32 * only_v2_5_reshape_by_patch(clip_image_f32 * image, int patch_size) { +static clip_image_f32 * reshape_by_patch(clip_image_f32 * image, int patch_size) { int width = image->nx; int height = image->ny; int num_patches = (height / patch_size) * (width / patch_size); @@ -277,13 +277,7 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli encoded = clip_image_encode(ctx_clip, n_threads, &img_res_v.data[i], image_embd_v[i]); } else { - int has_minicpmv_projector = clip_is_minicpmv(ctx_clip); - if (has_minicpmv_projector == 2) { - encoded = clip_image_encode(ctx_clip, n_threads, only_v2_5_reshape_by_patch(&img_res_v.data[i], patch_size), image_embd_v[i]); - } - else if (has_minicpmv_projector == 3) { - encoded = clip_image_encode(ctx_clip, n_threads, &img_res_v.data[i], image_embd_v[i]); - } + encoded = clip_image_encode(ctx_clip, n_threads, reshape_by_patch(&img_res_v.data[i], patch_size), image_embd_v[i]); } if (!encoded) { @@ -313,6 +307,9 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli load_image_size->height = img->ny; clip_add_load_image_size(ctx_clip, load_image_size); LOG_INF("%s: load_image_size %d %d\n", __func__, load_image_size->width, load_image_size->height); + delete[] img_res_v.data; + img_res_v.size = 0; + img_res_v.data = nullptr; } else if (strcmp(mm_patch_merge_type, "spatial_unpad") != 0) { // flat / default llava-1.5 type embedding diff --git a/examples/llava/minicpmv-cli.cpp b/examples/llava/minicpmv-cli.cpp index 38c44e130..53d902d61 100644 --- a/examples/llava/minicpmv-cli.cpp +++ b/examples/llava/minicpmv-cli.cpp @@ -140,6 +140,9 @@ static void process_image(struct llava_context * ctx_llava, struct llava_image_e else if (has_minicpmv_projector == 3) { system_prompt = "<|im_start|>user\n"; } + else if (has_minicpmv_projector == 4) { + system_prompt = "<|im_start|>user\n"; + } LOG_INF("%s: image token past: %d\n", __func__, n_past); eval_string(ctx_llava->ctx_llama, (system_prompt+"").c_str(), params->n_batch, &n_past, false); process_eval_image_embed(ctx_llava, embeds, params->n_batch, &n_past, idx++); @@ -227,6 +230,9 @@ static struct common_sampler * llama_init(struct llava_context * ctx_llava, comm else if (has_minicpmv_projector == 3) { user_prompt = "<|im_start|>user\n" + prompt; } + else if (has_minicpmv_projector == 4) { + user_prompt = "<|im_start|>user\n" + prompt; + } } eval_string(ctx_llava->ctx_llama, user_prompt.c_str(), params->n_batch, &n_past, false); @@ -236,6 +242,9 @@ static struct common_sampler * llama_init(struct llava_context * ctx_llava, comm else if (has_minicpmv_projector == 3) { eval_string(ctx_llava->ctx_llama, "<|im_end|><|im_start|>assistant\n", params->n_batch, &n_past, false); } + else if (has_minicpmv_projector == 4) { + eval_string(ctx_llava->ctx_llama, "<|im_end|><|im_start|>assistant\n", params->n_batch, &n_past, false); + } // generate the response @@ -308,7 +317,6 @@ int main(int argc, char ** argv) { const auto * tmp = llama_loop(ctx_llava, smpl, n_past); response += tmp; if (strcmp(tmp, "") == 0) break; - if (strstr(tmp, "###")) break; // Yi-VL behavior printf("%s", tmp);// mistral llava-1.6 if (strstr(response.c_str(), "")) break; // minicpm-v fflush(stdout); diff --git a/examples/llava/minicpmv-convert-image-encoder-to-gguf.py b/examples/llava/minicpmv-convert-image-encoder-to-gguf.py index ea773742a..9b196757f 100644 --- a/examples/llava/minicpmv-convert-image-encoder-to-gguf.py +++ b/examples/llava/minicpmv-convert-image-encoder-to-gguf.py @@ -501,7 +501,7 @@ default_image_mean = [0.48145466, 0.4578275, 0.40821073] default_image_std = [0.26862954, 0.26130258, 0.27577711] ap.add_argument('--image-mean', type=float, nargs='+', help='Mean of the images for normalization (overrides processor) ', default=None) ap.add_argument('--image-std', type=float, nargs='+', help='Standard deviation of the images for normalization (overrides processor)', default=None) -ap.add_argument('--minicpmv_version', type=int, help='minicpmv_version: MiniCPM-V-2 use 1; MiniCPM-V-2.5 use 2; MiniCPM-V-2.6 use 3', default=2) +ap.add_argument('--minicpmv_version', type=int, help='minicpmv_version: MiniCPM-V-2 use 1; MiniCPM-V-2.5 use 2; MiniCPM-V-2.6 use 3; MiniCPM-o-2.6 use 4', default=2) # with proper args = ap.parse_args() @@ -545,12 +545,19 @@ if args.use_f32: minicpmv_version = args.minicpmv_version emb_dim = 4096 +block_count = 26 if minicpmv_version == 1: emb_dim = 2304 + block_count = 26 elif minicpmv_version == 2: emb_dim = 4096 + block_count = 27 elif minicpmv_version == 3: emb_dim = 3584 + block_count = 27 +elif minicpmv_version == 4: + emb_dim = 3584 + block_count = 27 default_vision_config = { "hidden_size": 1152, @@ -567,6 +574,9 @@ model = Idefics2VisionTransformer(vision_config) if minicpmv_version == 3: vision_config = SiglipVisionConfig(**default_vision_config) model = SiglipVisionTransformer(vision_config) +elif minicpmv_version == 4: + vision_config = SiglipVisionConfig(**default_vision_config) + model = SiglipVisionTransformer(vision_config) processor = None # if model.attn_pool is not None: @@ -587,7 +597,7 @@ elif args.minicpmv_projector is not None: fname_middle = "mmproj-" has_text_encoder = False has_minicpmv_projector = True - minicpmv_version = 3 + minicpmv_version = 4 elif args.vision_only: fname_middle = "vision-" has_text_encoder = False @@ -625,7 +635,6 @@ if has_vision_encoder: fout.add_uint32("clip.vision.projection_dim", 0) fout.add_uint32(add_key_str(KEY_ATTENTION_HEAD_COUNT, VISION), 16) fout.add_float32(add_key_str(KEY_ATTENTION_LAYERNORM_EPS, VISION), 1e-6) - block_count = 26 fout.add_uint32(add_key_str(KEY_BLOCK_COUNT, VISION), block_count) if processor is not None: diff --git a/examples/llava/minicpmv-surgery.py b/examples/llava/minicpmv-surgery.py index 748ff5c57..ba8211658 100644 --- a/examples/llava/minicpmv-surgery.py +++ b/examples/llava/minicpmv-surgery.py @@ -8,7 +8,7 @@ ap.add_argument("-m", "--model", help="Path to MiniCPM-V model") args = ap.parse_args() # find the model part that includes the the multimodal projector weights -model = AutoModel.from_pretrained(args.model, trust_remote_code=True, local_files_only=True) +model = AutoModel.from_pretrained(args.model, trust_remote_code=True, local_files_only=True, torch_dtype=torch.bfloat16) checkpoint = model.state_dict() # get a list of mm tensor names From a94f3b2727e97eb6c904006eb786960c069282bc Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Wed, 22 Jan 2025 09:51:44 +0000 Subject: [PATCH 007/162] `common`: utils to split / join / repeat strings (from json converter) (#11342) * Factor string_join, string_split, string_repeat into common * json: refactor to surface a versatile builder * Update common.cpp --- common/common.cpp | 42 +++++++++++++ common/common.h | 4 ++ common/json-schema-to-grammar.cpp | 98 +++++++++++-------------------- common/json-schema-to-grammar.h | 10 +++- 4 files changed, 90 insertions(+), 64 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index 727ab0a10..6dea8e3d2 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -484,6 +484,48 @@ void string_replace_all(std::string & s, const std::string & search, const std:: s = std::move(builder); } +std::string string_join(const std::vector & values, const std::string & separator) { + std::ostringstream result; + for (size_t i = 0; i < values.size(); ++i) { + if (i > 0) { + result << separator; + } + result << values[i]; + } + return result.str(); +} + +std::vector string_split(const std::string & str, const std::string & delimiter) { + std::vector parts; + size_t start = 0; + size_t end = str.find(delimiter); + + while (end != std::string::npos) { + parts.push_back(str.substr(start, end - start)); + start = end + delimiter.length(); + end = str.find(delimiter, start); + } + + parts.push_back(str.substr(start)); + + return parts; +} + +std::string string_repeat(const std::string & str, size_t n) { + if (n == 0) { + return ""; + } + + std::string result; + result.reserve(str.length() * n); + + for (size_t i = 0; i < n; ++i) { + result += str; + } + + return result; +} + std::string string_from(bool value) { return value ? "true" : "false"; } diff --git a/common/common.h b/common/common.h index 7c9d73ce1..571260372 100644 --- a/common/common.h +++ b/common/common.h @@ -429,6 +429,10 @@ std::string string_format(const char * fmt, ...); std::string string_strip(const std::string & str); std::string string_get_sortable_timestamp(); +std::string string_join(const std::vector & values, const std::string & separator); +std::vector string_split(const std::string & str, const std::string & delimiter); +std::string string_repeat(const std::string & str, size_t n); + void string_replace_all(std::string & s, const std::string & search, const std::string & replace); template diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index dadc18c8b..4d426b6bd 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -1,4 +1,6 @@ #include "json-schema-to-grammar.h" +#include "common.h" + #include #include #include @@ -11,11 +13,6 @@ using json = nlohmann::ordered_json; -template -static std::string join(Iterator begin, Iterator end, const std::string & separator); - -static std::string repeat(const std::string & str, size_t n); - static std::string build_repetition(const std::string & item_rule, int min_items, int max_items, const std::string & separator_rule = "") { auto has_max = max_items != std::numeric_limits::max(); @@ -128,8 +125,8 @@ static void _build_min_max_int(int min_value, int max_value, std::stringstream & if (sub_len > 0) { auto from_sub = from.substr(i + 1); auto to_sub = to.substr(i + 1); - auto sub_zeros = repeat("0", sub_len); - auto sub_nines = repeat("9", sub_len); + auto sub_zeros = string_repeat("0", sub_len); + auto sub_nines = string_repeat("9", sub_len); auto to_reached = false; out << "("; @@ -188,8 +185,8 @@ static void _build_min_max_int(int min_value, int max_value, std::stringstream & auto max_digits = max_s.length(); for (auto digits = min_digits; digits < max_digits; digits++) { - uniform_range(min_s, repeat("9", digits)); - min_s = "1" + repeat("0", digits); + uniform_range(min_s, string_repeat("9", digits)); + min_s = "1" + string_repeat("0", digits); out << " | "; } uniform_range(min_s, max_s); @@ -318,49 +315,6 @@ std::unordered_map GRAMMAR_LITERAL_ESCAPES = { std::unordered_set NON_LITERAL_SET = {'|', '.', '(', ')', '[', ']', '{', '}', '*', '+', '?'}; std::unordered_set ESCAPED_IN_REGEXPS_BUT_NOT_IN_LITERALS = {'^', '$', '.', '[', ']', '(', ')', '|', '{', '}', '*', '+', '?'}; -template -std::string join(Iterator begin, Iterator end, const std::string & separator) { - std::ostringstream result; - if (begin != end) { - result << *begin; - for (Iterator it = begin + 1; it != end; ++it) { - result << separator << *it; - } - } - return result.str(); -} - -static std::vector split(const std::string & str, const std::string & delimiter) { - std::vector tokens; - size_t start = 0; - size_t end = str.find(delimiter); - - while (end != std::string::npos) { - tokens.push_back(str.substr(start, end - start)); - start = end + delimiter.length(); - end = str.find(delimiter, start); - } - - tokens.push_back(str.substr(start)); - - return tokens; -} - -static std::string repeat(const std::string & str, size_t n) { - if (n == 0) { - return ""; - } - - std::string result; - result.reserve(str.length() * n); - - for (size_t i = 0; i < n; ++i) { - result += str; - } - - return result; -} - static std::string replacePattern(const std::string & input, const std::regex & regex, const std::function & replacement) { std::smatch match; std::string result; @@ -389,6 +343,7 @@ static std::string format_literal(const std::string & literal) { class SchemaConverter { private: + friend std::string build_grammar(const std::function & cb); std::function _fetch_json; bool _dotall; std::map _rules; @@ -418,7 +373,7 @@ private: for (size_t i = 0; i < alt_schemas.size(); i++) { rules.push_back(visit(alt_schemas[i], name + (name.empty() ? "alternative-" : "-") + std::to_string(i))); } - return join(rules.begin(), rules.end(), " | "); + return string_join(rules, " | "); } std::string _visit_pattern(const std::string & pattern, const std::string & name) { @@ -481,7 +436,7 @@ private: for (const auto & item : ret) { results.push_back(to_rule(item)); } - return std::make_pair(join(results.begin(), results.end(), " "), false); + return std::make_pair(string_join(results, " "), false); }; while (i < length) { @@ -539,7 +494,7 @@ private: } curly_brackets += '}'; i++; - auto nums = split(curly_brackets.substr(1, curly_brackets.length() - 2), ","); + auto nums = string_split(curly_brackets.substr(1, curly_brackets.length() - 2), ","); int min_times = 0; int max_times = std::numeric_limits::max(); try { @@ -854,7 +809,7 @@ public: return; } std::string pointer = ref.substr(ref.find('#') + 1); - std::vector tokens = split(pointer, "/"); + std::vector tokens = string_split(pointer, "/"); for (size_t i = 1; i < tokens.size(); ++i) { std::string sel = tokens[i]; if (target.is_null() || !target.contains(sel)) { @@ -905,7 +860,7 @@ public: for (const auto & v : schema["enum"]) { enum_values.push_back(_generate_constant_rule(v)); } - return _add_rule(rule_name, "(" + join(enum_values.begin(), enum_values.end(), " | ") + ") space"); + return _add_rule(rule_name, "(" + string_join(enum_values, " | ") + ") space"); } else if ((schema_type.is_null() || schema_type == "object") && (schema.contains("properties") || (schema.contains("additionalProperties") && schema["additionalProperties"] != true))) { @@ -1019,10 +974,10 @@ public: void check_errors() { if (!_errors.empty()) { - throw std::runtime_error("JSON schema conversion failed:\n" + join(_errors.begin(), _errors.end(), "\n")); + throw std::runtime_error("JSON schema conversion failed:\n" + string_join(_errors, "\n")); } if (!_warnings.empty()) { - fprintf(stderr, "WARNING: JSON schema conversion was incomplete: %s\n", join(_warnings.begin(), _warnings.end(), "; ").c_str()); + fprintf(stderr, "WARNING: JSON schema conversion was incomplete: %s\n", string_join(_warnings, "; ").c_str()); } } @@ -1036,10 +991,27 @@ public: }; std::string json_schema_to_grammar(const json & schema) { - SchemaConverter converter([](const std::string &) { return json::object(); }, /* dotall= */ false); - auto copy = schema; - converter.resolve_refs(copy, "input"); - converter.visit(copy, ""); + return build_grammar([&](const llama_grammar_builder & callbacks) { + auto copy = schema; + callbacks.resolve_refs(copy); + callbacks.add_schema("", copy); + }); +} + +std::string build_grammar(const std::function & cb) { + SchemaConverter converter([&](const std::string &) { return json(); }, /* dotall= */ false); + llama_grammar_builder builder { + /* .add_rule = */ [&](const std::string & name, const std::string & rule) { + return converter._add_rule(name, rule); + }, + /* .add_schema = */ [&](const std::string & name, const nlohmann::ordered_json & schema) { + return converter.visit(schema, name == "root" ? "" : name); + }, + /* .resolve_refs = */ [&](nlohmann::ordered_json & schema) { + converter.resolve_refs(schema, ""); + } + }; + cb(builder); converter.check_errors(); return converter.format_grammar(); } diff --git a/common/json-schema-to-grammar.h b/common/json-schema-to-grammar.h index 41623b346..4f43ab3a5 100644 --- a/common/json-schema-to-grammar.h +++ b/common/json-schema-to-grammar.h @@ -5,4 +5,12 @@ #define JSON_ASSERT GGML_ASSERT #include "json.hpp" -std::string json_schema_to_grammar(const nlohmann::ordered_json& schema); +std::string json_schema_to_grammar(const nlohmann::ordered_json & schema); + +struct llama_grammar_builder { + std::function add_rule; + std::function add_schema; + std::function resolve_refs; +}; + +std::string build_grammar(const std::function & cb); From 96f405393461062450692430e4916809bf71c3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Podiv=C3=ADn?= <66251151+jpodivin@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:51:32 +0100 Subject: [PATCH 008/162] Adding logprobs to /v1/completions (#11344) Signed-off-by: Jiri Podivin --- examples/server/server.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 5f08c4ecc..412908aa8 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -267,6 +267,11 @@ struct server_task { params.speculative.n_min = std::max(params.speculative.n_min, 2); params.speculative.n_max = std::max(params.speculative.n_max, 0); + // Use OpenAI API logprobs only if n_probs wasn't provided + if (data.contains("logprobs") && params.sampling.n_probs == defaults.sampling.n_probs){ + params.sampling.n_probs = json_value(data, "logprobs", defaults.sampling.n_probs); + } + if (data.contains("lora")) { if (data.at("lora").is_array()) { params.lora = parse_lora_request(params_base.lora_adapters, data.at("lora")); From c64d2becb13f2a7c0145b516a05f028d949a046b Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Wed, 22 Jan 2025 16:16:27 +0000 Subject: [PATCH 009/162] `minja`: sync at https://github.com/google/minja/commit/0f5f7f2b3770eb682fbc11763266d45204173686 (#11352) --- common/chat-template.hpp | 37 ++++++++++++++++++++++++++++--------- common/minja.hpp | 28 ++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/common/chat-template.hpp b/common/chat-template.hpp index b4a90145c..42ee0b615 100644 --- a/common/chat-template.hpp +++ b/common/chat-template.hpp @@ -25,6 +25,7 @@ class chat_template { // Meta-Llama-3.1-8B-Instruct's template expects arguments to be an object. // Most other templates (and OpenAI's API) expect the arguments object to be stringified. bool requires_object_arguments_ = false; + bool requires_typed_content_ = false; bool supports_system_role_ = true; bool supports_parallel_tool_calls_ = false; std::string source_; @@ -32,14 +33,14 @@ class chat_template { std::string eos_token_; std::shared_ptr template_root_; - std::string try_render( + std::string try_raw_render( const nlohmann::ordered_json & messages, const nlohmann::ordered_json & tools, bool add_generation_prompt, const nlohmann::ordered_json & extra_context = nlohmann::ordered_json()) const { try { - auto prompt = apply(messages, tools, add_generation_prompt, extra_context); + auto prompt = apply(messages, tools, add_generation_prompt, extra_context, /* adjust_inputs= */ false); // fprintf(stderr, "Prompt: %s\n", prompt.c_str()); return prompt; } catch (const std::exception & e) { @@ -60,7 +61,7 @@ class chat_template { supports_tools_ = source.find("tools") != std::string::npos; auto renders_string_arguments = - try_render({ + try_raw_render({ { {"role", "user"}, {"content", "Hey"} @@ -81,7 +82,7 @@ class chat_template { }, {}, false).find("{\"code\": \"print") != std::string::npos; if (!renders_string_arguments) { auto renders_object_arguments = - try_render({ + try_raw_render({ { {"role", "user"}, {"content", "Hey"} @@ -106,10 +107,13 @@ class chat_template { } supports_parallel_tool_calls_ = source.find("tool_call_id") != std::string::npos; - supports_system_role_ = try_render({ + supports_system_role_ = try_raw_render({ {{"role", "system"}, {"content", ""}}, {{"role", "user"}, {"content", "Hey"}} }, {}, false).find("") != std::string::npos; + + requires_typed_content_ = try_raw_render({{{"role", "user"}, {"content", "Hey"}}}, {}, false).find("Hey") == std::string::npos + && try_raw_render({{{"role", "user"}, {"content", {{{"type", "text"}, {"text", "Hey"}}}}}}, {}, false).find("Hey") != std::string::npos; } const std::string & source() const { return source_; } @@ -122,19 +126,34 @@ class chat_template { const nlohmann::ordered_json & messages, const nlohmann::ordered_json & tools, bool add_generation_prompt, - const nlohmann::ordered_json & extra_context = nlohmann::ordered_json()) const + const nlohmann::ordered_json & extra_context = nlohmann::ordered_json(), + bool adjust_inputs = true) const { json actual_messages; // First, "fix" messages so they have a chance to be rendered correctly by the template - if (requires_object_arguments_ || !supports_system_role_ || !supports_tools_) { + if (adjust_inputs && (requires_object_arguments_ || !supports_system_role_ || !supports_tools_ || requires_typed_content_)) { actual_messages = json::array(); + auto add_message = [&](const json & msg) { + if (requires_typed_content_ && msg.contains("content") && !msg.at("content").is_null() && msg.at("content").is_string()) { + actual_messages.push_back({ + {"role", msg.at("role")}, + {"content", {{ + {"type", "text"}, + {"text", msg.at("content")}, + }}}, + }); + } else { + actual_messages.push_back(msg); + } + }; + std::string pending_system; auto flush_sys = [&]() { if (!pending_system.empty()) { - actual_messages.push_back({ + add_message({ {"role", "user"}, {"content", pending_system}, }); @@ -217,7 +236,7 @@ class chat_template { } } } - actual_messages.push_back(message); + add_message(message); } flush_sys(); } else { diff --git a/common/minja.hpp b/common/minja.hpp index f0ee7a49a..80bdd4b41 100644 --- a/common/minja.hpp +++ b/common/minja.hpp @@ -693,7 +693,7 @@ enum SpaceHandling { Keep, Strip, StripSpaces, StripNewline }; class TemplateToken { public: - enum class Type { Text, Expression, If, Else, Elif, EndIf, For, EndFor, Set, EndSet, Comment, Macro, EndMacro, Filter, EndFilter }; + enum class Type { Text, Expression, If, Else, Elif, EndIf, For, EndFor, Generation, EndGeneration, Set, EndSet, Comment, Macro, EndMacro, Filter, EndFilter }; static std::string typeToString(Type t) { switch (t) { @@ -712,6 +712,8 @@ public: case Type::EndMacro: return "endmacro"; case Type::Filter: return "filter"; case Type::EndFilter: return "endfilter"; + case Type::Generation: return "generation"; + case Type::EndGeneration: return "endgeneration"; } return "Unknown"; } @@ -788,6 +790,14 @@ struct EndForTemplateToken : public TemplateToken { EndForTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndFor, location, pre, post) {} }; +struct GenerationTemplateToken : public TemplateToken { + GenerationTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::Generation, location, pre, post) {} +}; + +struct EndGenerationTemplateToken : public TemplateToken { + EndGenerationTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post) : TemplateToken(Type::EndGeneration, location, pre, post) {} +}; + struct SetTemplateToken : public TemplateToken { std::string ns; std::vector var_names; @@ -2149,7 +2159,7 @@ private: static std::regex comment_tok(R"(\{#([-~]?)(.*?)([-~]?)#\})"); static std::regex expr_open_regex(R"(\{\{([-~])?)"); static std::regex block_open_regex(R"(^\{%([-~])?[\s\n\r]*)"); - static std::regex block_keyword_tok(R"((if|else|elif|endif|for|endfor|set|endset|block|endblock|macro|endmacro|filter|endfilter)\b)"); + static std::regex block_keyword_tok(R"((if|else|elif|endif|for|endfor|generation|endgeneration|set|endset|block|endblock|macro|endmacro|filter|endfilter)\b)"); static std::regex non_text_open_regex(R"(\{\{|\{%|\{#)"); static std::regex expr_close_regex(R"([\s\n\r]*([-~])?\}\})"); static std::regex block_close_regex(R"([\s\n\r]*([-~])?%\})"); @@ -2229,6 +2239,12 @@ private: } else if (keyword == "endfor") { auto post_space = parseBlockClose(); tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "generation") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "endgeneration") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space)); } else if (keyword == "set") { static std::regex namespaced_var_regex(R"((\w+)[\s\n\r]*\.[\s\n\r]*(\w+))"); @@ -2330,6 +2346,13 @@ private: throw unterminated(**start); } children.emplace_back(std::make_shared(token->location, std::move(for_token->var_names), std::move(for_token->iterable), std::move(for_token->condition), std::move(body), for_token->recursive, std::move(else_body))); + } else if (dynamic_cast(token.get())) { + auto body = parseTemplate(begin, it, end); + if (it == end || (*(it++))->type != TemplateToken::Type::EndGeneration) { + throw unterminated(**start); + } + // Treat as a no-op, as our scope is templates for inference, not training (`{% generation %}` wraps generated tokens for masking). + children.emplace_back(std::move(body)); } else if (auto text_token = dynamic_cast(token.get())) { SpaceHandling pre_space = (it - 1) != begin ? (*(it - 2))->post_space : SpaceHandling::Keep; SpaceHandling post_space = it != end ? (*it)->pre_space : SpaceHandling::Keep; @@ -2397,6 +2420,7 @@ private: || dynamic_cast(token.get()) || dynamic_cast(token.get()) || dynamic_cast(token.get()) + || dynamic_cast(token.get()) || dynamic_cast(token.get())) { it--; // unconsume the token break; // exit the loop From 12c2bdf2de34f747d13b270fc9d3b52490bf194f Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Wed, 22 Jan 2025 17:44:40 +0100 Subject: [PATCH 010/162] server : fix draft context not being released (#11354) --- examples/server/server.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 412908aa8..4cfb3c9bb 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1772,6 +1772,9 @@ struct server_context { // force F16 KV cache for the draft model for extra performance cparams_dft.type_k = GGML_TYPE_F16; cparams_dft.type_v = GGML_TYPE_F16; + + // the context is not needed - we will create one for each slot + llama_init_dft.context.reset(); } chat_templates = common_chat_templates_from_model(model, params_base.chat_template); From 16d3df7ab0bb9def78047eab4d9b15393997f495 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 22 Jan 2025 19:44:26 +0200 Subject: [PATCH 011/162] readme : add plugin links (#11355) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 784669ce1..97d028670 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,9 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) ## Hot topics -- **Introducing GGUF-my-LoRA** https://github.com/ggerganov/llama.cpp/discussions/10123 +- **VS Code extension for FIM completions:** https://github.com/ggml-org/llama.vscode +- Vim/Neovim plugin for FIM completions: https://github.com/ggml-org/llama.vim +- Introducing GGUF-my-LoRA https://github.com/ggerganov/llama.cpp/discussions/10123 - Hugging Face Inference Endpoints now support GGUF out of the box! https://github.com/ggerganov/llama.cpp/discussions/9669 - Hugging Face GGUF editor: [discussion](https://github.com/ggerganov/llama.cpp/discussions/9268) | [tool](https://huggingface.co/spaces/CISCai/gguf-editor) From 6152129d05870cb38162c422c6ba80434e021e9f Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Wed, 22 Jan 2025 19:22:20 +0100 Subject: [PATCH 012/162] main : update README documentation for batch size (#11353) * main : update README documentation for batch size * fix formatting * minor --- examples/main/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/main/README.md b/examples/main/README.md index 17d80a622..46f92eb7a 100644 --- a/examples/main/README.md +++ b/examples/main/README.md @@ -310,9 +310,9 @@ These options help improve the performance and memory usage of the LLaMA models. ### Batch Size -- `-b N, --batch-size N`: Set the batch size for prompt processing (default: `2048`). This large batch size benefits users who have BLAS installed and enabled it during the build. If you don't have BLAS enabled ("BLAS=0"), you can use a smaller number, such as 8, to see the prompt progress as it's evaluated in some situations. +- `-ub N`, `--ubatch-size N`: Physical batch size. This is the maximum number of tokens that may be processed at a time. Increasing this value may improve performance during prompt processing, at the expense of higher memory usage. Default: `512`. -- `-ub N`, `--ubatch-size N`: physical maximum batch size. This is for pipeline parallelization. Default: `512`. +- `-b N`, `--batch-size N`: Logical batch size. Increasing this value above the value of the physical batch size may improve prompt processing performance when using multiple GPUs with pipeline parallelism. Default: `2048`. ### Prompt Caching From 5245729e3317064959faefc5e5cbc63f4e9cfbea Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 23 Jan 2025 01:01:17 -0600 Subject: [PATCH 013/162] vulkan: fix diag_mask_inf (#11323) With robustbufferaccess disabled, this shader was showing OOB stores. There is a bounds check in the code, but the workgrouop dimensions were reversed vs CUDA and it was running the wrong number of threads. So fix the workgroup dimensions and disable robustness for this pipeline. --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 2 +- ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 78c2f5c45..eae4f0739 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -2012,7 +2012,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_leaky_relu_f32, "leaky_relu_f32", leaky_relu_f32_len, leaky_relu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_tanh_f32, "tanh_f32", tanh_f32_len, tanh_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_diag_mask_inf_f32, "diag_mask_inf_f32", diag_mask_inf_f32_len, diag_mask_inf_f32_data, "main", 2, sizeof(vk_op_diag_mask_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_diag_mask_inf_f32, "diag_mask_inf_f32", diag_mask_inf_f32_len, diag_mask_inf_f32_data, "main", 2, sizeof(vk_op_diag_mask_push_constants), {1, 512, 1}, {}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_soft_max_f32, "soft_max_f32", soft_max_f32_len, soft_max_f32_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, { device->subgroup_size }, 1); ggml_vk_create_pipeline(device, device->pipeline_soft_max_f32_wg512, "soft_max_f32_wg512", soft_max_f32_len, soft_max_f32_data, "main", 3, sizeof(vk_op_soft_max_push_constants), {1, 1, 1}, { 512 }, 1); diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp b/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp index 4e68742b5..26d8bc22a 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp @@ -12,7 +12,7 @@ layout (push_constant) uniform parameter #include "types.comp" -layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in; +layout(local_size_x = 1, local_size_y = 512, local_size_z = 1) in; layout (binding = 0) readonly buffer X {A_TYPE data_a[];}; layout (binding = 1) writeonly buffer D {D_TYPE data_d[];}; From 1971adf55e3ebbfab83771d6174d37b77c352c71 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 23 Jan 2025 01:07:50 -0600 Subject: [PATCH 014/162] vulkan: sort shaders for more deterministic binary (#11315) Fixes #11306. --- ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index 8bcb64101..e9c6cb9d4 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -17,13 +17,13 @@ #include #include #include +#include #include #include #ifdef _WIN32 #include #include // For _mkdir on Windows - #include // For std::replace on w64devkit #else #include #include @@ -502,6 +502,7 @@ void write_output_files() { fprintf(hdr, "#include \n\n"); fprintf(src, "#include \"%s\"\n\n", basename(target_hpp).c_str()); + std::sort(shader_fnames.begin(), shader_fnames.end()); for (const auto& pair : shader_fnames) { const std::string& name = pair.first; #ifdef _WIN32 From 955a6c2d91480954e90469517c4b91c4052c6a59 Mon Sep 17 00:00:00 2001 From: amd-dwang Date: Thu, 23 Jan 2025 15:14:28 +0800 Subject: [PATCH 015/162] Vulkan-run-test: fix mmq_wg_denoms (#11343) There should be a copy-and-paste error here. *mmq_wg_denoms should be used together with *warptile_mmq, instead of wg_denoms. --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 88 ++++++++++++++-------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index eae4f0739..c325416d1 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -1673,31 +1673,31 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM2(pipeline_matmul_f16_f32, matmul_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); if (device->coopmat_acc_f16_support) { - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1].f16acc, matmul_q5_1_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0].f16acc, matmul_q8_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1].f16acc, matmul_q5_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0].f16acc, matmul_q8_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K].f16acc, matmul_q2_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K].f16acc, matmul_q3_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K].f16acc, matmul_q2_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K].f16acc, matmul_q3_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } else { - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1].f16acc, matmul_q5_1_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0].f16acc, matmul_q8_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_1].f16acc, matmul_q5_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q8_0].f16acc, matmul_q8_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K].f16acc, matmul_q2_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K].f16acc, matmul_q3_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, , wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q2_K].f16acc, matmul_q2_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q3_K].f16acc, matmul_q3_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. @@ -1707,31 +1707,31 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM2(pipeline_matmul_id_f16_f32, matmul_id_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); if (device->coopmat_acc_f16_support) { - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1].f16acc, matmul_id_q5_1_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0].f16acc, matmul_id_q8_0_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1].f16acc, matmul_id_q5_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0].f16acc, matmul_id_q8_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K].f16acc, matmul_id_q2_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K].f16acc, matmul_id_q3_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K].f16acc, matmul_id_q2_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K].f16acc, matmul_id_q3_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } else { - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1].f16acc, matmul_id_q5_1_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0].f16acc, matmul_id_q8_0_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_1].f16acc, matmul_id_q5_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q8_0].f16acc, matmul_id_q8_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K].f16acc, matmul_id_q2_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K].f16acc, matmul_id_q3_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, , wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q2_K].f16acc, matmul_id_q2_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q3_K].f16acc, matmul_id_q3_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } } #undef CREATE_MM2 From f211d1dc10332b7e89a4abd1041903fa63bfed27 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Thu, 23 Jan 2025 10:38:20 +0000 Subject: [PATCH 016/162] Treat hf.co/ prefix the same as hf:// (#11350) ollama uses hf.co/ to specify huggingface prefix, like RamaLama uses hf:// Treat them similarly. Signed-off-by: Eric Curtin --- examples/run/run.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index e567ad716..c710d4326 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -634,20 +634,20 @@ class LlamaData { return path.substr(pos + 1); } - int remove_proto(std::string & model_) { - const std::string::size_type pos = model_.find("://"); + int rm_until_substring(std::string & model_, const std::string & substring) { + const std::string::size_type pos = model_.find(substring); if (pos == std::string::npos) { return 1; } - model_ = model_.substr(pos + 3); // Skip past "://" + model_ = model_.substr(pos + substring.size()); // Skip past the substring return 0; } int resolve_model(std::string & model_) { int ret = 0; if (string_starts_with(model_, "file://") || std::filesystem::exists(model_)) { - remove_proto(model_); + rm_until_substring(model_, "://"); return ret; } @@ -656,13 +656,16 @@ class LlamaData { const std::vector headers = { "--header", "Accept: application/vnd.docker.distribution.manifest.v2+json" }; if (string_starts_with(model_, "hf://") || string_starts_with(model_, "huggingface://")) { - remove_proto(model_); + rm_until_substring(model_, "://"); + ret = huggingface_dl(model_, headers, bn); + } else if (string_starts_with(model_, "hf.co/")) { + rm_until_substring(model_, "hf.co/"); ret = huggingface_dl(model_, headers, bn); } else if (string_starts_with(model_, "ollama://")) { - remove_proto(model_); + rm_until_substring(model_, "://"); ret = ollama_dl(model_, headers, bn); } else if (string_starts_with(model_, "https://")) { - download(model_, headers, bn, true); + ret = download(model_, headers, bn, true); } else { ret = ollama_dl(model_, headers, bn); } From 58456616408c828a1ce6d2481940fd1c97bce3b5 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Thu, 23 Jan 2025 13:56:05 +0100 Subject: [PATCH 017/162] server : add more clean up when cancel_tasks is called (#11340) * server : add more clean up when cancel_tasks is called * fix recv_with_timeout * std::remove_if * fix std::remove_if --- examples/server/server.cpp | 43 +++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 4cfb3c9bb..a94c3822c 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1433,6 +1433,10 @@ struct server_queue { } else { queue_tasks.push_back(std::move(task)); } + // if this is cancel task make sure to clean up pending tasks + if (task.type == SERVER_TASK_TYPE_CANCEL) { + cleanup_pending_task(task.id_target); + } condition_tasks.notify_one(); return task.id; } @@ -1450,6 +1454,10 @@ struct server_queue { } else { queue_tasks.push_back(std::move(task)); } + // if this is cancel task make sure to clean up pending tasks + if (task.type == SERVER_TASK_TYPE_CANCEL) { + cleanup_pending_task(task.id_target); + } } condition_tasks.notify_one(); return 0; @@ -1544,6 +1552,20 @@ struct server_queue { } } } + +private: + void cleanup_pending_task(int id_task) { + // no need lock because this is called exclusively by post() + auto rm_func = [id_task](const server_task & task) { + return task.id_target == id_task; + }; + queue_tasks.erase( + std::remove_if(queue_tasks.begin(), queue_tasks.end(), rm_func), + queue_tasks.end()); + queue_tasks_deferred.erase( + std::remove_if(queue_tasks_deferred.begin(), queue_tasks_deferred.end(), rm_func), + queue_tasks_deferred.end()); + } }; struct server_response { @@ -1579,6 +1601,12 @@ struct server_response { std::unique_lock lock(mutex_results); waiting_task_ids.erase(id_task); + // make sure to clean up all pending results + queue_results.erase( + std::remove_if(queue_results.begin(), queue_results.end(), [id_task](const server_task_result_ptr & res) { + return res->id == id_task; + }), + queue_results.end()); } void remove_waiting_task_ids(const std::unordered_set & id_tasks) { @@ -1598,7 +1626,7 @@ struct server_response { return !queue_results.empty(); }); - for (int i = 0; i < (int) queue_results.size(); i++) { + for (size_t i = 0; i < queue_results.size(); i++) { if (id_tasks.find(queue_results[i]->id) != id_tasks.end()) { server_task_result_ptr res = std::move(queue_results[i]); queue_results.erase(queue_results.begin() + i); @@ -1615,12 +1643,6 @@ struct server_response { server_task_result_ptr recv_with_timeout(const std::unordered_set & id_tasks, int timeout) { while (true) { std::unique_lock lock(mutex_results); - bool cr_res = condition_results.wait_for(lock, std::chrono::seconds(timeout), [&]{ - return !queue_results.empty(); - }); - if (!cr_res) { - return nullptr; - } for (int i = 0; i < (int) queue_results.size(); i++) { if (id_tasks.find(queue_results[i]->id) != id_tasks.end()) { @@ -1629,6 +1651,11 @@ struct server_response { return res; } } + + std::cv_status cr_res = condition_results.wait_for(lock, std::chrono::seconds(timeout)); + if (cr_res == std::cv_status::timeout) { + return nullptr; + } } // should never reach here @@ -2376,8 +2403,8 @@ struct server_context { server_task task(SERVER_TASK_TYPE_CANCEL); task.id_target = id_task; - cancel_tasks.push_back(task); queue_results.remove_waiting_task_id(id_task); + cancel_tasks.push_back(task); } // push to beginning of the queue, so it has highest priority queue_tasks.post(cancel_tasks, true); From f7fb43cd0b84280c261f440dc8e85eafad4a0ca6 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Thu, 23 Jan 2025 16:16:18 +0000 Subject: [PATCH 018/162] Add -ngl (#11372) Most other llama.cpp cli tools accept -ngl with a single dash. Signed-off-by: Eric Curtin --- examples/run/run.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index c710d4326..715f21b5d 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -147,7 +147,8 @@ class Opt { if (handle_option_with_value(argc, argv, i, context_size) == 1) { return 1; } - } else if (options_parsing && (strcmp(argv[i], "-n") == 0 || strcmp(argv[i], "--ngl") == 0)) { + } else if (options_parsing && + (strcmp(argv[i], "-n") == 0 || strcmp(argv[i], "-ngl") == 0 || strcmp(argv[i], "--ngl") == 0)) { if (handle_option_with_value(argc, argv, i, ngl) == 1) { return 1; } From 05f63cc9ee859de07f585f7b12939345f39ada8b Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Thu, 23 Jan 2025 20:04:31 +0000 Subject: [PATCH 019/162] Update documentation (#11373) To show -n, -ngl, --ngl is acceptable. Signed-off-by: Eric Curtin --- examples/run/run.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 715f21b5d..92a49eb74 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -195,7 +195,7 @@ class Opt { "Options:\n" " -c, --context-size \n" " Context size (default: %d)\n" - " -n, --ngl \n" + " -n, -ngl, --ngl \n" " Number of GPU layers (default: %d)\n" " --temp \n" " Temperature (default: %.1f)\n" From 564804b79b78df1469ec8646869972de5e885ec4 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 23 Jan 2025 14:51:24 -0600 Subject: [PATCH 020/162] tests: fix some mul_mat test gaps (#11375) Now that we have batched mat-vec mul Vulkan shaders for up to n==8, these tests weren't actually exercising the mat-mat mul path. Test n==9 as well. Also, change to use all_types. --- tests/test-backend-ops.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 74d1bee39..381956a04 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -3909,17 +3909,10 @@ static std::vector> make_test_cases_eval() { test_cases.emplace_back(new test_gla(GGML_TYPE_F32, 32, 64, 32, 4)); test_cases.emplace_back(new test_gla(GGML_TYPE_F32, 32, 64, 128, 4)); - for (int i = 1; i < 9; ++i) { - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q4_0, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q4_1, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q5_0, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q5_1, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q8_0, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q4_K, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q5_K, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q6_K, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_IQ4_NL, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); + for (ggml_type type_a : all_types) { + for (int i = 1; i < 10; ++i) { + test_cases.emplace_back(new test_mul_mat(type_a, GGML_TYPE_F32, 16, i, 256, { 1, 1}, {1, 1})); + } } #if 1 From c07e87f38bd0c22ec6dbc852ae50aaa1c64632d4 Mon Sep 17 00:00:00 2001 From: stduhpf Date: Fri, 24 Jan 2025 09:02:38 +0100 Subject: [PATCH 021/162] server : (webui) put DeepSeek R1 CoT in a collapsible
element (#11364) * webui : put DeepSeek R1 CoT in a collapsible
element * webui: refactor split * webui: don't use regex to split cot and response * webui: format+qol * webui: no loading icon if the model isn't generating * ui fix, add configs * add jsdoc types * only filter for assistant msg * build * update build --------- Co-authored-by: Xuan Son Nguyen --- examples/server/public/index.html.gz | Bin 1206492 -> 1207150 bytes examples/server/webui/index.html | 27 ++++- examples/server/webui/src/main.js | 165 +++++++++++++++++++++------ 3 files changed, 159 insertions(+), 33 deletions(-) diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index 26f3583bdf844ccdb67fb197a56991a25d4b2ecc..582ccc0d3f8d07ce79dd9e978772f9c5ea85c426 100644 GIT binary patch delta 1136744 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

lUULE|Y7H1Mf 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

Lh>i% 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 z zl};!Y#?dl}i5POhf}Outh3%bRPm!n-D@lRJm!JdC#8mwy#=F*J>E#&e|n z$wdz94Dpp4%h&Af{)F26hj_Mp`6svez}bB{@i>lgVE@M%Ft#72gs->`L)dl_b2!gC zo_h=`S5GA|ofcVtwWpeYz#9U1X@X47FIrrkWu&P>4gu(COu;Z}>+L2ue`h#whpfzE@}1+;I&)Op{!#yC3oB5`=T|k!R%PMeKZ|?5rL-Xn?{SoYo&oC(> zdiloVWiv&s5HMWwY8HZSU!rT0&+%M_)K%fI(?O!&WjgyOsc!g*NqM3r4@|OmFswD^jEVmkRm~E`Opn8Y={tOmK%M9_mKxY{e3*??Bpj?Xq4R z`M_78JLEC?_`T`)y@@=>N&o5F{*RokA0F&UJMF;b^b0R(m#oh&RtZnp8|DqA2*}?# zS>94@MA{hSWJSa5!%eb}CCP-Zr<_nlz6PU%th)`bXHVo+aF&!ZTEQPYLlgjsYDvs3 z6}#tQ+DXvKhBq5tcbLfZX;SQLy$Xvafezl$ub9K({E>a94)rR-SBKb|jtb;hUp z!GPt@86!vE%+5E91OJ0V{2RWdOAiS#J||M>F7^`CeOWvcT`;Z%eR^#Ik(RZqrwpqJv=Pn&?mQy2FY)NguvZTz5CYp%2%57hg(H!bJe?w$3stNZHX3XDjw z9R16ML?&daRqWrzT^xKAf*f787ZLU#Rtqy+cXwOa@GLatp3r;@#Ki1ND3_9**{tw?ojeL`{8Zyjz{ZT)N*WP(66Y-f; zB8D6}1TuC*j1dCZ^vWOCT9JE6E0``fD&IZRsw|)qF{!6MxtS3%WPj&>5hsn~8Sh3? znMK#_OWI2TSwm9G5BRuyLQX>xU#q@VVTIy4W#CcyDM;C>Bv`2Y@$nw@&9rbol_2i@ zbWVn3_Xnr)5{0u6AIAM8D3O<*SzdZ`mbMYxqoS^^bV}ko(U5;O&p+R{evk ze$)l1kwe;+bGJ?1OLzi*Rea&u^&8#gF-${Z%8(_lM-6`uk=#cWo{128rVM-|LswZ% zyU1JeSAjXlfg`t~fz9WF_JPcT_K`RaCHqp6b8<+ON?`0UhWLQ#Pe+`KD+b51 zPn6=?r_Ijo*IcMlCUuK6rI21uFI=#C!5@>oqzd&Jn1F@BI@9;-G*dTmr3vZbWm#SFfK7qohr3i$Y%f1x%r+lH}+p`3=>=Jx#2>9wm5alr}GKh~BWxa^h- z&9(cZRiFQ3-?wMA9_mq@VBmk~!yJ6ooN1AtFqrP9WK}khDr?)jC1r&LfmfULbEACNczUKFONs;%br!n%CE)E<4#g$7A zCx5YQ081-evjH3hOM}cy| z6t7|3y#!2NM1%Xb(4r0WjB+iufljngY0r}M>MG@LDRC5-;(?gi0!(Y`##YO_VnNL< zQQT*}Kt5(vfC*?N#i`zDX?1k)SQgY4`+vJ1alU_=b8U;0e|N@-$*w*UPCZg+%q9Q$ z3+>?bvo?l|M5*I)HH{*Idla7Il`WG!yhtU;%4Fo3=zFnr#@a2oTZt+Z(Y z?V40M9>7Tn;Ws&*y>L~~nGwpKML$_iq;U<-<5&TZ&|4XI~9Dlfm6nRn{d4J4-f;;VgL+Mbd!VP>GwpNRT@Pc3IoRf|6GQDZZ zbs;iU-%!;Ad-Epgw~3z2cZ9(HwYu7{O3YvN?1|lQwZ!&tLayshX< z8$M6pli^*4-|AzXeixBzI;XyTiJtgZL2u_#-+ey}7q>9#CE0ixAbl|W?wRfPmjE;N z3;y=QCRfk17d%&GZ$GE)zkkEEUuX~PPv(s80mvP|D?H==mNRHdkY;XxNw&cG)MVfzKYy1slq;yAMh?N8q+%*tMUKbMwbORFjJJ5n{G~}?;;3|IyRFJ#LWDT1s z2<0;%8M#z&2`ki(5HtMz4dSw$8Q)V$erZ_3Bc5kt`;)Hm`5g`tqFa2PPYn%x6%Z@i zAB+L~!sqcJ+yK#Z4S#@o%#c9{`2AxI_n-@)#+w0E#L=*UO#u=3{o(s;VI@F90Khm+ z41B|`1K0RpKppal&-0Xl(Bc;m+>hWMRvq|8+~RnADo{}2_Yddz{YnjMXglC0_yU;G zrNRDC5E?lfKTjB}3kbnQW;)T>e|A1b@nk4qr5EAk?sbwFwSO6Z|IZ(s0)l*lr@*r6 z!Vo^t4p0egOTV$n6M#ew%YXdf)V=KiZs*R=FJ1DItneW~Pq!r#i`f+1mhKgMz}daM zoZ8&R7wT`17Kof~Hrl1k{%JD3-6)3H}Q*YHcS zH$8uYS;HK)SbxEUv%4qWPq)vLiG3uzGa=w{XkosD8_izK{0V*mYt4KIzclOAB7wV% z&D7#@y7cRKGMP*+7L&`xB%aKkC++uOCgJt$eKNdF!tLzsd)Q6FdI|8NYqn=+>L-0JTzjJm0|-_IrD*48Bvwd*j6~< zzztvGcYhGK0GV6uRvWPbg`X3j9jLAY`O%S_t*ETT;2F1x*{N;P={2RsxYQ83e&}jV zSQfj5vofT~3$XzfctE-Mx>s3m7P?s!O#cr`m zP3V$BZ1~}RneN#5IcYz~Aak|t=lX@~4&Kzt1An}qw)cZK?G4n#JG=*6735Q|^4;3I z1sZHXs;jvHHz+zFk^L<74C8W>-olgpJh_RAjaJ~z4de0l3os3mcj;xt*f_1b3H=@K95%6H;HX;IFU6P`Ma;rW-2uEy0iuZ7Jv;i+V^eGIT zUVlg2FB+jc(Ad^Xa=qykkCl^e?fYHnaf4H??c4w_Dk&pB6D^CRh5im_KE&VPw z0zi?&{OY>DtOXfS&`C-Sq#gD%>p<-aO5D1RE8!{K(Qz&S`9igvqNA|EXIrH>uB2G! zF9wEeTV%=cJH-F_o~a4&J}}BQp21$v~vbu4>4VBKq=?l&O;HQXK3e75>aZn7rb=f zZbhUyc=J$Pd4^}P7UB)nXA|LwZM1sb_W;7y#bBA)UF$JNEtGJif+8vvYVK^7v{YNtN9f;y)i@RgkpL#|d4CpcHI z|5W=P3ej$h4XCi@+Ya37>^;t3P*>E9_Yk}B_c;IWSaOTc|A=67{>i{k~jHR=2{<^7wP618wq_C$D)x_;!ifbwsc7F{CT|{N! zVT^=62@j}hZNFy12@R~g-Ua>9iSEN2?3k>uzudI@>`2*lis#{QWjs3cP-P#{2G&u; z*?7I}I;Fr`p4`}NRMVy{0(5fAKj+I85^$MNrAt<%e-5CeR5 z;6CF1f$KJ+W{Y#?xGvon5`X2c-U|B5z&*D%CfdMfM5XQsscoO$!b^ekg-RWL04b}k z5_$94QRpCoMR>~rnmk)YkP1iWWCL^T4~A>%g;3#9?3+uEXaan8 z->%F5FwevlpNawZa;=jAbO$%AxWzSzcABVFM4)hYcB~2-S98+Y@sah}98^;;$wC9k zgOTZbkG$C=*JhP;wSR3p80cX3@xQi@snPLfeD2uJ^+WqC|Ci^O8%V$Y!*h<;fjk_X zMZy=goOVk^+_bHt4O~SOW`dXh`S~LNb;Z%XTt{?zzo1uUPK{n*KmW&l0%?FTjuk8R z`mWJNM zx!n`9@iUz=pgtf{!{@H9r&~c`R&Vj|b$@;)g|B3YeQ|}pMX^;MTmlabb>xSLuxM4| zzM8Be$pvKEyOli9*~2Oe?7m4G+?!)xIOVoTW3Pz7v-|ho<{0kH!_kjPSmCK{2RSQN ziCRU#)fL~^_kS+#X)6OSf9d;FYU^{*X*zM_6oM+ z_m~^fpl#PL zL2nLYPtaG<>yN+nq5PSH96Ge|iJj*U#&zN%BcJIi*LvYLU)>Uji}sK6KigHG>d$uK zKizLD=zoo8`{o1g)n%1>mt?)7Fk7X+dI>y3`>KY)%@Xe|w%ULmK(jF|_f-J@nzY{*L2*F3we=tWx_Ve80r8PTS9pJJxO{sYE;Np&xzx z`+w1f%%ccG^dFY!*YH`_X@I2eK06oiH5p&?uG9SRdx5VHzn5eC0bi@Jy?vdH?d|Jg zY;RweU57XVm-x4fD3UhDz~^73!yYjUW!tq~hi9*h?KZX@xVGIr9rpO_V><`i0c5t_ zQxsvH!lB(T3;@K%*9FDb?)W+#22h9J*MIo>@cXg7z}M@s{rGxpKfWH@kFN*(9smih zV^8CA5#Y8@-|Y7Q!m-^$jnBmo?Yi;#Guy5kpWn6ZHskY?vE6ih{;}OR&Y=bEe(Z)1 z=)cXvTLSpmGR1jkK03~^{V=Xk{LGh8I8MGqfB4k?5q;w2sr}`lJ^5*0;QjBy;eW?= zJleVKe01E}fvNpY>6cMBZ~SI#e@iH~eL|mdd1`wbMV$P!HTYdlZJ+ITpPsLo3w!VS z%P9M-7^}fWcuNSj*K};(aq$stD6#iGwiN>J{nHk|^YYY|+xre@{U|cL_vF|w6@G6v zJM;_n$M%Ol5gPA(YFp#?UY^>9_J4bv+IC&1yD{#J!1Hbe2OYbJÐ3%EU(p)vg2C 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𝔐0z-1d~cCrg@)N0>u@AmX(VEO6fn@>L{|b$ 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

J>dtYi(O~C}c&}x5;{K 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

!+5?Z*DzgT_p~1btHsSDPmd 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%0D&~1>97o3L$NU@XO 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 delta 1135826 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�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

    QS>hkbi~AvEnX#a7#O~tU^{CR~%Gv`Jm!iuuccJ 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�a~Ck;l&e140T&)3KI{8*-U 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

    2{7)yWUX9c)w?> z=;eQ_Cwz+**Pk2erFa2NEI| zA#>Xve3f22>5H}(e{z0)T3+T*CT^RdRue+86lWdg1~`Y%o|i{J(K#J(1a1=`rEgVz z47o3J7qC6#zzNsJo>55>fC{v?ZAz48CnMHJzUm!d7sF=1H^5y4F z!iuLhz-=Aked*oKWjj;lPnErHbfb@?Kqz>&@c61-L*wkiI+)ka(GOEe8 zB}$a3XQZ(a^R$Ym3vJ^$EazhiV-}++4m>;R&swQzl;Dv^I3D04XLwWtP`OLN+!BlR ziT4#giH>0DULBLXazl`+XHdhEIxmgG{f=j4B4{?Qu= z=T~~t014Zd9nyIW*&qwj{IOD7nyiJ85Vsfsc-g~#Ek6-pm2~Rf{$f#vO$j?SJr~(d z92GH1p$N>?If%vt?Az~>^`KmeMn$m_03QhjMkJF`__oetHE0J8kSAn#A{mrVqMnlm#$`-!&zoUnIT1qG%?uJLo;DT zI-%itVFVS_=8K z1b+*Mb6y2bdFXSzaWH@QZL-|r@Zxn+A|ug2XUabl?*Cw<_6NNMe`vN~f#jt9WE=d6 z7t+DFBCe6waH6=LrQ)=u)esri36y5>mKXdoe@a4{2WE{9+U$IGPB2i%7 zGXQYP%HR=_1$tvZ`r_`NTU)d(b#|J`YeJ!vO4((PPY`IO=gsF6;${m%6$u^}kid9V zYKj5kZ~MW|QcUXd>}@{gNT?uKdOx;=!~PodC7S4p7k82vkM*LjJtU$ z0b@07mFo(Xf)ovGu@LK(!XLR+zmkiZK_Y}RvFuFu7Qugd^CD&$CM-yAXEdzgF;={F z22E6xRyP(7=R|au4@aK9NoP-ms@0MY(XgVGs~08io?hciH9QlPWdwn)EKakdcWQd? z6JO77fR$_6z%9f+TLQ?c+$5DzO*z&*;-q$N4K<&N7J!$V5+66i7)wiQ>Xx8|AzRC$ zk&Le@disBHkhhF%((&RHOPmXHGNW381X=#JpcRUHnM4UZDi48-zlZi!x&6D!-Ws!1 z0%mL3wN~=0A8o5$0ZXf-3uw*^vI?8e-0!GNIGZswDSH6U?7L`RT1;wLAKrV;zV8KU z_?`ThhsG+==z#(1%@Y}^9&EH+t7F62N7j(EtB8MW#40GWUd;>OLrq}2M5HUYDt$|Q z0~C_CYvZJqMCiTgDCyySs#2}lyk&@eXDYGRoIlo7CG<#CQo2+q^L>Djk3|CJ+iMD{^L?au zQ@>cot+Ct4@2FLuA?VSxpII;*h45L#bq@(*6Fdfl4Qrm7mmBNmgAxZqhdIy!P3QqG zc@J*OJW+YcD#5imH;+F;*js5RQfYBlg%^KbbQxinA2v&U9u~V;!8)dZzh5%MwrUWz z7KxN2(;T(RSYWN|M`_`PitSri7!iIh)Y0F(1yL6+g=C7Na&^ds?aexU3I}35<_H!s z`!m0ZnSwc?m{x*WbXP#62%#1>_juw@rV^9OnE=8keWj6RND*1BX5?Z-zTUDUug`y) zgBgKB&32m`vJfHF(wcUhCIMyMXEo>wemG@5UoaRXIZsAW&SNz;IoGRBXGYyQc@-7s zq0uB}dFa(c7%(qO6GtDG&PtBKgBq^`BgLMok`SD8IdBoTCK7lZ`WqttF#Vnx+I+Uw zS4k^nJ)^4gxtSi&6xaOXNux@4BHw>V;O;{}X4qW=y1byYT2~|4V5O0LAnEex(#o{Z zG9QKtC=de9KMRL_saAX*I*^9KSS?aCX|{jP>LMoZ z4)k(O`P%sDrj2Zx6q*8|CWD==)~6g{Y5k6Ea1MlrBXH12w>-T#BnMO)w73;Sxcaj4 z_G?O3_?TvXHHxTU1C=T4Yk;ap`4d|M+RM7U3MTSN#<@LoNIs5bgB3yOKeKBUh39@a z(Rc{2^*Y0$CIT1HRs3QZeR6;IH}GqyM^@o=J_yK>$}Cl(vg;zTk>ZF8lYkl1 z^=!l4G3e8b5F?x` z*|TkukY}FeKNp8SekB@~0-fe5e-o~cm#@Dd0~26_(ICy>7{K_|#fWy@S=<^UX?pCN zw^IOUp$-aUG%qFDhN^#K7JfBx$_7bY1ijP=bh9qnXUWA^cg%2sWOrL!yF_m7-{98F4uD!d{`Kxzs1{xIgFB;6?hqrM^um}0T`Dn&! zxx`SRZ)*@fmu%-YKmcW^-v!o4oPBc-fdmMO9Ro1xlndhWr!RDg#5XC|c8QcWsU-+U zTd>Ao(>KR(xFCNgK64kmc{Dl4t`EuB@07NKWMd2xeMa9r-XN#B(07+`uRSk1W()9K zZLp4Z4GU-P0u#47L{6H&QSwOdxqlVCgn(d}Zh4hJT5pNu&j1h7T?|;XWi_}*Z3R8cfwzllMJG#|+h|j_Q_K-+F z?cz>Kl~LI^XI7lq5r?S&M?kp0Fo8^BAW38&6^&j#a@8q>{E5^FGay(&EIaSpZrqBx ztQ*+Y+orUGgp6mf*Y;0Rci8!Cu|;ZxzHI+Q&f3PFB8Y?4fk7aw;C|Vg7_@9&B1w)e zoGhKj3J)I>93J6+Q+8V{`{ycMyB+thRnC}0UT4VH`$K+Wm-Ps0#g$niXCR7;t7In~ zr4EeaAB_9Uu822!&Mf|p$yK}=J)jvr;&8lQ)1s3#^}@oAqenGi%}ulDCS7Ls3$O6o zyrNPdgi7i981hV z1fh9)KJUwan$Q5-wnHb0k|ae&;blpxtZTZqV?Pg3BsuE~_kT%;Z}*Fi#6$PUpd_>1 z8S_fN(Sr)iH)Nm?+H#iM5&k;fq4AVsFCfaCJIU`Rp((6|Yo3pdg0l?MSeFF5;csqy zpZC>NGz~LBW!n;P9qs>0jj!v^X+oqain2T*a2y|hf6WpEQG{q~nx=V@g<&}U`aO;# z1mSw$&+}ya{eH9U@%{BXen)lve)|kU)@iux-p@jk6lGC5&x6DFu$z`uA;v*J_csr* zWh{?~Qa;PjlE4@YV=$*f;y;AU-Tptcy#_J|}9)rQlwDBW82Kf$0~l!J?P}iEP1f>HwA1qn`sj*ud9Q9U$H6wT1}@9%j+fI&jYqd)oSyWb?(U+ z`}xb6U^04BlgF-}Za3yj=R9WNV)cNY)7SOat{}5rtz`clCQVtQaqAI`p2E~_4HhZn8%HLxfsQf zFZeNkQ&*HOUv0a&zVLlxC)3C2wP>!!cpkp)Z*>a zU#(yGlU?nu;i~wGTF*Kyx_NBjw~yt2;+&kLuMhgX61W>DIrjK9eyFSDDSI{AET#|n zXV4wFd=BQ1?lHaW&AMHrbI06%@Su56D*Bi<8!Xlj4p%h6Z+mf*L4;_Dn- zfxK0vxXkCLLzGNv@%n6gYPZO*sP4c!uk)|)!3d7^xS($_JzsZRb|!x|f&`LUk77O&5)Nza{)KA)qmj?CS|Bna0NxtP44AJ5e;HnxdV ziO=VR%@qno^|7X7I}vX5(#$Y_=Bbk5iKoQgj&|`xJ{`KthRq+EapC#(27m(W$76u` z|M%bj%f9|NzFhy?e^vE<|6l+6|M>hk{I}Pa>&ySMuTR(U^}7FmcQ2Q>NArL5zXh=D zi&_fFXu`jEwR?}>4FK=l|1h=vYq~)X7bDyO;PqvwPiuFxfxMPdn#uB>6G1bpdUu-|zAlJIS|p9Ek@2@YYa~w*BX-)IkM1xn*qlT{`p2wDcjfS<9xk>rO1_ueosBbmEh2>UZgsb;3afFWkaB z@G^DnSS_%;_}GAdHAsPQz&5Ub`E(;T#leANRWFFRf+ZORQH543@QTVd>g3+F=5q`e zAF0$`B&llwr8u$}ujZ!H2KyDr1reEz!^s*40wJjSYOPq!M=&$+RiYdm3V4xxr0pD_ zWFJ<`j(#K}AM@M2@!3kU+4u974$p^muu&sA-u3tP=W9)WwzdM{pq4upr2lwrSU+Cq zzezh$GL<=+p@*n{93z=J7U7-WnRq5t7#}9DRHobz_5KIObBV@s@d?y~HJ}3EeYQ!O zb!3P=bnJt6Os}bpTIR4kU0Y4Mu}a?hQG9ZXOz)+C-kXkhac4z*_<4VB_{lA_U8Xa? zOOI}wo>&vFt^Bq}GD}z&mu|t2{l4eiwgR!S@@(TrBJ^>3vLfE?MMIjdp~kyEpt#F$5xYeyv(M4B(N-58&_%pg0gjf*#`us zeu*qEd`;3oY~HGBMZpL_E}p+s%m^}Z(WLKIE|w&xTc?pbh+-8~@!7TNonr{)e;R9l zFHd74&A<-ksjb|c6kvfqD+N1M;l<}l^*g<~S z<}zhCUy9X}&51Eh&g_FkFx}c5^Poz%>om17)RA^k3eYQS2dv$p%~#tn?#)-mfQb;u0wnBbD9OP5Y~O!kd1t^gf(i)$hmg zm%pC*I4#)_d-UGSe97Z}AKOg7@2G#L!zm^QIf9(oc209IkBdYJYhl+5T%H$+Ae~V?o6P zPvkR#45PqA(czHV${5A6LLe#;VDrF8!a!Yvow~To6Z=|8PFBVIc@dc<1(A5D3JFvM zf$$avC<5s;C{0enx}Z^ferWj&!TbxOv%i9eVEmCjg&0_HtZb~fU!H&a!TkNxpYK3I%5qUj)$1YwXzM9j46!`EVW`2r zc{{`h-ZAahC;fZw``5&O)8D>|4Y7MTCq*{+I7xFWq{&VRhEe)v%`RwpZ9%9>lvJi#KPyC!~vi0){foFNeyTAnzvzAQk!S|KBF5a=a{Lp!e` zYh9rP7-3EPh6{Be$ViyvI05Ty1vJw@8z>p?fj`5k0w(o-aHRKtmO4&o`!I3u-}Tw4>Mysbw+yAb zrBD`<)e;M_^m2iJk>m)J2(2*vO2SmJ(8tTp#S2xrM4Akwd0MJ$LxD3cwMxl=v!o*k zQte;ui&o`D?8EQk+!6-jFI&~C`)Cay$OOELMkV$|8FYBx4Mz;u{f))LB6~wn88#TX z1J#P5Y@Y=4PYm>Ip(+h7Sg zpFlS||0|xF*zeNKE&kf5>Er4x24{wj!)}`*EX^Zc&;*72;qbveX|CHZmGz3MvD+9i z7L=iqR(@W83y>6p@|F;M39oxw2B(*5dCc9+Qd1h-s@gLOWko`XI3m42UCm`c?03GZTq>9y}-9s6g)J<)(SF*1YQ=$Z>(DrSa=2DzaY zBu^>SF@f%>o#%A41i3(~r~UXkANA*k^f`eAwFxVKeQsL0=>1r8JL^M!GyP-j`goWP z*hAYz8F!ZG*G`|ITYk{vk~>yeTg`6cwOmAKL7C2-_VQpGdcNi>l+tjq6l5h? z2K$Eygj-}eC@RnH3US*}++yI2-0)J9rao9W`=Wt7aKk0b;POek%LNJk0eKdK5Ok&( zwS!uJqacHJ*~AIVr%+J`0VkHw_f5vnf-Utr2deiMc<|r7KfL?yU-$ft=cYHG=={cN zI<~m?_3AN6+WBQVx#5Sq?>xqize=1~KrL1=j&qbR?d{1zZu`I&g+2ggEdtJHV+Op) zY$WSFYG46{I52!UEeOA`kbS`Zl_o?z;M`SzT#AI_i?Z@p7FG1*w?c6oD@(-`!{x#1 zD${Q$(-V1V!}|P%(0a1KS!$8E^1@4>7xp|tZsH1H4_E+R#5sc@FJxhV9~w_hSQO9v za*nxw79g2zAm>58jYF~_qld@o6;w(Q7`82h1T z@zExF+D?Uz|BN90RrKWHb#<+fwaYW@DL}x(cpPISya1?<_dfA7-srMB*0^D76Z?_S zdClp5o^Lih@yl%H=ePa(%lEQ8PPC2x#JfI54trVi+$%XjVfNr7lVimYNXf0j5}wRl zl4lwZQ;=~KOoCOEgN@X|e{J}y-DGHgz{>N{HpNM1_(v+MkB6|%{hT6%=5Hjd4<3#e zZewzbWG;dWc|TlZP?Vtjk|8OG6#(Dllt5QKfL^EI+H9tNBO4P#*u}>b;Gpf7rI)vD;bibHpAupjPkw9Z!AdF%!2)QPr4#YtM)S zB2xm2$97Ydds0gW(<+XhA6BFYb4dkSt3AfCbix{0q1f8W6j(@vk(>zx4u}{>V0oH<~s`K0_Ej2&U`~D5j`#9I#&i&2b>HjG(oFP0l{7Cv` zB~ph*CSv(~k44>J%q-ZhDM&BJq3MF62y$3>Az$I`D5QrPgGgxG+Og^F-1NDQ6^L~jyuJy1S;U382NnA(s1}RTw8-pXpUh;8Wwi;V z^g^JEWs)%#&0lCxvp|`nu!vDDnQavhJ`|U$FR8aEgkcAC>WbL04{A!AgO^0c%*I^W z<@|(1HcjxP^SYc{KwoHoknX5VPvaB2EQhok5t1@ zs^k3ZW}kYGC+rt*_(v}Ooul_0$Q|cK`rfVXJAU=PWcV8|t=-ZK%eiOkJS2!;?C=$N z({14!#s_Be6EUA5GF~&cfHx1*mEA#z%1VGr9k($~Rt`4qE(;rf<}25!BGlAAL6^sT zlRdjY(^J=o=^;J_WWM)`OnNy*Suub1fgy6_p=X$(9Ren*URs(TlE~Az>RH%xjqe<# z`O`~?RnMP>zi{TT22$gh?B{&nv1e5`tYaw&X@-7s0KG4jn%Wz!z-{Nozu2O_JzOZbI| z+9Q%$Nbw^T$^yYQ1Pc_zqVoc=b+F;WCt_T1FNpZ~71s+aOa}zld@+MIz1jsQNaJLi zjNcW1g-U5Y+P*Z<;{w#jZ+>v`&5jCD@n88767d>=*jSQ(zfxha@yFNbQ*svzfdXOa zb8ituU9@_78DB3UgaTO*yGu~P@j($Rl#fN29R*LYQZ8aG$Mq*cqSEUMU>js5Y_|vR zpx2f8Nc6Ziy7{!61-G~s4riW)bYtbhNt!H1!aBh^qcq<=bCj(?-Jho@5_Qz)JSvN+ z`jR+^HJ&AZ7^e$uU+HS}0gZt}1)0X}RDj0qn|mJVcj>_`vTE47w6i4K&zFTZbD!n{ zdzTo+vtvB|m=n~nB^I88pmJgS_&EM(5-JQqfJK{k_82_W8bJG0IHOhymk8y;L%Zwa z9Hjuld4mrHT)|k!xfMxMq=q^4i&E}wrTG?$kr0suLdSoLmSzgl@JUMxD`W`rc|O!1<_EW!qj{T2DtazN zE@G%znB}hIM+YuMbHfDFPwQY&J2X=ZaSMr9#~Vb$YCkS72M+AZ#j#op=N`u6nh4=N z>3m^-qy1lU4p}3$Jsfy{U%Ws!U*2P$u0LmY%<~f$ZhVRLS6=59S^4*SZ#h7BUt6n5 z$=|#sT`eV9wtQ6%W7k2HPh7rGeCkNRLk?KWIHQ=G+vypdcSz#>U=!Eaq{NZSm(Ui0*Qv6 zw_<7Ml_(yW2Vx|1C9AcQEkN&!qBcRvArUf*yK?|JVi=Yn6@PwF2p zQBfoq#v*z?0L4A$C+Uk*%9*byUVR#9KYMxx0R*t7OBPCxmv#i4fpEYd+1DbB3tLdq z*WIF)u@Ha^Zytf8G=2Y2KgagrEBGGwJGBIR7I zrh!O&+rNz}*yGH!tf$k*dQEPA~$IZ~<~n#a1$)7`N0EjZwbj6hUNS zew=?TMU3Z?V#`kqOFE;uqPWlNsK&vI5qwmz()n|j-txMi99Gw>c;4rBNq@#qxaPUO_COW6FW!+2<;d3e*LwFnv?9}j*9rmS|0E_M?3Hxr-zZE zbCU58%-8Tl7muH>7l?p`#&)&NCyPkL*a;1s5fef1l=9BT>zt=cIUn{&QZ&v?gmP=2 z6rzw({?hXegZ)MDF2M)QH}KaRPdD}T^@Myf>_b*kU0=HG0dI8eCrem=G`xoeeXUAk z_koAkIZ6|wm>3r*%@O2rM#D@7Q-9C$d4Nk3d1~=2kIe;+26ljIZq8f9B1_^FNnpoi zz8XytKYOyWVE;6yZCXW9hCwYxk3jWVyR4)jbHykEwu~+6qNV1`;G|x(`2w#p>~=C9UuC?+8Gi1}TV9lsNO%umF@2pr2z{OL zo!7l#cWG4lMBV-y6=ZX#ICG72gP1jg@9z@q(?y*JR zH`LPHKRlnZJi|VDFvH3qL_m=Q_5gdA!Bh4#ISW1^dVOf<`=SP!@&QKb`HY43W8m zE^b$vTNQM)O+*TRieX1%FreV-*gH}9Lu##n<}Z63^b-g49{#E~Ss|V1y&v)s&5zJO zVgd~Z-mXI7%L#G4*PK4IFBUWx2>lEB^}6N0XH+$p@pW?1oC%a{r2l_fs{a3RX7>Ms zC`Th=_Sb9c7`CnT^~U}6iu?7#w@nWFl}mD#_MtN-0ykfMmXQTvy6Z4zyJ5AEetuC=F8aHdNJQ{qv8N@3aPQO zA1ltmSoV8+pa|j5k?bJh6>GC1egl~RsT}K>m;?kxtFH}R!Siet)JKfzhu6~kxg-gA zpFsJ4JeR+J*P!PGzOR|-{93=ReP-cEwuh1@to`P~T0cy2&m(B=OW5MRPdiZ2$*p5z zD|+@^3pbvPLkMkYVl+J)FRDf;xOAL}&xNYPw}<$JgrbCuAq%DNJNUikPX*K?|JyDt zZKpK)&X;FgdBhpdNN;o7 zR$1cF;Uu<`wtB-#*AHf+2PMAkPy2Wrv+EYp`{z+3LUtLZU= z<|Xo*?UmnlDfqoMeu9D*G@zX&=p*?wmw4S=K-3mS*KJ1l^E$XNBq{69&i-jlh5orS z8mX9nSwYH1;(~vzrM0{~jmERk@5ZAJ;IJ6Y$4{!a^FChr z*|(jm>dwdiKJ%^ie}J-Ju$|kw2Jp?Txot|I`SU(<7Bf%`?WA?V;^~vf!v!SwXd@^z zlssM^zR$Ymt;bc0AkBt#zl=u)2nPW}76{~j0OjNTWi;q}##3la{0Xqt{1;xtCkITV zd0cw0;rv~Hy7Qe~Y7IP4`ppmh@F}q|Ke&>M);S}JKs@`~$NGfLw*v*XTL|Y&Y&VXl zj3X(6*Ou<=!kSSba9PxdJlZxcM2Sz6)fT8YF&^8AMY4w=*-l>*m(nTo)CtS_^nvw% zHv!&p%_8XWD(E6-F=4^n1I=sxeU1m-{&(J|<7+~DZOed5`}m}BtL)F}PW#%O|1u4l z$At^^p0DR`+vNGOQ28=6&WY8UOQQ4RZy(5P$5ztr;%kV61#ff&M-##R=>#HOI6*b{ zqgYUR)9-Y1;tJ2y{9UZjTd&`-w#d(a=eE`{xDi`hqObYgW9o^+KlWsL%in(0lzZM? z=M{!8`7I6)`JUBe?GVTNz1~GId*Gp+g`h*9(?(Ri~-vTCV%jam#@Vv!(Q)st zP#SV1wwgacxXch4!TEop82 zu3^XnA`X{@W&1V;X{8l7c7DMKu|C&Df+rRT2gJFGOE!0#xpe{`5_!R-y^e9{c7e*U zFLhoPV~~u|Jf=tmCht;zBg|{e6b)aDDtF1%MuL8!KyC+I_}gm<7erWfa5`*((7aR%nzy7PTcdB zd!F+fQv~eJSv7I#1u?Fhc!cvf<~cPNZY6Av$2P*-1(5;IMWS> zJ`&FJH0om;b``ZqNQArc zdif+xcL&rxINmr8GaJ^wu&khNL_d`+DB5Xkp!lfsfo&cCop*-Q%`bgSn?4(!h>k1# zx(aSMW;-5NB-A*6W>`ml)3bbI7wCDttQ@ph{7?Md+h;oSTRwpUB)ci+*j`#YWHJ5FyzUB*RzGYNS(#;e&AuQQUB>ot1*J2biOUqZpSB3n3J)d5u`6YWL&aTG?s2q<( z$aQ>*p|2zN_yB@G^B+(qwnX~PAM|*j&%;g3Za&4w|GWo(mdBCb>G%J!2Za^zmX>kp zi)BP-DPuXyh+@uqCUz?{w=l$OOH~YHdd(cTBB}4AcC{V=i+I06*KPxsP@egggvRyM znIlV1GTeB$YASybPWP~VIKcZIUq6Z9;b8@`wm=FW8tVbV)o8Y<0#H()NefGNb*eJN z$$+WGM_kl@WqKMgsxwN#mJs#lBiFcG=zSe@N~^zd`AV^#FZ;)SV*Zz=FHHvjlKqie z`E7dAT0h?L1mbKXPhy2D3(_h7T-wPMHy*DM^TViqdJBy!RwMTnfh!X~B+4Awv*3ao zZ=v7ghJhVb6Mqp7_m$TSR`Dn{Br=(G{)So?=g`v)d^ z-BRR#ms!rxfEz7<#Oi9yyC06m*SuyRu-1XFTb%?5H`uopFA+#;EsgG7sL{9v0&>nt zfJB5@N^!P#8j8lBPopO(79g!>ME#|GQa%X#^W~gk6l4N~^V~>^aFeZUa;-o}JpQaO z24>laQYbG7M7phH%Aofn7{)3^uGYmtrtJ-X_4d|e!7cwuq?gn$tC~EL*}N)^KlMuD zrdLwKI=BO_TGO0utiewjKmlppH%1HgE-0eXi1Gem3>R}r1Nu46yU|uuK5Ybo$85;Y z_j4N-rq)9_`tR#{@r{4&^9ULo59hVSmuNP(i9vSS-#8}5`t2VnkUk%Y(ZFvGG5EKC zj&=V|@u_79IyGK(ia^Nl@}$t4WKHicJKA3dti}Y&r}47{(qG5G6C^rTL1{kojt}~f z)%Xz#6Ey-leQxn0e)bFI4EhlE2}Sm;=^t!@-}Nu$x1ONLjGr28nrJ=2y@uxMT1Agl z`got2m zI8I|~T=_a4*LV$s?scK-aAExR-LIl^tA-Bxp&yQ;k54p!9xM7{@NuY#fAD30B; zL8#hpwwuaabmt&3L}KOhJ;=Br!rohk`NV~^y_jBBBD3M$q-gb2dYeftjx1x{C9{E| zg~lZT9gW|snWy$0>f%oiU0FPI8=c1E8qK6*-FV73Yv2WnKG*9xygsh~uAlwZfpz@W zbED5TYg6PJ?8_}#cR;=pO<8k4UrnH^p`IL;fk zup7kR+8-$-x0E`tqTyizXkjxhwbos&!kWSg_ zg{1uDPzOjdH>xf+gsH?T7CL8fTKBweAbO46ksXK^9|r%~x4>lrfAx9$OGnke@}(2M z`$NaC>#la<#Xcd+Ae2L&M<#X2@BE%7haift zh=S0Xvw!kgD{q!po@RQ>!s@#?(s7;5Os_wVB zX{~(3PpsfW?*3aAci3(ZtdS1J*}Fe&Tn_5fZ}`$hYE74sf(R3TpQuSAba>6N6=ZG| zjf_ehL1dMsY!B3OgX`LbfF&M{J&=6QQ1-JG0MoKU;Xs-qi0Y{? zvm@?OLA!Lx(0EjT1GNb;H+GxGR*)@-uJ>W>+1xK350~&;$EkH}JQ?~x?tO$=GVqM| zx^17Q|2iLk=3%tgN%4sX_C#|P80RrTxgEj$$pwefL44^UGSMBMi-HCk!_bl-NPV;mCgU1tz0t^)T-- z`+1olQ1(g!9zUJNOQ7NHdOr2_SfKvX^>nxR_X`i)`U*OJx82D?GJSpZ&-J~Jkfam^ zFn^8CvD?glU%dbbmX`;e+n}KD%`4mp@S+t5jz<`;o?HQDY*iOyk(*~XpGOY3oL;&F z3t`>z$XC6lq4K6c`hJn@J0CB3N2ByVasF$o`@<$?Zkr8U|L;1^J+_Bvw^r1CA!3ik z^E+zlr6n#19nvR4YBQsf5$pO+Wwj!me6X6t!Z7)Nc#$Rx1hcp>h8R*EVz0a9U8TO6 zH!ksexl)u;VM~B$w4F7gs z^>x>O7hNALpTD-ve1Xf?_n@jhkd}qT!{<(!y=_~~r3<0{|9@6@HPhYY%Ru*KUY-B- zd3~e>WYQ_kFT8%Z4(BC||6C{cORtmPuM_>fPMdp;^?z@Dw5=75_DSxMbDM6N&P@VQ z`I&9%`$5oTJ8sCo)}*&F^eN?sSI%Q7!Nlf&k@eSJhYYpwwkqcC?r8M)d~k(DqaOFl z@%Vxr=}_HQ;q|zeZm{}CU&UWq%WP`3xBj_1z8va;hAXK{3hA5*!{1P&;z#zdCE{@h z+nH^!vlFB%tjz2+S4*sFq`#d$59>p+o+mg=pZ1e#9Eb}_LYC0z>WR(_Siyo-<-<~c z*A38Yta(no{;qCG*ElLnlbgTl&%G7h`uMYytD=gAWk3iO`#YyG^BEgC&|c6)K=A~OQqkW}e7 zu+#UE>-%sdT>F0XV7{jMKHAv+!Mf>x?7LoHX5C+$;)$2p#%%G;?v_c)8d)Ltb>$dC^JdMKsmd*$_4K7Yyg^ z*01-S17)-CdJKHm1SY-T8fs?Wbts)X={nTFb^q$2YSQ(?QGAkUOB|YU2-5nkTE{Pc@R4&jxU8|Pd(IgN5nDn~B+dDvG>;Tgmw-{OWW4YS zHljjvfLyF|&9yK}@_FG0bqoQ+wpDwUD>9-C42`R(Yd?O1jfvlsuIs*Z zw*2NNl7S~qH@~pxcQ38ZcW<@*p+?@N)4F_I6uQ17&CFF2={g#3Q{UcyTv8O*l!dT& zrF$hG^HKQ_yCB5QS8>HKJD@h6VC5(DymWb!ZPvYi-Hbx%E^S;zRBX0gv53-mj8Eav!bf1dTQ*E&q3>ZJ?w%9pj)DfVaEdd%1@UyP23 zBivm@WN}~jf1!5n_h)^7VNXy)IfC?q0pkL=W#_2R(Lub;u0yV9JI#E-+seRZ2pG(s zhqJ%N&rk_;&!5OQPk-kDb$`(C@21)8>xX}8PV_x$yX!ebREbFtC}{^dqsvBgR7q)bDS0{rA4f3Z%0EFMQ`jku18U6TYu3iSZMqwN&4sLg``B^XcJLPCp4;tt zt??Y%7<~Z>^>thF*LDBkD}CKd6f&C?tnas3NOmH!&&`Y5z5LDpPJ1r=uh*Hb8~BpQS39q}av$fZ-v3OQ3Q#op=TVC0C6Qg)97GmyWZM!9|v;t63ADdfI||? z!LYSoY=vBZq6(L)7gX?9JB&$Sr-?1OL9lUj>`(oD;4uObqg-K2WWV~$@0@%({kAWChQe&nGvx47P6Mz}6zx9&+oT6+1gU#v82 z5MVoDj6ukds=n_}0@wVuwFTVQ6@&Y_{pgsq?mOLBKR!eIM`y4_y*|4a0%pW;wP6M4 zR0$6h8=;m-yGYMg%SwVc#ggNd%w8dX$+S)&v@z#Ya2J$oqh`MO^LgF#+1szN2@S=q zKqc50J$LE64b1!8rHLO6I*5LrQY5}{y^fc+{(JrN0b33lpPfUOB4jTT3Z4o}bPN*G6m82kuS4xVsUJ(lkVMeT36M7wAGsSCvE6BD^ z8^0h)Ey!WE%ICfl2;>zCVNqd3_|-x&rYe0}wAI@}>RL?pia-!Dg)x#ww#+YQN7ZAh z(k(_}L4<5kku{+B;wVk6t8k!AF_OYMh}`LCI<;aHHTBYNvX_PCc7v4iQf;$D$6<=G zh${q%9}D@86 zy|5a;TX{BUR{Nf?^f+$kk`?A0gDH36GhP()%4rQ;#Nu-i@<$68jtcgO;)C2yRyKnls-N3^PIJwNG=jO241{a67 z@xmch;c`e_NCo6_O~f_C%D{P-%}4-yPoV?INjb98~KQU!gPbR1A3q z9q{4iK8J(;F_Yt)TTi}!``cO`+#e@Rre%2U&wLK5^^-10%hR*I&Mz?vwY?O4n9ZSR z38IQEk&*LDydLIuaK}P?0sE)dp$G2L$G`n}-oS1=epav>`rZaVt}%(FF>H{1$8)B# zN#756(}m6Q%2}wo262s#McpmsoI*Z&!3~?Nh}Q860?jK#`gK8nI|%11+;F1z%hLt; zF~uJeEwoM_FA_h}HI+a6@MnI`X1$&^(78^m`v-=8)j?Bq?{T};S^7M-w0^X{eZPez zQasFU;1fNAt?x|=v<9hvj65+hw@NXe@Y6Be0-V&ncVe-OYZO+jTI6&?gfUu`G+cz@ zc^%S;-O>;w8$qal&^UVt-U+A$Zk5ix0@ZVwudsQ2T}grGiue5#iJ@HhdV0`3(pD}% z$?7R3R_r6`T(K|;cUr|-2Mb?MH3&X>+H9u~ndn7ON1D9hV-pr@$YVVd)xNaZ zrpJ}v^LMhJK8HRJA2e*gbd|qmgk*zX)G>4(zk&?fS0|VxXbus{Iem2k<5h4@0*2uf z7_W}NkTaivKY4Y677Ioktu+$cm#&ZqE`KCkbR9I*ec;9xEwOpAletMOG(lZIE zPn!CZtH!is;8BcDr-RF=V8qTZD8yGx9ic2?gbsMwNwQZx8)1A&k=`FdTK zSGR---6zZhULt+@MDj9Gh5uF$=EsT;inT5pJE+@@_A*G8{(hjm15wY>B zhm8}&3zGL*Hs>XrUjw-xnX9Kt=dfCfHPoH?8|d*VfLyRHfInV05e*Q7TYq05={c|2 zuNhxuKQplWhh{+A*Xa-J*=c?9O*V9y}3Wmti1v-8#{|*Z#(>LlE7jFyD%n5pKL+EkP|SR!0i)$_=S>C5vBFxwM;d z0J$3)-QA)ug-- zt4a56`?}hT3tbjfKK`WA4blyRin)2EIRbB`(%U&6N$3<#1S|ka%}aaNmhPy~bu_MZ z7(X_q*G9&-UUPb%U1j~uD(K@gS`+oLAl2Ay)#LbUzOf)iTV)+}?0*}V>|qgB&&&35 zS}EttD^>r#)o1PXu}}_iZ_>)qGBoN{S@+k;R-;hQf${X*Dr~}1>bVnAc`aWf=&!T2 zx@{HF+=D2S2%5^83z12P}{m*C(fx^1K z2)BIaq32wb+(d;eSEX5ckeb|hh>_9Q6fUFj>&4|8_*hkbvb5p{A2J656OTV70u|fk z$$a+?&GH>l3xA29xWB>a4vX@twF0~ZZ+w*=C(P;lc!VyOOqRZi5$&L`3hbpj6fFz> zJo5HpLvOF&b6@&?h(G4qwf&mj`ql0;aRysP_r8kX zvoZG7RnzpPr7fP8|pq3K8Zd|-Fs0~HyWpdq)7{V2lecr4 z?qQhowCOcOwf0vQ5_;595Tm2=c5qNFl2kWGq$sK}99}mt%w5Bdp1XFK|1lqrYJ8ml zI!TrZgZH2R1kMaHg_SsYtXBr7WNs65)FF#cIZL=rT5b|67~ABwazafn46)9 zJAd5xa@oYe%E~&O0|e5=tI%{&V7x7jjFRKlLOSo461(NFUZG?@tOUL)U8>PKT7ho! zy?@W4`kp5U>OiSt%8lX;7H+{phrQp9SZ=iy1(K`t@Z`7`Rjf0$hZV~r)n-}40T zv#stqG#cViAB%?btZg1G^Zye$t)3eL*nfk8Ke){Uz320{nFCDYaLv_ietPcun)1NA zY5aJtImx;7f~;UlMF?sFrRlH&Ufkj@KB_VBRrkRlmNKORP!)kHb(|*qOTrfH z=jcf+Jb-@g1G@(C3d!62nBuRwKq}k(^R>4}3)2d6sxi|8jY9F~bAiUHUc<()Jbz#t zFRue$Ts%u_xb?RHw)G2**iRpI&G9=7b20z5kGk)Z8Dd@E7cun846_RU>W^Oumg$)T zAn1bS^NAg^N#5s}zx(y6Lm=3)X6~TXEWXW=nriG@==mOc{(QeKm-Lq%b+^9GHEOAJ z+jQnjnE81>OIG7s&D9|##fzMdT{is*Rqh76K7^erq4xi^qOzFH%p5w7=r?0y-H)_5+5biCdCMMTa zIpFK{)|aJ+^?U4>V8BWH3V-!gbgM`32M+{m96$3AG53G+JeqNEu-65l73JyJCxasy zfiIZmOQAEDsF{ZJ=z8`vT3j64sQRC-S+b3Ed z@n^$qjtmtRR?Bu^{Rr~QYD~3hzvFL`4?nx%uWR=t z>ma&l*UMXMMsd~HILX0}Mup$Z9pqYxP$74*t&N@4**9L#=|7D6A3pL?t9&U*lGrhx zZD528i6#z6?4=QwlEhu4tNd={5J*TROHo0vaZe^_$En|YQh(UnP%bImO1~2SLrKO% z?2okZE~v~&cfLd93v1T@V(@@?0!p)EYDVPBzrl5{(0^iemX|za+x0fjHyVzp`*-qj zy|*~4AG|cqy_;O6sqNz)v2`mD^Gf*Z;=qVG))_e#YM?nijXV?znEuI!2iK!N#mgiWP%Uv^`56PK5o5NhZIDRz#ZZy!aKa1EMs>A5(BTS}+`9R)vNX)^b zaAYq!|D=jjpU8huXhjM$x;!@u=3qRK6jb#|h6hfy_NdN7Q0Zt=>UW}Sr+XG_>zrYq zl~O&5kgv;lX1lgFT<2ar?lcVcl8`XSqEb1bHWYLcF^w9Tc@*69C)An=;x3P17)$yd z=FM}=BhFUd*6}beNY2f^+dZSM27jyLf5Cs>>K~y-*WG^~weW^>dy8LeYfx0Rd_Eo~O_y{%Hlc=$Gtkxyrl@g9h?>&GhDD^m+~==HHyRxlC{v|I34!Ju2AEZt=N}v2o(n(j zoSq#Wok50VTRgmE-&&5a##AQnyS;=T~dE*n;W;jF|84UQ;i9hW zr*3r%JN{nuhd)m{-t3aEB^GJ*COZ$FwaZKK;_TAnbZPA9mbk)+o&e3i^Yw#3{Ruet>yXVzm>@r)l^O{UzxfP*Y%biM@sb-Au zwFiGq?Qtc_>>JeaB@s6QCo+vbtzBfVp0Qut7+hBQ@9UjH+`OX3Ohuv( z)EL5IfBS#D-}1HaeqRhe@5}w}9er%>mv7aD7w25?YS%SZ`t38{X8*=t>D4QfQ=qG5 z495vImZwNYoBDW>S9hoX;Hw0395Ht`CF6f;aW;|~%OSe@Om&5t;jW+j2VW)C=?b4L z@~tPm4wrE++WN|s^Vr0xTmSB7|GCxrM=Vc%@qoFE?Uoe3;`a|I<&Sp{8}Z=WYS3yj zDs3ViRv+FSoe*NU3xz72$eKZ+C`GP~N?s<#aV<-^woivO(O3k)e)xDoR5fF!5>!@? zU1+eQ(t#qOq_Ey$F)AIB6hzB}17AaJq@sKyPX~ub0w^)eQCtb?-^p4j*nUz{L;37@ zR46S)?w+2(L`;n&Gx?lUAUGaxt>4rgJY)Zv*l5l`y_b`p2sD2q$dA_9rT*YH+@kD< z%XK|Nly$+GDXN|+jAoSh!iJ3V@Hz$|fh_aFJa?&FlR|#}{rl2(B1z;qdv}lrsjayT ztxsm;oHaSU`LK)QR@P=UDGcgE2cqO_PmQU-{X?sKQXFzvThG!+fjmlv=d#X@{s}g+ zJUE=f*@FyqFMNLy;au>O>ow=mcB1ppIr~SV@imjk{^(&^@|39-KjoaOUh{Xz_}(!F z^8>=dq?nfS_L>*xy<_pBHhD@wKIQ=?b`YBte|`e#{CZKD1GY#wR`M*8r~9jT85zrwsDY z4gHA02=ykXh?(HJ<#l@4Vn0aqk3)Pv;=zZ14d1ksSYNw%j$N?s*e^xRf(s|;mo9Ic zkF{s7fBvbz|Is@f-1smx|26kW{9%Hibl{Sy1Ny1?4c4&|E-NJC&l@RqHHv8xXGVG+ zV&IiE7i2UeDpv&Qe6@_jDDi2OyaZ}I7NokHocsjyQ5xk($@4Q5HDjpduKXzpQR~Hj zX9UK!s-_Z@FDFK&^H8ekKKtN0aj4<3Q;rqUl2gJ<_k6HHk5_)-SNk|$*-d|UF(gH{ zvTNl-IP^Q+t`X{XeQUzNl~`47bn`mC=t30exo{ibxA;r>qt&v%(fw_4Zr47?FJG(p z4;}Q&`}^Bo-7hVzi|$dU?-Rt$T3m>Ky5UgcnRn@rTx)ef96x}v1c5P&lF?C7DQV&N zMUgOs<$78<46;?Cl8Wx%K-5P=>rvq&^iRvllB*ff8Drw)F)a&kFyiLCeD};-)x=Ty zkO)&zQ06%zQpf@#zZ}gbvA_1qb(z*ly*MXpr?zIOPX$)(F=CyOQy@y;gOFE$o>l<| z>o_I;3O+0XN`KjBSQ4cOF^PvbKhP?%Rgx3n@0=Jz$=da`nK5PVLZb+&c}yTEBc-3G zXV>N6^iC`z^ej`Mvql?*!PvKr45x)w41I%&!{@BbGo~xSIIkF5aWyzb)FhXVT~xWF z$M}5Df+Ri-`JC5zHNp7$yWi^__qsTQbBOVnjemOzG1KvUic5cf#Jc?GM)NJVrI(GP z2q=FY)ZzhydfigaDgxfgKk^C)Q8`5n9Mp#mtFsv=e3+K55Jbl!JZ|Y7o~IKO&-ZK! z%Wy|%S|7q7Qi7?9+Qp{;h50Aes7yp^*tz7WV}|D&UlGU!6#0r3zVwp7^H-^`t#LIe zKXqw7>t!)+;*e-I{({epoE1^X?*^K*eEEOhwb38Hw?FryGPiDe+jmzzgiAags>MxR z=EgS$;}TrUoo3jUw|^gO-whEzs&^4h6o-4cezjg*^10zApU!CI@z9quZHS|@Y{@ep zYG4Es*JT-{f_$gx4(5mzEXrU-#}Ds#&RO`Za!KCCTS0t6%0SABKRTQscBdq-#}|K> z_?sZfv6m1g+Mkn(%s9=zm(RWrdL*c^Y|ty)H;K>eYB)J3-*yCBTYTOH2 zCs973u`KK)$5ZLO-v>4Y&jD$g;%;#6VlL9m&*r&wSfp0xgSHx=EiRKb_ex1Rf~U%ZnU1ec;VFMQtkeA(YeYm9J)QZJ#S()fGBV0 zLaTjyJ*R>wdvuIOKQ6@OFrm0Dv>*F5cPRF3bTxCrYC{Wu%?d8k+NwZje1cwY+UFGI zo|Rd9)$t+S>dduX9TJXgp_K@B+97*?B9YjnGHut#sSBgMAC5LO7L;lptbl(zvqFEn z{O~4>;uHx1sK>k=30~Z%j!6=jivz>F<&@Ue+4GV#iGJQ-Z^*EPj|1+p+Zo?QkQ55c`8(e#YjRgnsnd@XH zNuCLH5R4p4(4X8_u}h4qr%-?NW_6yrBzXo^O^HF>d(_L8tY3v$h0huxgoyXVA;bh5y>4wPRJ;9sDQ35oIvRar_^ViSMub7>N0(_CWy zMvBZOCg;dgB!#9l8Bf7fLg<4){0W?t-T$lzXvD5oNa&@Y?*&N)6EHa;#-9c1Kl(K6^{9XmghO1l_7t%Pve}2mP3tiONDXhSkY3xJ0Z_mo#1zg zM5bJFwuZDGog4xiVtjw4!m+py#|N+0J}=DHfow%6>ZC}K513V4ij6T=WBP^;=rZ^`(ZHaJNp<{;Su^UXOF4 z4|A@SO~PL?M* zmpE36^Bs(0L{~NmcMnO(QKQ3S<+_~d17SqYDe#H1`5rRkvpQ*TfNMUc6nu_eQwSbT z92p~?U8u3oqQHM;vxl<(j(RiV1=5ipMc7Nj=k4J0e!}OC_tD^2qU5$`a{6^2FcQ}o z8~4dJ7AV|kNrbl7upGrQ&gTS<)CKe^2nK1`aza2Sh;2>Rp)W|C%&E@eX>nXOV^u#t za%~8ULWwS6OxR%e)0dr$P|JxA0^5HH6Ew4G$3x?IWT?CJbFLKm zqT|%ynhyCn|K(eG!*S^NE%__c&GRl494IAOOpH(H_P%t@$fJ;Oo{9%s`HJeCi^V{3 ztwelz&VbL?*xX1(W)DUGT{h2}!8j#4;e6;Sp$~pMY;-5>4)6X=m_-S;k^o5aUAwxx zIPqZ@Q+IzFm>r*|M&I4!QV&Gk^mgu@IKF3-AHCQgzL@4?sQvc2mrA`Wk-QgvF$=+_ zMHUgr1Rtg;Z#hzpUOMd30XK;w!gjsb_5Nu-|EF~&asD;q;u_=zSyhxm%R79 zZ+>c{H#Pjft~XNio4D(eTi$3bUUV!kwYWMD+nk2C^PnNXP^Bse7`pRkmixKV->$qc#Kkvf_FJ2i|~ zTlRl{UTdg<+Lgv?&%^VG&%jGj#{_q!EB~O*U!a{kx3#N1P{g+-*Sw(HTdf<6?cD|2 z1}n>T;67g$#g~0}7NK=2CuN0R>Ne4F+0QfurM3(*muNLdEU}FJ2{)gPx(lWpywo<@ zrB%Wf_0oFZ4(K*gTMA~%l~0V38uvbaO6Px3h#tf~5rAB(Q9rhc%QfOQvtp{+{xka2 zd2hZ_r`!sn z+de@To3!_ZvF#;qzv*T84WGK%^G-{`!8pXsD%j`$Jcjd7F~}t|qv^uQvghL6u9LNY zD64m3CJPoy2Knr1gy&H0zowO5;&>54s2Gw`XI8DFPztIlTgC^Mm$j=1A%A`KQ^r_q z+wFhN+FlKb_UuZdhm;jk*z~OQ+&kZns~*iL%&=MepzH3&t*paP;7xN zosk2D^l@DK-}S8joiA64KQpQ%>Y!0Ga{t4)%0JKFDY`MYHL>)6I)hbSB3`w54iqC3=Mj0=wNBHM6==a%n z(mS_2QmD<#&p5^e#}UI;j``(@?|#mfYmfetJ4}h{^chP3wZnsA?DgX0hsy~JpMkWI zUkkuHzqwY!Zl;q<&-~Vd-62ZtMY!mR%_s(KktXjm8QWTiCN35VbDO;M*mwe~Be9i< zMAOSwaZ}sD8k}(_JHiF%Oj2?fMzNBhZt{t+0{JVS=yJH$`@Pd#9@!m#pQ6nnc8gxB z-e7W)`1wMpWJ;l!Y>jV26Q6PqjPnU$3 zrQ-V-G2k-b)zH@HW0*yMRb^2El3|R8eh|>;5fJG2#(buD!-vNFSw@{VU!kVZ)zf8r zes*Jrv3@oP1bQ1B$ph-}VveY$F%tTiPEw+BMo#iW!ACFM+|PyK3)Gh3Cb0>i&W0OQ zg|vy*(%!CRpwZ_wnYaFZtlbZfBanchJ;VXS&%9{t<79R+B{9AawG>Qi8M!`dYcCe<7jaL78M`n3i+Pay|KhoqNtGORm)9uber>#&fBs5f3w!MKQ;Wz zTx)Vw@&!5+I^nc`7{5{M(Kp`q&%NE|Vb02GfZCAgvowv&4CV*2LSOmshr9kqE+;2G zAu5{_Wl5TxylH%V0pl~M(~nP*q~Pn(bi%v3V_ zNT%#q=gcU7?gDB`$V5iZ4Hu6Rzl(eO5n&@LTfE%u`sn)A-TJtx=XW_z+Z(@K$N0N3 z{u_Pn8}92K*ODSRiIi|@S#8jtl^7K^V;s+|Rh^)hGjk60n_nuIf+d8`1TFaoojnZu zANfKU@ecFj)Qb`8kG$7vFj0@a-S@*B-{UYQ^fVrSa;04Y(&pmMwE_QDE=d`@`CIId zRTCbYnkwX~^8nOgYd0EEoUr1s!Fhzw!}%Wf;2p5vIKw@5rdvJ~58-?r^KPuWGiOSu z{DM>d(~G*+Yx2`iy`brDh4}w&?;}U_*VfqI!+0W*O}!;Dr-?Q}Q}e8QaZ)4`P}BPI)=KE7_Nd`6UCfgWLQvYy}^3lRVyk#7?f-=ig?=7B(B zO_afU{5S3|vBv$yg1Kq>L>C`WN8awacqaXS=@Hn(E|>X)dNh1-opYt^>U1L!#Hy)> zVLsN(FV)q|Py8-0;s_^+elIG3BN>|GoQH`dU~#D{$#(DGO^sRkBy+PjVyY6~BO!Xy zZhKPcl-CE*UGGemOWk1HP=^F-i>9IHq9sKmX^SSMwF z#xsYE3tL$Z=u9~i)OAWYQJAywvPcgzqNT$^_?F~2p~X>qH3Y;+n+;xVsnHt;Wovy- z8t)pP%pT-t|I;d6U2(TW9BOv5Ti?)^{&zwT;Pru5m*;-=i>_Dtlh3^Vu3zM*8ywJ& z&)y}zZ2bVjZjRqzQ=0kz>UQxK$Mdm&(@^3{WCVPU_W@}i2w)E)^Tb@PScB;pRWstF zKdVh3rkTnka_7)r*XhxV%S=p7qrt(A7~5%-lmt{R&Czq{5o6qp8t(~l&Q#lVXe1*f z3sHaAuYI?iJ(?1#lowdXOb}bjpelz{zYin$eJzyWicoGqYr(^eqlU^+-<@55I_9L* z1?>+WXnh(UZ&>{M&t--)_`eAiGgb)Js z|6*nG1*v{>;oxy&Vo+Xhs1k|TCgM&b$a`T$`99(meFZB7qn4??-o!`L^3eG9!nofX(@J>(HkXgH2rz$+V&gXkiDWQ7Id!fHajRI3->AK|cvOVR z2y9`G9|Cn;&IRFf3%+d_XT+oc;f}clM-!eD^3h?Uxkby-`>cXD24*Tw{M!jLm+=&1 zpxNftI)#(qc>&0$2^<-%-_-WpJMiRNob;0$s`Z@Y6wh;K5X2omn!t91IKpi^jw62_ zocKWgXl^4fCnP#AZZty>3luhc0>&H5eL6t?`^$EZH9Ec-eT!NOSbYR%r6Nd=Xv&TC z8PYer<3m@fzc3Netv(29PZ)4A&UMVRAZe8RN4 z;BkgOcM|T)(Ro8n~16<><9Qgtc6!ST9&fcchv7VNC z0|xuy*dxdpg@Z$DHKAHM{B+!iaJeiPd+w|VyZG?X37=$)BHGkXaiC_3}_O-^0zDz%_ zmp{0hMmzfYdV5wbi?2~aTvk0lqbAMXy(6{uVtbs>Sv)|_{?kTDzN^70lI40KIWLwU zFU9(>C&ufI%5fWGtC%);B*pmM+HsWWyxWfiv{}zyc}5$qiSLLI{n&rhtg!i8%Tr|i zcRhK5>Udj^`qMYhzOJ?N1tZ_?D>tv7etf|iofPy$w#dA`6GM@vdW3z-bdmY)^W9;= zb$VK>JY)RxTfo+OB6&nMu|6#$MR*d%#XNVGh}7al&DlOp<{G`$abLyt$T`%( zAuKG!8oIa_B1X=M?+bq$jtu84EmYd^F=43uHP!`?x)pS1rEK!0Bq77R(Mkx7aPYYg z)dAN$z19CwvvH0*4O^j47Q{C?434aCfBweOtI4qcrAPEW-+`_YZVu$C zU9_54!pOx%m*GZ_h#Vf25agwLQp?=A{h-qcJ7)m7 z@1jQyDEsY1q{}t_EQtnhC9oK@x!?5*^Ti7}Woo)>c^CaY(M}(}tR_X}r;E;qjIf@E zdtHDZ8lr!oj!u(`KqvzN``*TQQ&#ZM`yS=}*TiKZ)<&oMwoX!k1I_@}7{cN`p#Q^7 z52x7=FPb%&*EE0qd+g`i9WJE2_IR4-En98SOP{BWl@O=aJPSx=3X%25RON`!nnOI^ zI74lV!lXo3kr!7f6r)#1|BLHFE9EC3A0xj+oV~2on%22TPX~q`w$h+J;oGMukY~=_ zmr@?7^0$Imo-jvmqJ7UHY75GglUHlbNwsM3e`rp$8IdD9gVGR<2JfBt?IqJ`YDmj1 zr7cKy0(D^GF1*VIxe{~vq#T!7xCkd3=NZ}_+~0qm<`byb)%rD9aFUj@gq&UNEJ3@M zo45!)f38j(#0b2GFd>S^p{+=8s8Zxf2caJj<&!=)jG_;F{^8o;VNOiN$z6s#_ewuo z)afS`F|8h-LLBRPM2rCo=VQ}PyVehqTTjg^f7UOOw5zq?zIW@jVqN-_jpq49PwCc2 zp60I*+V6|%b1fsi$2%tx}wM@iz*3&;z-PBy|wkho+_VmFyCyhOQ7;$wdfV+sX%5hk(2C_$bc>Gw6Cfy0rPJJTd?_P<-t$KQCX4u6{8;$^zI zf79^rex7B0<-_AM+5N(+UOWYxzxBL!Pw)E`0Vln)woX+*6mkN(2lKmSxp(oYkB|8CK+DbQMB-y2GcGA&)ux!cc;(}=Dsr?)z~uSsapYd^CO z-S=p4YAsH5D;E%F(RID(y!Ev%^H-&KXzPm5^E?Q(n$RN0+WDgYjdddj z+uz*3LO5|q6Da4O{f(p)wEKgnn)G0IY;ZB6l!%2Jv{=@genW$4Q)@tN?NhTCeL>qZ zZemz6l!vAk8omufo<|!GGEj=pQoE?_8sF9MQt1(LI(fKvoh@ZdOR_jwdD>`hJ{^g9 znx4WcA-Tgz`9$o~co&#we{NKAscRaf!7iZjM+NMI3X(K6-KL&&Zu6YR6aGh+a>? zX|$4ax}|!8-%Y#^k-I>exUZHe1xe^KtX}w``JS*d%TqWq+KgB{*kuWD%I=KAtVfrS zr2U>%>i9Gnl4DFr*H7}4JAz~0^x->xQF_rhyYfYU{5vjMTvn^6f16!-*cUzCYrk*n zpUyN}6ID$EGLjUkBmhHMl^YpW?-S6>t;a8uzg#m~N>;dDbdYe$H%@tYm?$1a#6K^* zz7BLYNDA>RgV2@y9OU0U!W4xOoRbqP5-)X4Wf2pp5tjZLP#sj$>KRM<2Q|+*>PV&%)7{SGg&KGkxlN&9JuYF z7GRy&TxS8|_ot`B0ScWlb?9exo&*Zt*A6%MzIvEwf5B?*KGB1O5T;z4*8jYhu$gju zIL`uweE$os>vx}~i3e_;%heCP!-W%_|3wS$NAm$|fB)+_Rf94t!1c~aIXhb~-f2Kn zrG2VC-_osrYUk+aOYIVeq9&#idzk0g3w!cOJ_mF8cSe@v7%ybvLUEa!p=*;Wpo2T# zA!^{)@_Ct5i@m`*weIr9Z%xA_p^7s~Gq3G;;tcVhKpU7CvTEbuAAD998{Oa(Z~2dH zkLTj`e-;!Mf4{%-eSYhF`#*S+ACJj9IAx2~K&|X}{TxThtBivXy(>ZG0Ra`PtnrJz zU9M+|za?g1dnfMEI+^hFi8-XQ7W{Z{OLU@)bE>C`Xfu%YQ9zWxf7oWU?td%egvWt0nHNNdDU1HR{xEE> z&o&&6k*(T3@(7=6k$|gOTxG+lHNW^RH@LqM|Iq+%u#)9X&+r@+`AyI8`g|{35a#Gn zNY(L>@3T)Y8hx(!@<2@$GNlB8gi|%8x)|k7_&{~Bd5TPX{Z?8w)#}-!yFq@^9u4`F ze-qbvAH+S6__bad+{SH9L^%-O_|x3%P3eDJE6+W3 z`WvogVoi9{KWl3lBfuI?)%Ahp^l$l;f4E=t@q0V>sC(uBeE00pe54{E%Q~C)V<6vHThSS= z4MvO>Tz_k}_2?+!h$0&@GI`#E?=pf~75oUwPpL63l>9tB8^fVTULlkH@7xs% z{k*x)3*Y;FUlqvGZDX@%RL|Q zqbm*T7B8#1eHXbNm;4lNal-*#aJV|1a>XX2AvD-NnE^{tp-2Ru>PfHCNU%QTfZ{(VJ|EirsO4dg_1Y83~U* z*V#O^24h~sLmCejLQ8EESxn0T#Nm;GvXrAav$yXLGW5NldytV6-HTP5Kj{9$kvYos zfLa*u;{Npj+wAmDJ(3G9(y!ZnLPi}n`IU|f#Z!4QBl}^*d9gZuf=+q0{1Do*`C+%D z&(W#TGyYo6oxz05l0BAxp7EOg2G+?@;1g7oRr1vf$9Xc$1BBbOSfnh>texoQ!#mUl z`#Q(2o;CkNI}d9Gm-_t=-><9P{pxc(PfzUb>%}%l!gk9zuglSUkw@g&wkS!W@bx%n zDvQdraz8!3fC_oaGAM2S<`pA*ou*Tc`8A5VnuhZx_^V6Za`fVVh+x=iEOhmKO?3ZU zF$eW@s0B*3`0(I-putw2FVFO<^Yn}Vou9k=D=r>kys1^*oR`h}YyB+~A|n4dC0}3o zypJDBiqN%Jbrz6f;?C8pb;RDq_v33?JVgbSItURPmc{l-9el>`ZNo?SyD)#1-{@6z z=}Rfj32{qRW}i-fUB_#KTNL!=;a_yMj`6Zbp09B6Kv;XF}lpjra#q}Ro8ESHkdo$eKz%@Z|&x&ix%M; zV{#!vl{Wa<)(@@aIkKe1f^--GoWD2R4`sq#>;O0 z@p3u}!?Ew{@uI;zxjQ=?MO*D4_93WWkn_DjuZW5yX~cEF!%PB#hK-xsdG+E;e+t&q zaxUPf7Nk^vDqulsSc>orT`g$Qdn{lUT8NjF5lPlIt^JfLTZv*RBjD~$+%d+u!%^si z4#<-V`T4JL1&Mgr#Y{Y4e~F`tO$~_Mog$9WiSmztWlxS4ktm*f-~C5`1I)$7dT3(7 zaI~MCle<|lB59GO{gf{WQDmz4J+4<4Vx7r(x>F;6CG>VN(VDOV=1m=8tf*(A)??&)X+Tk8cqpH_3k))NqO zNVB=v<`DzA2i2?}m(T9dds{w$o(rW3hf&1ZeH+7U`qk7a6Wq5uo?@##*{loXE|xjt z5nAPc$QZRyiLwNsUQH-DquB&DBlN;sK$sDs)r^32`D{41!=@I;+qxw7mnI|F8APdd zxHE2(6MuD$-_@7%P%8HkYs@5cp1x{8+@%yGnV|2Os;gyxokc`vs{5?e-V7hG%!&Em z2K+JXH3$PQSYPlA46gn9*8k$FZ}C%S$#%Sd^&WH}%J$gDZO%>IdCC+y2~IrpPa%A- zAoa~x_>O&t(Eh9nSTA?;gRLaVzU zcfSfCoW50Xe09~=>>~s^NoSGR9*Bgmcmo-6l*H@ps$PK((0s#VqaX?-lEa^}nQ zom3P)EdO18eWY9Ef^z%)ZAQf8;KAmOfcpOD`>8134PCK>=ib46rNq1tfaH(wEwN7h z2t2vO4d-7RAAO@WqWMLCy}@UZD8FETWbT4f^4j2k>wIzLWNUv z@wN|^f^rvIMMfk;)o^L1uiI!huNJnoT)pge_SQc-_&F=Ps?}idqUz_~r@aq<34!ma z$=kelXxI$g5s(~xA23z=_Tk%m%qsfAAi!r+<5Gt`ICx9 zZ?g^$gz*;aEySZOQMpr=d3e>KiueoES1*)=nB@yMht7k_c?UJ3B$WJVlTaGwv<$O^ zEGHqTicym%6edxnljN!kx^HlAh;!aG_|J1vV4X_FNu&7#`;qVJ1L+reW-I3a>hQ`) zwG{W$n3meB?)|x~T7Q2r!1@^CAq{}rp8f3Vt<}^UZ ze7<`NtEDi!hL|I-!{ZI7y^HhO=S2`V^Qj^3`aD;^F4^k#B9A%b#{O`%Y4I>vo6%ZO zg_@0%J9~4dyT9oQr2{Y-@fAN^{T1&s>^nXKz;9p0n*Y>=PAa_h41>J*)`xf6oh^>y zy-O`?hSsl`Tf~pQ`kQ^!wroECt7>aj4Sv(>mj=rS9)H`+EbhT54t@OjD0<3wi18kX z<5ph0-WEJy1;`1QggqJUQ?tDzklFBE*-RPHQoP*WqRdjlLAg(n}Ac89UTxX>sD0eo*Vz zd&S_WyMN$xsTX($S7&olW?$Z5%!#Qcu##j#{1}ua2~1`-_rDsAEU-un(=F8%#?9aG zs01}f@ri!D`rr|L6br>!dOE&iJ&`J#iLLccGSDa)IS&eDc2Lr&x=O7+(mz9q+IgIiJ+?&3AAHPR{W$1LFv<_(*Pg4tzSijjzUf#%3g`>6#{BMY=Wm((yVw4l=f*ksR9^4P zJ&nl&gYxGd^6%b>Ti5Tkm0KCBtLC3y`hTnwA1Qb{GC8p2%{cIX7>9qVrT^3GI{KR$ z`t#pBcVqYeW_%d`i)P`r*Z)_qAy1IezJJNlAL0v0*5WvtGcG?P?iF*XYmMPF>tPN+ zVZ^~$k*M_x+hg5k`T0DBr7+V6hJKtTPq}W-1HKtM5I6pHA;#{_co{$Z1J6xn-P!YO zn}vY1zbPaiAvP|r$VvZTw440G_xco^PsFV-9EYu3@VKizo%~m~c6?W#m(AW@bAJI} zqh;S7cQv6Tgh$k;gs_iZ^myM5)EBxO#lK)&LvFa|Y9sh&yx@9~f%3lWP3>`=b$*i0 z1oA@{Cy*myhU^rSw{`O17smE?&9RNmGsLB!9^-H}d0xyI{nW*1Z>xlGWzE=xn-3jvbDkpnd`=;ew-XF)5c| zalM+}!!ZMH8kXa*t2syfii5e-kz4+Yi?|rXJH_i~p?z}7$D9(`aHsZ~Q-ATz_lr84 zqek!B$K(w2=!BSHiu$IpMM9GW6c$fwP&UDOVCp~ZN`DI~^ZVZ)y$9fpOH6Yv6eBzr zA|R%%hu8dXYTH>X5!YR+#!G8fXOa=rSyiM~s8O-#DX6Hex_v#$7f|5$b9z0KG_`87 zdF&xB<#9Zmo)!0(CkyKXynlZhu`lIVU7Qd6?BDq(e*4+&KGD_PNt~6kd0%2bD+&fj zdV132U{nO!>1A3qycFo)zY^t7p$4*f+4NqGTzyq*=eVoL*l>nq0ixrlHI5hfv_SnK za}1}3^U3Bh&mCY8mO=NNRzJ@P=XTQ0R}K4He3f71ETBFowcWn7)bl}|!g{Ga!628}qWMSWt9{zjt z3eTVWcduO3V$0Kqa`g5XW~ReAJ@qmEJsWt${mw1(LF1En<1Kd8wT}D_Bb2}X;&WX! zQROeq8^m<)hJRz%N6o%k@(Hat*ZCaIl5t8>TkTekIT9KlK2ye5UOl!Mj8a+;#B`p& z1w4PEA?K0NGqoKjq?Qu2lw9Y@%#t%%@B$2r{Y$x_r{0dI)2%Y&woLKhio(}7mjZHIu_UG&}u;- z4y5D6WqWsT4MK8EGUhvW2~QELtVBtF7W#UU!n+sxF7}`K$$CrZLG!ca!-pO#;9|n7 zvCs6Hs>3F*M*HXJ_{!^1e-4!hAaTR9FX1hzp&*<_{@gvmqmK9_NlYf`j>uRaMVNd{ zsSA@5vM^ZiiJY6$yvk-#i{t5n20cRRNzRSI^S9&Zbk)k9dhp#(Oo!K9xL4)Ee(Flgr+WnsKZQoo;(B4f!)cEmm_-HY9XS z5=PJH7lshr!JL64b@2v)t_l|Olw`&Mf@^hwK=I=AyIIA8YeZjC3d*FW24vEO_|qcLWrWP{t(h@J$b@>jI^ef8=p#ktD0w?)o;DUuK1FlU%RZwI$Ed1g?sPeuz9Nqqw z)BZM_u#hM8<@t?I_3$OOsOWIl#PEg}g`96U8u1(4-a@DwEp{Ra(6#S|qY3hfDb&l% zCQAlY#K;VKgWlboA6H;3#lwE|K-imAj3a-pEw{-nTAaImR;asUp>FYiqnBCug*xBh zCb`?cFaIkYCDdck{2r2~X14y<8cOQg%WZHCkLLLkb#Z+Ci;wp|Xegz_2FI1;^d9UN ze&R!cIyI=Bpp$r=CQ;*SjXDb^q3I%t334m+!RF_~v%SIlpRGGQ*Z-tRdC|KPJ!*7Q#Qe(&l-%G11eJxsY208`E;Vvmk5>%GK>Ng@a?-x{Z}f2p zG|#Qk^T@DXcI_SijmArH#Z7klQ=K->FCEPrZ?Ib(C|qM$=VdU@sinjRE3JQf+_yo? zWe`=<{@ZhJ_k*XTNBCd0WY(V@W}48_e@4G5P<(0^_{=(NwK{$WwRF&@kQ8KHhFI@F zljCf=ie;Ze=F)CPpDMut$G8zy2pZoqsdWBEG|)o0zB3pJ{*ZkNNvo zO{O=WMC$P7m?Ls_QBN$OPz`@R?PJ>NEj{?FSXNZ&fP|S%)S;M|ZSS*>&+y;OM?Qtm zgsjZybE;75LsC0V-q`oUycx^CoBPEWLB@m>eCRb8p8sMTR8`LiN8M{x@@ma6MljkX zq;waXhx~7}e*U^HuDW~exzXaDTKz=7&QE?jxBmw%V_u>rVT*@ZBL;sbxnk8$ph9LhvpuP4w=YIG0?G74w%K|pG zs45nVHITGeEG{U{NfY6X#<5monPp_Z?==;47mvv#hP46*X6kj%qzz=I_r1Re_qiot zu!LeD=x!XSxKI8#w5~} z$s`W1mj{}?Jm7zV^73csoNtceSUL9P-8}T0>>vA9u9+=4-DGlj3^MM)0UQGSm8wpc z^B}Pw?syRwm*H}Jw*2z4f`87N(0%UNz|r?RwEuhm^Bw#jW2k`$2VCP&`ZyG0v`QLh zY9f|tER#wOiUS6Vj@HB$YgRn_+(xi`&S;~50Z=&bxn6(l6L*D1iVT#WodL>V!SA09 zP-IR9Y;?Z6&A0A1-~;7tj|}+M#GCnO z(f14!6f&c6(gjpC6C?_oy;5f2R5qJ*hQ?JAtPU%?+6;Dr^)wV(eq(dVxG$%M-L=~* z2PMZ-W}APrG3Q>aJ{NngtZc`USFUsI7gTm`HJv*&QVy$J%d!RD9=#{@H~v}qP97fl z*}Q93iu3170P~y|6g)V=>M8_Mc+FoX%6xdXra~ac_yU(fWX5F8_eHd_)X525jJtbHnbm@0?n>qYEB8e*Rr*Q(k6qo&1aPZlUR_t znk}=poeFi%-rk0B8pM~hWN(_Ctj}GvwbI<8UCFg6*jY#4v}=YNrH$fGkKG>3db1Ej znOJ{1U6EUvrG{uyrBmvLaiKZ3CXGmkEj>VbpHk>-7Ziz_|M)?-Lc%gp1-=A6-4K<8}EK3ZnV zyPQW_p~WxNy|Hpju&c1L23Z7LYFe}|(r$ky*-S2(RsOVPPg>maY}>0GRZV0+WW~Vy z#a>hO>CRUNytI+q19WA#T@j&^U5%VOZw`Gm0S_Op3N27`4FEs)b0Yr`Tzg~FC%f-Q z050qa{Hs6qO1;lG11Pkw{B@%27j^=y^nG;kZy5l1&tQno8Oxb*032X$=$z4+0;Yed z9{>yBZGj4iFCbh546qb}%YdYS2{;UJ9egeTomByLCSicRFt-Ivpu7MVpmK%E3o1+h zsce4A;9LIG|IlNf8O*-)^#c$9BQ6mBlxx6btd@Zm?5MuJ0VZLt0JLB-fxH+JN;jXQ za%=*@lx+YqHa9^F1_ZY_z$9Ndfy95R*{B?#JSRsA$cv1j`VuyU;wJ0BDkE15r8;cGteM?@TQCb#%1nkKV^Tvp#DAq z{FLwD`6F*GfVYK#h(8PQCjf9j_CUBG{FWIE^{2dm4#}GX5L+OI=4l1#UrCTY0H|Fc zni}@Wwt4!!1{hUJrOR{mT&vFh2g*Y zF%EzYzVx>MC@9Y!`=igVz7c^>^UM3Kc{&^Ph=Vj=sBY-_5L}dE5FGd(fF*KTd z_6txl1^aA+|Hy;QEOc)d(yswU>TBPC`oO>C5B#q($}P+R9xcWHf`91!r!v5Qz;FTL zhdyB53wR*7x+oZc6tWKpS`*yB$9_@!GxA@3Q86HJNWUL{3cm6~a18N#L-OaUufKo% z5&1vG{dVgAtv_wk>PJpTCazb^mq^V?tW%b)Of_}|L! z%b)Q8l^ImFGSq(XZ`wop;lBQV`U~gSJ^S{DSw7OcKK9_`~lGUkoqtN~z(OhHZoN}woUKu#iNfJMKBKKRmaP4r}3OknKO-^iI^j{{I9tqK`-HCx?L+pyma% z6uhHxL;;{%Q0m|Xj3z^WAvgipColqV0Ne^ZjnNlX1mnmMnVJIHWE)__fTq|E7$rCb zY;OZW0$s*4Ae11UNj7LCR?3bWcSAA!+{OixwdA@jgi;jbeIZ<>gv)nE^rQ?FV3T+$ z%L-acP1re9MQbJrvK2QeOJe02zi|zLU7XfetVwP%habw8FAwNviO|W#n9H%pxk}lhjE?UMPn2;)_ZAv+ZByM61tRn8^*^o|xxR#+LrJ^>2z{F$}{>?4V+Q%kzL?=QlRr4oB>SVcq*+ zW7Ll2?<;}rXH0xkXDlMG!;Q$W5WAe-dy5(O3x(|kX0R6$+aHt^XSo3{l-OqJ0Ujw) z%)$v{Nb3D8rh`mU_h&X;dvax;P`@zbTYQ|a=bD_=$E=@7a)=*OdfLgJd<^=jC;RsC zx}F-czd!1K^kkDS_EBC>I@z_4{7RE#dw(P;U6M8V@UOH-*0+a!rDd`>Kh%_x$n2S3 zQZgp+J+`hBN9wQJM-l24@0>XOw$24rDTk_*a|NkF4aG)~G0(dX5yegBpnF4^e z>@yJD<0}|hGai{d41^#nYA+apR0nZ|K0ttg(8?fxA9E=Nz>fhiH=P^NxXJ06Sr7}b zw?z_QqsD+y87-GKZW@6$N`k$E)${--vm?}5lnvh;IELqRX0%<_JOjo&T9l*$O+wGO zo`)*nT(Q`Yx0wWFMux9NMp!_lvtveiz?Bk71&q1r%$RGC!x0b00(cmNUbFG&a~uH~ zH3po2ssdIy1J68WrDSXQ2t(G~{@_-zB$(N#L30FV;}22?%p+_0IzNJt_feah7rONn zpt=I}3M3VpE}!Ki2SZ_F7K4X@6a&ils%$hl-Ne1p^7(3Ha?@vo^$$Hs1nU2 zdPvUQE07nak@5kT8l0kF@gZkCT= zWd(d*#QIbJVG{zy0a&8a|60R%^qcg(BeP{#>vA|;a$`ojWB-kq?WJXefgm7Wy1;UwwtgG{X z!RLQt0S)AXGvJki%SMp1lGJ6z0HAW_7HInmN?PO#&=d&X_Pwn1Z9bG#2;5__0DFw3 z7y{q^)!j6LWE?@wD(BBPGB)6(X$09gf~qtN4MjnhW+N=1k(&|l z=_gz1Z;bO<(ZB5oonU@Z29BSo`18 z92pDI0UtWQGHMpExn(B^KE-!eYbot#KLW>>Uz2A9)Dogm?JnxeBnH^tpLib z=N0JG8atxwR0FV-W3vFxSU}-_F{625WLH@^Al2poApfxkt#zevC`G|2 z5+N)c)8*0`z`*{ijO-Wbbo|m_WdHl#kHO8vAE^IgpaSNfZ3neQBfsN-AY~t&s%V$8 z{@7ule(oSCk#5a10Jj0fE%0Cah3*Ityz*RM1-67snH2*A`4nq^e29^M1cnqKTJ&=0 zlon%F%15p|(ktNe(K03F%&5vb7Dy+2f#l^5Y7FkG%0b>9rx9l3XiA>45sP4ND_B49 zNL4xR3m?bPbU$#B*;bf;;Hj!|;ulVhqnUl-+qN>+2R^8b_Lu(8KnS?W^%*Tw2LSKZ zm`liSnPrqVX5oY%zl33bW*@CU+Q2*le*KIwHnFJoQlhNAL4#y!EOG-?kIzbpIW6EW z#gfg3Y78Yuc2D<}Z!U!|%X`-QvXXqq2?xLj;2v_J4xRXO1c zNAgWRaK+wMhWWsIRpsO_oEjx|TYwLyk-3bLz$}6Qvd`S)L-srO0vM=ZRtjz!S+rum z3?p+v7xx^)zqyobv4CIrAq#|D~7E^%XM^^+W11F0=`eCKN z*&t`Y%40^r`6J7J^&`p?=6Zp~SFuzhTn#1MyD8`YUVL+uSpVB^_G9Zm_&on#>jxV1 z{#`%6aNz&>v1PGTX{a0yEVq|zV$q8wyD?Dw_x)!Uz#(}Ni@q&0zc16sW~0O|nYI1< zd13^RMY=KxjZ$Mkf5uQ4)DlBw))@fgyP)voqI-!Fo}lr6IzVeFG>=NSvKfGbyk#Q2 zp3r>458(cpLm4zDdfz%RrvXk`7+f2|pqtSy(oO16d*^?y<7R4=l-8!BwS^$z%E|)B zj9_AwjadS;#z6C`SL~1hyaeYRG665tHS?V}UubSd^+k!`N~>WOSfR1!U)dOg=H@@^ z7|tYMC7l6(ZxVckyy3Ya?WPuRvviWcJ2iclBfCY{5){pML{ulh{JQ=~KJc)aJ*R5!sZMiPDoff_5rjhIZ8*sFa0g#8rqHm~w zyo@7T^=b_D&$wB+x0*!e!(BS;oE=y zgBO4M55IW$xBu=3Z~pfG2M?{w*k$LU__;-GBFCSihadAZV@OPhiqIEn=4I_uvk`VjQF6PBVdXm5w{|p&~o1rzm^9Pq< zKD2*vHN?j+ZvNr<@;5m${D<~`_9GVwjZXmkBbR*p;(ukrNFUn2xD}%Pi(4R`onKs4 zRnd%ues>lN%;ycA#jw1rl+bTHuV$1pkir_-!*Xf*$STz3y7z-&E@ z&bb24US%Liu2(Fkln1j3SRh#3XlJnC`CtYaDEQ(B*9wI*x~o37e6^D@03hTTDL7i+ zdH{01SBJjW97Qv;Adn1Y$RI}f3zUczorxP4uYwumtpCo>c>(|d_-t(`D0r0lHL6b3=zhb)d|D2tH*3N;-k=kM}-h3_F4$f$I}HVSDzi|NWDJi1KFw2tTRX znF4(8|M`|p-~#1u@C-;m4gM-G-~d$Ww+sPzfZOs{8J+X7y1&ZVKf+m4u7LNqGP+0i z0?@ThZ;D-ff7JK+LiluVrqK)k>iwQFUF9|`eMBl=nfX4IYp z!0D&G{|Y@Y0Zu}HbVk(ve=nYwA-PE)S>Wr#59$ZYeYR9kK1B&7ofl0IW-v$RL{b3X zK**3>=U+LA0g}gzl&PXPFQ)n*)aOS}91z?ezLGCryoTiaLhs`Ymgs*KStwV1%MA6U z&n_TcAPK|-s2QA)eo}PEQ|LfoLJHx<3*svQw+!WJ|Nq{94*msS1CnEah+)6)&7a@*FOAD|1-FM>>A-S;KvTRZ-01nxz@ko zj{&G31d@MbA~*+v4E_J<7m4sccJsme@@1OP`l*Mbd(xQfYbPl>Y|VBkKi3hkAD0t`S|&N1*i+c*AU(d*<}jgj_mg956j=} z;|(~p|Nl9k@mGA)?ZE!VH~q^$6kPw=helFE<2e7Ba*$|2^+`4MaZMAYB)p&r)%wI4 zF2F^3)zDe;&;0Ze@%Y0ch4S!ZC~ud9?zLk~Afx+nm;@Qu3;b+dqw_s#2HrpZvjJ8^ zaj!>zzy?4^_mQy`y0`0${N-kX17K0S14_Gw(yl`uv2LOBlUxPt462AJ$3!U$QJfXD z051V|K}@=6e7hrNeG^829}&|j;3>49j`oou$QT|-6k?7AvIfYELBS)SGSR_Tq%0-} zdV-iusFzNoCDB3 zA13DmD}e%FHlS)?$`}$2CX>l9K$Aefa3QcdC@d&W8;4@XJwFkiCRYGkgEHW1U0r(4yO@0Rc1tx%B z!CivM!sFoX!ZhPaaL?ew=Ym#99LzF-Mb4O;f&hX97C?|e(7|F6 zG!Wph%!C^VftdRAOJgC_KzfXuYSBuKgrqk|4%p1S`hm-=Y5u?~oq=we$Nn+@!P^bT zilF}%Z$@%b%ju4F8DO$yRHY2|lHdJEHh-zQDo zMxrSPcX^A+w2H}e{!=Gtu6P80>fbt{K>gu~{_TfT{m5Qg4JZ4B8|Dw(<%mCU)A`X& z$wTuOF0;Sz%KQUoe{{QPuD1TdaZUTfXV9!;=!f{9euRQNrgxzK4ZcNw+NEIq@=sVr zELiW9p#Dyyh)JvaL*HUu8MU7_-j)#j$PgYC-E}GX1mw~_LabwD{aBU-B&tu`bu|hqk z0_vMrrb7LWGw&ET=>K$okNo2+7WnNC4>}9}(8slb99h%eGBkZjo&ZZQe#q}7kfmtUL}oNJ2 zWks-!{z@7h>Gl|l)+-TK`mcJwI{M4jEACf*rlbA9WvGMW65iz{^yw<{_2b{=Z2r=b zSsft%v;M&r%su#p8-My&dB6R$++Vn${o!K=)DL{u*grm}Ex$guL*^G={u#TpUpvxW z>5qJlX8EVS$NbTMx9)1caLWz&goJtcYmWi(hY!6BHYn(0>Px?{Um9ijrw@c){pmx> z|LLQSyMJU&TICeauU;t>QfRP za>fzpj93nT0yWD5fWAo=<|1Ybu4RrCKbp*==@^<;~(m|~O2ri^=jE+hCl2XcNmgUo*JmGgR1l-OaSzmferQ)B!5?rV=c zCX}9FF?nkBWlu{e+;9)ek9Os7eb2~Yb}|e78A@k=Q@@3z?bG+$Qq2#mczc^I4=!GB zfmfz}C*#L7VydHGy)v3qpfbqjAeAA-@#mD-5faSdB zb(6bHC5uPp#M`vMH@41PuzPtX9y2yJZonQCnvnB2Ffz#$Qi+B_DtU*-#cnu@0jy-> zmR^8=vM*2lrKx?-@y}9W$r%UE5LDbEAJ)yzCYj#x`_xUR`7sSFcFT49P~YcbKH%X* zwbJ%ZOJ$$#qp_5#zL(Zrc~s0R^oVV%(`g8whn=YR z7&FN0e%R$CJidXS#gGU6Idg}{LiiE(5TH$#M{auH=O*2>Al9Ed&4bbzF74@6ANH#x zdt0Ga6G^X-5%H01?TJ)74uet=g4n4tec^#8oZ;Pi^kWaGF6g) zs>su$C?0z{N-6(*s5iHCpT1koV}`ad>$U|_!O8akJb@<=$v}9~EafMwRpYu|`fhr* zL;SuIMrCxzc??v)xR2WNaDE?=Mf&u74(7HNq*8EAZEO!Gx>Q~D9w%*VjMh|wLm*Y? z)4LkHf#G4dU=(rDIPoSRp6$NqdthFFMg0a;I=vnk?1rD$I$8WhIzCQpi95>HKi^3R ziG@bDm0*33(v%QB-L}+C>Y~_@oIr1#=b_E3WUy(W@rPr*&c`Fp^X>bwMZ|vIg)=96 zm2!0(%*75OkOPmdz;iaI;n7aVi!IWB44hI$;ub)ZEW|`**|%IWqLa7 zxA{aFDytC1^t`+uZ+hR4N0Jm{)w)n;%5BeQH5Ohxry39Dc8!Z`*pOJAKOUOhZNFlD%AYhWck}}rK9AZy(43|nGC#=)&VAf3 z42EUb!#ivPabwrkh-~tGfa3dq5O0CQ?zdD=BPOERu0tP>QyNMPy+hoX{O$qt+f-bV z%|6pc{xVEe#lmYJ2TsFZ?pZS~hjR_@1%8TK!M&YgpH(1#;ik0B3F$P20FYZrn*HRj281d_@FEIuSG?;`w84${IFhkOlb*TFW_dy!!C5VmEYv_c zKNB)1$|v#1Bdg8OT>IL*lv;oKLrg(J!(z#0jENT)Y5JTA7|yHt^L z81u5O*x_9!;^;m}INLWZxRz9Ez^h zN&=_dUa`|xEJqr9RbH?6?GhF5<*^zQRoYZvvCWmc(wHAcS{k+*M}$^o&{%SnSLSG5 z`yjvCQ+{QXSm~R3ab=%3oq~DtKE=f{ce{)CRej!Zwz?5S=k=RQ93R1~ zM=57^+s#cLsU$J^i_NzvbLpG;vfJ)hI(P(PJSt*5O2bHhxD1#jS~Rx%ou{+s)t5#J zBaX>YBxte{>1GH?{2G_c-Cst`aoJ;1&BM-8V-PHrx1I99Ox#|XLURmG3hP;8*GTH* za8hq3BP+TMQ{7K~_c}O6HS&`7^4C?smzJch>TDHY<4eBWt?3k6msFB=Qj=fLRlC0j z` zHOS*Vy-gmv9pEMVZbIw@lvmz{C1S zvli8qoVzn-P0dm9&w-T6*5c5ow=|LCB|Fql+j6?CY{K?l<@A)i;5#+tsrMTGS&6=@ zQ;Ql0)WcV4T_!I0=Gq-Kb*5tV@RBb=N5v8eT73>mzlW3#+ zOU10!cz!d$?Hp?f@*YN5K0MloXq{QSaH_wsTeaAdzr+^{&8QsW# zsPA?lv;ccWMs^#yjavmF0QlVpi5(P~-&8NF#~sP=qm|+9<9@gE7yB}AzF(Q_ViS{W z`YAi*LuG2yUDt)Fi(keFXzpBf?vOV?pN^S0HuQ3FgIsXKlfe0dbdP4qF!DJ+m&;o$ z*kv!+eK*+yM>$2$@*}Cv z{mxaiM~$oUd_CA3(2QqzD%Y&V+VvTU7IDSL;_he1R~caDbqCRE9NT2DA5@XCRtw}) z;C6SXZG=WrzH;c>@i33snI%;Z(??$?l%~JX^S}C zH$e!x*Dcd-vPImMMUEH--mbIBUUfwed)_Qk7&N1#RBOytbgpIc-LRsgy5(!-oE%Y1 z%pUAsQ8_eTD zWnM-_GThCcZu}|5U)yQ+F3oa(abCis@{I64T?5a;XMWa|ZR;(U>I@mLYL$7Z=TjKW z$yRobz!w$2hE5I-yf3*q5r+X`^hsqLBb9U2$?baq_q(I8LVewEGpYB;U!NL>^F}7h zI^&WBe9czQ0Xuo`{4SQ~+x^6PL%FKyy=3^yAtLoo!dkQFc-Fer{V7-t_ORyGPNrvO*25~@a$=lybL{W)mgs`9zDXy=ea2Z> zReqQKtgNQXox`+P!lbq?1uM8T#HuZ>i4%z(G!ied12L+2Q@s0kjGvvXU~xyc>>$_e z*=DDucUMWl2w0_hrCt_)Gb5>W?e=0OUiK9l@nInitaOfri>1rdHF6^R8r>cWN-fjQ zteyA}MY(eihC1RN_$xC<<56%D8`Ye>Qwzmz_fC?qdx+0KsHK9r52Eh!t7ZH3A#<+= zzFg^dkv!RJ1tXA#9(_DW3FJ2MtYfDwdpyEPX$6b*W$szMT}icnO6@3Vdogdf3lrVu zJQ++2ANBPeRdpCjy}d3wKe3>_oCMQ;SXJ28ieVn}Is_{flf!bAWAo|my4pI|Tj@<= zLWh~qD<)0y_t)#t`lBU{muSMmpx_(jg~Md7pg)^;S;@=7IKhPIcjcsqssk|2Ewt*D zSY==_QUGp3Iv7xYHmB@(4jw^sa5X2=RKbp(QfnGre%d_6bkDOIS+VqNONu*WSbu#% z0c$Y{&=LxnL6IqX2=UQOO((~?xys}@yYX?+)H^3B&+p^Y`oRI%B6Lyan2S>~!H%FSBw?Oq_W0hBK%q z0we4mE-$OxO^F!&;grt)iKctaPVDA7J(*BGz;L^ZE-aqB@Gx?!=6n)M{6T-;caH3u zM4F;SE6V5N)dt6k^wg3V@!X#6o1rtMmX}T%5bS(by^v(?`Z0E!3|bFsUd^N>h1Z!p zc_U}-tzs5``c1p8Rlv@svNgT_$m6-P?a(?EH z=d@_I_j7mYHL@`|*L78tFEm?>-p)D+=1VT7C+=!1MJGfxT@n=|>AiftqSJWICx2U%J;6--_ zDu^wASourV6Nk`0@ARsk{JJ@I^l^K*^HmIou@@M9OHVP+J7UV?s``|OaS?LzVd_MZ zEbGD24O;LyzAleZ-Ya5wq%BGiwU#__2Q9l_?%EhjNs*B*E_RZCAp85x#Qn;@4TrRA z^!DCg9yNLEtZMGc=AMahX&o|)tN1F}HwCMIw;R>xXnQYGTYzwYIH^;~K6^UaxIU&aA?asz`W* z(K~!afZkncdOJA{*<1s9FtpTr>V(K$l!HD}VmoM$gX>NAl+?Ard#OU+o$Bp!OEDvV zYx*}MsY_El80joI!Y-dU5<7?a^9{4;Jvw9A#eSuf&G8gL&$G#q6Rc4zz?)InO@1HS zaQAmvCn|Qr`>M~y<4aAKRFf7;4BuDfTsF=&J^N>_$9QF)h&O2M>#8l0$Jt4juFv#N zJt~Jzm&IZVo3^IX!da(~GJw$;_c&I6XJ#V8Yj(ce0_;IqB)|HgXyhW}VE1}Rno7&! z?VS>x`kq-rngd)mX-e|zUKRZIoVXpVIe(g4e|DG479M>ai;C`SzYa`BkxZN#w?ov9 z6x@4!9UtwhI#Ew6lZ0n=Rgb!4&Y3*QPyR}(=v*onx zr>TtQer~elW~~cpU;T*fuoN%fXz01b)jMT_H*QbaJ7ZX`GLrN?<{EV|?A zgMyzlXgGu!W6gMvSv8;EZ{4|g6dq~=Q!UR&WHN>YF8EjEpj1BVQ zGEw06zK91`@TYe6Hh%5*tkbFBR6OkW?J8fo_@Jim{nCx}a3$kwel;I|lRAR%O^8E0 zPs@2LHlgvTBwPLDZ5gGDGw`v!8RO+-o-)$_`ddKO=ItCOc`ov=^kgxfd^lgpaJrXG zOhh%Tshkvr;K6S3%Sx&_(Xh;BR9E3E87tt!PppE@5(U{BeA2jyLz_@U*a7cMM*^R*Ho% z&kBD#2xTYFNz zI%3=S^zQIC^EoiiAnSWqu?ydmS0}sPwjs>8LpR#awkOAOyghs@pCVx|E^2e(jZl_P zRza)> zPrR0cRNGZ8-b{QDxqRT48?(qqK(Ex{DqrZ6j7=MSJh6*^(&3_*y#>rw1l)a0*q)D4 zZ@Yv)*y_dakK3%lVCu9A9{_o>c=6FRaqaBhK)9jwqyL78`bp=P$uUu3}X5G7QaqVGx@ippX5_5Qpl;ly6Y)&Z0 zvJHL6`@5s8!O=|a`%%zdz`NB~!7*=TAf-*F)kM54k~*hwy&1aW&uG(={J#J*%hNy@W$rm-2j1D}KYS>~k9~Ev}|RJ33t+#)YF@ z?YpyoODw+btU>DmLDi~*Z4Iw8L{Q4DWJf8VspETj4I|Mk$F_Rjpqwg>_avoZ6o;#I zg6*@G`}%yev{@mYtFqK`n_XOdKda^&P%Ka`U8`wraaf?+loc=eYeBL#V}nOt7}==M z8d>MdHi%*tgs-LY-i~zakCzF*BpcuvwgK{FI# ztS?RRv&LVM7~z!V_py6R^xg_(G#zV#ymP&F=eDFfYQ*9;me`rTCCs74H+U*PmgAh` z{p+fmwpl3JbZd^Zln_@8clt&@#1PU?4aV(2zxh`&_b1vkWs2OQa3&5*zmr5S9H7~M zsl@P>r}4zXCJbS1nMa0e9jp~D#uG*^Y9eiNRXgP`ed(IUP*pzTuS^+|uM!-5lp`KB-rzPR>&c?d^E% z@8@h&j_%$sPQRUpQ|BLqGoL=whqqvMp6pi2R|lAN`aM**+HdYo)Y5IZFj7f7$4vTX?J#;M1skt?T%|9#i826wf1`&UUPDDp7B+TqUAH1V( zx?=HU;UggVC*_E5IO5Np@p|GC<#H=DnuxmeX_d^!Ga2{QVD6V?+7Cv- zn|@yL-PueJn4sO8F|b1VlD{wR>G%{O_X;C;f4YMoT*I*GUr{NZn=_v8vAQ*kcObLG zY^t+AKZE1M@Jh-(Zl~*g#~6UC2h6Ec>rdi>c9QI9rdWw}*;k}$X%W)RC ziuMS#(C!B_f3?LsU-bGd?V85lKifIlTlCcc^OOFW~wn{geQuTQnZaY)xqU}&!8h7y&M6)mu zY7Z-gUELr`E~IgP4TC~BR$=oPE4RwS^?q@thZfG^Pz+~W^XZamFv-0f`_j_iBox=v ziD3pVtxJWj73X@O-_5W-lz#F9-y-BA)(q1j>rd&?2a(&3ym?wFnO^fgv@ylj2rU{1 z`SezdM|e)!2?X4%Yc6?N?p)tu_~Biz!705<@gYmkRP7Oea&m6Hoj;c?ea#Y&X0L7d zWU7)lh9_U^G)X?(o(a7t^u@c98YJFE4=!zbZMFRniO1J;i*RgZ2>WoRiNhls$E%x& zl)P_>&E(3WR)bC)YFx7X)jb#w>#z|IzRi7Jhi(uaYf96!x46bbrKa4<*K2vW8p->Z zZC)zZC#+C^jKek)Y^@MS_S|98YL(Zlq95ScCP^y?Mnue!FdVIJKaml5oZh#mF$yny zkh1E=-c~|`JMVSuoCF6b9zY5jnXks}R?=l&+O_+AT z|`U4bCMzRPAS zM#8&b0?dc^9x}Z5o~IxEH<(#zgGmsgitZLdh=#6nZnz2$IIyF&G#3=wfl9ggN4?*! zIqAZGT!UqoBq=oCOXU+6&zMLoWu5HkAI5+#4S0Me&96)Od2t?E7p=H*qO@nMTwIb5 zu_khg?!vg55}GBk2q5*AWiz5y9 ziASaU`7PRzL)ZhzGuApYJXFY?!)A_QsOcn9PO?nNStJi*U*yMypz2mgl1o^S^muvo zaE5;0VGEX`MW8>k5Aha0qhK%Hl?)yQLEO|XGRL30s@$$l0T&!+SYE&Em0IP~apabk+|~}3A@8*+aaGaf!U|$* z7xW%PSml9sgdwS;NjwrWy(I;G%|<|++>V$j&YyLGt-s$AX0E1Fp%+_;D|kxrTC`&p z=K0NP(w9JL%c_y)2|rx#n{^*_KpO#nr9akNBt6@h+e42-KYfXP{1R7uNE{c0pH~iX zRJfVji<0sZ^&C~Rz@x<3?-xItS0EOf+U{T}{q`Q6uvvP|Pr*3l;^3vGNi@zU^w+w1 zSoPCsQE1@g0o%8DU4Om-*}n6neEXEeGYXWvYB!v^C$W?!ofP*I3T~ZE>G7(6ut2`K zX!EbJ=0>SpL>Ve}XL+r54$&IHf^CT^SHsNwaP+xXY;3V4y#gQsHBS&KL^7$kkzWBU zbHtOaS+~CXc1ql>LxsH$Xgo_fU1kwU8EquL@yDhUWXFc}5M_?)p`dAapAqg@sd6v; z42aHpbS^cH2Y6Dr5V$SkZTqNy9t&$UIk8$NUd?@i&y-$lSn%ORQ+;TrYm1}HFg<00 zBZu*z_Q2D3ynM%^xgxLm-&y%-5mxS*;rcg;9Kdswtv*=v#eIMACx-cnl?SR&$qc;? zed45>Q12Rmo+>27nh|>^v9SX2(Dw zAIUke(E?YlH!!@!17orEo)FIHe<#6Mp@B@)%gBz6Z(Q6SJOsfFoMF)egm z-G04jW5hG;f)#bsOwaY$(~)eI!f$FVL5bLNvF+fdGDE0-X%YB>pcG}}4q{%lXTNi>1GD2yz1u&}JD;OzqyJh@yQMI;qi6fj(y33CW% zjc5wx^#d~noU<*hjwFKh1S&j1uO&Y1LO=AhM8E}m_A--=b0KGx6oa|TJB~-{AP+5D zW*`x6O9$HI2d_YXsk_KxaYz2C`|9HUL}=&1zoid1IZ&uSBHJ8NjINWj5F*J4p{=3m zeet#)qi22ZDW-tBdI=koIK+QLcIH#dFgPG}!8A-qmAsut@v-dd%Ld(Aj66%m1L^Mu zFbiwPM164`EeG4A-w1QT)pK*>wI?m^P+T2JTFJ_=h(uO@4^Z&+wtT?E?D* zo*E3m-TBGuq4cJG0oi!dgp$Y`n*Ki9hynbXe4<>izQ^wZD15XMr)6VQ_)PL;Qa_b^Y#fuygx+-E+|5wtvc zsrM3W5{V(XY4tgQnxO(7^X+j>COlu9AMd@bt$0hS3nm0fR3Idw)I^Bbn}9 z5;&cDcby(_2`S3ecx zRSSfzSg3xRUm9nwGF~%=K;66+IjnuyD+@5!%O5MxF_7Zj?lc5~6iYE!9NSjK&{W^P{5G2{U@K39&xwKgobSdgwtGT!HC z!7RN@AvSQEgJ%ZGu{+}_vTn&@0|HC0sgG7QF2`NN_>#$^5DU#FFsHChS(NIy|2jj; zD)&@E3hDm2Fd-tKvz-V7bBR1OL<(*AW}pLq^P7MAdGaic7hswg@Wn5!ty$~nWEbe0 zq?NLeu2``GoU*5*(_EEa=aOFJKnFG|<)jPZE$8hN>m$F`{6*tS-)R>QWGc58{&|*)q)r?gMlZ1 zY|K_S6mN-%uxRY%6fQ;nfMCPdy{ zXp-_W^y16L5R396UNwvT}ccDvxwgqw$GHyO5oxwl}b) zus2a^;zJ#BNC^5SAe*)mFcF!*0-(48r{$?bKt!NB7gAUTA!+v^#hjRgc%1gn6rqY=xiq#-H9e1wki&=Q+uztb>dTl&DFIog1 zEsoW0MH+k<>bDcS#pqhk5(X$0ggJ+q6C6;c<7@NJ>Fiw&;l_@o4l^spZ82VO1pXu{ zW5F~#N2rh|?Z3Ru0(8rN0AKH-D)G*9?2E{l%BsDUl>e*<#!G031@cZf<%-Ay& zhW&~s-11IeVFKi)kRZSsTfP^m;0AxgkCFcEk$XT15wNe`@FofXC;v;4I<`3{y_44U z#bFL78CBhK%LDv>>MQX*2eDL}Zub=)2qLOEf9cQR=cseB12TQGJC=+JRbnc2_x&O^ zM;5o$ROFs{p+CV7Y^Y88Dau|@-4U6~<;*ysLcBRV9c!ZOSx+|&^0#H_^Y4JWkUIut zosbZ&>3P6(uMaR>S<)g2=GiAxX1JKXA2<*LE6i&T(a6PrWQ?QsQ-ox8VLdnQ#_)a# zinn}2B-*VLvkdF~&P+Yx0&l%Fu+KFDY7T|dZsC`AOnXAywm6}mQ{S~Z1^`F{-TEXP zan8yx+BO8E}bR#!8F#&UDqxND~eGFjB;}f+SrZ z1H#GpR(2YHUOqo+G9#GGwHSg=l9*H}rG$en>OL!4R%HP`83Z!O5giP4$D&k}`$~X# z7Idq5W>{6Qzmi%nbH2=?~wjN<>^QETD#EN(CjF_8ke!as4J z2WE4B#8wVZ15sg~9g&Di;MSW*L%Wq0rb6qjnR9AW{cj$mZn{_cH1B@33dPwe<_2mR zKO$cBS7E4;OTy0+YvpO|Jsx{dGXVOtuh0Sdt5OBWYygh(_-(-bIS0%KH35wXc|;x- zcx#qEg`rjJ7M{)1-thK0>8@N>lXone+iADDBcO#V**RA zWEpsne=OVkz*i@sk8z_@%e}7C^3$n+ATpVLiu?X3LJ*ZT%2w=WQ8MH+lZeXE6Xpw3 zRpBccR^-~50m68wQ3R_n0VV3ozjMVPg?eJ_(nd0f%sQyR^Aa($%C{Z!jrpog%+Jb1 z^ewWu*ljCnbBRM!OV|N<1qo}%2ySh3%N%WZf4sKWycJLs*DaZ+cnJ1V7_a>TAQkte z_2EW=Ly*TfpPv`!jU38Fe3io(khj>i6s3&tzhwJKvH0cg3+bRHH)VPuCA#qf;Ph*1 z5U+Ska8+^p+Re+9@5xlImBd!;);Mj!}hfYuA<| ze^oKA`hYjA01~tcWPODN{SdS}sRD8gQglGGhs=8WQ7cX3r8i*|uVr<-N&jGWrKyN= z%{t|juU~m!ujCp}u%q9iN9ihKJEai7 z!@Dm{w^|y5gl%GHF+cE`rjAF2-oAHDe@*I*rk7`^>%a-hH}kv?m$?m*g8(SA#J!8D zFc$i(IZjD4;Ky<+k-~4zUDYDsB5J+2VS&^nJ z(T8?c=DOfH{KMrINB?0S%{Y2&LR4_!ncrl|56{aIEfd~H#@N85%$F%{vtPp*e;6^E z8tFo2Gv7zJl=Q=njTh=pnl2`VhTjm4n>Qh0f?Z0yo;0^CW*De1$0o+S{w&w4!D@mu zY`Yg~`((wKB&x*Z(f)I8_Grw6$?XdwWQ02$;z|;9sw?OjVrNTJV&Azsb^%Ar3j|EMKnCYDp^6!ne~6$lk(Qu- zRvn?Ck&6ZF$D5$k=OZca=EOA9xYoeT%-qa>!2a_0wb574qbMQ`-UrMyKXqMW*We4G#8(yA2H@v{M_{?ov%PWwg8NTW?pFCdh0V z0IDWuR2m6MCu4ashuRjXe~fPD!6Sk{E81YO@;f&%Dou8XD1bwd^Y?wfMg$TtTuL5N z=eDDo0g&^K*ZqQ6&1}IZR!Mj*y@=G#>KSF*r97q&0*{s&B1=LkA4h(GMF6X&0X|>a zhBqH^4eOaB{Gew_W!x|~FW8}o?e~G`e~&KLxg^E`HZ`uA zvy8RY;m+epy4-PV!Az-!-1mOpyIWe$8C;54F%EY1hD432lmtn5*ueArhWQ615`Kls z3N8vlDpEU(6F9B)>$0T-;}r45P_`fKdwX#2+XP@@fGQa^8)_=@D%)oULDcLXeQB82 z&hZl%e1KEFm$qxje_@rmslR7m1Sb+K=BpXNX-3OAu6`9VhmqalpU(i?fqPS&10zXz zb4lpEga>Qn_%r8BV37BhDMW@uU-Ikqh~BiOs&Z&ShbIgSu^iqkzmF!Fxlzsf?u@}7 z0&96MYyvvME^b$}dIS#$ki3Q~RFo5kjr8Y_EI*nh2ObS7e=ju_c3a34CBW=H_D)UL zK4E@~PO7}G+&H|L53F7**rw}DgLejX(xo$2AU43Q8^72Vj*e;P0ha^|EIPEjP?f8; zzREP>yLURo{w4-l7i5iKHCHCWSX+cmSb;taFA^fRi}s2DUN7pUE@HpoGQjTZ2vKvX zqWlx>Nl?8Te~c6l3C!IWJb~n_Ic&Vs(Y{5&B_M++CAImQcabH;fO4I0Zwbs1)V8IM z$}gC=S<97H6UjdeE6lh5jjVjxy=C_)FQ(x3GEJDcw~EeK_$F*FewO6}+hl;Ip*$Oy zg^-BVR zVhfaMb?~95-dhzN3m<1Y*!VOqvlpVCFIUOvQBXk?u@cLkelsGcSyjCgXzm zYW-e8n^7W`w*_*j#h3Dw2%=>bK4>&Nltk)!fAI=x;a4L!+&vC)Yr8{AzbRYU#~(dB z0RFonU_-5%BYrEzM1Epz&)wVb^$p^p; z#$R2Uhz1#6c)bpVyFoxq=C+eO&+f_{@N58E!f(;&V=I_!3f_TzYd*r;r&qFFyWd{wC5HR_x)WauRH zT5gDtd2GBDauwF8MfnCv=Ue30_p}{Pzz|N9Ms587M^predpSdwnst`5LS)9_e~l=h z5|fdV*LHE6@F+ zPW-y-mA;KS7wn0?z%l4hp(F&*-yQIGWsi-7{gtxVYZUSV$1`m56EXyHo9z*-o7soT zs5wskP?=Y6Dl&3iCrtC;V3xe@e_nN=-+F;ERSC?#9L*RPojLwqt77x~p{b9I*DCkt zp%vHM(k@MWrQENYwvdRC;WxD{I^Yl#wPLaGvN+$|VbgOStlcXGYMWKpil7WI0oPMT zti|Dq1mwU1Q^SAWz2L#}37bgeW$n>)?_>eWe^%zr+TU#> z*QM>>vdjocIqiBtr}sv$|F97{&(zEol87WwIV+|5R4=V(mm};XYbaPWDD$0F+i4r< zYnM@&*Ln>F;>f%RP-MPc1523CZxqBq2r$^X;($F)@^N&g&nZE;MGfM#T@1E?*H_;4 z=CGoUS}4UER02pq^TFV%fAK}*98Gu=CpZuV&dw1YPV1XnN9@XCh%>E=dFeKHz@>AC zg9GWk_IPGG5NjdWX~_}LLxu8)e<8c{l)jH!b7()fvl0jB^uTq#Y=BAu7mDff9UOXL zC6Tx>0kYnNpL?-q5=jeXNPa7=-WZ|? z`HR3vxm&FokfE#^Bn;Rq^8%NDI@{mItelso>FKpe_Kk;ayvLQFIT2z+lZ6>iP@}x^ z3B#%YwIwbogri0hdQT?~_az}e!g4gLVokG}+A(e|yhm$pe}S-RS)&Q;Z1)5=!-AHo zk3(C-wB*Y+AkP?O?rHYS9NFQ{PI26hID95Pxm^1StOcCS61qH zihxn#Ki{Z(Y-*;&pOBQvnm7jbt=x<#sCEdIs`m^yjV(z*qytOG1kvNo2Azt^vs-cB z_I!ycc$hD$JYH(@&idp40H)+pPw{T%F6cywyQl+rf969LHqlL)qf6ys zNz(9>VHWuaH(cPN{{x311s7Z-?4Q;`c<^X~w*O7eBa*tBOhg!;N*DrG+X_is)tpz% zgk{-Te}wv3&ihX=C*ttva}T0byGq$0vr-~}7j-A;q+!WcX-j8m2yVP5kD(R0Pr?*U z*Suu4xkCncryYb`fOMF{LuccfoK667^6s&Lh|cqJf-UqLS;b z(CMQE15BB;1nygx&jA5BxYoIJ& zW<^CiM)(BvOs^C7b}tJi^4hfodVFR#laL~D?%x#MxQBM^a;^F#tU`G{=$kO+XI)Yc zf8c4FowzKw5Ez`l1H8?WNy!_Oo3pY`HOcCi2Vi~kiL+GGu0<$S1&^Klo*OC7oi|Uu zc;~M$7ORRo>FwzdR%XPxO?Htk6s^t<{oYSLk84Rb>)Ex+_JyY$5~K}(FtLMk1?p%* zK2?<$h+3`*%DjDR0O`B&{B?TbC9s3ke+%*m9^(tRn@HUtzOh?t3jyP%QZPJ;!vV;5~N#tDLl<0kxH8q&bGsUA&0gmqM8|U3! z`y6Bd3|_47(U={5x8GV{st8@~lff3iVwQ(CWq3cgU~S=U*r_S5Y%g9tDkB*hU`#7n zo3y8~KXThcE0q+*E>BPf(o6>!e}Rfm{K+~h?R(?Y{re&vwi#*I<{2Mp3v~gkWEejQ3JcD}fYE$fs;I*1^|Ri&T@{C`lOVN~N>`6rWx<)}v*Xw&Up5?h{8=Ngjq} zJZ(Ui48@s{ZiHJ^ZjBpc?htNR>t zHn=wRT}zx=`lWJe@FHzz8Oy7o_xsGcoFMjcsnOta==0{e;A>sfNOFysf(L#;1scJu z(1)P_dN!sV686rAim}enwxBltt}qY_o~+_T*9KnmDcClX;^hy4f2{J1eC|=rqQK(c z%D)q4=Sme!&VmQ(A>XU%m0#3_jsiPvWVIh4{SJY&zIn%<(dg-!{n<(=fHL&T(&_h4u33e>dj zy#o@RPd5JYyNk&)f2!jYSaME@ERvnFl}biHvD-UQTDC!Kz0)1|jLSl>MAZ@yd*vVR z8kt<00XzZBAE~qkQRfd=c(18d#$ zHK28mJm)V{gv0cP46=kEx^McU!&G9)W{1(%tlfayUIS93E*#MI5z)zpSQ4PLpjawT40GW*>pZmBRLNt>6WO$SfjEY^29DE*mv-%tkpmZ9O#&ry3fal-kg!dqe<@1%%VUhaTZw9Q$$8)>`|g38 zD?r4r85Q>H*7IJ-!QsN6h%4Ymv#S2cy?;6c)ywC+o2*WXHeCU+pG+_p8^y06F7G+_#aw+L}bu zfIVeeL+Dh%K;QEl0wX;6mg(?2yxAl;d6r3>Wt7f)u{&oXJDK&o_E#9vT&}b8>jcDx zxYH;uxcF0ZV#OxQ_m}zej~sJSk?WQOE~QlSe{`qN_7UaqVzc4Q@MjFb8)z<%L_MG%!MJsd@uhP7=vu`jnrGx+b$;3zGPTj%QB1Tj*QzEFhQWcmxLAfW zf2AmGfbVUm=H^iXVfjuPVDLlph^(f~?wcQ|56l9iBA?pyKKtoz!j5^idcRzP&7U&m z3B*Mzf_=9&FK(J>7YzF@-z9K=Iw>EotjLCn+#H&-7`8cmfJf-?jRY(o%y@*g_VQhN z@5&N1zPPo{IwLx<9=?Q5d*|s1VmdvDe{>U+JBy0)$}7b)$TVU!J9!z;u=o5cSiy$( zU4yAWiOJAszL9RpV0C^o3yDKC5J{{?E8yg7!nVy78m7lvJ_0-0N;7VK&+DL0U+8-T zY0HWSNZm0Ic* zt4+5-ru{jC64ITYq^rTn;N-)%d1mf(^84PD^s0)llr%|6A5^5`cU}_-bil$*0ot|- z*?e7Qrb+>SWH(>z;#iG|za@Uve{aeYCb7ZlaBX8rejq}=chGHBDVKEoL_{0GX&^nU zWnOB%08^R>r%zmP_`*q;04v#T-)7;X?t_C5#FO0)Rp$5vrte}agjtSVla5pz61Xdy z!jd-Rsmy(hbFVZh_>S?Wu%fCFJ7Zgw0Wg`RrcjXh4is|B1(H<3d+sg(f4X?eSxyF9 zw%A8`JO}mTVN$qMJZsJ7`dtqS`m2IiMK>3I#hwu?+V^QM0(MtUfXH`i6hFlnNIdzP zk`h^+jD#~`rqX@kPwv6M{NT2i^tR>6iLQNHN2YVrBG&)ELKT zQiL)qZEp9wxS}1gPn!&XxQN4xjcX^2_o27)_0WnGtW9+D2mB)Ell9jLn7nxs zr}kwE_Tk7|Y&5dPMBi00=|OR~<(>}E_Qvg<7HVqM=U=PtdszN9f06xy%O>$(6CZFa z)cMQ(Z14WA*Q*_7d&l`Ke?P)ctMN)SL!H+K3jGmUM5qFlvTql5>mhUJ$Z*YR?;0Ve zqoH5F&2>b{9f|v#^JKnQ4MI9Ysn$RPM>tvh4O4C*mQXh%OqF^8ba#AHPP3sivt7NX z3TNpqt&wf%iBm%me=ls6cH~V;x7a#RFThZ;pT>@Cg=q8SP1=nS(4O3i46t$yQpg!rbg?KbP^v!QNMYg}KGu{Pb{U9xD(iM3Vi;@v;Li+s`ZR4r%m$ z13|pNJU0yZp!BJK-}iOJ$g<>R=D8SyFpP{}&ugLUER010vv`LO344^2;v%EeR{Ao( zuYF=zmYBZjxxg4-8F)okwz4;H!@^13(N|1(LzhqD6P?DRRQhg9)7L z&hjU@#OSC4p|~zVsiT$4!fA+nI_xB9~Obv~C9eOAV_{HLp{A+=&vIi# z)-;y9_wxUn$*b4@ zi@Th){Fi$Fu)_a@Kf<5OfvufGR0z>H;^?nE?#~Uxz<!X zJLI(`A!Rcsq3|aV0*1d#{+~_)Nf?F0#lP5}*NlPw4oZJrakgyOW|@jGRQ~BH{)xnd z=`X_eNob|To*_oVFbv)O>pA`hF)nbtTt>Jlf2F@Z;GOwrar!q%RSn3obj% zBcluy_?xiPT+5-;VdEB}BJ8s*^5ad8HR0+-F+`I1*8QaQ;)JxDF3phex!KRs58cu! ze{dHk7Sh)$DrjH{g8R&qKvvch=t_#jCGwlBKCl-yR2&HtP3M*&6$S!ebvd!uaP36# zTN`vea~n~$64jOiK9q%7_wz(g!W^FXMbPNitKJ%;KFIgV171Hh!~sAe1xQUMZSCu! zVRZ$3uj7HxSK5#xFyc0Y*jplze&j&rv5m%y`K8)&9;CMu`X9g1mtFr$t3Jd)e_}_! z<8UL&^&|~=RjY-2fZEy7$={dQ0d^oq_PvOn)r@hw_GS`J6fH^E-1X{FrMmcz`oMm< z_uLiFH*GDMmsAib0>H%bd=vtZ4Tq5*G#}*fygcEFdISOuR^&W@56j*elSAcYb?{(u zO@bdGW#Wa(FGqiw6nfW*+@^A9e}Q~xFNcc;4I?99=H^?O7HVOX*~WmSJ64ISl!{F+ z_4!InfY5%0eD)tQ8fa0s(chYb9SLrj z?)TA_Jylw5)IM!NfJ~(&bJa{!PCi=qUA=YL^&c|HQ-?%^;6#FKO zDt~p){WeTmO`quZphe!we?~)k&Aw~(=%ZPXDDmjq@u$mvKd6S9(-t>p4YV=eJ7c?$ z;^A_Z+xfeJddp0*_`W)xm~u2eDEUERXq{~w99{>cZb)in6&JLoku=g?m{Zwb?-jpm zfNRQwuWcE4)bT3>)e8_fZH|PAS&M=Fd#k%5omxd(UoA?G>^K`Ee^HIt1x-r!42NMl zo58!cd|;`f6bzZCRKG^wS_l1sDpR08T$i7qy|4sP>>>FmzPVD_uK+r=$OH%`CH?)P zytICvzPix6?t#}vpNK^>6R%`62r6{pr0?Wp{@_R|<3O@l#f{hy4B; z!qtl>nc|%&Oy4Qwe?(qs`-RR=Ilf)aiKWno1-0-QNX*}89Sc`c9$%@@G!Gva0qMs{P#F z-qZWhj*38->}XdcOTKXNhuvYm;;7EHUJ;>^0$G`2{SF#C0kELaFEo=m81dYp=a)ZS z1On|w(SE~e>Bgl{aD_JcJXGFJZztq2vTpgtRaBp-Qp(Hmak*tXAR8~yT0L)!!@Iq zVBQ~N)Q9_R1QL{uM(B7rcPI+nCs+Zo^yv-9zk3Ce+EoEMlX*=C{7@_j&&I&&5pCUS zf8}}#)sX1u3sEd>p(-)6Kb^&U70WO2$i9|hv>g|8e`2!cF|WiUM+V><~27KAZyEBy-bxYP~*y+f!u4+ zY)e+3e-rWw??ynf{MKBbY_D{Hv=W0x$SPWghFbtRErFb5UPC90?ZSpeukV>dvR}^| z;G4DnI!)+~G)ga@lt!s_OO;RQpv+^aWIHD?LxS+tQ50MZT6Zg-xTe9eLh z2fvwsZ+9I3${b~mh9~+B{0!6h8ml^48iZgf_exIu+gI3$9T7?38 zgxt-m@p>Ry;kEw8RfndJZ{P98b%o&0uQe2fi>yf>WHDEcm)&Px&P%!< z%PQ1Q*iHY@+?eItGP(zd-uN0K5zc!mf#l*o0unv}Fr!lBt6Hf5sGUdQJ24D94dhWP zKcK@DFp26H;oO(yKM5y)_}k|`O@GghUA_U`#EJ;<@@?WGdfR;4s%FCQxQPf}c$)w} z!O%YIqpC<06de)IM*DfFO-#?ceI=RphTj5PkZ*W*lGlGxbQVb#!$1r@P!?fYhV#Qr zyD&57^iy*O+hui2Pofgqv9sl^G%{)>K?n5yw83WmzJl()c30PbF^R>4g9b|W9w*D2 zu@<77MwjUPP1*F-^Z4X(&|<}K=*RsYn)9HuluHy7VYQwS7UH+>dVSF)JP)b6u%Z!oI)3dFO zzB0ZW9tP}9>9K@_;8Bc2tg#0V!QFEE{=CT$;Zzj^RoIn$^tGdO=2uZmR|#Q4?OI+ zipd&}gM%pK1!QKA0mK(_QTJvNeLF;Aun5{h?`O3k!+EHGo4>J@O@_jL?d~%f*vpk( z)%RQf;0Kj3g^Rk~_l{7(MVlvX zw)zGTYVUqJ0Z(Rk8}dl~j_LAzJa61NJS8d7kLU)@zymr3ifQ+6DY^FLmjL8G*kUIs zi!t+33RmoZw+||R_6rXxzEqF^D6zCF#@l>?&HSUtP2Xhtp5F||8sfbjioYfw9Gk}w z(?e0qIV7kM6Q`1XGn*cgsy~IPpRrB_F72G6!?0a$V%5{SHbU(kaj2wc1#vV#r~6H) z0NMP{#1l1fot|yU^~~1Pnm|P=(|3(cJ39$8W_o0Ql2mED3x}l2d;ghtjw-MsqtNcP z`keQH4J-{)w&febo%a>!Q*YeZdkn(|QO=Jsu(JanUPseZtidD_C3YGoBnf&ePzlOW zIeTK-_erSbr=uL};f1)=;sq8uLqfV}5Gr$k3cm}N zLmoKo$2K58N_u9!E+o}R36Uh2dR;izo)m7I`BUD?g}h{6h-Z&^X%q2J#-LV@=cW*U z0Cwxtn}tIPC|vdOTCn@VKWE<0BifmHYx9R_9(Fl;a`hwdQhZXEMVI%}oM=PUS30^S zpZ&{QznYRQ)Q?H+RU;35fIMNOQRxIs6Iazy_TU}n89A;hvhUh)uuW-# zav{vU?X~*wqsD=Z*4&sS%*@qD6jQB#efh{W(A#gip=wyy0vC&$nPd{P?d=*wRczuo z!Hl0$9mo)CH4H`r;5_o^*bZ-~@T6e3!mIN34JP^u4M{)^hnw^5(d{z=o;2V;{^mjA#-{vD1Sv34+}^KNBxd;P>n>&&W?^eq8)EsbET z%KFf5IRx64E|4l?66>%ygv&Qwi};&JJ*wPc4rj_7;0m80g@wE~`H4(WW@)-0<$b|*_Lr$`PI z6+NJr%}g+vxPJna1g*8cmB{7cc4%Me<1pVdbP04KEm)6@%Y1*CGA~1Zmf{dI&74L7 z3S-UFS6v9U^OnaLJ)foD6Y zr1-LtRgoWua+T#97m{GLM-CTDC;qWUIJZlPlMMyb932=4uv zvFEL2u95MFRAcDRdS#-(mHfW#Eu!zGE-+1IC25!r$+|7kG=Kb;;6@1qf00YR$cw5I zkPDH=iv+8<(m%uHsg{QqnkK@oRoM7~ry;n10btjrFkBzH0eJiCYoWVaJ!5(bp~ygY zXx#CrSfq#4glZ3I!}5874krRcjD*~w$Pt})ch%(uuP?X! zV&wYZ;G!4)bly%^Zp#5P^C+9lQux^G87j(8m>QQ1FnpTe<`drx14Y`Q(T>h z@Zm|PSQXfyu;qIhL`@sZoBuEJJQ-wxG!YGbw9`fa#Rc@}-1J0|2l7JYn~p#ZhTOw( zg}I*4;oi3!t14r&dB>QP^M&YnOg7VK-;j!)rZBXL2fpAisA(J4Or*K(6Q9G_5}H<&+n1q82^W8ypV+`geYwJ%jqOd=9hm1O!hbJR zrR+_fDMz=Gr`Pqb6RuRhQmdod>JbWX`;oPQO0MfIWKY@MlAKt)*z+CRVL-ZmhjOl5 zl%xCICfKKX!pxzk*|eY{btdQzj@|G)f6<)$zFoiZG|m8)`o*}_YnWdFVzkI-1x-JY zl9hiKJ18)(De0*-2Xv=u&ldUt8wYscFE7f<5Pr3SQ2u0jJ40Ll=kQY*M(oY!zvp|a zNECtZ8XtkDt!mKO^z6>&J8N$r3(^+x!fgLQH}hYge_oPc*9*W@(~uI8*)3Hwr` z^9BytTK#zd@4LhfKcWNHXm9I0co0pRwz_}S^(u&FTzJk}TfzxFH8V-$cWyG?x=j#q zpjuSMncL0R%^_cH8ti%eZs;C6XzZOpHfT&9J`QJNi7_7c-3^;2V z<|boAyyh!h@WGm)XsWszR(nK>bekYg)R2 z2~3<_KBTt+RmkVxTY7==JREA4)c3m_O65D&g28(o?r8d*twcRB2r|S##7qAUeCtY{ z!Us!-#NWnL_#~EJ-X?*?OF+HUsfw88mU^!x%)d_uQNB1Ja-N*>{p98Gty3@+na^>l zYRafO@nW(4!GeCyU)C2r@Cq`Qo9 zzk4l7LvE5|zc>knpB$53IHW17b?=`8UOYrGu0<-#tqVqhU=-ET(5BbDjd z?zkcOGe+pWj5lNo?z?>(3L}4Yq;WTWBA)<2c4epL1|S0*PF5Cha8g#x5N;hk(nEBy zlPR!Mcq=c!0xYCUk5b40ku9!N&-;H=hiOw}M`e)1k$DgxL1y7-V&OpSZo{|LSIll& zL)aC^i;e%4GU|}H$*E{Xgbb^0I_4qKNn3MRd|O=jwBF;tf!qTLM8JQP+rPP~N?8{K zt@#**+uGck5e~>-r2-Z=Cb2ap(L1?^cZq0xD|4~0D*tvexh-3TKm#s}iKeRR(W>C` z95%sbd(OoXM!}PrD5vD{p;p$x%csIG1u2mZtpdoQwSU{e-QL76muZ@?OKOMOv85qV zC}K(%K@TE*Kcs>wNkOgGlx2aX5t;|b3EF-b%PMhOi8(jejM#r}K-v^gVV>>hoouag z9tG8YL)WP!iMcQd=|4U1Jr5W*ODy&_`|e-O8HC%5l`G#S!b^)SK-ua$k}9B4D_$jI zhNlE8m5a%$(tD9Y07r^ouagRa!#tVF+j~Lu#8SQ;5qnH1YwxZ3E*bGYN*um0v8k(G zdgW&+2TN7pWSxI|;GOimfwK_y1OT{p36(}k%7@qLix~N;J)!AuIWk>C10#j2xXdj z7FUarw_L*oR(Qqp2U0VzTMQuZF-_})nM7`C8IxQb8kT=MpBtR^>l7skF;%0fu~Dj< zAc7LOEGEqR@!Zd6*gXr`bcJe$RT*)!z%uJmxt2sp@|{x%VT5#>zKgAcLCX5*>eW2E z;wu<~k8*J3W@LdQ6qRhuz)I;_ih7P%L>$padNma}La0!Dpm>uXSo6j&ZDZ)u?Mu^r z3r8)I7Yctak|h+9zz<0(z28ExM6-ZoFM6M>8+IBV-r~0WC3VA%sO7lr>wy<>?awo} z?Vg4Hu}cW>$S{qKI_7)?7T3k-FiuhUMu3sry30~%ENKQqzZLO$CuS@QG|U5(KNN8d z70jtQElUfP*A}6Fgm_NlHTn+&cYBiP6Mh)VVm*K2OC97iW#Z@A5!%)|Xw?@!#T4F7EgZyZj@Se@<4)abb@qx(qod?Z;gmf;WlwwFHnOvj=c*Wvj`53I?dL^yRGBYE`)`DbKA$8GT>nh#!b~TLQ!m&)y~YZpkI<8yY0M zv5bF#&{+pt%_GnARLf{P^(wDlRf8i_GW*^hPhbwo-vn=b_Y8ns>*V`bPy{|bOt{$f zrqzy3^r7kGud-dGCC~$I-maQ*cy+?(f$E4X6^lWgl1a`1fA6N}40wpjwJYncjEto& zJPr>jem}UALp8{aNKl<=IE-b*oVA@rFPne<*2;2cv>9I^1kVnTd-(L|y)iUrcyu9| zLVBg*ts`F4Z@LsQjqNwncVpC}Ds?RDGhYwGB)EVxkkur zbTaa^Q-%)ziL#Nv^Cn)A_o~$A*l_encnEE$M`-yD?FC+#5@BLp?X{4(lTV=mL}xd6)6xMYnap6A3(;ex{qT8Lwc@%PTiUf^q)zl1yr&!72Op zpSu^Che~{(pRzctNxw(85ZO0BKQDA`^iADIYMm>qvBjT^lcj#00asauZ1p%?iNL#dD`3QhqBmb6U%uv`$|g(e=#)?V*y>3h`?!mf3tNeAp-;9!Uj z^o^(+`o7j)OhRbsSZS;HBPO7)8B_he>wM zR*T|nMSqlxr;c^?_j)kB7y*?X(5ueDgA-4D+u=`1-o-K4-UCe&?8xb&LH+_9%oLm< z+ktVRjd>esyii9S^zby>zf^vcAGvVZU2;R@+QL= zn_D+IXmqUF8?~pxvhSzZx7}+$z2%T%nQ3~q zEPsA6S*ysf!mmg^#flGg;3UH;n;JUKj5x8=bydOXyu~i^U`&5?vmM?f04U-kmL7^y zDFv||8|j$Y#@r?cf#T~T6)t`#$cxHOjpSt0cGD+P;t#GvZm7`P!d~*^57qD!9iXMJ zXFS|)dnB#B4Sme9*K#}26eB|}@VgOqDGj6#))8CRb=@l3K$r3@4}+?^6K_6Nn&~>P zvn(UG1S;g#(S(1${FtvX*|d{MY#&{9_4r(d)vJ$!E&+5f=(^~+gIXXm&6;G}<~w*u0+``k#Xs zw!A(Tbr{?QVZ0j?juInjJrjP7-10PL+Jr~VW%~F1{E~6^m$)LPpXO!#6x4ce*Z6ic zrO)X3x0-S;S8hXQviU4fza*HXc_4QtX1t8>YQGkKcbCUYRb7*j!2!)7B!Rb)8RTX3 zXgS|04jO;Q_K;ov;lXW**&Y9w@c_dY8OV&~0#mk#l;dA@@r$F+u2=kOTZ}YqHsYVhBi|d#Y+U(9jkNoD3|4s7WrKjDVUVBHC2%u}%h)p1_d{fDnjlG)FXtBROioYWfYptQvF_b)RkRn7k0{Bo*oL1Y zG_p{Cy#((iVP%o&s_1Hok}gx@yMImGxVNIY+C7SgDrH%8+oGeROLvt9lT0R@jvI2A}TQ$ z{fDPQFVC-p{ATZQB)Qi)U5a$YOyXFs(Q4R#EDSrN>Wo^BD1VY!6@&t-(tC;wMQpHz zDUdluAhZU1?#jGu436}_{BQ#lODr1#rErjr>!Q_8&+@MYTXF^G#_%unndFru56T!& zly@g_XpE?fKh83lak9u1p#!W7)M`kx9vNHM7s_4fEEVgypn!DP>fnAUrU|yUkK1~G zzVvdtgr4(`{bzHj43_y0Sbm8;FcQ~C7AX}-554E>ZL{;!L`&(`W}b|wu?IxHv=JgB zUReyk%*fALfE}=doUPpW6^?!-#5s2nqF;er9?w&ifmN`=+mK&(@0i@@5-luWmzYfm zul)fXXRcTA*;o0FLlHGLm9ml!80?#WvLXu7dEq2h2G$53O(nx9EsqyjLX-5o>p?zB zjmwZ_6tyL+VVXjNq^{wL{EnaOL+RU8h32}FpnZ(D#qr?cGGD$2o`vn~9F&&{QNe%( z1II_1Qk16BhHLaQ_uTYJ627d{dfv*~kk(Iaf;mnrqYq^Bah!rlRHA#O*_ZEs2SZyz zN*$-0meq;buU=y^FjPcqQRxforULRWKjv)B+&612ZARm5M~$IYzKFB&t84B+=7~Ez zwjWlJ`DLWWW)c>Hcl2>v3N0pPS|s!6>+PP%_;)ELntK-zf_&hn&&HYA#P4X&MB*rT zIGocqMN(#j<{B|rw}6XpA}+Rn1t(wO0TchLQ*Mk3grFyL`QW>DNi&1x6A=E)HKGGoN!}}cvJnRj3oU9jan$76DA0HT6TUn@JUnEO#Dd~Pg7iatL4@?@cFb(Ouwv!GRILWqJ~7vNVfng^bA2xcy6-c8!i}4ys&6{@ zUn-H4eov+=Dot51-6r^-j=Q0o{xt5kjc);xHLATObph{b#IbljmQ4}o&26pRm3eWt zk1u`VU6Mk|hPLiapBX3z-hrt*(NMUwTF}4K!u#7tLu8qR)8F+KA-n9iZw?I*g{du6 z9?eKgMI(trON+yO_}R^WX1sjdbY)<|J>R55@=N1RzS@o(wxcN#hzv}e?LbR{T^Rey z&i{cSChJH<9;YyG(E3qPPFgp0iltfkv}ZiJ*g($r!**2e)2Jdc7N~Ol2%<1h^$#Fkt~lU>3yR+{EbEgP19PFB=;nLmL7ON3zdZqIS@dM zlgiD0ntG+p7GNcbD%qNBXrRKTR?1T%^R#rusdkm06)vN84x{gIdJ}G&p(WT?Y(Xad z^5}pGlxRJ^b<;F$2Vs~6WnbxRd{Kaco|puH8W6#!vpirX3JY zu~dF7qYN(V#3zqmK$5#^Cl6_Ma}GC*-1*K4HY-c!w3Q@Ung9>X zPcG%KfhqJ_!)7U7e-D8k!~lq#3E(PZv04%}ytIiAQbkz%k@Tiev<^3nw=?kf7YgL( zdRd*9Lyn}9U{HH=hjgaT#vB_1k8ejx3z@`$1JBu|bjTauOKwg&=4W$0h5E&N7MB(P zJK+e)_v@aN5ua;}yFopE`Jpgo6sb}fXljBfN*W#M{d7B-f4X=V@1-9Eg^IY6-h4y~ z9(663A@Cmf7t8Ln=k^L^&1AR4K3rFFqk z?A@Wgw1Hh2e}hejg&*sD4At~n@>ND>p7YvVMa0UNka>VHx!=0Fe*j59w!a(S2D4-mmIF&z+AM+&sZ~V{C;=sR&1H9@ZssP4A@yK|j9R67I8Lw}%)4e{Q^1<{6X(+M!l+1vnfCH3csq{e2C4QcHZ#wq8B*MXriuQ z9wfYFRoYjIwl92{)FoH+rReE^U3&y0`8svd&pgWq?d2{EuU>Nv{Co;@ftT6wnZkJSU6sHQ%HC0rl_qqg7XljZa(2Pf;CKaAmeb{2Me-;gh+$HxC}( zO&Qm~d{u-BBY032B#M-UhBjxQLP%#)mZ7yuSp~$$s$xmo;*2TbK^;I7iFnx&UCIxq zW5my49aoz?zK2*eBEQ9K>bth}Q;KFvQ;JqXP3wg>V04MV(A=Nk@T zHqkpWb%HUTc&yz+N)HR6>2A-GFka2I{Zp^#tqAgr@J406=%|yM;GENH=h2dPKv)QmIscxY8T}s}J+68=iolt?))&(bltjY93cHTVLd12-Qmj zYi0FqL|e`B>4ggBo*b|S58-&VNFTjhOn#F0zxRg&mseseL(3PEN4ma}4eg15@}|-x zv$80mpx`9mSlh)vuXVf8)V1Amy3HFuH9GL<5Pw{d?THt)2Mc2IHEL|ck0$!+-x?mU zv%nT!DPBz0N_aF6VBp6c8jmiuy~D%zYaA+YY^0g$z5}N|se#?&lGeo3DXWJJ| z@4bQcqhyH~Ut1G2MGV($7XRqf^6J4I%{FNW7#B~bmyRy1CaGPeJAWA@l`25q2LwtKX;RxDVn16K} z!{W;w0M5%G>8=TsCcee@I9O0-HE=8Bhd~yvUh~+nK2dtE7t#zil7@Ecq!1@ItV^oq zY)PBKtNV~`ATNbyT~jAR7oWSB06#N@0j#^=Z^on!6;D2Xwf>B^FV7TWp(~-a!;tCp zM%TOl;^!+oZ6BxkS3(`7m@K^38GpT~5j{bzm@!&*d%SNhsNoUqatb&q*euLQC&+g+y!3Oq(fTX4`gSV;#qb8~C5S#Ri2VpYYfV*SE)Q+a*hF5odD z5-f4S8_zs=ShX2)UTIU0Fh73F==MDGd=!=`RDoZf`B~dVwgcI5yq=4%qm8gpAL!dgF0vT@WASKDReuQEHN+}f+oBRt zxwG6knGP$NU!ES$F7;gh9vB3NAb(=J#N;ICOm24@v{1bF7rW-y_p|=!Rl#$6=_?bA zsE)Ydbhii? zV&>Td<|Eo)ukjs5T;0XqQeX{ zJD0d*2`PWYPIt@gfLa2yXgQ_oG+Q&7DZ*70WrR<{#d1ETZvXp^80~iTqf=O1gN^}K z64B;^mO6F}q~DsRE;ecqw2jkzLM4M|DiN{6v1$VM#81sKED$+j23uLXgE9x~bo>gRXV$Qpk{Hv6L~4{fUbcP6qg_(7j8znL>m zW~R+Bi0LiRclQ-C*!&TmwyKQqgKFO^m0lX3ZSn`I$627bDqqrm3CY=mm6 zPAuG;0iUv9RK;xwEUx6^DvJO-P!apB`D8L++fu_%M#p zYleU@d#5pkR^PM#H+ZUA(1?TPGw4)?80dbf9WeF#LKWP~ogwL$xFv)n! zjZ{1%_yGc?QJoaHb+#hMlu;Pw-|ah$dVkOLhX3BD@mh!0i8C~e{(75fR2IE<)DR9{ zR|(&!z^hMDZh7g3U?*k9k&w5Kxy6fqL{-*rS^m^kX&J2Y`l2eP%aX6^$iYse+30to zKX+rR^r%*9e|nyOIedNqVPQzF`U*B!J+*$%U?rHI;%1ubz>#D+3X0!=Ci;rLloT7y zwl4+%Aj^W&Bn810pDE;gt^P^&A%>8aS(OPU>6A@q6OPVmVPF;>3Y;Usy*$cBDWA4b zG!3IDY-QtH)5cQ#7DEcAoH{aa!pQ9Sx5jm+z{YKg>!l-uKV#-7$LDl%vswqcZxK3nkzePoF^D4+(;G};|(z%gs$PZOU z!ah5H(*o0#zM=pEDUITA)lF#Cpo9ZZ7AFz~(9n!i{vwG6q;2AE!RB(%h-cEGxW?)G zL!xDpzLr%(9!dNg$`P_SAW~-^zW_c5+NAG6@*9uK_JPJ5ope+CLeQKmf`?tPB{}Fw zyFU+Ai9Q=)rx=wa4gnzZ$cHDKmBaEp9lAq*8xl!rRdK81u5Q-ADcM2W1d7taYT>(Bp}5f@WL7x zEBHa%5*&22g-4TQH}d;kRbp4Z4jjO)S8EV@S*_y1KWt9W)Bwk{yE(92z)|xfwvn}e z3Iz@jN5RbwfYPAB0QNy@oSdNYo4M*ON5y^<=;bz!NF)YtN2FpV@Pq(RW8q6<{FWOm zz2D79sv<@8a&PJfdC;o?+>8yQ%uJ!F>X&#sVc6S5u1`f^lGvd!CSijrhL`Nev>P_~ zL{>K?sFKp4072I{HT{!sKuP)tQ-Ga+{PW8;c* z-~Q z`4wcedq2Vw&RQ1MNUzp3!KNQQuceE@PgGcz{LMQ*ZPV%ErxUkhVrhzGA?qxy5t#IZ z$|$U?nxx+h6y3K3p}7GW6n#jU1QXFf%jOdr!Ouw$`|xVa>zHnJM7W$;?LujXP>tgw zjALg{O2D`tOy8xY?92NJ5cpny@JBO$1T1`!(;g6BYg2K@oM#qc=g{gV^SE=EL!xFV zx@oWd!aQ=-uN?du!6u-gCZ>rg=^2UE)6r?<>Lc`sy-**iwe6%>Ll@THr^gr`f2+Stp-Gbx4!Vo!Ho%ke*;m01bh>8`zE7V|nJvAv3Mye4t^YCS-w zjUZW@?TZO@HV4-WS?<+;k{CXT92usD0BU7pZ|+lFzHC&DISc)1GlCWxUWlD$ei zkEk>yBCU|Hfx5inXkyMH&|Q3CiH1jFBth3a&^ z`~)c%oSd-Brn#0AnFD?2?}q90+DxFlR8$k17Q#~B`geD$5zjL*h|O|<^r3hRGzvyrdvpJyx^(;5I4*rJzTziS5GL&=6+b!h00pXfvx5j+*) zua@~}_u-=CbxKHYc>ML#LwRLd=^6QcGTpbYpu;y)yC>L@`N@d7z;W+b*FcNnX)0PJ zj(F`2Dek|r{nfRhmf%bM^S%tV`yO_v6%{3oEG>i zE|Aj*HD_wyJ*QR8fs1hFlOCwUug)7ti|>2ehwXzEtVPN*GqJ!<&j1vo*%!mVh2{}1 z=gh9Ny(1u$U}SKjFUqV^I&auPUMnd*l*>%#LKV_$3^=tWd2R+WkwIYQX%ZEEq9g67 zLx&yKLwKfi*1v!Bq1g{B**!Nwae7KU{GU@HIQF2A{d4}zOj8Obi@IW(YhpayPbUYm zq-dvO3r6phNTC=+z6iV_cAdCdAt}<)+yGijh!ed z9QRE&ArI_0uNbqiCv^9{kdhG*RolPQ?tmO8eO}@DkMVzxu0(td_BxQ~R@Y3AEx=HM3lxKf#kG;(NUzSu2BDTZdT=<-!%)2 z(^GH9x-Y#)7kCo&;0+R?@d}VaF<3fNS5-mi1Npuj#Skz%QCRuK^J_qP7fvOQ!}q_u9AKa1@sL;q&*SLaCJ|(#AV@ z#4<1)beadTFdptr63u6xa(eSm&L7)Rl-1VU0tU4X94;vM0aKa$!#4-8{C9ueYDVmSd!K{DFIk+Q)Co@r+XLsQ ze)YpX?7OsBtMiV&u2?XuEss^D>*${(hPNVPh?M?Zz~x7umml%tpN-=G#dV?+x$l2$ z?VB&>VG$;tWCB`%kYr1NsRiItyPx&Cl^FtxXjm0lso~Mfycc}6ssb%c*@|~4fyF`; zk=uVlsHhQY?NJ~cksX8)VPa%HwNg_4)h=6FY*eOHtaT7?P?l15qT{d2WpkUMnVOL* zBR_fuJ2Oro?I=@?f6(G`u7(701T^b!EZ}bb26IfUMd-G3APt}Z;6KK`u1i&2>G}tG zAu1|fRziRP0mGN#ouURrMMVwz>)!#|z1Dx;=Zy0{7i+BU77;7;G3Ts;j0#%CLwcE8 z3C{}~dMwNr>L$-@dcOzv>1$P{_VXz-iuEwGhR?&wAm!X1*$5PySEBD5&n$t##9jD( z`y?ilInHu5*qS4IGkUqv@}y$#y+m4n^{`QLF5TPf6`Sg{|HvKr=v%A9`gS)B+jf7l zyE602Q(B(lWp&IS?rF3e-cP5vPFy11>||VbR@p=A`g|10Y_dDMMYzpa;|{gEv9p$g zUV57d0=s0rIynZ6^Ji|`xAW;V^v*liFMTK$l}tzH-sa%+?tOh|j+8huwa|D(2k}V9 zGMPrd8k>J5*A8+zSl^~}HeVbjy0u06b8q<1)j;uAT4pVt zDC{$8PohU)5}w|TkIZ};4#yab1z!(mtrc)j2=hpch6sBgra|JF!I;s zyINR}JmW9=JY=DtENAizy*nE{8>dhwi*fz}^Lb204}2K*hT-s3hC?qu5`0^<6xGGJ zyuTktpr_YGp-3{nu|8_}b31Z(?s_qEm(^BA=jUsmEoRGGZ{p-TUJPey=tj+RXFUpH z+0V=AGI-jw8BW;Xv4I_iY{P37uYIExKD=tZj)5m!!)H^<@gV;Sy>kFw?>j9Bsb1Wsg zc*pp@+HcPprz%rM)9HEo+CHCwrt?Oh2R%|6bZwtmoDXM%?9F^W)u(^X#g_aT$+P#| zKA-tkpFGy4n9Z*}AIvdC`$=s+$4?lI=k(>FM?cV)tCha;O^s}p$zU1WOSWvL2>JT( z?J4F34t7&kvdHava0ug9aemiYruBQzG@UG>k++^7WfhWQ7tz6d2m1DIUMy`}FW2*( zQ5w~Bx7+V#6}9oT=3O%T4;V#bS*o}Tw`RYV|`?PJu{0iNy02fcY`#>g8@$F(-p z4T}Lz?xft%$?c#tEHdV=n;+TB(RBTME|lhUyH(RZht==QN+C(kD7htAq6Uf26Ane=yCUsJoakE# z9%^ryHm}*MZthn3n)P7l%k_!hyv=EG>DB7IzXac3NX2_4{arToQsWWd)c$aq?VgAJ zVXtk+bIp3c%Ef<4eje7?Juy+>^`D12c26lxfp(8T-04F8KG~572mw(b0xiL*P$(=3 zb&Y3|)i6->0p}6Y6|xk8h8#vF5RcF{HdkVkAf>XNAaZQSv@c2pFDv`Ps}sIut^<#= zjxx3fCDPa6J7SvXFJ*oR5D;4gJg|U>Ius3y$yA9s3P*oND3h{Ddxj*-0`1QxQqlw! zhUw6io*xJ1MqAJGt8L17vk9ID%V3#AgQc}rc1bf`SWUe@6<|@5w0F#wbWQVq=;%~d zha%+MCQ2EF!N_*Aa)y^+m*g}lww2wZ)x0=Non?I)hLz)#a7~M=q%@p0^F> zayz^#?lwrx$-S9Y;qGx^>vfMRiaF)XcbeJdX`fB=)usU(ds$4=%Yz;N=FOhyztkGb)UJ}P|>5c(PyL6>KymBx!xG_FjCf8 z7`?6S-A2>M*;uRjM0*~rvA#}ew5b-S#9KF>aw^BqI`vTRfM_2h=?cUSD<$3AJ(3siA_!)oQ&85F4v%R`ZYSKQZ zf9`4X?ao*z7q`D0R<*jy*fTY}d^}ZrZ8i7cvVOjBU~c?@s;$>1YKTDU@Z^b=iA3*t z+8;vGS#78NOJBP!EENR_LR8}6T<%w39oFd(6?^tla@9;kYF@A+-fSMgnx&Rb*DQa6 zhE~)>>P7)MevFtkhSRBbg!FY$(Yn^`K33D}a?#kc;i);l9ZuAo=x_fH_!6Wh5YTrj zS=P{g-j>Sa0)hZ&a2_c)YZNW>X?5=L%)iX2tyhovV|r4zhpCu87sk_E2Vy&!-_Z-; z3VJ;sY{t7%vC#$lo-d?Ix5UP5(+hudgf>-kFv~h^2G)ad{d@_eoy2B-Vr_#D)wy9=-L@tS{VrS*L6 zSNs0by7FGA-#NeWds>HRbQEZR~^1(Vefg_vIP)K#u9cKV1&#?jG6Wy{kkY$4ZgIV&S@TDJNdaW>zSxw|7qm(ey0Gx5biY(Xi6{L(RnlLz{mp+M3Re)$VwB z@8wy}hV#=V(#EGLc#qA>xE?l5b2x6_oFjW&DoM2RuMg>Gt9@PXw$5dq!zSZgefSIO z0_ITPyH~WH?Q%0s5jE_MZ_3TpO0~q)(#6i5J<`pS?QXkaudsT4(FAJ0c(ixPUIIbW zEix1W8*U#)Tt{l{T&aJJ=b_E^%bVN0r zdw=5Bp3wv+_kb=%fsadeeAGmlZ}zwR7#tqRmFxz_do#<9CsOogasIC3cOj^0__DjW-SR^1)Jr}n+c2%zMBcWSs5Fc)MAwZ0YQNI8F1R-9m#rTjB;L$);X*Jt8YwWpfY1_U&DIH=2hFo~pJmTZA zk(c|dDqg31O4sI&$m3)6vZjlJE|-RJ6QEv>{Wokvp+AT^9jz*FJRPnTH*kvBC@5R3 zvedR>nn9`Z4Ih8|*TZ(YKibts@_Duk`2Ot3n>Vg|!`YBcl1sUnWRs%4l9e|ZDcZ?? z$Llh!qiv0Oc8*8p&VOe63$9*kRGRNG-g?%~Q&d!{)A`A>@#ArSXN^zyf$edUuM>9` zZJpibo*v!!MI7=h!ikqog2F79>)W;DMRuR;4&!-<_{@L0r1haJH-5g?r|;FnJRx*c zH`Rj;AU`$acwDNR{_wHU)#72E%z7xMyO^GlR&1L0-dTiCT5l$gQhIhAuB@ZATEq)) zoPv;~^QcG?@!p5JE^TgoU`R{b$sab9Ni zt8avB+*^MgVKr8cn(-j|^-&{r!7e!HySW<9+sA{|D_QLEyC2N+G|E};c-BsP+?+A$ zyLsgtwE^8bJzXiflnJI z+`gFSz^B)(pZQf%9dZ;WN0kp=&Mdl|H`P&Uu0a>dz7dLDqbNG1kMn4agL9f4C;PPq zvDbgQT$_7uthq5n?`&vZcluo}d8uBpxmc%Brn_eO9!!^n7Q3lC3wgS|7jeA3XU9yj z4SO=i`>nY>P;oBjVLZBKyO5n^80Gfmn8PD1=(uoNS&` zTOavB>dS%8aA-WT$(iOywK$De6Pr2vVYGiemlyAC99QZctyptdxbuyM!#jD0GdoZw z2D#Nncpj}E(Q`0-*+*5GZU>Jrn2ra5pG=I&ls_jZYgVtDmfXV9(HGk{F=w|uJ7?G$ zuW@j&Z;5}{-7dY?^pbBbllLRv7|UQ$7`VSmaFoUFy=n$o`VOw}*sd3*cg72Pc$t4^ zHa#b7rR8iMzSsI&kV`76bv7AK`q!0<_|M(Q6|IJ zHNfw5o@{#jb~lD&d%Ju@*_vN=gfEk+cNrnCFEioo6+Gzg({oP`2Iqv`)bhT18rdY; zv8>*ee6(TdYjU#&%clWqe>S~U4`qMo5FwZ|I$x2SvMZ~>%|@G~SowCWwhgXaSdDj9PBRGlcTVr6g(?8qsuPBgv; z#p1Mx?vR}qr``J&z-n+Q&%w~K(*>-ysh#8;C#TcISkww7iat1<0X=GWy1svS$5k<0 z*t5&xwK!SP1wBULX&&98`DJwBbk^*b6zjubydI=GKY7GW(r8 z>pjD|F&u8n$705wuBI<MQ#BpdxRgK|JeG)j950$J6U^ah~s~Hr?v`@l9c? z{Cdky$z|#FuWI&wzWTReK08EUSUc}hXx!QH^_VY(|M>@m8zflg%k$1P!(QhTw6DR7*Bh27HajS|1f{{6CSvOSU@qn z(?{eS&8wkJSHegE6?W1n5- zH&NI!Cr{_OX)U7&k0wD+&ebM$y> z{gazE*7Mv~r`mR5shfWoO|d8E4eVuMpbuV7Pe`aHuhJ7brDl{Pmo6bP$vYDQ9swE> z$x`v&(00f&OC+itiaLGxyB(-Ta5Q! z|GB(fPAsc$yInTcrZep{31*ubUwXy#Y;L2+^fn!O7SO~wyjkB8SfKf7qES`ALq+n78px^@AQAPemv42)4t{|&ePRnIzbK@ z^xFZ1$bCM}MI7FD%(1oAV0B#_r>8v5X{M~}XnW_Eff}1rqfy`1!=|(Sqkr9$hHy=V zoDb^_GxaK_txf>F>FPf0^*8sMGY-XIhezSrT;~Z2u9u3O-o|ybzWdMkl04?i^Jt<6 zLRonQjTe7&Gg=8{wY{>%a(;4?>oC19*4v;SZnmdkI@|5`Jo7DHX8y>!zTMJ2PR7|| zWZmACXGMdFwtLPWa*{nqqp8+=vZsw@;S}kEhUL)>+0CBJGFui8oP!B~>F7Zor~MhV z&zq6nw!D?2;W;1q8(fUDb_AYhK{OZ-i^aJfF1LRWlw-snOI|M6Il3t0ZO;mii|1}X z7m?=2qm8j!ABRVwngTA>kiA1wsb7nDTSZ}XeLsrLX{kyIdVEoG)^eEmrOD|D*v&K z%Kd--yNk+K)$u!VMj{an*pro;px6lj^W1Ilk#@VHpl%lw0CbI@+ZE-oJ#zs!wps{) zUD@q@vR<9hd9$F8{!#*%kM^v-{<8~8C*fiE=ymydV;xVR?N^iT3fkk7*V;_-mB}%0 zB`0&&Nk-nO+x4W|u>h>F<=Ej^I(&cWqyrux=x|5sG zXP1+1R}%nq>h@E?=#ef4$217~t&X_6wh~v!GIRFcn#Ln)IDnO{c2^VB?P3Ce z#@((gE^Rk*=`Q63Gy!0MBmis3n}pe$gzR-Z@fQ;`>F??nYzTnBdV9WFx)z`s91ef< z9+C_Tz^ted%hSYw%mk5{s9=TtN(UaIBkz!o*g?hYo$8-s(gQ8hffwRkWehZ83L-n>#l#h6uOAJ>+Y^aPv6G(`jKp}FFSSDr)NV?rtkm5 zG01Gxa*nHmP2l8%W*{L=5aY}WHYcm#np3cn<5bmUZ0e9={V2DFpfSyrn-5gl%6;X9 zrA?qBh*OM9w8kObI&Xm)-nxq@zTf~H1ThA2frThLVRFCMdN2ii7w7`52Je3+a;<;^ z2YR!E?s_dMGauSDImC+hPKRE|EM3sgI<(h+i2r<_1ABY#OrbA&{vQ8k@AjC_KlY{z zBjD}(6XVTB-TB&MTHEl<2a#FEn{~&a7qd{q-}ajysLU)wXKzn>2P0S@L1fS1s;LK{ zgSt3Hx|--B^$0LMk7qv0X^4N0GvO5X=Z2>t5v!iSmFJ6etAj8R$Pna;%=y5GmG)d2 zMO+3LXiT{_iw#JOg^{=KUk<#;Deh7Hx?c2vEHIdS8#0p!g(5lEV1))$rlHP-1$~J? zX0gFDJx<8)&rx%%bv+G1Qm%{A)G2C!Q*;>d14tI?AOd)$eRD+7=QDqdAm(NPi4j0T z00FN1n$T2$X@TfF6Uh8qDUwTOF8EkUu_|{n&MB9N4S1^N;P30F%DxXT1b~ z$1}5AuNVFJr^rmZ;cxa`GcV!?DmuTlkcbyX9>?9!KXLl`tPwk;x`EQq``+om!>stc z#|V5~yLcyJ=t$WaWP5+xDw>Z)dEC8-X z!GQTFCk*r0><82&Qc}cIL-_xG6$WHdV`|NIQ=Yk&W&-Dx;WZ%z8Edyl>_U`iZ*%lr( zF>G}d>n>!Kj&*dL+gcLK3IX#h}O07mFNGfv^^A*WUo8?eAKyAN} zdrLA5oGwA|wKMFapkNF_YM_u4ThvDTcx3BM3;R&oAc%jiD`jX#EJZ@Kfiq&h_1;!c z9dePPoFL5WwJu{r2ZG?1X2y%YO;i#Wh&xvlM#KAXN5m@%G7-NO8_Q~~qgW(MYJ;HC z7G>ZE!ncBKx~B*^4bLul#0#N=B;oHS4ukn_R{YZVIZ91h}%!%L0@r%3TO zxUGL27k!ywAKV8Z70`{%fs>ab-l7v_|CH1IgWre*DTn?cq(86 zuzu@;pf=}uI{S%<_Os_uuv7cpyLdUoiv3CvX-Xf%<>J3r+k;enB2)t6F7{zscv4_h z)&zf#oN+p9b{CV{z`2k3ajA}n)>>VqdV2|6pF>1((b~gkcf9i~3&_i9Sn-LM^zDkT z?GM?|XjJS)=_ihUV>0_*S62_0oxKXSgFn}Qb_Gq)C+Ggj)iN_@Au%jr0tDs61V*jA ztsU%Y3#ubQ4I0FOA;}v_vDc&8K)lXTpdx<(WaZ~V$4HHckh)W(7-Wi3$RZMCh>a=} zQgO6}id<2zuw+!v(;Ugng0MP6Ad5L<4Ru$dkr{l{V9aje!qDz%fJ60P{Z*DE2U@h=7)cu zTEpI1XFDh>j}*LwkSE6Kx`MdII3O;O1}!gSNyIumh3OHbz>AzPRQ2Yc+DZu8PuI`@ z*MXEEh;0Onf;1N;ujZ|vB~PsffrLsx+WHxmwDq%5i{scguYRvh`S@AftyA_cs}N#8 zdY25zIMPXc)EntoMF5U|Sr|<`%U*w_ZR9|ilC6=&`mICvdC_l7 zwSFNotE&kMO~=-_hj4Es76HxU@W{{T>|J^S=LJ zx7J6~1c~*~Dqa>5f1U3Seusab+>;GK z&xTM5k4R?pHzmfP#27LQgiS$~c$yOr^VsPdCB}$&I>h>wbGOB%n|c2U6~{+_0B{M| zjSHi7paZ?3kp96OznG@OENv|se%7PIEhqbx9_XjGnh^RU;L0O8m6?bb?f|HpYHnzOEu!$ zf<6#9L@ zG}-GHXLNZk?fm#p++^+Aoat|lOWWUn^Wrym|6s`9dcr<@Vc_APT=290nX{wtobb%kf!k(~w)Gz2 zgE+C0XNIEeaPHZJr-BFkh=FngXP(ZrHR8-C4P6AnSUWE=2^G50fvgUCcA|l%gh5tV zyut`FhC|?35DRg&w`%dCD22@l)x+9DKrrH*I*D?0UoqF;anFB9WD-bXxh-oJsb>H! z%s_EbQ<^xSx(7;P7gA~cZZq#oI5T_%bZY(16axJR7kK~iJ=A>h;}>WCV7sq9TYD#6 zJ^cq(Ok0l7)_mn#yINe>)z=OWcI!jixa;EoFARz(rj>g*UJ)1m5?429@>`HG-bG zc+tesGaF%fHj#g}H)M)Ih_)>`ri};*B9R@Y7)k0P&P%tUYfILyPSDa1Qb%t}2T7)z zJZ6R{H?UI9RA+LI0NEky6FGh`ks`ZP91OnA(raFB(-J* zafAdx2vTYbhLI>sic4u6Y{Sa6zy#IRp`r-IcM`;&-^G6ksQtH!sc@3Eq@WwiK6Ner z#!1#_0E1t99Nk+NM3};tqw(6yJf zVv)hcoxSPI$R#5owWzEvfu8m3l4HGKxAUo*?>Ku9p`~1i2My%G5Y^H`X`9n*1ZrXe zN7D$dm{X(Et)jBB;~JqtWHc>5@klDZoh9M}o2x3Rqg<>?s(YZ7+;!jU92bzEG zHC?}s6ZBGYM=BV<{hQtqNopBUT4T;I$das0fj|-yHL+z%&9?H=z?@Mom{rJk~ z`~TMYE}zj8{loJXMw7idTpqOA(Jz1RI@zzRtKqN*;qWXuE<9%`B?i$j&czAko|?St zJqL;AC_P$HjdkhehU5l9?8+o>ry_byQmHYo5P~>ik-!A=29^+qVI5k>yz$#S0}V>Sr32iAKk{9 z_BF6;xNu+`kyf{vNBnAW`f}dcufAe@@=q5h|Il_1|ACEuI73&HA>wVk{e^8ldbf9n zl;Y9^!Ayck5#(uVNl|+xKeIx{{1rET5nFpfTpRD4B(L^<95+M|)e5p5C6=v*haYQlX>g80Vc15n zoUtZL5Eu@`Wnyr{!(o3#fh&O_4&u+x0zl|(3ka{cYXPZY(e^VEgE6S^Kk(wAjpcvi z`mQD?MiY1OJs14-$&*|Rglqur8n&2MI?VAkmYVu?d^k7ny>P1 zfvH(2o13v+Vovr{S8ujXjvvJ+l98`C9^>F%^hMt+|qpy!X z_Dg^4*KwjhHtc`wzx=^N^p&3f&L7{Jl>FlQc6~mz>TDMu-ed&)N1xSw%RA68r}KcV z0!)^$?V%jO!3Jgl&la)jplk&Z;>0&}I=-1@%=qKz1;}HVU+0)PUUZxBS zHUxF%k|M;*v-#RRjEEns7kOJqnJ`hEATx?J2;T)|6_|gtKc8`l1SJHxZ-#lf2+G2H z=TT$?2Mi<;Z%~$NEjJ`PpaMnVi&kkjUYknmfV2VSK3)Oj{yZLD{_rEd-pKU_RBf9?P6nLx)eyLAYSApWDp z{NeAB{o#L8Z%qRi;L?Tq9#J@kRW?gPZf{H0Te(%64df|kQE__Q6w0KlcwvS zk$$Qn1k}K?<@k(r$1RRMKTdkUN!#ykl?r_>okxF*C%Hrcz;zUnZ0Z%Y2XA`w-f2h< zy!gu}-@ko_FUB@LT&4BDpFGiNuRpy5CdrAmw$Az6`{9wm6#JDOS{oYrrw4eKh8ZNn zK#~z8GBWf^w-lU(Z@$+#*OAEFq+tdQ?hY%K-~6DOZNrQR`n6T6gCNKl0W%JUL!^S*JYc-Fxh`d9Cgf?!8UyDpLa+cy zF#}uOwLCHRHnb7b{w3|{(l_$fuAKQR0SKI^?elnW(;#Z~`L{fF`uwNP|K!haJZ3!< z(IIOw_P=au{}Z2oxM7q1=*5Wv^n+bL`C@hRW{}e406Gu#UX9P!7s%DVNoGqt`WCG3RSAN{bxxra7%=P)s0g-X38uG z-b@2o>PWO9ObLc;nJhI1Lp!xz%8(g>6AihKkldp{-GiVWnos*6+rD#3^l#sJ-iCkb zh~t}pb32BC-T2|;(r@eD*Y7^M#E&0+^5idvLn8a&tT6rcGyBDK$oVg4nTxK!b?SU8 zl=n8rBSnS2Au!}g&rXD63#IKV1^7jmy!D%I426|&?V1{9 zJ*0l?H{P3v-kbm7DDQOi!2+G1{Q3JIowN0?FZS;Ao`vzz(0?`A&#|d1*8vi-gXYsAe9jSDh%a=D$h z4`UFqgZGuuB~rP3Z3jV9_{USg0;PA0=w;m4^*0|$} zZ}y{Q{=_-{9{YKJmm9J+p6BpS`+sV9!HU1Q#Ah9JFpww>BxtJVm5$m`YQb$Jglh); zY6a5tB-vYeb|Q@$B3>=q*Ey#qZr}hi+uEqwBdHMtWa10%V4ynIVYh$9mosVNwnmxo zCJh$^+aGPR)kCb-UO%=s4wY>L?c9aXfpdLl355CBAR@(WjP{?kfdepcE)x@Kv8@UtV{h4gcY5I44J0mRf=fp&MqYoCcMJbGRTy zyEs@7kafaa8|K2-q0I>tvj|M1De1mUUlgtKB+O>I;GV9FG02*NVAO5Km$adoE~QBu zO#vQTsD!Iu%0z#UV~YGurspl@L3%`YmZVtcQLitV0fL$cRBnI7C~03ON6{05>>ZU_ zVM@`?U;SPG5%AO{NEo0=j6&M=E4rH-do{iZG->S}%CDd2H1zOS>;2?_j^nZ~&g|^+ zGn3QK`+RftT+o(dy+2&*?_(J@^#AVPe{wt(+mn% z2;AZx7Ll!$Vq|{>gYPk1$GlF~I6I{cTViOnytrX;V!2rP!ChDLRGn6c1&DvJ1>^`;t>%)IqJXF1p24Ha!!V@OoqUzjs@qs5bfH9Z49)!fB$jlP2lhR zMi2U9ie~za~=QcF@5~MweJsa`_|1) z-{C*AUH{RWs-eYb>Zbj%SPQWvJnrn^>46cvH2JBsoxK+uEY7Q(xAsPeb7d}4 zWC97{k8k4ER{A&h{@9|kBdE011V46ckLz^yajS#YEp8>G)%7M+l0SOP2OC)ItI2%( zMPa8M{}q4hUw>|AX@2te4a8Sd|D9`EXI7DBMAEKbhEbNZwa+>b56+b~=gj?nuf(^u zODm{5+aOu)Y+cSNBCFgOZy1tO`J!7>2e+O10^ahi_~k%`#x17&U02#-jNji;pHKEB zLjjRj3&)R7pW%bs-@!Y3tWRa>#n{_l(5X_u9|=TNi1$QmeK8 z!;c$(IsozI6R!`x@PM8@V7hVmcMPxs9eJC04cur7DHEfu8$Wz?zijg&6SRFi>6#rt zq!iA_DG24)?}9k%{I;z7%4h*5^blQI^1`;WOfVVTUxSL1oc+30-R}~TtX5FOF@)q`E;{zLd4Qq4n zKQx54Cq>$vj9JS?zJ31>&;5r_w>d;)A58br)zNRA`iBOyiaUVA>pg2c<8K{dJJ7a& z$Wzc#Qpy6spw-|-s$*nCRx|eWJf$VBmLlf(#>0 zVhCE^@|W-PsK+HmJI-|w%s>rawy_R5ZEJeBR{b^8p|dN!_4A7TtDbkfxN7HKh6Fza z#DJBS7au#__A~eL+gJEEAMS9I_=iq^+rIuM7YMW3rP{(_kC?oqvl?;FJU8j0c1#ln zy89-3QwU2Js%GcqCXK|(49Y-QsTQiQi4Mfu4{OC+49{+;V6>JPvFsZ&2a?oSQ-yB@u=pE&-1^WG2l zH_`haz2dWd`@x76>G+Jcq`2I+^BGuIx4C{yVpFDb1iWSto4B37XtCX}?QJrGAk`VS z)=2TdY2+wCWn%^`)TJ8ymH!A9%qLK`wcD7#g=qwp9gm0y!g!id?dyUX2+Dwn^fPw@ z!u}jjC2+IKIHy*Aq<)?*^}G##DhAbD>wo<~0V9R9?bi(kX>iDPSg@D#ivOM){xc)U ze|6*^`+VZ%*REM&p!C-_;QdFN`r17)P`3Qm>TW%L`IhMBe!m(+Hi9QmEV-k<8Vd)s zaey)x+vz^2mqu}LkBHUyv{m%rK~pGOGpEK87|H`9K*EcoYE5!-K!P5BkYF}{iJ>V~ z&v~)X6){#IyBn|aL~*SXQJT=u+&an-4%Ng#DFwMT=LgoGlLvbUiS*^{=IM!YE6O$< z5XiI878)8UxsQS%v+~X?#4_y6!y@%o3FaGz8&5yl?|7BL{gRehx*qu(==Dq);zklbf{+iQ& z|D|^&!oV#*fmDBLRRSWHl&gDpAm{jyMGjPk2`WK?FHFHrGuLXIKc;#Eg-&1qk@}-E z5R9w!sz?e0{ptcp5eb@Oun6abmFkwhN``r<>xlP|ASnbbmgNqANcF?*IYSTxx`nj2 zOUNFHw493*L3)h!2s{L|&DV)tls=q+aRST@n2Eq00smj|WAv;NIN_9HoRt=?=X#L& z?Pv)Y=l)bWeW(GJZGBSGw5?Be^qo;^HG+T7M;+K_jea;mLC;@}?K3m*>2)vv=-?gh zYI9jaMf$-JMSAvs-YW6_%)GTRwSYx7j0=eiLGM0j$K=f$J*gxHG6N}=UdxGc79lD0 z?K@~SmMfGiOCMyMRbp?5!NKPxG8@g%d1e9U8w7Q$t?8dRf_8`}&D|uO`iLSb35(z9 z(K!)m;gT{=edKkbmx)4R3SB;R5DnoZBwXCqMf@r;w_M17u#uPTJyK?d$i+m00dI9= zEi#DQ=(3xyc(y!b4bB0KZoZ=Y!Eayfy2}x5-XLvmmMZz@JtJM7&MEo_ZtGtA(QR5h z`_;w1_YCnbFWuN?tACYS3wUYM1{tBa zP-z!0)krzLZdG@EqUJ5NWO52A$nne$>umtlxzHnXmoo+*XT&pv$k> zM>7Wf$A!w490QE8x-pT3Z9HWv(6HT-C)8G-(A+w$PH zUSUp)4z(?fGJA2P+l`B>`Cz#7jQsm44gARF^b0Ikgd9YQH~o`~6Q0M==2s6Tx*@ zY)`A<)?PT|=Ez?^_Hla;<;RcPbwjJ+>bx4&$dqZ&>aiGDmx@8895;+&G4BoMQ&;aW z5W$$o=p;*{e5?7TzqK9n z&ziS*nEu>9cK++0pnv;^goL3dt%Qpd71 zQ4aMgznqMQ>)rhsC`Y4%HrWj-5lP8Yt+w zxbAQf4j^3OxJ-jDKjWqu09&&>|M28?t~;RSPmdizrMFxW$ygVaV;8ci|Im zB?At@R{lO>pt5G5EGI2 zI{-SbT8+HjWBbdsKN>28+`^FJtCL*T?R!4)yZq$Mw!Z{A>E<7l*3SEnj!J&!Zhr1( zS+d`L(?5E6*5{tt?<`+``2U!D*WT2brd{x_jP|F!l^J1(laTk-mZth(yM2PTF<`!o zz=XCji4#oHHlz9Pqp~3(_r0FydG~2Fk(L(5ZPSP9?&_+#uIlaOsFO1l6yI}A@fRXD zdJNp9%DJ;aTA`sfaanDNDp!`2-W&v_yUjD!n@T~RBDH3%rioR5ttu)j32hzV93kWog+v+*_aG{#d51Tej&Y76 zj_0Mr@j$naE^)2q7cAfRnXwHJm;cM|vQh?lc`FH#YhWs{7_E-(Dk$9|JP7t5jXG(x<>np4WFh()$-1snp==bub1VxZrCxDufOXgyR$u= zE6+sSKRE^y(0%+cQQf+D(aqA{htTW!y$-7#3RP-REg1)YZW9lEv?bf(nN$Z;t`#0( zk_3be`Iu9c@=S3~ARK{CU82kxNFZSQ1FhZBV31;nj$P}L;rYeF-|hX*PH(qd6-*}N z8O)IEj*p=0qm6bdr5CibOCu(U6oY}HFW^|fI7EH?_>e*uKW^Q`lr4k2JOAH@dvV2` z*;e!&pL)K3jrqISlf~({Z>a41NRM$W6*gpb!9%u*(rHh>z&yP3p!lB|pJXDOZR1@HW$ts}Gua%%C3ziG! zCpbXXAbNG8-;c|4ctC;;+f_eCF~n!;Q2Xw6r? z)7&k8CrwS3`+7x4&8ey?K2MK!q$HE(o88XkOr!iQ2X`QrkOdH6TuM{*aVZ_n?#33c zZfs7!?2{KPc{guw?315R`>!rxkl2i%U!`$g`LJR#aqJbTSeYt8&Am;=uOc_LUalrQ zw;sGg@`=`=B@@ATa5p79W-aWNZ>4KD*}Kbs#MUa*mgsR3mnQX>n9Oan`D z!uU%xo4FIKolI8jeL^DFpN{kksINCc%EH-aTdPPPC*=8Qb~XbRB^HH-IgAvO{UKcL zg=S6gY&VJTjm5%&@j6vmgmfjy9fZtC`V`!-?vl=snwk}A~a=S4PmfRdj&M~G}IrmZ0 z`^R>JJ8(_pYe-PO+9dc(e>`Y^uD;sDX6dY3M+6igqGyC8lri=@cwwN7=KGiVtKNSxxOxd47d?`nR=)3Unn4f9melBW;xV!qk*S zVjVQX2IQN7(wv_~#o9ulJVjrF2S^QiQV=3e0pmlN&N@HXmG9yQ*Oy-SPI{Yc=R4Ht zoaE{GXK%jcUh3xDC_MMLuW*+3IHp@{oZ^*Dj055)?PzSAit62;X%|%RX%ppu3`7vs zoJMLzAWOVb`uxlXe|Vnv_t4)bn$xK4`pg2+I!&5+Dx*%Ml>Y!2S0N~vF1*!)X_HK- z46G$`dMGJan@cW(#?!*ZIPsmMi6u=J^!$bCgc4AkCKBLla2T93QYmi)P$RBOoMvK= zKH8oaemUucm&2omh=LQZBpeP~qqDYbT-CRm9xyx4gbclu7AJW**+?C*If zo^c+oHR>^0f9I#RdJM{l_cr?iZOb=tQs3MhHyFs?{@Q+X?hJp{q3j2%(dl^UpXa4c z_dlFHJwC?0=!P#*vi-xnr0|eVxC(S2MP$*$aN6W8rsX>{YUdR|NXsj}*L$XAuxSEH zC3h%EaZR%*k#?syw84Nu5Rh{uNMvSQ1#_-S-%@IAf5BhpY_Bhp%%LoT*PxLp3`H}Q zGP5avCn^yR7!N{gX0fs0Qkz8AE-7H~NIJawJ^H@-*zKeZ{yuNN<@KMBSzxycjqzMU=X;Wjs;rYoXe|eE-V;3z z?Iww&f0TrR;W1EzK^Hs74$6$-L6C@)E;oSFE`}oL=iIWKL1Qc}qN4R-#rk-zzw{gG zRd{~ms3%QVs3*Ok+!=C)a>vgXyu7-`4FB>WzQ8RvOrHJ5FaO2nAO6M<{9uD_FbBVM zjoEe0>+VlMnbeZ$4IV2q!rJU~PD;3kxB=eqf1^-I95*IMjuB|hF(WI>Rc6Er*-T1z zLZCWfoD<_Vv#ZBd#j=%kHgXES!N8y*suH3+w@`e_Nx4|)!`Mkg33LGITrtYqhd+Q(k3e_GGATA$qS^j%XvVs)_C)EN#M-Ure;H-0(g@PF+1e{ysy>D zI@Iot458|ixX({-?^MlCM6jX=T9DSc1e(~&NoqSr2f4t=` zLmy$$_wCwq%_#Nc3$wIvY_TdhDJomLPqU0JiR39*?08LW@-wtT=|YxUA>7jm?}5J`5Y;dV!abX-LsCzEh${YU);tm zcjrgsd${VpHSPSuv-Hoh)6f6Ef9}O^SN^`AHX~*@BT-wwLo7EA^l?f~S*@ftQzFrZ zR7W<`F4tq9X#SV^oGK@FiHlVKC2vCO1Pk>L^L_B@OfYtzC{q4lFFM=m z1qu?=gC~HqLLj>X3Ky9u~ouS3alE zczlI%ka4!OTC~!nna$9$JitqKumkz(! zsn7p%{prqDSKQbQXDa*VcbI(htp2PmQx;X}%~~NRMc~nWiH?b{DIIdA)Tc|-E+De7 ziJV(H$X%H@9!Zj$HG9|LKX9*{olq|K6w-qmjbkfL42P)3CUU~!e}Lx?!PFwv+Jcn6 zz9Z(p^MlO?14SMbwzrFKMqE4E6)s~ZJI=Z8-<4nVVwb+Ip%2KUy?^aFRSL~FKwAyxwE(oDTQW`?Z&saqBQg7k&I2EAfj{E|7KeiYko<(|`Zf#5c$o&E3z*4{X zbguj4w|?`3g}Y$c#EtC#+ILa!iNE*dJh5?)wIcbaJ^6Ybd}B(G&@JyRz@P^a{LGQc zV)4)hRIS=Y12xm^CAkR z89Gh&ewja>rN;A_tcXj-g5^Oqr~1?08xbX@1)66>p&nDGuzQL@YS)g8l^0#l(+Ahh zMJRL`Gi7}Dr-#SmejV|D^X~ne`7USc8~)Z`dg}cxf4At3{bBgc5BicS(SSqqch76e zm-j~Qxz5nfJH1(7=3$%GehCv1B~KiTM^8&8nyQ5?F+7S%svf*m9{4$(+e;=Q+T7X; z4#LX~?L|qk;8hXHbn`)Y;6y5Nh-vip7u3IlIb;be(f)#*Bfb6Qmgnkv&VBn2wEZ8* zRdU05f6(D%MnI7HI;fJGbQ+ z#i1Ul786(1T*lc3&om+WK~aZ}j0aF+X`eI+cvFlvk z^Rl+USaV&!*quMW^zA%NCM4jL2+{FK5LZpq!^(&3Eu_Z4kCW7CO|O4W`BuRf_AIHG ze^xiokY%WKn#9_1&%x)kHA|a}KPL_3+-Y7dP%&4TPjmf@9N`3s&-bg4Qf<5E^3&aC z8IrG(2yzzBQ`NwN&$5{H${AFLvkr;urhJ zGW(C#!>JZ`@WZ)f-^AJ9a>4aH30>dgf86M}qDYt=qOg%dO-`sCJ!)4EIzPZY;akD>M#{F7AT*Pxzz2;z||8ON@IdNhg5}EnPe~TZqd`Drt z6OB2wTO%AIo~x-om{c5OFt>}+rP}mKJl;?(Hdc`#-zZ^9D0oZhNrMlhJBK6;_5c0v z{i4$`&%duhn)fa#-zGF&i?M0Cq$irN2}f6Is~7gx@xeoe$RR#}g(5#*F|1$yWPMmZzL1m}^B@laID z%2pY(qDuIn19&&yL8dQ`G+dWf6>UHfiLutWPIAH`!>3>h9;LYMybaDKc?XyQO>x~R zSQn4f**SmfoZtMs;yJ;k?wyq`Z-No3$mG^PRBzI)P~K{Ncaf2Cp5Sgn{uol<`J z7&oqh1Y|G`NHB979uTRw1o)O|BZ7u=jFs*&cgXvKI<(Y?L&||p@m#)7Q;aj{aT2}# zl%NXE#me}I^D3-}CUw>ZIAI$=>Y z+ksY$Xen3%wi}Cprk!tS!uLkp=jGVnJ!vIK6BH~;9dbV(f)t?@1-Zww1@cuAS-E#A zL41QxRJ9;Fyw8+nY$2fmo~`H2ovrT>r^dkZ2cI$=U^d=B69N_odfd7Z8xQ>)SRZF} zlhZ)o*y+3Ye@Dc~iq}8zvMjHBW|$}A#us2)1bOf>qkq>gU5NQ}kp$JDDdvQ8Y0SA4 zoDd%3{6iiw&}bHL8OX*CSI^3ghGNFKP4##RkHM=P9*Cq;ahbXW@YvOd*VXIl%`J5* z-o%4V)CQ_Zyquru(K>lfo=ogKp>T}?y^Dj8 zNyBAle@J1LArFH~~l74AGB*}BU)IcBr=_PB#4|mfACyYKhDqcAZVTPLM)h0qiHT3+JN9K ze{do*3rH|=IG^!Iy;y`;Z2Wfj+&;`aR&QwgEP~wVaAwKZzyyP%-`)hCLZXou@$={b#T_~CE8p2w~3|NWR=z9-ZouY_CT ze-Kq8^ka!Ad0}Np{4xoN(yNzI+Ja2EU!11X96TOzKS~J+wT#^eQsmn?vhmn!RKW62 z%gy~~^ITV9q^7UKP*x41WbTHlLeA^RYK*PO$5WnH>!3|3ZTX7E_19FH5!Z>J zr7TFUV-}6cYA=p9G519B${MJ`rSNznfAjdI(3RLGO+^L z@ofIYi|FicHg1d)`}PHNJZ_nB69cde_v!C-CQ8~azkn9M?VA{HUuwh#g)BB|T4=&n zZq12!ceN%9Eji64nM>|^2tF`}6(`~(v?lY4uN^9~Nnf7UZD z#V0{~mQKx3)pe2w&Sr%<9t;jkpiEa5ylO&=+;f^kwO0mZQj*PDL@XaB5if7AUGwAPYr{f6kY#0fw z#s3^XzM@0Kal9+<4(u9o0C8HLK0~THKfa5X>c9yee>9n=h23!#UFY~8xQZ@VQCr+% zjBo85YEnaPmi8HP(qKHRMPl;Ky~wOUb^a+qm0A!u9FXVQ@ZmE^lI`wYT6|_a)wV93 zbNb~yE(wttb$~OPOXNnT1jh3qPAYP)7H+H?E0;T_6W@nhUZc&Ign@kN=@R^}P zmJYcZe}DOqaEQh!lQwb6AmUvdwb8l(B zTrs#an3T>G7$!R)vyO+a%^htfKwjj@i3+A-d);JcHms@W_D9JG7ZH2xC{z2AjvTL zUWa$47Ziw(t79t<2#d?gX;k7#u@I!1^8@S%$-xyl5Uh7(9Re_Nf$4vXtYzYwV)8S_cWR(R%GW*0lSiC7S; z!@)u2I5VZ3eOiM~P|uGo3PqTI*>pB{DDcXS#%G75nIoSqqHW2P{{KhZdSs9%?PgGA z;B@ge5_-GqH^0M`y8y8gz0dB#4};?XNyXQI?xw^eQg}p}6OZaQjENy{U5o~Ce>!}= z=Y;3XfmX5}Z=EbHNE`xTg1j+=cAP;3rU@0weS+5jw`9B4Jx>M1m)PF(uX7pVNPMCe zP2F>KAOTcCbmj@X8SkoBSys3b}BK-ppI-lkCOOiwRT8B@+2T zJVu&;ei38o63J&WL;Fg?WXgyNf1ij#J1eh|Ecj7-&uE|M^5*n-6{9~_nzZNs>3w@W z?{-Rj#y1v>g`1C&Q=V`@o;dCjH9r&3bW2Lj^gEd#|Dg`1pj8*^0tdzW{2yGwPSc&l zxcH853Gs;dyU7nX|6ghRq=h!=VTuQEL$im+Mkc6-1pqX9bq2S2ux{f5iQ>;rn|!(u zxPoT2qZG9Y{^HI!;)7nq9&>wPoVWlefIcbT2ExI^{WlIaRP#QLu0Ojk{+64K;yRN4 zV8bt*`H)v{vgJa=z*thAf8!{yPm(jxsYUV3O4S;DAhuF915MxJl91foGFg^hp?ppO zF*6u%gStoP$XYO^B6Nj;tZ9g%c}#!V)8PLDdm8K$%;B^4F!v#Fv?;w)Sx=}=zHD7n zyGh?D`f(Ls!mgwW)Apa7~ok_&1h4-WxzgUf$QA;CcETk%N;Xb?a5z#yFD&RrqXJ@_N8FNhh zyRejfJVGPVZCrn> z(7$@&VhS+haMAI^ee?YhS=sk8e{nk;TqED@7^V(jY@sBBt-dLn(I2k44ljXojHQ5i zTD$cd$8F72(C2CWUca*i@5e6}v>Q9X^S+C@5p=c;lzSvHnUDrC@+tj*iVmvTT`mKc z=zu({#GmAcAUeeBb70U0X$dfncwSkg<;y%XwR$8etN#zPt)aJ@)=yQDc0}!@xSFnybo1xGYl{mZl8>9V+?-AJiEtn zCfD2m1g z3W(nzzjoB|Jtf_`BjRhE(@zXahsm4ua^7)gH;9Ai`RSMne)9|VfA*jjip=Qr(C?VJ zluQVbc9~48A@MGBXIRUt2lLuwE5%%?^0LM7TVQBP5V4|OSCMPf6M%)ZX?@255U^9HjLN+nd%5>Uo*!MD{#bo&Jsr zCyTYW2bw{m@!OC4f5lKfd8CxRJR*Mx;;94s2K(_R9*m#3YjxdUE_jh5_>Ob!`mwhk zBz+vn)nC=00j(cSxPES4a0J)>N1heLR{Z4lOprT}nyTb%d+#FYGiaQ*vL;ZTk@FIw zlGvCdLt$=Wxv=D;$6#XTJzh7lrSXnBASY6S^6-0$Mrwh4e~F$HmOURYLyb7sr(*Ca zIBg{*80Q@I+`u5y`EZQ9n~6(R$6bwQEthELl@^uNVd}MrNs)w|jTma{1NrMZj`L^{ zN63q?$v~Uxhas+p4?RGe!%*CGV`5%AW!oG^^P|CXFSczpIDsBesIG_cf;#*!>f4RYl4oW<6rZoPRv3g z7h=al$td`jKgkIv0i2g-$q7P#LqLOlm2VDnFIIxRtxA?H%PcPH4@YGd$&-LdMduoQ zB2VkVspM1(50Zc_4%`Ryhsu;5@!S%Q8O6K`4R?i<<3Ojps7mBwXS=r=%?O;*@@+0$+cq|a13nV#QY36gCH=CE%xkUb$4D%W8&^~*= z(&=G1ab(AFB~b~JYe#gi)-K8y#F@;9dg5qh&nskD{pw% zklPwDs8_D9U-@iTO(kgguxB!vIPduuIrfr&`HsHij&T0+3UE%Tth5E-kR~}L>3Q5(O_w(-Aecl|r>g+c$B9f_OVzFgruiVNfW6(EF%J0` z`(EP%{ncH&xM(_SD)ce z9^qdxQP=#U_rJLM`Z2l9&vSzp?_`8VbGP<%Fd>jxOGBqbCLYL=Td3P0{^-nK8KkKL zl{v~m^~<;ptRX@^g0QQ8=s*t7DQF(kkCW|G*7il*prJQP7_j z;zp#wmee?rE|-b4h!$}qnlLbuF>Bs2KO>}yJ-}N^d_bykv~vZ0eqxqga(_}}Js--e z2#ItIOm%nnRWYi${}(O_gfqjPj9($vzj!V9FJ23-+;&YE@@7fowYa|FV;>$Ho^GQ*<94by>%NDxNpYo)w8S+G*Fl7kq;+1NQx$WbJ{z_*E8`IwV-uoPXDOu!Z>65V#pjt^&lR;(?Wm0y~TTAhYQ^?xUN`F!2g1c9k^V()g zOqRr0z)luUAq*TRUPk_6mcCJy&M4x9 zuwtkH+qnkT;mY3ynAR;0_|JLoyY|>Y`>)GDR3l&ehiD^g!xXs($fXSr{TS_C4zCmF z#|YFz=0qvAsMvaEMSlaj^%t|`okrl1E=J%T7OE_qxHe%AZ}G4kda{%qj_|u}9sM<$ zoG7?e=cVZWP!}c&_9$D#oG|$Qi_wn8G4HmO!H2Ru*a2;|e-Eu@OF5kr67Z>vUWlW4 zrDqkHW!6xxUdbtOV)Zhnl#7Gh-_ed7y7Q*>`%C+_@>KO9>3iW-)yJtletOzG&Wg{#8=G|yHz$8upVHRc z`0wTyE$(>0xqdiX55X#JPR!W{YTT~&-b2^B@-iONCvPB6J9a(~0mkeR{`AMtzhskX zMepQg(A4+6M_{7=m>B&vj;NvxUJdwyi3Z1DHP9OFQ-9b?tAwy7BS{O`mf(Opg<#CK zimos@-yH4SRz+4o&QOlQ(e4y%O=p^n@jCgw1{1Hh%AJCcbf&3`*BiWc%>McAec=ck zgU&Qd@%P^$EPyK(p#Ae)<8=+pq|bPL%8*8C0A9e*?2JJ^A-H>BCEH>Cuww-hWCI-f z`@;+>2!Ce4Ih$*$U|55co(ERR9H3ut&tas(0>YFRz~(SQo@l%V+Ti(bAz=YlIT&Dj zc#QQ=vHrH87La$yC9LH4^((B{;7N-FSc3iG;Pa8P%E4WN_Z^5!m}7tQlopEE_`dFW z!twqdb}2;4c>^m!lh+)_CsHB-o-zPp!yb8(M1KoBC65}0P>u=J-FRaCCeS1p$C-eg zv4JKo_GhKM)nJgYi6&kBV+_{jDc?#u#Qsf{O|X8K_7Ml`GsSCbgx5Zfe+*;=>;aw< z3V1DREWhmgd!oVOC?5s18N|rUW2wIX&owM{ID$#QCc2lekqn-|L3tnraZRLyFLA$I z;eS#4)qp2W$KUe*^)?`itcm+Hc-TFgWLjP3#b5pe<~wxuaMaLoOI1}z1`7hYZM|`~ zav=|h6n}ZJ3&;E7!0M-)_a^qrT4DVuC`Sfra8|HDhJ-0HGtuc%bsS*~?JoUf;mx>PL~SfaB-lU$?6qgGuz!EZBj(MhfL7oGd;+rpjRKmz!c>t!S~J*Z zw9&o~r;6UoNdgawz3RyeJOZoqlOa*x@Hx|+BWo`H>FDM|h>-XC}GSH24; zMekuU`^)cQi3@H)M727jhA zco{r@49@<5f0|psdtY(Wtp+oYiJ?o%W1@-3hLPIgnKP4t|B>S`t3%lic4P;dV zVZw;pE94L4#bhwzkTUeV2`DwW3sOi)unw>$*^cC83oX3x7?@c`7!* z-1#A13{@^#z9|k0k@RvwZ3NG6gb!w7sk~gdsK}#&=lC-+=93`V`t)t$gmJrBF2}EQ@^S zn_BWv8uNYk{}a%Z&-XPXA0noj@<0^@^{_tm3@mp8+&x%nYQZL*yML<%4Oe1bs+yD8 z!Uy6tbzXC_`X0M@q)CgUjKQ()a*c*c79&k*t0`InTB?DDG~EDAU)LHI6AcThNn4$2 zC~MKTb0S9*lK?4jUL;n57VOpP2qYa5erc!Y`@&_4uqY89V$+?0FY;B_f0zqs{8dp* zHN-XcGpj)!QcA3%2!C^7ONC6OIA%aTbzqUSrm(@bEn*y3lCI{j8ro!^CegJH;Xi+8 ztX+H$^zZqZ3&7ks%p)FaSiq?Uvz!0I@XkzX0Anr}ly5|9t-OMtY8cnG6g1k9GEL;E zCQ#$=3raOJLa&n<{M?3gu>mQKk4_E+W>M1v`Wu+}{1h$tX?DG5w-(-?UG68o&w-cWeBtw$ zmpHB#tqDIaHUKDRZsIjei-SCJ3B{b&z!#l7v~#)eF~we}u>WNB;R#Xg(+xrL6^d>S36=U;ikm5yFhd$sS#|xI2*cB` zup0~1u@?2wZo4sAV1HS0eX2=T*OJe@cBF0EHjpPre}4lj-{-8qU)8mg{r$FWNYvfW ze4pF>eWR{r*4=lCwxOiEzw>?WcK2yrV?STVzlN2Hhfyk8_^iR&;{Jj2)~9-pGIO1m z)+_Pnmf8#YsA0*wHOAk-$)^Ek-zmC2eS+5%<%I^yKLW|}Iv4ZuR8y$IhpG3(0m^x@ z@F5n4P=C<|CfFYg=hQ2q!lu|aLz^gq@g%bJywv9jrJuTJ>y0?zyLerrx2zp$QM3)j zfbHA+KBt0W`($0qpu6wJZ9`~x|JC=o)!)bdO}qOZZ5z^d_uqY=i~c_LZ`s}V3$3O; zkd%(J-)fcmkfxO2-b7M9>Gocndo?vba4!w;WPjOyY9H4x#&P{}x_S9e`fIi({#p;}F`pa1DTK{fCY$BLzAb*fp3YbaPnqWpq5 zH2}_C>L#yVQD*z74Rc}T1+Hl|@Vz_=6C|Ho6vwryYk);fy8V`Sdt%Z*Q%eo<2)=Aj zhoUg|g2K4iehuwdKBsIZGFjT=>A{h;O=U3-`2z zhSxvzeH^Gx=O{uuovDp@0#6!i4aGv!@=}il%I}K(alIYEzOTnblM>fCRA#|1ZdJZYY6EOTAbtk(G^2M+EJh(N<5|PY>JE&6f)M=3lkvQ-6~(_^cVO z@x;3HVL$(_<36%AqanS@New6FwSk&a_!Q^j=l5|hRq`N@H}Ci#n!~v6{KL7@%?}|y zyfmho@KCMjM3W@USDg+Su{8R`Yt`wGf1E$q7IBDPaeslaIIE3_K}ALAbnnJ}Xa4%r zzP4?ERY(8GHAE8oOQ23NX@BdylSLnF)Cnhke;@1aA3@`@ag6gNQPESUx1yd+tVquM zBaFOaq~qdW+{fR>{1H!ZkJmFC>$p1A-00TLC=PI)wo#A1{=UB<6W<39^@kbiHGEvx z3Lq-#Q*8l$CjDn#*NR`h7x?+|ebAS0@w4p9cb}8KeD^u+%Xgo%xI-r*M7;d-fVp77wYuoFMT2u zzWcjuf%Tq!m-V`Oe3z~3TGjoz(+AsrLZ4}9p=}2DtVJS@HROjHf--T6AKfuF0Buz* z+B_sD`@^e->z;Q{8-OjXf7{OH|4~bDj_&vgoEn|O27EjX?$95a%?5YV@m+u48x8Kp^rRe)Ce2Wnjok?+f9vPI z1zezo_bA+kP_Ry z1(IVN)*9>i-}{`E!b*}BoB*%Cu)M(jpe6(op0Hk9AO^;dq>>D=T^mg*Y**JF3V+}M z8DW3=3e4^~>}MWeISmfVXFrZ>_%6T4JP`t*#qkaR9xz|)bzA~8f71@ncevE+t*;lE zf!$pn@H*Ax095z=-Ce_H|9%*QlfhP#d#ul<^D9XF{SO?k7j!M4oG9{!Jb9i3@4uQ2A{FalcLb=r_-}l(>TLh<3 zfJF8E(~n;_j%C+xsvpNr?zxHYJ>h$M`Ths;+sz;FFg|jP{z50f@;`Emzo+rNDgORF zK9}L|Q^4oX`2Pl0x_WUA$@Muv z{^hEd6GuXZ*K`cNCTIMePL7%bSjC(~qq zS;utuew6QiKGe7J;cGI*b$?}c_3Ht^zzk46|M8#b_6dTkZI8B3aElVSpHPKMYZqTM zL6PO%R20B97D_tN>GrcuRO(9;yLF>Lf1wL-K)xGSqbsijPr(u8*Oxdy$Cve1;5uPo zTnf7QaQ&S~^y1Yp1@s4+s7hjL5BzZp+ZSo9Lc1v|f#3m!t4Cu@6dq;eIci(#>{IbGN#P3+Q2Mu#^nJ71FXdeMAs zR4CVW$r2}gzr6D-XC++x(_}Ch1D9yw2{0gA&t8`QSFkSL{=NIUKDCFJe=APwLy`60 z=$As}r++h-xZw#Le@F9w-x|+$pe~_0+|7_OqjN~3Gn)(Yul%Xx6+o3zEYxep2p6<+ zxdyWMPj|Fu8JW3cho)8>Bb9v)lsZFKyY+)uX8J(pd{9^kea& zocH^@c@!nb2Idx6dC2^W;cBpz8}rAbw4WuRVIfcc~~yn z<6ykoe=O4F_<=0=rv-_|0vmv(+@>GQ{(GvE}@?Na>v3nTCAw9g^=lA5r zc-}8Y3fUjyG=*u0}*W z-B)`O9(WZ`8y>tp-yIrhn9_~`4HjGxUZA&1p+r$rRLaXCX= zfBD0DoGs@x4MfXDEp3{EpjFvAA=2J@!*ck2czX|P~X2BFHcAAr$f0uEyqvy z>|uC6TkP&a<(&6lCrEdv>>SP}nASPwg9cbTXUl-d^v*35nQ&&EW2Cd+&_zA68tyQ)YO>lRen)zV7#dS8fUQ z?jB6~@$e#_EPdF04Q9dp=k)oMX<2;?xOgxlS>)R`cbdaH_0!qdcr|iOp0ilOe|q$& zO6FTd+`5pNUVYylvRvy()nEFh-W}dOdlyW1b`?msZh}p<-|em33~bVbwed3YHh1$) zayFe0Te^=AhXa(A7|&%xo{w$&mHCE$E@|YP$CWb6=_ymjI-7jh^WpsN^tPVY`(4e~ zgO~klM7Q@359j^M`zR_NUe^4@e+u-yd$$;PN7rl2)rg*6lX4O%wlCIg&Bc1A7o|}4 zTT_ym9eJOzy61EGw8&u+?^QYce<`|)Bng2iilPf*fZGsv3bz^V?ySC}myti?zVl<$ z#s>X!5c&Qf4hsXKg?Sp@r5+*>kGWBMZVp-6xN8p;Q=v8qga#mPTSM($SsYlr7sI)IfU7qv5g7$25j&4o-DRFvpVs*33hoHn zgwx>Lt0>S!z=y>Sm1_I(f9_juAX-0VGPozwQ5=~=>G5k*me7m=7u@3w&~lM zifFes5FMoU`}D-Tp9Ip%=lz=ZDCNop%O(^+j z4SxuZ?AxK+U-m{KTuKa{<73g`v_}?v6pGkI){*J;j13J%{Zklwlal)jBJJlgYP!P4 zyDloO)JZ+!>VR>AJDhddP5O_ulSn?xgTEk6Hs#eZPyQ6S(}P$)50AT>WCl?(0rU)g zbsmJ$OM~!pxtUtAf58>Smij^B`o7`%Vc`1S);3}z^ z)3J#+WIdV6q(6Y2rlzmx+~b(4k$RPS+$996><_|)!FE-zXqB&MZ`L`HcsEr^+b*5PKh8% z`3YWtx;V@^U#mROjw~aMRvD&TI27yX*=~9Y2!o zcRxQOsQ8z7j!b4`ZV2gwm?5t_qO|Nd=c;V{X!I4Tf8r`Bbs$m)OZ=LvA&2!HSxG~> zc3&0Gm!B2Ud0}Syh_tPF^rzHkM%IuHK)bMCyuqAqCW2R^If1mquYt=CWC>%~S50*Q zx09!_z-`)AbbE*cG^f^|r9Sg>o9vT@?iMWUg#-w!S)taQeiYZ#SrvFeec?SpN|2rO zI}x{Ge_bXYv*H-vo0fU>Xep$o36S<}l5cVhz-gvfVP2o8VtaGA=bp2l_p&hMO6b`d zjEZLhCfAd4z8kW=8C^-(VR86*-6pTPrWT}M%0E7ZvA5fP?@R~*tEiCzKRpaU5dT`} zx)C-pSS|wJl_zvNFBm^yl9bg1ec5QSexGX@f79|eNn5lp5(sIialVea)-(s=3+G@y zdZ3k`U-DYeFi(w>pxkn?QePjV&QdRrLWIcDS2yKvsDoT8A=rS_^AQSxaizkuxy9h$ zaAY$6hh=vc%Xq2EHe*CeZ#vG)aD8DbD0Sqa(HK8&L@Hf7 zJN}Jx=Ep|{Tknr$s~pW18X0qfGTJCBe<%g2qc_Wi0UOqM>9WBVzrH9)aD}?C3sbM_ zdC@tQ&r_C{(jG)qPok||-9rMbGpN=~+oxjJk+`YWM(4>q&XVh^pJqmMnE237hMEzv z)l^x8cv02Y&B``hKG~o|=*u2_^A6pmG7Y#6%uA*;byzh0wso9M9z$U2LF#qTB=eKD$ zS9{wM?&rCU(eC0tb|-sN3x}ljc{x&s-hK;xz3j9L@M{MzRo;rO_u#d=YNK8EMPSoS z*?60NMOq(f{&RV~(M`O1l8(<@f5u+N(6zOH%uHg7#$kl^iFfVCdkK~1kYZl3jf=`U zB*b)(6w(bfe;_=`Y(CeyHgMas`V+vhQRm8<1HN)?EPEc$&gz~VH=`WlKB9tn{&Za8 zZD)*sg6}qSc?wsBic2kn;E%ux0U&iBR@c?dDsGMeLwAzMROTUOqQ+C2fAdFmTeZMZ zFGF=~-yx+aERr-9Aa(=sTdz4yJ2+P7E z*n!8gVK<5u-tmSi)UBEqf2@v*rp8$I*1p4|eLsNEG?8&yDWC@}ZFCH+RlSE;mUVDU zZ7`Ew%h&Z}@`rD$rB|J~!9_=V5?f!_EouT$UWGSR`(x3I`5`c5`4u{K9Gfni%|VSV z5ed_`EO$poH!*9DoD>{F0RHjRB2n<__VTOIk2eFS3%lplh^j(6&Hg*gYCm3|9|4Lukd z;K5+CuD`fn?=QuM>VU7>#7;P#=eT7uuMdP0uh2ts!*9~lYEDYX*l5a!kx7c0l~zX} z03s4yG1~Qk?@|p&fA17csXPF`IIy-Toh_bez~dayumwa-V_J3ZeF*ug9?mUHo1#=I#sNS;~tEbOx;Q%YNfFu5-HPUqI{2sv$>5*>Wk z!YkOYFuF%UF3a%XtmoNZmU^&jlA!eyjz-w4ev3s}z}rrMe^ux`-xF5&Ywd>_;OQ=A z-ri-s;1-tfzD*LM3(eSgdW}aiUV9bsY3O{{-a(z%dE9Wmv#p6%cuEu|k;<`RB`5CU zI62W$ofW<}IoHQj>vTHyzIcblH zOl7MJJ%Z;l|%SNpMM(7wfj2Ae|*s*a3`g2YPrYu2lZpqo`WWz%a4_FhM%etF21-w*^Ooa)e>x04_lKT=4|n3 zS-kC3f4e|gbL;i)QO$t;W6BtDkbW)~asCSNva-7fC}M=;piGr46l$*tkR47*}@4iefzQ5)2Ui6EyH>^G38bBB%5;?wZU(jvkqg7R99QUd~eju!O{U-B#c|zneax~+QzMl_$o+>cK ze{x7$Bp|JlBAnpoCclw7^2Bpl>xFvH3Y24~uZB`=MGP7y{rJ}x5pJhD56nxYw0jM0 zzwkjQG&jVxV~uc;Vwlj4k3rLCIHo+feGZ?st}3NiFZ14u1EWicQ|}jC)U|?^X{tt^ zVDi1?%J2fZo$T??$H-C8pIR9eseCYEf8pE(q%Sw$D9zrgk5-K_kqb|$HH~zY^k-o+ zv8sySq4KJ7`UQGIvAlVnf(d+1HbjA~!)S0{koxnC$b=in1f+fYMWm%t;@e=XZo93E z7bQPfOlOw`>vRZ<$VWzTr$KcT1A^)$H1+cE~gXu{2S}Yw~C` zTA(o@*HV|HD1?5o^=X62ehnxRkkS%qh%b?OQR6DOaniM7+2Cr&0F1ImA7iwKhYZ0S z_5F3NQbGMfeXE({>Zl3_t;eFaf7b)-$-7+i@x`0+4nR584!Ui~Fo3x5&<7&K&dzxC zs6}9!u7LsAMS$B)qjf$i5z|_`aRw>RvyBoMIqa(k9QvMhxN*GYa?HWcXu*#MDE{`nBwD!!RgQsIfXDV{yz#ZnPe z?lm5X$MZGCllIUk_Ip`)e>$g_xBkVU$NPc5`QoVRv4f+|Y|jIT@uHZr>iAe@qE&!B}4LAn-lm94U4Z3Yvt3ur$8x1O)&4;h8GBH)&|?Dw)~Q z6M-wWC?F)um}Q&| zNzNc2cldix5C0CYy`MHkk*2A@>Nk~I>#dT|P$i(UwYWH?A9>aABCuNd3pg%tCvW@U z1)GaNWf7}FUi!uJK^n37*{#pV4gMjbQth5GqT)8YD+3zPVJcr0V~aE68*M?6Pp;Bs zcy=^K=LogTfAfbs{Y}VT-HYN}7s`())vni>~Q?qWF182>hP$8vH z90SIv&*>`Jmd44q*+|2A#!=;^AHC<%WCFMpFhbN;d%R;%Z&&jO8Ndg&X~PumzQoaF zxtC36^8vfn9>n*+Zs5=AX4bewUsFED;NH->=@VP(f18K`swL2UG$%`S6ecj-qcl(< z2MVNN(wIOI(%JDWpF2;h7>`Y%MdAik3NMWW5=6949j2eyfkHKqG9lPaw+1;oxu)rM zo<+`~4HAq#Tz(4^`V?}CcdQOjYrEg^h*ia(+;PayD;aHS(@lcMxGY{|9GtoFMUfBn zE(h!vf7Jn>5#j`p+g^g>L zGn*8q9~ke*#f+Jpodua8okK^LjErx;{?sPNSyPIPNVzr)g*@de8_rGy-B>7bD`%+o z<>}P|{mLa>{2O_|l6(Y2w~sh_G~c7mSB>jYe;oIZkCtq&@g3F3_Vo}Qu241WOb0(#Ymr(FntlX}+)1+Q&5QP)HA!z=|8F~8dEJ&tTG~X2pldh3?j0EHOboud@ ze_0XG>zt)L35`rHjWk=jmcQWmi*$Ahw#y@8m@SY=+8bt)=t33x_0B6xK}L)A#QyR7 zHQ%P@o2OAB3>%N*$|z_OZY1s?+Az$`BRGw~G76O>2pLa#QVZRDj)aO}k%g+{I#z>* ztoYINe<9JO--W~Yz)FNYV=5p_2VRcae~xbbY32_X6U?`W3h`?jvAM1&rcQ_1_%CU( z8{U1JwQycs5f?zcTOIaIf9}Gijnt8%M2zO(Zd=j5{xN0b3W0FKk>-NXv#opB)c1*u zMBlQ;NSa~-k~&OrY)GRtYT2g#|Ke#X_vSuwN@NKv&`jC8c2vf6k^b ztsDnzQ(Gn*?8J5f*i&N#$^*>JdV~&F(aYxMl#vPTLvC=S;<;X^QYf+QHKN&EjHLfQ z^P#)3urz^_To;-`gwZC?=xU^M*&~q=+GRLbGA;Q2j>plXez;1$t7l3z9eWEh5#u_b z3J}{RR%rhjim97yLvnJ~ruNbYf1u_OeD>U8QkJNVg4u?snrIr=OXohaH>k}$Cy(nL z*A>XH^d1ZK@u}K{68DVZQLgx?+=m(9$`$O{$!0ODq=FHHGB*4dBZs7DX=sJlSE~YQ zq!%`J1?bdYVv2%4t^0l?KrW={qRuaFw-hhe0p!-3g`i&QK$;ZK11OS+f0v2ByW5lV z!;Aw~#fQawf1Hz**1LUkJ9M;I+q%s3YfHU1x+@+U*?H*HCm?n3iUg)=10c{G1p<^< zJ(&X|vWTa6(^fDq`|I>xotD%bFSZ!3xwqSz_$Y_6BR;X zZ7n2DJ2B!M);1?-E!<@5f9oq)d2bkBHn&wq4i*4DN@pfw(+U(6@nJaZ(YW4p|SRClW)cO^Fw>n-nUESP~(ei)7gsjvyBCn0s-DS zJrbQ)Xmx!?Cl4-cZcNSU_tFI}b1SoUPVL$#!o^aGWEQ5@vZ_$$)#V?FSKagtZjhau z-SP)#p>rb^_dfY;e-~Ol@_)hdX@^+|@RrTEm+5AVyM6H~S6F2$8PzYA>P4N@km z4DgKkXz=y2-SAwp(RCkH-}b`}J70;4+hoEgMtlTAqKegXe{|5M-do3AaB z)+ZQ9Vi_MO1wFrMRn5Rwh|OR7eM~!HK?r8vd9iozN%nn{ZERP_Sw_9TI#>voelV*_ zn%efRn?UUMXCqRG_%|ieY3Lrc!OxpH*dgewy-9Uu4)CIAAyvTvh@f#jS7Eg3Dg}2{ zYyMhoTm>Wcf9Z%meOeVUl6#kKxjO}pd2RF+Nf85DHed~G=u4pxwoe>o!c6XF(3zhP zNW6A)h{0&kEDNO6z_iju0K;8yjvEwKG97_;{hj=zx@GYS^b6#YJ@=LNF_>oQ4)JCJ z=VH(%!60hjfw1cUxIDo2%bkx}w3F+upFvszMJs*5f6A)MS1h5$-_+5DvW1nvr?}f$ zfNj?3_+;^jlpZ-$a}BM;DG#Uk2;CNfcW!`m#z~dm(T8<50;uE< zG|k{=e}3V{O2EeyalH@757A!c<2gl3xji0s5nDRk@@Ih<9FO>=F61z|jVTCpa;6Gd z#4nf`m@4C6*iYdN8{<7Z-_n8b2Z+$ran5g!u3)Pe2&S(w zm87Ne6*dgCQICBRyxe)y4Tdk51py3Dc>VS|g(M2+2nb1E(_ zbe2Wc%03K@&_zQ-EkHZi`L@&IggI!wj&^dR9V_1+Nb{IF?RWu#jwPItcf8liqih~@ ze>8}^ET4o0xUUP^*8{!ihNi#`h5Ltygu~5v46oGsOUu_HuwHImTYs~p|5)2&sf1G* z&crLh=hkc;snbr^DyC_0=zF!lst)w$$Zw{%iZUgH@b7WL{t4LMtzZ15%^-cZ1za5RBe(_Yum z#;Ftu-kViUU@>R67Fyimem%NL{aLN{N_*-hrke1`$8&3K2UJI7Z-khy3BWw zrD7UUzm?XV0{(P2gPkSLCDS8!f1Koe4-UCddvjCQE>Kf2_BI$$K!!RMwg8_i;FNWp z9%G>d-tE{+VM1igLunc}wQQnR3w_pA%BHRmI&f%31_w%o1T2;zYb44ke`um3gO?#) ztOfY{#rw5E3S3^*2=BMxfAN8@y>Y?0luEys3*?hHIIgkwxjCUYP58>Qe1R{WJ&J@YNyY-_|NFmw0(L=qxSO(>rLw5SY zObD+vi0sLWUre|eMH|a*e-Uu=>lYp-wARCh4w(*QaeNlBT-=c*9|lshK49!CD3z5F zEopO7+^(E6Gk-Gp3)``+P{8F33Ji4*3{!T>@LhVhres02lrYNx1aI&Iy8=LP0MUL) z@_}BKu7We7K^P3v zxPV>>l;wkX;-ePe`!v|hCq?aKg`{*#gVX0<-6kUnQ;bG&TR+)n5jq4x zR*mVV1H1)YlP_#W(MCH#08P%8C8P+n;Iwdvw6qTnsl`OaoHa97TIx#5FYif2mf4tz zBa|h9zjc}&7TkYtf9UfQ0$z7F{$y?LU-Sy$vqTmi{$TN;-FK*Rd$p$U)H`y^$bj0m zhBfcpdFyEbI%Lra>}Y5=68fJeX#fA)Mg(#VT^dj7*1~(Z#G*3AzgCYsffc#Gyh}^*i-}4xbcP^wDI#r0IKBvuXfN>!cB?0s+ zBkteJfuU_4HH=Z-Ze>xKBpqa%Fl7ylq<2b~I%G>~T@pc8Z$`#zOyp zqP$xekD22r6NEIe{z@$JDvz^!A{fZ8BLV40ffG(Aom@S=tG`3#d^@}at)+mU`RtFA zO4&(pMse2{n8s5Y9;7Gk*O<~Ys$t#RTc-b6x2-bftqpmdgeRhT?z#$W-YXOq@I_=#L%y(> zE=A|XGLRx2_zQbLiFzmS{8fS!40`a)cS)d$6og*0f<8s13i)PEO0P%&xTTk)gd>U- z)ScdOn9qkPLDMsAr$w3XQOUwDMMwAee|93cpX!D)EI!7@YocktY0^hgkvtwvWH>NI z3N{RaEjEOLC;c8p!x!p>+umR3^}6+CuDLN%R40=}Bd#?#9!)Foy1V3~Vh;(a8v)pU zZTVX#(CboelKlh#P+R8uCUt3b`sMTWK#OB=@Aq3Ikxpf`C^LlJ6m{+e2H6`8fBEVA z+uf$+v|9zjhK4ut!u7o~C7uJcH_ytuaMpr{I1 zJk!N=9?nS1Ff^SCUw%?<{U`K4@W79!l4K9fVUE?Z&b1D`IoduLA|FTQE+$r zfv^|KV{}gFV3X-tpQ?KoqY|DDmCwho-wk3UoLt)(x?PLXQmsi(c;co@>UO{pjJ})_ ziQXHdO8u|gDqH+rAT0TEf5U2!$NRuA7Uxe|x9C^B?&$qaV}`okTn}iJ6`J?Bqc{4v zKI7+8LS6GjH2tY-Fl^m}CR3(jtfK_!`SFv>{OA!+V`bFUgm-pBdJwXLt~_smy&eXt z_xZAUrNN*+d%0^hGqrxK;OyFeH@dMBT|awrWgXUGAxdqgM4#k+f0YE@H`aYxQZWT_ z_!B+nxJacL;neR)2BY+rwVc8vtO3ZTFr$*Apq-lVA7n#mny3E949}1 z(}~a45U;Td`_N({Hk>{+Lg>x7s==xOX}dr{r!7(Xb+I4)Oj_Kw4mili&kMMB z16@zQtO2b&1(@bor$55GProHlL>3S^t;z0Qj$>@1Y*Pr0I2o%I)l`{(*yoNmR=FNp ztoFkglZb2k_tY%Vh@?Mk)s|0(6VMP8g-@pybWeD{``C>Xe|V%{*%nuiP8OcgQ;N13 zz>2(YZ??~=5f2AHEc~@Hyos+%*DOCi1q1`xdUG$kXjh~n`@hhrncpvkb|I1tS3<{0 zEiqwA#H5IlFQEFT@CK|}6!p%t_WXGZ*Ug3zXg{x|^wzV2kO5R#f3@0jTP}Qq*d+N-9@-Bc;$g!w}~p2KH_93WQ<9qs8OjtMxO{)&?bbdJ3Z$E z7r`3FshkKk15!42>fXzg_<*Kl_%Ku1?l+_mXAz|g@ zlaDe=)EBLJZXYT-`Vk|Fz6wi=uuo)Jy}-jvf1M=s`>9V{Q6P*2qr5A6UW=0Nbm6JF zuHf!+Avr%Yp7WXKt2J#uk~=>UoScl9c>?Z}3trnXXgYPy&B1c_t{)pX3yuj|Chshu zDuOIFvUR-?#9;Q)#Pj-ABms^5Ag%J}9|*Gv@#$uu`=Ymvt&2kLnq+|+- zf7WO~7DY?t?R6YT9~6Wx-POnq_fu!SvzlaCZ>9L;S=oJrxhWJ2lXVhR9ec8jvFgFR zWxPseJK-mryaA}uq2XnEbwzjIW^zTEmnGnNbUzYS#NkUD8g}%eCLqgNKTXeQ3_vbF zl2pZ_za8&;*76Ol=fA@J@qmjKYO<2{e{k&-3f?}iehM&b#73L(0?}6zrNHcEZnHR{ zpww(YJ;S`qpS#K4hq*D&R~j0s4PDj@tJm<9*N@OApKEu8L>*p3wt1&eQGLR?{S&{q zuM>j~_z!vPgR-=8^yu2h@f&UGQ!e|bJ& zXu^_dtv~@X@)eU}G7-PIEF5o%xX4>T*iq@*6mSN7lkf{J6>d-vUr2RkGpu3KB6lb` z9uTVvM~Hg@?RiR+>%))9Tzh%=Z*YChTGM>EGXeJuY;~nF+MTyx-JRvo!y!#;Z!#)| zAiljFh$cW~Y(wDcUAfMf{>MT^e=d6*_maiY?@ysv2yUq-|V%4Jl5h#JYJw7k6zq1$h^R%BrLr=GDrx`fo-f5EWZQ=aK% z@8s)Grt(4>7gB7#5b$%Qn?m`dj563p89a4&uuG>pUUSPDcXXddw7FLKrjHo(a}Y=2W{ zTIf&gqo>!H-cQ50l*Z41f6Ha6br5s@?~)&qn&BxVCd zVH%|J$dSx`p?FmIirto1F5sUzQX~=%9hsnFhmq>Yalcmn@cBiC^!nP^?+Y1LM{Vi~ zh@yaOmA1JiIzcn$e+xF82_k2i-7n6TA?J#E=(v9gjIdx$x-iMrN!%l8C4~`eB38v( z`zfX~o#?>X6MP~ERs6K=8vm>Vb9Z=X6sj90e%gTD&wZrW7_VG+*N$uHx@%3p zLN`c(*=IgBEbdk1S2XJRRNcF^1-|%R$U}PGwBz%5 z(BGUj6-=j}E#9su!3Zy>G##U!S^kUf&tiZ4VSv64gKghpCVYPMaMs}^rJjX@6B;hi z6$g5Y?fHjyf9qvamRBmsPz0FWjw*>X)Z>p`X-| zg$5fI#M#R}kqJai@kPDk>k<2C&#y`iQ-MKcKsO(I`AjZN-34Dqwn7ZgL{u~((96NE zUsAMFx9SjG!>pY~Tul0`*f0(K5qcK|E+0Fabq_*Je<}^;R(VY6bnf9ovfmCGBdcar z$1lE3MRy%6ua=I2bP7Y%K?uFu{A(5$W3$B@LqA|=QL>ILS-PrUWr3W0t0yVd@~z?? zRF4Kda^yV&wSQIDih7~ftv)!67L0hxGbQp?XLW;G%B}$sttbz6Sl~*O?j0&*iQ>hs zcgpiVe>GUHEba0%L1L{cq-u1uxy>n{{4fpf-T5L+z#UHXJc5TKEUPar?M@IqnD%UL zV~+3B%N_*n9`17A9N@;VQI4ejJa+T-ItpxjE!RAUssaQ8)Bg1RwWY>K(p-vU*Iq=<184y6Q3@UX zyiW_gG8YTwVhhh4Ftyvc{LC*6O~{$DI?btG@<1##BaFdn ze$r|&vB-yuit^G&U>4QjDi z=m2;r*IemB19C0rm~nNa6Qucym(^q~*17{b5UtA&lPPH^SzaPGnxQ?=jUm?Fe=9`Z z(Du>k1k44VgZzdgIczoyr$yIOa+HDWqU0+~IBT=hFJ7p+k=e+lvLf3&uQ645nq!~3@cK1dUhubtp`@we4saJG52rPLH%J_aO}(x!KeB-;pl&0MIlxyhN>C5pYFl&TvDoMMv3l_fVXN>AWgJQb zA(gW;gr9-=Ve}04mFMRjh_t6Twy|nW@4mu2il#G6IPqW2?iY%2RE0V0J zkDNV$>ShS0B^AA)4|uqw@@L!au!8=8h-ivP%NFG(p^sDbO}Pf~C>-&jc5-imXP@eY zq*}E+>3f1W7x6s{Os1dM07g*>X(rmPRvEJEZ$(#_(gzhQiuN{Ae<~4-QpBmULTNe) zHCC=>r=UoLTSsZ`ZvYy5sPM86VOh<&fjYSh{rXxFV_82o4F>UfT4N?HkLdGgqoKWGe@P()p&^p`FvWVq+RezS zrC$rLv?^9nHgdcM)nYlJ@^}6eP)dm2-?eoDg-Jb%dWM}36#6g=P_?)6jjYl+tAr%->=fB%zngWr^u(8X2+U zhG4uviwhp|e~Vw2NmFLcyTLrEyfl70I78lTe06)J*gVD>u|*8gX&I3O`EZU1h_;zK zIqjN%8I|oMTa*BsiJLFxwzKR|4;tWIWOG0h+*-Guw@UrKx?UxAz!*%>{#e}0IvS&gT`H#SYyO^`wW$KAw~1?a4K40#<%!+SiLhYWnV3=PccB+xpgy~ zS2(fc3PgN7T9{+=#ulkj6^rX9aH@;Qu!d0F6!36dmOMvK5M)2L4@s4$z9v8IX~r=# ziE%Que+XM7c6u2Yt2=Eu|r+H6MjNSW4dzrd!Hjj=RaiTA}3NMt7Z zJ`Bm>(w(L*dWizIl4uOxAA+Z*wn^$4A;XJke+xC5xla@s!N@wf;?GUqbY8=i)phv5 z&imUR`Z-=?e}4GzN{?ZVUM}z;>UV`ydQL&pDClohj`8|j(S>VN-_pI{%su1`2bwb* z-y%Oe^Naak35De(^N$u@DjBAWrzlwM9!w&8$#34DGt$xP^K}#>es^Z9t1oa14Y_(w ze`1Oo^8FUMe${c#8KL2#9hd-_I4aa$HsQQ~HGDjFfu72qHfcusIeH!3LGA(>3kUG) zr7Mm9%!vlWgu>dTT7 zar~~dUqD|q3wp&#-5k~}iX3P8f6|jzmW^jtl4yYAHEk@}=RmePZWaP`VuPmvBGn$w z&_AU{ynxv4Y$Z5zHp~Cawu#|H)Q6^iAA|x9*j}qX!==)g*ePqY$F!p;6c}%q% zH?Y9`M{q4ctSE!F6jW*fnXc*5!63Qj8NT`ewo`GwF!cQ5pR0C2;kuTh)`C!Mq-?nL z7c!7_d!Q1qQPlpt?fyhhe-FV5Wb&-(=Mcf0LrS|^D%xFmdoO6GilKkBfOd%c5gPZY zncV0d$A-&H-9}|2ev=L{ZhsZ+QOs3={PyrfqSzO@_Sf`WbH)<$HUUiuI{qguJc&e-hKslQll`I`)bV zK|krvgETt03RNwNbzB_pwnIzcYw1cm^IL@`e-#E7q}or4!VO;IP>MX9%Ee+cP~6ko z*g;8uFpG&gBdXC(F5s`-sNuVsM@>XcVYO6}W#dF?A=)Z22N!0bQ3=Tgx&1Jn8;NyEgV%a%fp{vy1>&ivyX z&q42nA6dwS&Yx>Bxnj7SqmLeXI^`*;7f(`Q>ezKk(mI47Y;9i9)t);bIzMU`I}FE; z++2UE*79*w`vSU1`n4%irNN!^d<^)W|=4tF6=ondia_60;oydNfduVo=1IXCF)6cD}Wnhc{)YBx}U2e;AH$idN7P9?u={Zq+ZiFMND{GER(VrL?|jI_FaZNaBY!X}tu#-a5F~Cu$w>I6@bqhi*}CPq^Zq!iu3V8w zK$|r;IqFrE)@-wX&Tc7akPm2vxYqitPLm#lv^8!qX@zjbR-M!fl0NXlQ(3}GgM zF8yKte+{>e2#Wy%Rsrnp;k~e9^C8Pxz*!z^fnGL*%vw<6>Fn$cw%)8gVm-_1!|Uuu zQ22nBhbh>VPKTj7{g(&_O~9vR({W}u%ZmHG!Q%Jne`C!%0e1(=Yi%K@053q$zg_ksHUW;q z&<_*>ew(3~a~;{~lTADlxUE>98M)V+w5>8-MLiWoWSa=|@Jdk`ejU1_qenGg2d^mh z)bpz>WNcm+^+&}AO3#LAq)=MM;WkH)c|L+Anqk>od0pAd&)wbWC$m=dch3`#M^iaT zkBIl3WPdGMv^DCc28BDrYB)?_DO8)vpVOG2KaDxGplCDwH_Fn;`MS0YL+QJExm=qD zEj}YdnL*wsj4OZ_3ia#j%0so{p}kD<(_b!nV!!?v5t6oF-KpU^=4z7Y5a9nbTD?<~ zixRqo#7g47Aq`K}TsTE|YG0F459i&CZ@MFJoqvUkT7a#iG$>^D+cm#V1mf_1ifx&P zFL9rL@AHz&{&<^;C7iheX6r|WD$RLKgzIut0DG)1?y6ULIu3GuZ^xqJyypX=EndT- z3y`mI$8c@3UE4+FYA84uk}PeQ{fRB2EDE^QB55-YOz z*njo9MeH&i{wNXdqSQ9)?VBM8vW~~??(9#?`JAr`LZRGF7=Mizn;l?l)~~Cty5Ci$ zAzU|*efQ)rSu4h&ZxE(`Z&AwxhHsliY1AJv6B(Sm_p-urtrr9*tKhGlE1D1XydG`-++ZYxm|-wXF<_YRelzZ~)7{!m>F zav5wM$^-J3pTjl0l#Z_?CQRNBte*47Rv>Vt;?W}Jx&uVty@%8<*JBm?F;zMW{(W$_ z@;k!NhOe=^ihI#Ptiz2in)LIkyxxn+@VpDLTri<#W~F%r_!)vZO-~dQvR@1d3x8BJ zCWry+Z)3!Fs3Fz_En#*{c=tTr<2%0Tw{a^zE8CmjSc=JQo<+>+!X$b(L<>e|x0Ez2aR%Ck+%I~c3rf^LIMxrIdBljhrzdv#9 zd{I1>vbIW6v6j;AI|+o9vA6KZ7*%VoY0}+opSX_u-{((n%M-SWDRE;BH-AN3dVZ1w zx4evJEFvTz@|7!WiR)GGpFnu_*(=dBC7eO)U>*pdrbLt?ox9CQDACDwCC21GaWt+v z*BZz9A)TN?E#b3$2_=m4-7Dw;%#T1&g!BM3= z_!vu1V;5!WE92&TgLoVnjen)RC|Bn;k#dUCBs#NbaJRg+tG3Q{;+_!%on-)*5~=Pg zc!~z{tyQCN<-L1_I&(zoXDPGQ z(DK{r)ssCzukVROa$y1*LvR0vA z+w(}Cg;s`yXoH<-YDuV7^y~v=xUH!w`Bo z4X+apcU}kLnM^0&41eCgH5`6#4E@~IPvChNqO=_}YhAbB^`#9&Bt%wG5*ldIOiJPf zwaFI;dV^$O-$Z~;!{;|Ujo=BY=JdEw`_gQSnA^{5+AOIx%~CQXAs0Swm`2JFrUl!- zi4$d2is&I3=Vzt&8qCeEF1U;LzInZB?mn;UxUJH%q)4|C<$pCxO`l2Xnv8gphONQ> zyyc)WJy$~rP00tECgE)g7_zyJV}1{aK|)nhP%r$EZk0c03?sSjc5lXv`C+BFIj&s=#XTRKZ^UA zCc>%7N_Rk~l)qW$XG*E3DHe82zq|5jod&BBRlY?$5oe%j*dL~c+#bT5w)@mww$(T#U!7wb>{6*USq$`*aw&|Cb;Sp8SjdXKjEkhG8dEYAEeW<|GvVfY9Ld&kzy+OC?4U4hfq% z357p}!#^*Z{Ljn#le=2SQwfGjhGA^_@8!knuZ3sd$g1!?L(IR_fZ^ZBe}f82SEO?~ z!c8gvje-A*r~Ka}S>q;!Y!r{=$1ra57f<@vDSsb;sA8TwLrsWbSpE1XrTJ4KOA*~N zj)$^u^6&fo8;KeJ9=bZ*wI-G3YLs^vOVH?Ut>(6azlw4Dgvf#%gd2{>WqdqSmQ=>? z)NSn4XMA=`;~qRFXOdMGePT`r99769PLI@0{oTjxgq75U3cq2F-bUhTH4|X&1#{~D zg%|uS)QWk`G1rO0>UtdYa%UpCa5Nd|h$ascaHJM^+p8{>dzn?`!)V zi_gm|uE^=fy0%0J&JveZ9NS?K5gy>tUo=9k4M8Fyq~U@7oiw^NoOd7F;3a6aLmWYS$^bXsN`gdE|ld-OA{7L z(-4)z7kfz`)mk#&#;$2gL`u?TcXFWG#Gdn*sHzgap%-gM9xr`#CG0*wH+D`|07x-f z&{`#h>Sk3Fmtr2JFY`KlPL=F!DtT|S9Th8jx8%|AKxe+;OU1!vw{SfSn1A6rwOA-? z?$7S)k(y$(*gtGvkRDZh_2i}GOMzOsH@4B0ngGo&OQRk!vtl0mFFZO$A*ge0vnT#G zYf09$A4Igo>X7}L_^bgjs4VGuS@OnM?wn&>j6m!a(sOZJaOfFdq=2e%r*QtVk6th) zP`zJ{*F18|<34ZSBJ%_K2!B~v$#`9qg``e>BORePA}iq+u4>@m6OGR9#W_76EVt_s652`72+_7n`x(=6CPkq=xr1Z7F%36>S{)F6E)C@ z!q(+u+pPTDMrh<*$yqqRfKI%bld}1)2T-K*mFvX>Th5GJg9X!$%YVvtWeobI%?M&i z=M3B9^H70ZCx`=z>r{H6I;5ui9}>;Dw6amawR5$ImjmK0O3E;Gh85v!2TPy=Zcf3u z52DGUry#f~M5aXHHjEv*oaAlP6Y>R?&l!#*fPA1~VW=TG&T3aE3zxu&3sPxdpe+(q z0+TJB0?Qh0o1|v?D}S)m2qnVFdPejh(&wjH1W3gasMCVF#C;X5OrC)Grx)fIru#!^ zStas>qRWK{pcrv1h2p)VleO}S<4dxtHy}Z8Nc(=)sXbc_t=+B*KS+<&R&7=1LIrb3xu7bcE? zYT?XMF4YDTby~@9rvz#SiHdrmsYrDifFMzjDHWh_Y~-5X0af4j9iSzBAQ(QzXEIXc zSAf;oAheFf)v@AeYL-x~(ws-{H);8dL#B`)Q|r7%YA1uF2kDlh3vr<&ia}yQ6h^)p zsks&aieaY>Tz|>By38-N{!Go;;dX)s$_s<4RzXcwYAg{5ga;;YBi{AD(c}zYWM$Hle0Mzr z>hB*z2P+vMj>SxgoJ~4FH-yA^a5=Ga3fO46;{-dn7 zVT`U4=<&P-R63DZig0W$8%LeJT~h!Y(Vx0#MOWRf=LO*|z)v{~KWP(2pxYYaNP$)e zOEY#mOMlD4up>;TsN|(V2BsN+2c!4uPCR%?n}!3xWC%Ze?s*X4T+YG7Yl#?2rRC-uM?>lYji93 z2?A9@{%iFi7o8KSshSS{)aBDI}!p4o4m9l^jljT8_#ThqcP*8dxCbn`IKuW7NI^1(T58f zHk~9@Wn~ntIWHX*Qi3+`OaE1IwyVvFwaRwj4O9k8Yrq3FG5CDdw6q@GM1~h4s7^#>g*64 zterH`e!cAIjaDS{g%D}FGXESkK^E@~vDBuI_gZx;yNE6XNCsC7TPFcY_}0S2p^*|O zvBUnW+JN#tPB(6^HyXk<(q}w#r@IpdLub(GLQ9oo%`GfTM=-ZWE)Wfo`OKpg2!EuU z&Xa8_5nI~a$$^7X56K08#>N>7ql4=ouODkR)_wvRyczg?w}>B{Vg*>00%>_{Lsd|W zEHjB6w1lawVBVvI*ZBxZ-I2WRz|ecp!q8G738?Cqi*8|hrO?jZKWPZ~JXOkYK~Ou< zI<6T%pF0uxtZZ*2_lcV)cGv_kf`5SVcdm&|uIdT}!s_yFxzGy!Yl~%QgGHaG#F@7k z5i<>ja3pH>V5BMOmm7Y_6VW7@aqaZ1kb8kbgi?vW`rUx)x4&7%iY4QRpW8lDKD^-G zGcj)YVQdYSM}a}k#!!KvnN5;{{}nTmrU*!^?|pU$6l%zq*IDdICa|1Zihq%xCTC8q zy*=Z^e0{_#>QVHrM?b9_r}aG6JKYec-x2i7LCYIGYUWoQ1*-0ODJsCCQap)rXbdM@ zfOuu`1qb4tRT=CPpR9gqUA7ZVmQym$$%XC~+UOlIqFSMlUO+^Jd0to{j+-JIo1;@& zWry@5o#A2F^YF@k^|6>!g@0~;oc>&}Cr`eC{q;h*+_rKUGRa$EvShHIZwzp@+A$zK|eUYJmdKZCS31sDf| zOs_eUw>-q*64q&d@+Y;QNOPP-xIM-xe!H$HwR-KYb55hphl2GMyH%`9R~4mXGvU$B zJaLL`FLbn$zzjZ%Mt$rsi_Cxn*WG)b=hy7gyaJCvF@b~}kbl}v-l0WunWayfHi(G4TOn*yFzeXtIAq7eFL6>dmq|PESRZ$(K&;4lJCvkCI>lyeqhh%(3k(DG| zS2?)Wl36kE3Bhibozt9+W|(93E2@v2Sg7`gy?tew<9b3_^+bO?kr!^% zC1OvEd4H0BcBiI)wo3wOv}GO60?yE(sxAl1fyLv&0n;#E3M6r+j*riW=z^DhF!L3+ z!jeql#OVD2KDYb|-l@?QRraC}7oUc>JWXyQ!GS0mP=xIzjW>rq87ojyCEoze^57*E z8B|`cl?&Lqm?d;55!yBX&J{xSU|+$d1|`8kOn*~7n&h$0nzJ5BR`6YP%)2M2oW~ya=&RCHa7@ZVe<#5MCHt&4UZ{S5}LnS>pU~`2vNMyN)moU+0=w! zE^AlN7o*F#?tbs4K9lzur&b6FAyq^Bqw8M3BKSiN5SP!Ttu5g}Kd|U&~ z7=KM2fvM4%rP|y4?ZZB)!ju#VaKJzAjsOw*I|1<`-1zA%O1j?Z&46F1qS)5vSl$9g z1lL*cGOS?-El?r01IPvb8t})Y7EL9DVkq~94<%O}6RfaDRT!U_&UOY$Q#ir2y4?MQ z&%K*>Xh1ADw0i>Y7DuY34thR5LyzwK4S$5u<@g+Dm9c(n1``o6FhZ0ce|GB_Sdq{X zeCD9`yvLyByOC%h5@s#tzZDd|Hb)`7(_X+#w0D6CW7xr0C_G-3;*fxQsxP)qF40%j z>DA}vkb{YrZxu)uL--Mw+`s!%oQ7J=-vKNIp;z&~`bMc~idk)^-G-3wU^dK)hJSYA zx?*}IfclYLo(F)ZdY9^Wyhlg+UQF8Ucbdb=i_!P(+~nGj#YZS^mHKjJE6;|iLzd~a zDT`0#^W@h>5wFE7;cT!sUaP9RYex~w8glUny_~6lF)?ZdkO&^(TqUuv_1a%{v|2J4lk%jf3(oqy)YWGn=kSL+GSY4e+rNNsS$0L%dOaB(RCNsTFi z+r1O5s`vLhwgaQQWHceu9{?Y;UmJ~UtoQoE_a02W_jZ9>?ZZAK5H#9SX2<+32~r;; zBI6ZPc!Lo)ncHST*7uj0^ZWe>t2OA{kdSQ25!Ylk?3a>ki*&Q>X-H%l%zxtu$ttT5 z#D@O(B%+%wseNL3A>9(|8xkU1X*4)%VKB9OUz92`k+LU7q`wN2FSG2mIsD^qn^ooR z+3Bld1zdnePkB2*;g;ra-xSSCtnGDGaZ5yv`Bs8Svgrzbl>Bh9V6ek!rI7w`m%})E zmR!8((C1CuUp>HSM6^!w+JE5=-;V)uHG(@A!P>lX@9Nhikvfr)EMS3(n4-8uzxG-4|Sp@JD+pB zDl&4d?f$|wOV6~F)+!!P7 zJ|EWmB@3d~4>3#~v|klN$>m0F@v58OGQN~=v-hM+6c>3Vtq;FxA&pJUj0rxFJ^7h& zzFOc&9MLt6xJW_>M($Hzn_G}7XpDd@I!xf2Te5s1`zj6vx_{y?P;}s*qH(6MrR?Ix+L`N?v{qE%uKNCvLeV)3?+iqX*tAgu^>S9L$DR5$ zKZTSV3pLFkP=CT^Q6(M*Mq)MFRcSZN@SNc*W`wv@x^G}Qd zokbngz#27-urDjh7m22bz9%YQZ~)^FrCb< z-UY$>ft=%_5`Jq9TZPLu8=UNKUb`-t{6&kvne^TbI)A6W?uD72GP`@#3z!Lttr)g) zf~OIcrh9S9ySAhEcm)L2sg#1;+()%GZC<3NzL|nRK--4^WRq*=pC$WSg zh_OLoGpty125*x%oA+Stp01-Plf$Y?6?5BBk$m&Czcs|DUQ-NN*+<<;PFL0|@0;j; z;k9FjyeRK@N>~iy`3@5_K9FQP^^hikkYx%OPkPbAH>lCGF4SRQtk<~P`;1QkNbAX}g|L=4`7Rv-?7F9z0C zheQLf#B*X)!JpGMoMgrpbLw?acQ1&SlxxV1N%;1?qo@q+)h5i9CpC`#S2;r|Vc$+= z2jH@*P>3i|lBsN`y(+iq2tt(&S~q}kNPl6TUbCBUXA{6|g>2_bBgHR`=%?QccI~Ta zCjExbZm_@QK2vwi-buR5wW}kMCfB;$*y4NIrqHs^;# z1>y&czm()W&ld{G)y~Y|#3)XB=6@^j?1ULr^5e z*EpYxNx54Ww36-%;8^87z2@_u3}@TkY9MW*74;W)Eqj+Z==Ux_26C_vihsiw($8=s z!a%X|g2Hr^105+Y3Rd!6A9w9>$}%)mV+|ztEjDsTYygHRT_6I4L5u7u zD||5@f|+9@d5QyE2mAM=%mN!fhE9Z*q;WD3EH^u>fP1cX%=5>v@>3ZQ!gqa>WTktS z_&A}J3_4ThFf$)?#Su!%tAD?h!=yowZDvZh9nmefpc`;Dh-9vPj7!YuO$HSs;$~nX z#b-EK3z>E-OO6+fp|`y|mmh|OBY$yGIf~rD|wV(5uPMVBTeu*Vz#}VCOUI0Rezlf|UbjIv%hKWHX!hyMJ;;VsImod&UpC zt)-a1k@H}g`*hSeHd#~<^eSqcSdDgdg%yZ;4h>q%nP_lTraSEKzD_9m*h{~!NM!EX zAyMW=69*4%&*jb$7%KabHh=yc^jYe6aMOLQ-Gr{f~Fk{hd!9GZp$w%2&odvpv0U3SoF;ZmN7w)9bAE8aH*u zEij_|1>^xKm4EJH$+vYBH>hzr4oBYTJJxq?Wi|ndQjmhFQ{HKL$(5G1%IA5q72pgs zxHL&-RUoEi^pqneVsbKAq6fg+3z45ricx9;lVpegP}H*d!-HEsNvJ1WSFJNAO-`9y zR}eUzq$y;PWlHKkMfHjA9!<`qJu&)SBl9!bQw>dpe1D3O-W$fI7}G(}@0xNN z*UNsAe58!l)OkTHZ|m&bdmjyY%+ewt_UwNX?;^pKp&p^ z)ql%R8(Ih`tYWQ()ez~z)zUpA^%{%`d|SoIXJB42zkY%ZLa^kAV+V}4@gJtkQcNab z=A;!32U*RA_*{t1VWyU@czbE?rUW^|V>~D#S0Y0Nqh#SN<56QR-=QYPsscxzG$!=e zS7(OC1WJ}pwXbQKBt)&6jIZq??K?QMEF zyNi!}B&+yCikMb>^d2ICHBP-A%Ed|3iz~Mzx&w|2kTo)Je4sN212g;ZvlnmyCM~ax`aY-=~huJjILN)2<$1@ zScOY6niYnGkKK~vXX!w}Ey-i;BY&3EAichZg7u{K4x{-<2Fj}p>l+d0!eZCP?u~D& z^d_gA=U`?uNER2=Zr-RBT55Ozv@~hqXs>gfiY+~Eb=@;yNKM(OBs^~@&G!po!;enr zqXmCdJt@?K*bYrdA6Js=`Wr8l>=MQt4?$7ez;;mC?>c9gS3kS%mZz@1;D6O`&fZQP zo~(AiU(({P!#f*GC)$~|Ixi(quHrel#>}21hT9v1k<5Arjf>V=KBk)<2s$=npX5l2{*@BaKGJ8`40 z<8uFCAD2$}{rpASw97VdnM zpLBpv`Zs7027ak*ZC-`Z77wY$Qu||8LQDNqdSxgx&ZJ?WNu)Ggc?)laj(AiBn4JkW zrP$DR%Zi-n1jT+Cgrx>11b^N0Yi#4MA$85^ zijL+W>`JwtJ2pWXGUs*TagOZCWbge?N1@VprPaH8W>rX*2}0He^Kz}Pg6U<0V1F$4 zQ=GUAE9j}J`yfGkT}6`Y6~^F{DRh}x)-e`oQL-(#gy%G@VC?IiXi8vnI4myG5(u;+ z9QwyMqso;hH6?;!vVUzxOYGTPd$+1V+ciHTf1ter1vkT?m|4V~M({yOG)JfhasD`r zwo_lb3xV{!)4qI@+0g!t_!j8FS$Gz<41<8Q%y7N2co;=e13;lfM>FaT7S~83{cKWtL2;bb)q`MVtKUd za(8`S0}S@#1?qd4>GYGfKv#7-6RxwZpD^8}fE9+XO#)E>aFmyNYCfu!GNWJ#{#kek zNRq(4XOMn@ukYNZ>lhI}xxgaIHp2*Yng-oK{00M+(ZhmUae`n-fGQ4uh42_X61~NT zs^*T`Ab%kE;;PcR5BudETjv>?lCf>v#bjmD;ObOe%7+rRsnczy7KjPgOy;22ZDz(C z#;ldk@Mdy`tvTwP#kCNmJ1sln~B;6HIv}R5Q=7)k` z=S6f{I;Zst+T9nNK=FN9Dnv()3S!IK!uN#m8vKql9DRy$sHx` zhZL1ojOBbi+|W4>s)k=k9vN>5T6S412ey6ciokO1E-14^X*e1k>Kz3M!m9+ZF;c*eYx zh1)R6BCyBm>D}}TO~vrz2W^ql>PS@49Sbsk*s~A-wWon>?6tpPa)ze37rj* zV~IXSD(yKuSb0cgWeh}GAt9_qpE#ReoMHT{rXSFwsI8`S~XiCuD$VVon8jZ8%x_nYxza{9V15UJ<YT{2s9NTG9<-JCRxUU`F|&kcs|6G4`~dMU7{j*QikH|rNYgMcoq&pT4-eR zx5z7;tF-2vhk9)xScYWxgf5VHaKRWF6!wJ_H97ZcQciBDyt3&A_pv?G~R8YSU5rC&+7dKutl-0SAT;t4K1(b znAPvv?MxdlP@IjugmzVd=i}$8DD?};`Bc{(CzfT9#3XuolH{`=1j#AHfS={ND>5Nx zC=#m(UJWADIIsQP3}196-q8E{cpDA^}$#363==H3A)i6rra;>Z@*S3*Y`fsvZiFr(hebruYWbu(_)3PE42Jg z%f5|{1mO5S^&7s&TL1l-O4GbxNn_AS?-9nm5@mco?wR>X4Op5H*C(!}I$6b{X8G+m z72Y&}`!1u1Ys2qN83Ox$$W6an7iILvG@?tHKVINlr8EQQ$IRvM1>Qk9XHRcx-A*Ns zXV+j3;F-mQ56kwxiGLDr-}yVhQH9zUwG@AoLbF01jlet^$Wg>H@?`K`kkj1$<>}Zt zKz_g0uVJAcEx(3+h2tj5UaVh~5iXACbP36w{9fRG5gP-wB*Izgbx3``fuD`jqiRLB zXz4M^a@{XGE2W9cu0?sfPYaWJFHgUcnuWC%6C%( z@|$;V8bbCakD2*4bTeZa%a<2$Q?q^=fp;Pddm+#;YN_vp)%7>d&RQmhSicM!w%6fZ#JiXJ6CM<>%(M7#1o0xs*&GUZG#?$p18Bc3m4jBWUL{ zR9^6O^w329@r~FRzrP=jI<>?}JS_wXy3@`LH-DL2H!=+w@Jh#MCAk8mE@K8TZwnaK zM=OKhK0h4Jo8^={xqgF1EP^L#5oCl~@8g2cdw1xMfTp)B)Po!l3?Yy?kptvecx-=g z@?6;p63>oEG6_dxc*xEvK}Km^i|?7|G5l#LzL`%2oQZL{NXA0_Msy&d;GZPHne)Y| z5P$#BWG}(R%wzXP79Sq%aDmZySP9!C2N{Ib{d2?u+!X7;B3CIoS;K;Cfu!rMMZCD; ztQ8c<GUDIAsTB6WqN5mp z{nU}>$A}Y4NvMNETiO#%2;q_BGsK^%$bUdfN>bWqbIstw5zj#L3u{zul@+IKTH(O8 z1%w@8u0v-Xlc79qbB%e+tTk3`g6A)n5vQN@mZYfD$E*WX1Ha|(6)aFvVu1WRV0p6o z>@MP))HVFdxk=%Y-akt=V88IL)(0ndSN?8mT=2`hNm;+OyWXY%vDQE!Kh)~A_WS6XzTT{_CGvU_Gug7s9*7Z*0^S@)ZQ9cFSUGQ){X|(D-p4HNGg2NF{T@ zC7w9c46N2U;E;~04XMNB(@hzaPF~BxQQm8alc^iB_xBv6t)Dd{TOCj7{MeTq9aAhJ z7+N5(-g_bTk$yumk|o zKR=zC4LtjExhM$=cEiWnHkRPlFesqXVf_rzFn3nin17C}dOT(H zsHRkdh^42(Pmx*aq+yW*vm&9WTDAK|KH@65zZB4#opG?rXg?|DvoJC9IJ+St6gfYw zqP-JlzLJ{`@oG1ij1yzT3LRwb6;nq}Q|+n-4MS@?EHtd?1AW`$Sv2h`gZC2iKXw4G zL72|`o~OA+N+8tZG|YawFMs`nZMA^96~e+J(*%=X)`(dHZD|uRR{TwjhGIny<#&m! z^`WFA<$@CsbkN0X12tkGua-+?B7!@(FTo_RdC~xPyM=TuJBRxO1y6{t$`2>%fSiL*jYaDUPZVJdMAJ4)a^&A5GC6cPVyyEzQ20X@2JPWdRGDpV>*0nxaa>fq<4{DBqM3B37`%OU z4f=Ikw~*vooG^rO$c2_!)9KY=sxFxyO4}l=h$-h#l-=}BFwc3=J|Jh4|4tF2$Y!R} z<{V1IWChIhij*o8*MFxG%2*3#_po~`nt9w6<`t>^dZDfRCn8hu{o(|aEVzP~zA-{e@NhzbrkVSO_1ScI*B?F{N>w>8~ zN9Kp{^C*h1sUuQ+#&P50nlK8T`%COQJ+~s%~*OA5QpF$sd1jg5gv5(h$DJ zU#7E-n}1K=Du3#n`{C`s+}t&@ipo4b6d29}=OJ{#p59-vPH2;;VX^IMqzpPg47@3_ zTbM#JWpoAjKB2l#WGbldX#TX=l;u_w$@rVi?I4old!b+Ts#xL@7Ju^}hRAD_;$(NQ_nTQ(6;?g% z23t2c^kUrdGAH53`h)>7=)WmUp5rfr*|cSfn~ltEm_A)}tJlF3&}%wm@wYTF3ATO^ zBfxQm*hyb9y51T2kIxXxx9rL>ngfVs82IrO5^A(ktSRJh#7G}{{peMoDF-}PsQklNPk${7i*=1bm4kAZwWV2c9-P557l3p491MZ#{nF7;>}yYMu{WcwA!HD}NgbifT?)KWKu+rl8=9YyAiZz(~AATqCJ! z7tev%FopbG7CxG?p`$Tgj0ONuTF`pd5)PZg{bys=T(+R_0|z7WBQNLGr^;?i5JrOj zQ$Q*qqH+r<)X3*$IbDJET4zrQO|Ea(R}Fl_kVE# zu=8culKc#+ssARagRRN1E-X^EtU$==B>*w>B-pw)Tpp0Q=6L=YL|LzULFS z;i;v=xm)~ze|`T7io|oOBoA^Wlz&gG_YLLeV83?$Fe5%hIa^@{XuCIRw&R7bsJc8bs(*nt{BfBDcZYG5DPW=YPYjE+ldP zEMvHR5Q4=)Bk4SwSFS|OCK2uVx$;ait@wHOT{+-iG94ZAk$i-AC$cK8wbLRq8l~Uj zA9v`z=$%V#flN@DEt=+2gEBnSCwkvRYXlDXADZIrNcdboXpeqkHcbRc*XN7;T$9ni zXCy+4>>*iw^w@Wi(Oz7Me^EL1sDo|LbhqZ#(s zJKun`JwX5~IzSBW;Twx_BWg@Sg6jL)AbFMyl(ay^<0nf^l$6VauYZ{!!1tU*l05wo zH%F6#<&)fV;#k?UMa&^2D|`w#4drGMhMQoiMy z$$tz*dw1@Yx#``bCTa9K%crAjZ-(>ku{DVoQa8#DMx+y>jcsh{PWGqoV}BBT#aY4ktQ`@$L3Wd{lW=a6Pm-G_Zj0BPJm20yPj7&ZPK^p> z;KY!2;)A>`B9qEb-Z zgYBk!XqNcx_ex9^wBh@;3@1L|=KI+gU&Mbq3-=VZ7L8rB41cn-H*8i7Ngc)pZIUzk z(?^d)p>%Wdb>_k7(pU^{74&>od!aE>lJ!%rY{ng3hU1e<|KiTmQ?9ooBU4L8;G&-nC(OXquxlqr+?_PR$Z(+hug1w`>LQ|yWcg0 z%J<1Vx;4}DvwvaQ{hkKdt?n4P*{{TSzq!-P$eRUB8*4KG0|iUf09Nf|6A(5xG)a z^68Uc(C5o82KmnOVU5QEaO*Z~+0oke1~g=yycyG8QopBV-t!<8+p~gWJd*{#jo%{v z4!Ujpk@sNv=>l4TYbVQH$pPtzb`CEbCoDn>rhn#`vmaACyp?Q^?a}I4Eh_y%eV?ZZ z7COa_R2fIO-qOD4hTpxRkt#{$juyQ>p_#1cX#olLvAP0b^-ldwhPVqh+RGy%Og44= zA$TH%>JPAhyjMt+idFY5zw_r2d_|nGNTETH1XvUH^wCQEpY)mzGDsggAliI9}05Vu{7ScJ5lclz+V+GKmr(S+LARp(F+ zk@J7qmOegNAwYKE&m0@K$wY%5v{ilFQ-8<%o<7$mpuQi*UOc`aOf{07&onpogOcKT zh04U-k#0YF6(>~xH2F)8$CZV;eS9h+eiG-G{o<0U1M6EGG_vsDM-cH0M;Zs2FW#$- zyjp>yTS$=stDFS1R56>DwyezQ;8aOgL0XL7I^^jTRow#f4ShlU6k zvrT?}#o+R@puLH0R8RVD#3^lUPP645cSb>#saZfWJVf1f^X#K~mA&=%#%*=scXGpb zTRK!qf3kQU!M76952IXJp53xI^nd#tmUmOf8AgHSWTH!?;RZRW`nX0EP754K?^oo? z#_yxagU1i5RG+fUMMc)-GtbFSj*B(r53xr#Os$B(V(d$ijqKxUd9WzRCt9ny4g5Xy z6`JYBh~^?>zBacyvcYxL%q&GiH7@emocW-3>6|~G1qRPss_M6Ola!$Hz<>8)@P!cG zcz7~C%<1&hShf)U>_@&vzVO4)S9UNvY?_iG;<}jLfDxz#7aGEz)I_K+3w!SJ>>ZLq zZ`svn`e0_DLfT|<1nV_IKrGNipFe%C#wye7^^rUJHg)YO2t(2Oo>CbgLe9uZ5U@AP zmVPxv_oGGLC%tfYFw@Lxjz#Us^phAidUFIyCy4Ja*|!Pz{R zsw+bt**3fv#gFDHS2mJG9Un9Vp$Et3Ic`3lNBfVAHA$%G_-2SZ ziS>ogugiF8+Z0#ALJ)?t`6AX2Kai7BOZn%p=Uyz#j^5|Yc0%|J^c2bJT9Cv}h%+{7 zQ~v_VcHe5Gu=*-*--^MV9gD@H3Un}gYl=FGqrFn#PV*GYG^T#AkH-uEvsIQsVsNY( z>Ck2Gso+_f+F>f21%K>hoJELKJx#>sarKvZxhiSPZZWPlOuwM7zMlgr`O3cgW9VA? zJ06Rd$zX5|v z&T^%(hy182&3#M8CM}YcXMk#_@Wjo>AdNq1uww^AE8J;X$WN*(0PtP6n{H5YuqGaR zZF(i~^1K^+w2~H|=vaSQ3krL8iGF8WMeubEz%6Jl-M`uBzJhOi%n}c6obL;1(ei+eV zPi1HQDobgpu!`E_5B!Z5$*xGdD9u)fw!>H9qmpS%&n$d} zg+cEv_Z8b_TcX{b(vvg-9YAh;8xz1mUPzM@TX={@R3W@gc`YTrwxU3X-2kpngH|W} zxAD7&-1GhIoZx@bM8*zM#y0??CJIryxTm^~8H8!#FtTVb1|ah1JQQ{wJ<$-Cln-^t z;Ajdfj`rBt;@9Yp{BSzqR?h<6g&MDz`JEgSu(iXDo;%;z6WM_yZ@60qZfyE=7YIo_ zw>AM$Pp^?Is5*V*2Z8xY!y}u_cya~3zDPAU-$E96t!W&}(;~1Sh_50WJ9q|Za6*hFnBUbOp={jatUhjT@GVuZ zYm1F}`d* zhhW4AO4M8WpM&Y67I6Kp=W;gTiu$*^e18DlKGtJm`-gHIkZO4M(HuU}adpm9-0O+p zMyL#zBeg~+paS@}ygVhUwA-*pzCd`MYQ>lASi6ZP0l=TsgwXL9%|GhOVl=hmYwU)D z;){Q8)wmG#kmY;XZv|5aa(>0{sJ)q^evsIjE*E%0nSv>{lkVhpE37%X)vW9%OArmFH+s47H&8mvWBJ=%a3-Gu`V; z72CA8@063iKVZ01mGDAZR28j`t*YC$B|u*A(`+r3go;lmJ^+XCAviDmLS(h};pzA! zksW0-4Tz!Jfq^s|4V zs-4(Fhs6tLOa5nYFcHECvJ^5+hysD%3T&?>pBU1l|6Dpvhn!TI%~-aeTV_uIq1V+4{h=WT^6% z?6q%oY`-n@s4S2lhX1Mebq48*pD2GrsIZ3faC~YVnu)0`{7C# zkDusBy+&%)4^G0^Ur%h^QLE>d3w_ES0`b&rqu)Zf{X!Lt%zx=B|7E1S*x&z6n)xpa zWDMkgDItGcb^V{rnS2FYz{r5F7!9a7<6aU3HlF6oG z`KV$yUG4zX+F!C}>C}x_Xm(4~7g^Ki5Y$h;ew&Ndlxss8G}Q|JXdk-Li0R@z&d_82 zVP1LFJLLI!>ZV`v8@1K}01y6y2ZM_rQHm~_{@TC-Q1$%?%-mZGeXQsDUg$7z7bNPNMMHbBBq!wOEq%VKk?2~|)tOOMU zuP0{-#R~-#8Va$%9NcdOtbS6c*NZRzpmb&|AMf2$l5BGmQGfq{bm_T16>J4KX zr*Ldlu*;Y*+QaxyO8!nsQo z+Q$*}C*Feb9HM`NMyJ~uq-hz(f(6JJyakoM6@xJBGUb~Z{hpR~zc*A? z!&~_1xf%PO8n6Zx2W*%T&Yhe7dp$^iF|G;Hmw_xo!9MySQYb2U{wgS4zk#1Ix3TC{ zv9#hNfz-`8mhe@=EIPQAt4NMi|bw?UsCI=?fl3x{m@K~;!-&S5OAu^K(nPOUhgs-toj4Uu+ z47fSB>53t+(bJW{7XFA$5%D_`%;kR01tAW~;Q%%w)n+y^^*KH}dYaOKFej!Fx^EdM z1{?sG1E_!Xnbxfn>oSOxP4?^RO#HH12!00kbmFWwoeCX8Z{UOuRR(+ z{WQ$*84UB&WDwrkgt%V%StXKh15soIFspW*-SE7-cp66`6*J~xts1It98>?enU?S} zQPv|-v?F0&GcnpQQD!j_erdv}O9GlFDeOEV6r_JWQEo-W6-`E}uZm^F&>7GCeO!y# z{w3U3{>{d9GUpPw6#&Y#cftk0&ser#FDMMTOetN+fb{)&Vw1<*(3)61+&-n9%ZhJ# z%4=%(B>utG4F;vt+f-D3QgGPac#;F^U)8GtGv{o3;lZ7KPR3@=a%!EASH#$ftu6i4 zNAQ1P+nYNfvRR!M{y5op+J7#S2HgZ|C(TBemm_a7hia-VwyoZ-*TRk*gwlrR=M3a< z-O{V(45SOb!r^b<^)-jDNBj*{F_jKRO`-bO)2E|{Re`TUjNQX79z-#z0b*id>v5?P zZyU^U6I#7Up|P!wp>1FtB{%Fz!Q56_S#W=LZJHmwr*}^+7S>c~88BONcnl@G^$ytv zFmmt0#W*F=3~+-1{5W_{V06^-0p#67&rKpr2l32)Gh9QE@vj3}Y|zIftSH4Nb;VbH zzY!U8OhtS9*DrmBCF zzjAkff7>ZpN8g;dJA>PH&AwJCHy$PhN2II;&Xlal5xoYKuqzP>VtnZ0pvr2HKOuE_ z_IHO4F%V6HKf$ws$T-m_j9u-6x{`T&rpoQ@R`=PD8rR6~Cxtm`ZQxq0K^BJF23)vo zAVemzTH&j4gt}ja?`@->1>k6s_thAv`uDN4eZn-C}Y- zJOI}W5v()23QWRl&tj>N7bVzLwq-kA|~2&23LXI(r$9;QBKLA z=R~EO`&=jwAibk>KfmY`C&v3gk?8%S9{u+QqjH4S}Az_;fbxC#nbc#eDQZ0Xf`>|y2kyU8T z`tp!aoBT_K<&)5wn9CA~8yFqpK=uHUSCks;_oBcaBJu&tf6v@NU;yI+;6NX0W z9qlf}TAwUbg!l2x_UV7?l4oH1R2@j*mNbXiKHcv)AGyQqbEJ^ZoTPeT>Qjkn9mmy( zeT7s)O|}P|5P*1wJ7$Eus5)#+UU0&w<|27T&7nA&h`Tnw&Ky|e?BNm&Gij)@m=v+7 zpJ@KB7h~hpu!{I+ymp(hj5kha!o-<^^_odelDRf6eM>zn+H-%qQ9j#=Dol-GisNAD z6TEikk87uVkp$Bl_Gf<;?>FD1{A7$`^1~4FEUC)vpeg(=^V5ko9664^n%5T1bbj7^ zz*}eKq)>f0pSTn`B;O@(#HdlTew?~%h7$w(xgD;D!Pp=|_licmea}l#5zo+&Uh*d2 zJ+444i-k1dD3gDOsP%R{Bo*l#1D=egXx&+O5?*0c&pX^zdomJSw=-;~pW>3seo{nz z*nP^Nj`5=%gK&(iNeNp}2&wFA-`-b@+di;X3hverCzeF#IL2}%ZY(*?-=pyF@!_wp zW=xg|+`eJ!`CZ2qn!8P4@iesYS94$QyEJw0Ic5_o9JYUW+oK7Qw`S_hYew}APLe&4 zDC>IkM;iCc_JqR}(T0sVkHgFZP}tU@@3$!lLkbK3IU5%p=-{0V;(l(*;fn2UwPh=V zAMJB3j2}ny@#4v4!L|N=6Ter_^ju(ni#-xnTnp|m9U@r*sK6Cp7>Ymn-%h$N6nJh5 zu4`gsRA7HVT?Z`Fv{az#2mutaWfVZAO1p>x(+g)_{sinj|K|JVly(%$;Y( zaBvGLp87gwdbH|80VrXbO+otFm1kRFngfx#&VA{yV9=6y#QIE0migO^_k!Ns?q|`){2Teb#X0W;1`9+PbVFQL@XrCHU!zGt&rd~(!LN>lNW5$$gj{Z>NkPXLS#M4lEWo4zX`;&xyjzeqxny?0)se~Ci@CyPPvw$mw)v^0NN68VapE8k&9vswqHTwXh=O=B7u3d`D* z4LCsR6VJdje9gR0*kE!OPTj2q{zCEIN(Xep`+1{rS?{*Ac`&ro@eOkDSvzn1`&%cq z>8dEgTJH|eM^*w;?W>#lpj-OOH5#@(*fHT56rVC^HFFx(?&MgG+5~d8wNFs#>#cuZ zxBj8ojF&1gOK%}+!XhA~@z9^_(yR^J2kQiEkChk`eCSuB?~tTs=1X=>Z{o?I0pOJ`(syP)TetF8DZ1Zrc)?zfD1WPTi%B&A(=S+et&544SHbZw=gl+jOb zGO+Ydtt9S@yc*qFWKh!6{K+>n4zGWw+xxdMTjUEqkMapT23kD%r+l&UfnkdI+d+rl zBbe?cyv||%XCLTG?^Bk2@E5Q0vMjYkK)-)q`ioc=j6WFs zl_^7fW*&lzN*6t6dnCSlgGLXiyoq;=b5=8wo#ylSaozN)ocC!hYQI@*mFY_Jn=mwO zRcTx^IOZ|{=Q&$8@Wz_(-Sn}CZVb+n$BmoUbvQ;Q8&y~nRTRlkULIH7&{190Q(e|G zyy}(Gs@hdR=uZx}e^h_eq)tv;a{})fq{|`;g zzW*PVn*T<1%zwd|i>W+RKlLu0nyCUny#Gzv%$SAp0Y?`ABK}9cVsih(GV?El_csCd_o>HB>W6<+x|Z*sr!oJ^mw74% zbs`#ry>|eJmkwZvIPQn!cY4ayU)-&N7_iqJ2abGzS1Eoxl3dlZ)TCu;PmMX#iyLAN5ZEk2Qw* z#}WeoL;qvR(d2(WqMU!C9v}w*=zzHZ&~N_b-TdWU{pp9l#R_r&|F#EYJOCB5{>dwW zrUSevL}Uj8=by+V`18Z}0kv|=c*8e+x|Nkt< zuuPt53>`_f9N115v(+YXzF%;_<~Yrd#OEr78({^XPed?j%!LY)eevMBSj*``skvIQ z>OvNsWyycxCC=U$#-0fGMnquCqUgjwjnz}uiM6n+3f|5Qwvq+5tu@Jx8BoRl0+KmQ zL*TvGy<&DC`GD1eC+q(9V9BfT+PMDanBnS;^87tlj_I$C8}Gm8lLU~Ppvoov&GG+( z&23A}oxehDOY)VAg7UD(4 ztMs4@fg{?!$W(qFhF^#z%gVM~=M0+${~y=>zhA;uv*7`r zWo&;$XDYRvs@P&}lb8AU0QJ9PjRiUj$TR@<B1DofWS{4}~mVD#?Bqz2R+ZWlZ z;z0F(>;8XS3;T+fjz1Ybs{eCwiUdEvu>PXTrp?$u;}63&$As5zDD>@!#&mM*tx}nxKRNwc?40g7gC6f?ei6(aQ0-epl5&i zN@lobT5M0QWN*q@&mMI&Uzkewl?u_h8iX7J28FFy0uYwq#|+nX7O-WFwRM&`NgAGX z_HSMrRIvd3oUtpO=bcUFyRRADF$=1hHy9wgMBq7q7Qi))vLFajRdrm|F-(;!7Jk|A z*-J*Z=*rzo5-Whh&EGPp7{Fs}k>=HUt#g@YpfBq4Mp^1|#P5+|~YySLDEPRbd z|L2DU5Vy*okNFRtnDOSwe=+>SI{Ig4S04Vy_r$H-{4d}0UmO0b`>$U(_W$6I{j=%U zACyKG|ATQXG5@>2{1;dGANF>rzcT($2hSdrCjJk`SN#4f-}sNw`hR*!OznRM!k;g! zlt*Eq+7a%} zWh$KokBsRIaClq)^K}iluULG*CEJ&%JT@;>Xzq0~_G>PS2fhoc{L-%c&t7ZZ$spXR zGJzp}LdCN@;5U(#S=H5drS5+Qsm(|B;zO>^Yq{FA81Xp=@iTsUI^&^tlOY!Sjdl6X zV;21>?4>Yz6JLVE`%>kz%)PZ*O|*`^Wvuf$!{rZ z^DOiCI$*Ole8ntdYsY`}_*;SVsCPd6-!U!!8xO+&HQogR6GwmjMuz!AzvZXydY%K7 z1nvZN5ZVRxRWXc5X>)&{dVTvYL4E++78u4^7VTw3Rx#687MTAq;Q_v+MG(jArvfDa z>C0b$(VH!joB01e_Zy=I8;{E0*zwA*e*Z6>9$jWGJuLjf=50Bbfh{n$EpROH@~tX5 z{7C(;`?De|{M}z>DxLYKV=y8!>firn|8$+Pfg=C;U%vw4_D+8;@Z^<$|Jh)u-*F`T zYnOj*^BAoj3b*}dm;XKYKR)=Mt^WDZzqS(p`P(M`8}I(}{_{V!`JeIfKQ`ayxYFc< z@?@uY1BL;-pf;PxT$8|Dl>zLE6)HL5!1a?_nq#V1<(asVUB1y@oo8%5+3mhUmCFp^Spfuw!ur0zb_}?I zCRCfvGr$5h{bPV{aCgpo-SiQvT<7eG>4D>d`_dTD8Dax0-UU2!0S3q~d|%oH8Um<) z?Re+xUpoRX#)LZ#1Q1ICr$53S`~TYG%6(A%uQBWSf4zT~R1yXpUgS8Mt7V^OuZ?e} z|A)7)>q=c|*8M?V5EbXd%c}lJI-vud4Z$4m6A%;sIFBFHJt%1IZQ{)D25f`N5e*6xnQ;paT{^4 zMa*2m>SBL5hso3A0%jH-4Ls60WYC|(Yh4{;rY-7l^L-xG_uqRJ@72{OH%#)$Jha<6 z>lEGECBW)A$MQbJ2HEQ~7q)v$I?)JcL!M0B92|np3t71>TG9U<3t%2Ba=37mPu%Ts zu!rZPuRg@?!QVSML+2P&pAV%mf_(dhD>-uDXas*p(9*{yp!dBaEIcde`KJB*n*M!% z;##;XW#ZbP${(gly9(0ny{x>C-cG+JKD;z!r~Ti>oS@&wbKHTB)~LJ!2qi)ra4T^1 zU!T3lJo|}Z=W+TF@_g|wA*eLd5Ag3i@)4Y+c0m7@0sWX45>)sC> za1VcUXEE#OCu&_E{8fO~e|$#wmhdF>@kOC=_YvEUV?J6%)nq2p_9@8BTTodk(enh3 z_X;eBx0f&D@0vv}GJMakXXEv1S$iLBejSGC*yp=R>;1~xV7Cn*HLIw+xrmbzz#yfN zcnQ%Ra6x{xTZ^(0Iv%*h2Vp^v7z(8y33GRWk&agqZ0y5!vu^a zST%*JVQ6z?CP={KcfCIpAERGZy~5j;&X3>jCez*@_UHZ-BaWCO_+In!Xx{@q?Z1EY zURDFfq-P9whkc^gSGlit`end9#SwqJ^f<%zKhNbxANIHGU-$i)MR0|UWnFutlF3Wx zEmmk-Z+hiEB!_1PMHM&YlW=)CwXHzYu4pZMu3MdyFDh+U9GaNHWQw2`0<15W3zhHT zgG2EaLaV0|mIBIYT#XT3&LB~eImdtae*6a(Q2W-d)I#4VGtO4tw($4c>*;>7=C#-{ zD>S!4=~`$sIp>SqMF}hdn{x(U%|ZDLQ9Y%toAW9TI=j_Qhl|bR!?%+uTv@@)WX6o) zd{?C0+3U<1I%jrtv1QsucOd)teKCa|M|kljr}aLp*bZ{hANR-J$Hvg7wo z7&E|wuO8x8k3;slD#;J6WOd3t`aKEh%7|D_-f;x0Z5Q$;{+Z zbz2Lz<0daI6E{}O-eBa$qs_twe6!}viCg9JCm)2I*2U$thMcF3uS}7G9istVf-ww? zST$f5sc8#?&I?e*+_Y1c7BhdfDVv}I-(C%oHUMa-xbNPQ>m9uC+PNB;a zMoFggGFcVK5|7%66{}#YDq*;70$!Piw{g8n@%xVM!CM?RrRv11WWmim6ceBrrbkVgOz>4Sie_vb=KmU#uxIgogw#Vn+ zYi5H)Tfxz&xu3zG`7TcwHy3GIEYOZ`bau&Rwf+FRO{cG6kear{R8^u=g{bnkpz;FF z^sNN9pj&f;RIPu6bqcDM4x?6VrG9LY(5UKWg-EeJ1wHj_^i)O z^C`IPA7hmu{s?Vp(7wMcosC6hU%}@4H`g)_`CQ^>G3#-iP#EOnnGrthaz;cdB(4de zWGkx!unN&?!N0PLEmN_mO(fbaVn;YoLophCK;5tx3opR8kXeX6z2;W$$`nA;x*TyA z`RO6gIGul)b8et~8SqkZ9am+I2fQK4_PXy_3q$Vz?a%A-^^p7HmS5^S+-gWm6Gb~Bx z%l{`|R`z)Rc&@%}H1}dFyuUEZuHS?ACXq>#AWRb9j&+=lp93p67$K46JM2UynQ*Mj zf2V)>mI=GQQ0($56N{-2Wd#fPt2?Zs8!xyhr?QwNu0i}&E$)8Bo7o=b+%{EY{KvH3F6Lrg2Fauf_Ai~FROrCt$KZbf zv>=J6N(j63Jbv~wUnuy`f8W2!#C--y{xE-i*)9U+9%bTvLROR#z1HvYhw1!xZRzvmXy2YbFS7J`F8S|2@06Df9LX^!NXZ6D|5uWi)5Kc@>CL;W+K-?f`;t4Q ztO*(Q>u|UiPB3s~@Q=TbICk!qflL&uHA6!=uAXadUpQsN^hM_?Fi;t-U^xL!s%?L$ zFQuJCV9CEjjyqwGxtdCah?_R&pHIk7=#r#S!p zF#7axT@@kNJmyfaank?)9i;-4H#y4d>XPjZ`XCkY{PQ%mQ_7pfF`pjziYxgyPOtL( zc;0(I`pqp~9{BsKZ!YlYe+l~$2K;}kZu6&2q%$VjITu=E;%w}T+6xz(aUkqu*{@5L z8?;+9XZk*wD=CX*?MG%#c5!}v8!K*tDa*eDIQDE)eVQK9$dcg26*v}*fx ze3_3fq05;wXdx(R9Y2dr^G53!n&RJcOjq=r={FBw4w%N4=XuVMtM5;o(N1=MVWN%M z#7CTc;s7U1@B6$rfL(Fo+GS!^C%-cME$q$+I>@m~wrezUks>5ITQ@Hv{~e^|LvVTd zz^Z1+tUzWKACIj3v%22KU_^gfqb~vd*`x600CpAF?a6KV}>sRk;+M zT4}DAy*&*4;*gIMPshs(%=E6ehn?>8R@x8xJvs|wH)j3&cV@4h;5>)b96ZBZfl!H2 zU<-tWATEw8TQE^+0mgs+5vE`W#^=dxD#bVzpa?&3gi;#N^0I~+*;W&80`C3;j8$Ob zWFapfzzVAQ3Ev4HSsQ^-Y)P@jDj&XnO-3ID<@Et~o==zroa4-BNx2hlF2h;oF?9A0 zY{3PL1InwK88n|(U=?%)c9gO!8m^YUSqWZQeNns|SWt9Y+h2d?vgTgwwh z#o^pijC66@+rYKnsQrLP6k(0au+~)jkc2z>wXXGmWjeDbj7NKegAL>Z#w9zV@8@3l z*$Vu)yW)P6gDvI-Z>MaZ_*jK+rYpDGtMwBY#nI#vVH~Kgl(20PH)V=e;p?XL(@H%{ zCn*1)K-0x+BSU{?!&{VZD@gTbk?T_MMHsrM;8bI+;w3{<3NB{?=+bk0DU*D%>c9uW zdq&TN(Fmpp5mZauD%G0sDv5^pVa2Uc42+7ijSd|MgzYa4#tv=UeABYVt$9{~>=LLiy)Hf*O22`Ke8Q1+Dl! zzj}Dksd#5reCp=SJar96J6V7gfjm{`Il@E`VqDV6LDhsH_nDSBS2 zq(M2D?T1W^lWaCc(s>cgM&7xeMu<>BSb-0JiaPZMPO?JO2uLP}2 zN@q^Lgq6zhfTdou#ibFF^rtDPQlk1Meu+*Oiqq_wPMWe)YD1Lu?tSfqcCT2T{TzaRQg zqncYf&&0dthx!Wb?U3K8K7I{Y;$SPdsN#E-V#3{+fz?AD&6XSK@{RHe!P2s%vk8B$ z#EB~(z^DaxC4$L6Vyk{hm{ih=7@W3>!!Lp59V3iwddPcFy;~Wfy$l__Rs`6G&msuxmNQGSEtfEw074mH zDk|R<{?oOafzu3ayFkU&jCN#e@Zmvl_bI9Boez zeAbZ%r+9YEEnm_4(cSp}!k_YXw7&EvDrqBJT$*VOqW>-j4z+(hlZknR-i{8jaNtB}y*EGnV2?la zX4tne(^c_rzjKSO6hUoPXrg~9nBrR4176D$)LEk#;W}r0u_-j#roavas))^v@Z(NV z?NOk;6ebfl47S6*Bwiz(;kDBeZL7G=pTJTaF`OmI(qDLMM*E55M!Fo$IASWLpO+Cc zo($Z8-DMeq)`5SY%NsLwz1~l9h0dzN&-@u%^=~n#PYb<}^ek(^0MuO`( zcAq$Cs^5YA{tU1p1nUQtu?z{Xnt}`LF-`C9G}+iwj~j1$e%Nk@dLh%_zHXz3ylSX9 z^lN^wBX-PlWcOV&B0D?oeY`)MBP-gdDp!ZKV|@2~pW@`6&M|37BI|s#(UdvwO@>0azU%c=_=2-Uc}N zsUcQV-R$@1mkYn(y@fg9ww;a+xb48r4KcUR)EW5aH8o-V zN#2>T#~+Y0kzPLeBA+pr6aHr`QCqa}FX-ZG?#g`DlrJhVcaVST0*yAZF6NjxkJD>j zbwqi|fIAd2Xc^iP(P`vxf8o34Du*r3GW9a8ip<|N9Oyl)3TJ5%z+(=FI0taKW$%s! zwC_bS?(69P9^;BM&dg=F`)_TU>oYFmtTuW$KLgiCt+|E_;gZo-f8D(k3j{U5QNKq%-U+HPiTh<(16KZICF@EmTh-6evex*>w| zOp4`R!i01uIc~;RXbl!}!qt9!&(k&=>h*;Va+_wThtGw4I(^Z6wjblv{LnD%y8v%EdDaBGSgZ~G6^84(8{5~K55Bb{3f3#k6SRVb`*zB};6|X3ULq8jK$&$x_3_~T3=96-+L^M?slgP2 z?0)Z*z$AZOFYP#FM)8rM`g#A{zbW2LC?E05z7FeCy?;N{v`)|dZ)d%)<&>F3bv-=i zkJvY?0r7?ZH=JOS5#RvTT{X6enjNEwvR51vXit`v&_=Km$e)}9IV7B<@ z@O@D=p)v)poe3j!5{%~P#+xOsV`1F^ALe4fhs%HI=*=QlDx;d9$;EF0gpYN=lL-UU z6qLg$S297k`Fx$-^!CbW6yrY;7>Ygp_YvH-k3l`&G$j|t1z?2_ZbH5p(Kamly0TzO zAD-_=F#mlGz5Yli97@*f7dUNDT#_FyT(3g{^20|SNcDAa!UE-$*cGp5`$C*vDm!z5 zy!U@O8+E{hy?@&DUsq=w(ecbOY5M(rosw>1r`S0^Bw@^yEl_l*q;Lyn8i`QO4GK{? z{iV!c+e=}WV51#r2GO~M^92gx^=5d)eYs zw#~?oz+mSbp^phOGwuE$k!9YJD5Qn6K9yj#-k%H%^(K~d8Ie-O`R z>kUrYroL8ns`nnbYO3w&^SsiklA||U`puoXxv8hS+lRSV%T+UaOLJ}Hrg~NzFtC5w zdRVC?iCvPNePSS(0~K$Ul}cY8-xR_q4Z7Rw%=5hbc7x{TDS4TJtS+YovCXA@5MSzFx8aC%!!KTfLt0P@nwf#s(fS53JhBjoKg1%0Y8M&o2gT z#gP+pW&UFgSot#l#)+(UXPEQD@7RB3QH#W^i@mpAT^5f4*{$1#-24-7!Xx;`OezT? zLL)Y!3NbMc5GGziyaaRq6~+{dd&-6^f7jl4j#gejILpBOg$-ZZzJ9_Wim5#UOz|A# z<)@FzpAy&T*kZIFb4fBa4v;y#19-n)T!yjPZKtqTA81Z>@qg6B`#K(-sc(O6{GeGm zum9HNfnzUM=X#@XchWmAPPIVROjQ*_IiGvgel6(8LOdG1!>4BNj_MsP@#OpUrd^R;>XY{Jgwg)ayH@g>WApLI{hrr6 zH|o5`@y#ibpLKm5;}JG$ss9Dz!>|{x$`*CcX}B?$$uX~{ukn9~|95{+?=WF3yNv`c z$~hQ+2Hs32#Y{j$F@B~KPjY^%c?Ub(Pc9S_f8|t0A{5!8tL}ZP?jvUX8Mu34$tI{q ztY>~j2Y&LXtfvmSFvTMQwG(v4PkcLZ8TMwbYhfcV&%l|+*xdrE?Mf!*nYpcEsl7x? zO><^4ciwMd6xy*+Kze`pAGw$M6EcD@J>T~bh;9~Jf#@cQ-oxfwuNU4xTfmC)4o_Q( zcX4;DUlpf4=(WZh^Q~Lnk6FAwV62_4zxCI>e(X@^I{2=0f9?8SA@WQ0p+@puOMGv5 zvY({5dk&aYZ}@c#JdoQn5pW4-z7GlyDejOEM)Ja=3BG{N2J;=AVgFv)GzR!lODrw z_uvnD$l|rH@$G-aPImc9Vy`F2dp+#&XY5Sx_@8mzp)NJV57G7f#5ce6TS;ihfBRpL zPGCqFv4*r@pzZm6s*c6Y04 zD+XQtbo9#(IBe15Fx}%YOb>p6;v~;sf5gd+{+lZ!U(%no^F9?ZoXI`ua>wA5 zPapq(^_Hxi!S#Q|%~a}&LlH;LyXRKOcq9G!W_u4yJmRol`cg$~$i<{!L^u|5<u zTb!9fzFdDAA58#j^V25~_Dvv0TXG#WyZg*>l^AcfH~R$`e6-_7W^?^Be{+$5kBiDZ zKwN7bSr-iJdQI!v(7GlA&ye&yLsFzNG2i*}A@A0Qm?+P5ok;pB$|r2E%{%1BW3D&F z?(q7vJ@5h2_pmmaN6_*VL*j(#84u6o`HdtD+bJLneXR-bA+gATUbA7a+vvko>22aExmJm}9|uTfT{rDA<- z`fq;^nCHYr1~4>yMKM29&n!3e(c(i8L>;6Vh={Fed7*m>)B*)QtImfxBV3u zBSs%%Unat*QQy97pUh4L5=mRuAhPoAz#A~0hSPa9zB}+>tEp{Kyyj1FMfR;~?x=?( zr?dPz^T!G0BH#>%S1(IPC~nY|p7|CoPsINy(fFPKuz>5jNHfmhC~rcrbAxbOAR z3L(4#>XUN^KEJO~t6*daj2q0dG)O4k$Zl= z1lQ-)dKdF1HJKHoa4m7KUW@};^v>V&i}sb64I{B;HjZ*F_O_$Qxq)E5nLZ}oqT z&C8#8_~uZLCfwq_bs9&FlG@#^!g?E^(>@yGbI8bE6+KC)()JGGuDjb4q`_ulooIV*y6*;q}ww@Te^4ka!SbJfCuJFipzI z_t_?Zk3Ub;>%koDy^g^()O#}EepmK+zi-={XSb}k#zd6M^Q7mMscyst^;Z(#XbQYB zVy|Bsj;<`gZY3YMB?L|3H-7)l>Sx6x^@4yq#VG18NGQ*B zJ)gHF`@0+JW1?S637VhPcnR|zYP_VcfurUi1x`KS#kc0{#EF%j-WPlLXeEv|W3zm%i)upRR7%J$QAhIs4udm=cbW& zr2F5|b02%41?gChwW6I4=(#1IT?lYDGo!`C<$RWrZbA!uHh2SqCNU-)Xm7TBPrlX` zGpZ@WSJy$W=L<#?>W6<^megl;Pw|Tz)9dO7{^@Lu&*DkEr+EryGpRuLpE=hO_RS5r zf+MVRcr+Ngsn0s0sSl2QxekG9q12yj7>p;_+ZokQj56?HN!sYQot+JM!W^_DI#BUkFg;Rp+#oYC})92ABXUh1$fESRF&NVmVY1bU*RpfBe+nsa_KlzzmajDL9 z`iC=rRoY}a0S)$q%cY%TACH%d^08vh4Qmh z)Xk1nGK*_lhKUUY==H3F*Pxp$gG6M~wTbA=gYUdRRt>&YupIp<=M0MnuqKwG?dw*E z;WFsTN|*-Gs6E;nGfT!F=4x^$Iu%H>HS^R}(hEh7t(t#!D&!~{QN`;u6!D;|-j8lg zkika*A;2%vzv{Zkf%+Rd@}+~#U}w(f6MX9&J3a6L1Fw)B`2Oo3np0QI!QMSW{@`<_ zHdv28W?s>SS<_87iG-J}&pL0>bD@bFb5p(rXja0iY3Q1Hl$O3oTK4X8pP4_Za>`ei zpL`+JMVNowEE3!rxCbIR5v@tY=$hqL&2=5$r)jywoujE_p}BH>eQP}$UBN?+e+*ob zeTH4z<4cM;-!l}>G@6^9OAgNTSZBTZCtb`@bBnK)UCRWys_Yyx9f;aI#k(eAXc)Nh z)e@U0ADXc-`MmHu&VMau~Jr!gwwu!*1vz2)@ErU7*9+`0U6C?BwWte<(m0j zHGNE)8NEl47MVzMGwkPTbZgW#?WY0k^~_nL-o?Hj_BxDqpbjDd>s^k@U5R zm?wYcl3Bfj`zDuW6{979BZwEz&=h8L55DLooa()4XDA;L;< zf2L0`W;y$|nZQgQ(OOT!Dn#S;eE3~|ehU0!p#@I7TYjTcG0bH-=N)@JYVmUozqQ=E z!55u0mz#qY_?y4v`f8uRCBkIE7V45&n}dJVv-z?J{cQZIt(`3!uz?jCoPLd6!>MWh zc{h3T6P227to_CQ$*^!Ph}&%x32P+x$~mOvZn4X)@ryM#3PYUGT0SM4wwNaN5vzxp z@3z<@_@~j^Xm8NjDUv=NKjP4Lhd#v<-`eXt1}?;v8~nx#o1gms^1v_lToug^^3H$i zh`TsDoSXe${f$;Wg_WipQShquwCihJGT!9(A&d)!lUGb&Gp(T%N%1UfKI5*8xYaor zUHYkOvG4sUKc`lZ-eDy>@0!_iqnWrDNx=#nudpjaQ?x@3%NneIZ^y+(d~r}O3fmW% zs3&QalpVaL_V%8^pIHTp_;XD?W>|j};S;mo@OtlAl2uyjL)7@&Qk-&-_i?JdhB#Jc@O=e%U(}5tn-O``r(5IuJCxK0({vTAB7Lr zJ_nUpPoYKb$j&s2GDz8O;=$!5C~O$Fxs$F$N(xw~f6Xk_mfq}an?J8Nxn_T9^Gtel zZAue4D}uyXzYFI?z6w(kHVUVeCuUheHiyb+oqM?0>|hQ~h`=?(gU-NA^4~Myyeqf5 zQEN2`V{qOjw}N+|Lz!u0IC;JE@l z%b{ocXFMBx07F2$zy2w%AN+dollv}zub}X@3>I9QHuAeRVld8lqOozsG)QvF0VM+& zB(@6}mk@JL3-l7ODiM{w6HXI0PKXy$O{)YeTES?JjeMAa2p5U5cQ0d$Zk%uvE+}vB z^R`4wtfm(?PWjQk>;g9aou}i3gGmK;$RTHla_56;!zzD&+7w|Q55(8#*2*P+yip>6 zlH$Rvo2b6OrPJO|8|&+JC!X!wE)VroQ=IyuPW7w5@zfDNW%uu@D-*fPmm(=*bZsUo z>Yp+wDv)4I5o4Z<+I$eVur$IKs58IP98K#Bs%xgn)`h13#~|Cox(Heq zRq0_}`u^+lb#Y%|oO$7R%9pClI$_*Dz*r zB4&PDyx;E))1r)^7EgYyGs;e(%I~#tSi9|vr|`$G%URzmeYC5m-mbP}SBcYo-g3kT z^56XOLB|vBiu0bNQ+<^1fZnU24{5*@drf%iZyY)JDYDc0ya!V3&-AlzV@$k4uZ>=d z)OLQYs{ki9NMPl6CPbTmFJ)D%r-@gh%l#54$DL3;J;1(KpYp_#dJgj-wR6FmJ?_Vn zn_NI*7t9QO*s#`TIEC`k!i-*8F0I$biCBfzq>egml=su@K1w-xCJ9kC?_!RLoU)7(dbTqnz%N+k$?C3nvtdxKH>C#tq>4~5D!oU6O+>Yvl z4tjX@ex}dR`y)?(TJ@7(&%gcE-7Sq&3 zEIEFELfZD2C8FP3(uY(34@b{KbHfCf=`4g2Ow*=qhVdBK&Xx!l665IJZ z@jNA+pD~{d6s|IhY*A#&{~R%F9~g)`(mVUsEqJm>X2zL#^7*7+Q*iC4?#gv+3W?y+Nc?iT`Anvj(1^O<1%h>OQ`aNvZe4%uUGR~ zg-SFgJJj}k$&`fGl1tN0MUs>6iV?!!oabd+2`y1Ewkt!vYhKYdH6+Dp-=P+3#*=$< znWW1U0CyN89|m1QQHS82-@6Zpl_ zDC*A#&8vE{bUrRY(7dDtk9Rg9(W?drY*E4X#x*hr>C3Ik@4R7%bfilvYGO;pE zVti*GcsKSLH#wG#>}7xkr=wAhH$Zt*&u71)6NmG8nq##3SB$bRF2A{`|H^;G30kFT z#v04>jAL7gs(hR6)SbZ6qMJN1V_al^Y^|(0_#~q+Dc47z1pV9u_p&q|&a8W2w)_Z_ z_EmJSr5-5mM3}?Hw1(!~=Lmk)`*C_sP0zWdd{G#B&WSwc+uw6*2K~XHllt}}yB}C| zc&3x)?l|Y?)K7TyK^tY|R5{NCnOZS3R;td|B2_OwU#nFzRzc?oXHvZi(KLmBu0X*_3H{Fjvqof`5Fg*^Em+-0}>En@uAs+R5`okQalLjN;)-1kxtV4V`<|jXM zxij9O7-rOM`dO*>JW(h*gVS_>?Dv|>E72g$oO3yHWG>Y4BCyY~>Ada4Vg$tUba3Ns=Q)CKABU=87Tq|e>ho3Z^p9n94 zt8CNHdNgy=Fu($t?`U?G!D>2{oAL)T>0k<$U8< z>I4@wPuY11R)X^2z|X+Qx?FLik?q=OzOl_T%YV&Nmj&F>cp!=9Muy$wBT9H$nS3wO>CZ;1HN_|9@4CK21&ga0V-H~7Dahrti6!5-&r z{lF*3obEc_{LJ4DwdnzGA7?~;<4dYZlYODx=|4W|$Ea)Wf?YW>oqm#bvJl;m9QY|S zrD1flZXzC;ZGJOw?{QKDkhmBMm4|8j5I*B&Li&_O{8srQpYOJR=j-BpqrSqV_{`Jh zB@mAB02cu^FM;#EarlSDKMu>j9tCQ^;k@|4e;nfYi#o?)|LF{!_<(cXq&#Y$4%p9p zbHXPsyRX9~?s!Ko5ywKN4F_(#63knm7GX0Dg&kF?DIx->&jpfEP zen7n(R`8kCanOx_nb?Ub#p|HjRtmNlfQPm+&r#<+FRr}HG!edZV~trpnr~+Qe_F?N zI!T38jO~j^fL>t|ykgZpU~|Q^8810{&x(EChTUO}4g8`y6i^*XPKY0sVweZ}9b0-_ zeAF3GJpZ>CRsPI>&Uu!j9Uf;$4t(A-Z}MLIX#=&*G#}%Y zGwEanJIaxN>33wJYGKUWxYvS1GuZE5GiLo8!b|v}cYUA6kABbpWUqgp*S?4P;PbS9 zHXrXB+jeJI9E$&$&r2rnk`>Pg;|aWM@1JtBoq@$+-L_nI;}2Dr3+9YaZhJ9f<}=Q= zw^P*R9D&wD@+N-`cI}(2FY9UIt&&vRm(Wc8&SRs0=W4dzl@*%iF~U5JNQ1e{-%LU? zK{S`cZ3b6_BRs+pvY_>HFwC($@K`;5IIK_c8>-^F-+q`8b3T*cCuh@hHQ&5)pN|iD z+t43lPd=shBfF}7Vqlkk)fi^zqJo0>;i-Tk5N`Z&ziAr=Z5q~Qsj?;lSIn6$rAWN% zAn`PRGws~(Ov25C2D}N@fsea)_P{2Utn4%P`m{*_9pGE1875xY&xuco-zo&}CfRK1 zeuY%iFfN`V%~KYniF%kEY`P-#)ST^op~^cu+tp_%@OTtYFx-{A!H4)Fe)I97-~Dzb&X+>RV}=Ez${6L>r1ll zAN*!F%ovwD^?I14a+sqfL{xe2m^Kd*_jP1*>%&$^Y(L?-Sw}nf5LMf|X|iq5sb z+$`$aH8WEkrjUt^nL|1b_%446pK~WWV}0A20Wa=HGb8(ZLBgMU13KT!)BN>XZz8L{ zfa2W#G)IQ;aX**t(wfk(q1W!rx~8>%6^$#(5B;PhEEd1~wEYr>`q=V7z<4%I^)l*p zQyQ6d#07>tRgVZ;ru%y=sJ;&Tllo571YQlO&-Hum+rIClI`k_0;YpV`^fkqu-W+ry z)iAf|Fqi0**OV`V?(ilAZXF(oETgk@od9^CoK0tjb=~Xj*~Hd%QJb zN}42LHAj1Y2YtUl!6kE5WXFaX5#jbOWTt$HjE=xjA6(8yG#G}?2Tm3=qx)$!W@yzk zP9Gk8`*X&`p?7=s6g_IUJXj8K%+XCp>`6Tu@h{RB1v zW2xT%ew})Hq|-8?KAZU1i*>AB9C(xX$g(U6k_lmi@e*U7Xi{jlOG*U9k$RT71uH zJM}pI&<`AXnvQpN40V*Vc@=QRiJx%bvv`-rESMYLo4)Sd&-?f@r5I5OSG|@CFgi(@ z@X;C>Bx25C{V}i0OTR1b5iRBK3ud-Y(&ixtjXvr-?#6TMnoY3ttT0|&RH}@+_JKH& zkc5rNx>Z$9xvy4#>`p-L@u9!ik$(AenJ$`@BXL;A7Q5}7xFXdRtFWUR&s;+TMgl{> zqazMxmUn6{u`u9NHBIw2FcU+mjjCZQ!97P$*T2kCd<4)i)lDA5F7M}EEvSz5N%{=r zAPuYyM4wl<%$i~+Y3}AO|4ZL9%pCp3HsyI;>RTJOH`o7v&?fxgLW>~YfA7tJGsi4; z;)vs^uJ0ZAICR$C%g!a(6gzY!lYQUDwlaA;nSvIqRx#y3n2FDV(X|LFQsVatY_5Id zrQo(#bLNdyE$%DuNB{cWoR<2M~js z@5fp@1aHKxUHVWxX6g7!ID-NG(L^7a#*eLE``~@ljd=0lSDCW{^ZdO;(@g#PVP?3e zPCO5P)$i{cnDzYEBs<(^@uJQ(HpiJ7!+jqM{GK)V-)I_&%lOj^Sf|sU`Hc0b{~=^8 z10&Z!9DMih`UP-ujh33w|2H*x1>3LD2V%>d#TJwyKK%FnzWwa+V^R#r zfl2+kk;1l|-(5Ix`Vovth3hdxA~$Lig7+XnXaw;jU~)A#VjEbG<7iuloyZe`@6xD$ z7nO}~f~r~LGc`>IUuaA)`kK)AJI;67_@)f&G1V_fYx%qiXvU*8{I?Tx=&?`}Vd6){ z>;BGg)z2qnR)|A?fV{FwqSe{7YUi>Wo5MUa{+XV~KjFTaHAN(zi?N>qrKAcucr))1#Tt{VLG{~z5;At!(?(VGnGnSJov^jNURNiU@ODT zIOEl&UfPyPdBcONbH^Jv~w7uOVbm z_+TdpF1iO(N_Z~levWs_YaoNqscYA0OY*e~n%N0kp!|qE_5&9L3Kv{K<=B&<(FCV^ zZ18LjfBlUK$)}fBu~iWokHK0~4}?G6(<14Q$Uf8kK~&2V@It(R{?eo=VyXh7he5y% zC<`0IGIO{W#`gEZWW(Hlxl`Z$kOzJNdwou3)SJQ+U%vKpPc_SWy)Dh%6QrG-@qUh& zG(hT88{Gir1K&RMpPYDSZq?By51geEyfPsQmqv*tU4&#X=J2LCH_?rRG4VpbcuhUk zWyo#AUO>^kS5%GP!F|sD7;2^b!E=AlleCAvhh2dxnWVzB(o}taJ}TC9pWU`i0~BEc z)N4TVHX=Y%^yfrSFYU%-pNGBECV(fyc@j90{e&%FPy_!*Y}Z~2*d$);BQhIjbEpTYkJ{tW8=>}1+lnx$9B9r21= zAF;4J5ez%hi>oa+WG5xwnvmuYg9K6u)|Ww*hXCr-Kh>|*_x+()!^{xV8H@04Dg-m0S>f{zK0*{B%{PIMMg*n_mR*!KId|1ai%{@J(3IiTpY^ixPP?iJu7%~MeaeIMa^j)QEf!Qsdv4fInvK>JIswNq^Kv$h~;&< z^?$KxekX~4_wCR5;0pxZf9Hxy4R;X%^{({2K$e(Yb%}{spos!-(~EZgs~cuH1U0xY z)EkYXH-|er4Z#&+v=CD~^m4+77C66}k46(5(aZAI@bT`4yXNpLBC7?o}ro0eCrpeoDR%QahGg2 zuP^Frdg+Z)wRp@fI+e)Vb(VsTxya-q)GKC5-s)H0bjhV>u<6QnzstaGr(_Oj z8*Z$BThg6F1HVtRSN`MA$gABD_g$H(2HD@+wLH!*>t{uM_j~ufqoPu0+>BZr>K#Lj zt;`H+^?jGusZUt%hWj}3^PF>es*#V%i)b^BkY@DIT{PA-VVC2UjM3&&pc2p($Y5Mb z!q)WVv;cSM``z30Ft?TZ#;=*P0od^B-nLwS85I#$82Y_?`^tn7=ywwasfQ8qYV?`& zt0mzVgobfYig?JOZ@=I?5x#i*`T!S{`=p@zb$V`8_I>yNhqgCsc9mz=1pi7$T~&p< z1B|ha&xwj?Nr-tK4L2QtZDwPGZHA8i?;XNx?{|Oa8|qY4)Vf*7N(m{Ik`gKNNgcR< zWZn44=wX8n2s+3~yprwK*UH-Z!3n2-@G*X!4~u`;9c>L)|LdFd7Y>1EGth}bVf?kP z5WFM3f|LEnxk~mYKHPeKy<&!s_>XV4pFNz^J=u%!jpg`9Y@r`J!awduxiN#q9YElW z#Ftq@5b!X!B?x)-oo6xzzDU3^Kps6Fz*&aS#&=NYKJhyQkt+}^HBjgd(P{8R{GIh2 zuDqAEw+b$Q*E4c1UW$OkCbDHL%)0(PFZXGj6T7kumREw4CSC~EguME#=q0dya)fSp z#4n%Vbda-RC_@425>XSoFPyADag0}7QKGZ{fk92Z3AV#O$619o z&VZA{HGXAQy1&xP!+@e<%I`o;?QV)p&q#T3K_O%_Dw;qv0C0e2$Lrd@~Ij|=IK zgt8mCo5esDaUnk-iPugYkJM*SA;1IhFbr}`@K(usB*IrmVny?Kj(o$Z;}vi0cDxdQ zBgkGgVA~S!(Dz`qeUc@8Q5K$H@#Y!Pac@LfpV^ZAoCf6FeYIavzu!Z}Z@K!xi}+a! zykEWqf7tbrGu`%YV{B)CU{9=P1pbe#{>``QZ`^>t!T*yJfvK;l!x~@wzUXY*tO~|J z5^O9fbL1jE^HvZZ!k4(Y3R{0U!x;*d-?Y?gWaM2Uh&Au3yK(;TSQ6Kl;QTx6;;wmzIwG+P3yz25B~zwx z(E--<3P8`sqR>Qz1e6i2ejWs`e#HR!iQ9>Z?u{Bm@|^4~ zm?yD{#ub0_PnqD=LXLldog3yHxk7|z8=)PcQv|CB`tYZv(9+ugNoLu8;SsH;1pZSXY^iRh5z6r@X z=sw5uM6NlBe+V7vb+kOs?e^%hP+1&R zo;ZnM9s(Py)~pk~5AzN_OX$!VxT_=*^OVS@-TgCOV&Xpra$nK?ZXmjnNMiKWL2xd+ zkc=+|vVgq*z-u6r2!JdoI&yA#`N1pr$P>Xm_&Im`eP;jHeE%cn*_NdB`9DVo?EEaw zBf)P#f{$YnbblHgw}NDk7>x7wuW<{Y=;SIIGvl9(TjD}uKSXQ5UdQc1@ReXuhf+CK zVqS-6`;a9E6B#4%L|Atsd$25iaie)+AKw%I$;1ZWZ|vfKeA)O>{>#=I%3Ja+`=et} zpo++v`1NNif1MeuXJ4Y=$;=W9{N14^>cWsE|p_!ryoq)rfV;7W%~2B_0g?<*wW0J0IlP(OE7C zjP)DmSVq%0@wqPYj*WS8qd#^Z#R1vXw=H2A5Z}l~!OFTg0iDk!2{=B&1=)}yLqRK! z!HS)M#(!GMM!8&ry#pU9u7UVjmysjkk7l5J`R}A>)x60*N>1)uMu6r z3a}1VIRqrWqP$)@T={$izy5FzTmWT&i9f%ZL3flkC!;t{8|D?qiz zCp&=fLOx(q4KB6x%ySFLqfFWL9fh=V&$}26#DB%_cBoZG{ovc_sRSg)MM74%8}EQaiGg>qFwO2nz>wKyAgZ5 zp+|Uzi`?rqJzqU_&_{VWSJoS>XToGW;7&Y>(s|^#lMO7e$-zJRBYyEPcPj8^e+Etd zowv!s{CyIPpELlT4ifV1tN~un;Q|&J)PJ@{0f~e9$Oj;vxn(i%yNYnmnL5|Fe`(*3vmS|6fDNR#|=)F`0j zXg`7@7yvMVrUNBH+z58y837|#4ZsszJ`{p?28>)pfG56N&?KR#4O>|NAMrVf3x7cJ z0jbYN4}u&1;Xq?+G2k<#=THU12%e*M2fB>*BX59B1{R>*0S`!81g#Hzo3yVcPF)kY zaS)RB3pHtf1F{jMK+=Jj{Z5nqP@5Vq0Id9Q*75@>pObt7%L#;x@SDU41uo&=S{{fb zKeok|(6=P6w?Be_U~l39uJIHfIe($I0pGzrDIeFsApEtm?|A-dpGO80W?-iSGuJ2} z+eo}oZ_?kumMFm2P#>WNPBrLqO$VY4J&VeJmv_kc@HI*MB<+&%$1WMK6VNGe$w~fh zr60fi)^jL)`K!`^C--_#{f>{O156`|$kQ-_I~iYnB=I3h{UEfh4UlvqZ+`-*e@igR zEpm>5Mo^4E|E@>q_~Aq#bUgK;a%zWhG=A5q|M-`W0D;7ZH6T|%0F}AQk>4wzs-P$9 zmXrgY=->aLAekyAX9IJ2{q-ZX<2tCxG?Wpxz|2!7fC-sjo060{T~~~ql*C*4dg6YU z%yr)J>ug*9uk-lp9QdOUj>IT0n;;s1+(cUiWs30(uN&sK$2;7M94tmjMq9M#D5TQmM>3% z-pispK}JEc24q4D>mU-3#IDB>qV>Nyf))zV5eRCD^8pmREO&X?1E?PH2;FdmD0V^- z+9D&kVUSm$E5t;z^ta^*+#!`y2txPw*u4gj4FhO+^+-e%@)4F_1IUK~)RkT8`2av= zx8ev|r5%7!4M4~TkUg~&D1RCPYd`tgsNTQ^QHj=i2MqHtOhynIxubpiiOP9KHVbSz zKx!$@WR3fgFHO__elGB6%w_E71He7uvwZ|u2|?~eT@|^omNoMAPR0zR0}ly*bMXj4 z7}R83?NAKj0qBj)2>4eUc=un|IUtAB1J-(e^Qaxc>{pTRVA6Lj1%Ku`|B-=)k=6k) z1kw(1){D^X3M~berjc+G;TVeo)>2?=>-#}IfD`ZbL}v1Q09<7^?TE3Vu5w7M+|gHl zush}hgk{_V7|n=<09Ivb6ay6a2q85hw61~VnHh08X@O8qP;_wUx+5R@)fF)#o+r%@ z3eDgCL;@x!)Az4H_5#|s;4Dbk%U8^f!1v0KcCX(-8<2qoc{-)kv2YZ``v zJG=&%4}(oGCb(Lh}TRHUFY%So-F(!(iv%{CS>`v*!02 z(*GL&BM>9}@_$35=UNZo*%=C%%v&@L@{C3-{>)1l=kC^tj+IQJ zAhv|3=BTt#3xvFq(P0E4pb0FC_oo&ZpUKqyCC8c4?B$d`m4bTt4aC#Ud) zH!mkAfRhfu3MyMP2_WwWdFaJiA$1j+Mxy%;uK~%!V1MJB^iQ7W36y~JuhulofAjre zuWE3XS*S%cE89CWCZN?;XvXnJ4m&?%> zVZ4qN1AnT>%hPpyc=-<*#3rl*Gyoh9Jbn(g4+TGnbfHe=hS2H*(14{L|FiV=AoJn3 z-~1};KlFm|&-y{uynoftZ$1crDYFjGR;Gq&;P_A3Wk#bMa|=P~U-uu4026*OqcM+f zVHsZoPl9ERxikOkePRHRCu3zZI;*8%zpkM$YJX(J=FSlSGIv24C}sDMWI7}3bwqS2 zvX9ENI-3AP!LiA>9>{(o^x(Yip@{5>!M99`b%50o(Rv?8-CLePZpj^a-|_Fu__
    ucl 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%0A@()a92jj+ukP} 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 A4BzCU3Rem^vndA^ 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 N{}2B1ryi>KA^_G@EiV87 diff --git a/examples/server/webui/index.html b/examples/server/webui/index.html index 2180ef4ad..d3893ea4e 100644 --- a/examples/server/webui/index.html +++ b/examples/server/webui/index.html @@ -141,6 +141,7 @@ :msg="pendingMsg" :key="pendingMsg.id" :is-generating="isGenerating" + :show-thought-in-progress="config.showThoughtInProgress" :edit-user-msg-and-regenerate="() => {}" :regenerate-msg="() => {}"> @@ -202,6 +203,20 @@

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%0AyKknk3J=!ZU@euhp_>A3_LenN^u!l1|x#HsR>3 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

+ +
+ Reasoning models +
+
+ + Expand though process by default for generating message +
+
+ + Exclude thought process when sending request to API (Recommended for DeepSeek-R1) +
+
+
Advanced config @@ -261,7 +276,17 @@
- +
+ + + + Thinking + + Thought Process + + +
+
`; } + +/** + * filter out redundant fields upon sending to API + * @param {Array} messages + * @returns {Array} + */ +function normalizeMsgsForAPI(messages) { + return messages.map((msg) => { + return { + role: msg.role, + content: msg.content, + }; + }); +} + +/** + * recommended for DeepsSeek-R1, filter out content between and tags + * @param {Array} messages + * @returns {Array} + */ +function filterThoughtFromMsgs(messages) { + return messages.map((msg) => { + return { + role: msg.role, + content: msg.role === 'assistant' + ? msg.content.split('').at(-1).trim() + : msg.content, + }; + }); +} From 01f37edf1a6fae76fd9e2e02109aae6995a914f0 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Fri, 24 Jan 2025 09:39:24 +0000 Subject: [PATCH 022/162] Update llama-run README.md (#11386) For consistency Signed-off-by: Eric Curtin --- examples/run/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/run/README.md b/examples/run/README.md index a06805441..89a552079 100644 --- a/examples/run/README.md +++ b/examples/run/README.md @@ -3,11 +3,10 @@ The purpose of this example is to demonstrate a minimal usage of llama.cpp for running models. ```bash -llama-run granite-code +llama-run granite3-moe ``` ```bash -llama-run -h Description: Runs a llm @@ -17,7 +16,7 @@ Usage: Options: -c, --context-size Context size (default: 2048) - -n, --ngl + -n, -ngl, --ngl Number of GPU layers (default: 0) --temp Temperature (default: 0.8) From 1af6945eb0d0e97525dc0ec18167abf05c28f482 Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Fri, 24 Jan 2025 12:21:35 +0100 Subject: [PATCH 023/162] cmake : avoid -march=native when reproducible build is wanted (#11366) See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable. Without this patch, compiling on different machines produced different binaries, which made verification of results difficult. Fixes: #11317 This patch was done while working on reproducible builds for openSUSE. --- ggml/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index 185079aa4..ff68ddc21 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -58,7 +58,8 @@ else() set(GGML_BLAS_VENDOR_DEFAULT "Generic") endif() -if (CMAKE_CROSSCOMPILING) +if (CMAKE_CROSSCOMPILING OR DEFINED ENV{SOURCE_DATE_EPOCH}) + message(STATUS "Setting GGML_NATIVE_DEFAULT to OFF") set(GGML_NATIVE_DEFAULT OFF) else() set(GGML_NATIVE_DEFAULT ON) From 8137b4bb2b5fd4cb4a752bfe69ccfd915a313d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Fri, 24 Jan 2025 12:38:31 +0100 Subject: [PATCH 024/162] CPU/CUDA: fix (GQA) mul mat back, add CUDA support (#11380) --- ggml/src/ggml-cpu/ggml-cpu.c | 4 +- ggml/src/ggml-cpu/ggml-cpu.cpp | 3 +- ggml/src/ggml-cuda/binbcast.cu | 54 ++++++++------- ggml/src/ggml-cuda/ggml-cuda.cu | 2 +- ggml/src/ggml-cuda/out-prod.cu | 7 +- ggml/src/ggml.c | 32 +++++---- tests/test-backend-ops.cpp | 115 +++++++++++++++++++++++++++----- 7 files changed, 156 insertions(+), 61 deletions(-) diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index 0ed92b3ff..9e627da8c 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -7883,7 +7883,7 @@ static void ggml_compute_forward_out_prod_f32( float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); ggml_vec_mad_f32_unroll(ne0, nb01, nb11, d, s0, s1); } @@ -7892,7 +7892,7 @@ static void ggml_compute_forward_out_prod_f32( float * s0 = (float *) ((char *) src0->data + ( i01*nb01 + i02*nb02 + i03*nb03)); float * s1 = (float *) ((char *) src1->data + (i1*nb10 + i11*nb11 + i12*nb12 + i13*nb13)); - float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); + float * d = (float *) ((char *) dst->data + ( i1*nb1 + i2*nb2 + i3*nb3)); ggml_vec_mad_f32(ne0, d, s0, *s1); } diff --git a/ggml/src/ggml-cpu/ggml-cpu.cpp b/ggml/src/ggml-cpu/ggml-cpu.cpp index 35a1c876c..2ccb4b472 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.cpp +++ b/ggml/src/ggml-cpu/ggml-cpu.cpp @@ -416,7 +416,8 @@ static bool ggml_backend_cpu_device_supports_op(ggml_backend_dev_t dev, const st case GGML_OP_IM2COL_BACK: return src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32; case GGML_OP_OUT_PROD: - return (src0->type == GGML_TYPE_F32 || ggml_is_quantized(src0->type)) && src1->type == GGML_TYPE_F32; + return (src0->type == GGML_TYPE_F32 || (ggml_is_quantized(src0->type) && src0->ne[2] == src1->ne[2] && src0->ne[3] == src1->ne[3])) && + src1->type == GGML_TYPE_F32 && op->type == GGML_TYPE_F32; default: return true; } diff --git a/ggml/src/ggml-cuda/binbcast.cu b/ggml/src/ggml-cuda/binbcast.cu index c7b6be4e2..ce4b9cfb5 100644 --- a/ggml/src/ggml-cuda/binbcast.cu +++ b/ggml/src/ggml-cuda/binbcast.cu @@ -93,26 +93,31 @@ static __global__ void k_bin_bcast_unravel(const src0_t * src0, const src1_t * s template static __global__ void k_repeat_back( - const T * __restrict__ src, T * __restrict__ dst, const int64_t ne00, const int64_t ne01, const int64_t ne02, - const int64_t ne0, const int64_t ne1, const int64_t ne2) { + const T * __restrict__ src, T * __restrict__ dst, const int64_t ne00, const int64_t ne01, const int64_t ne02, const int64_t ne03, + const size_t s00, const size_t s01, const size_t s02, const size_t s03, + const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3) { - const int64_t tid0 = (int64_t) blockIdx.x*blockDim.x + threadIdx.x; - const int64_t tid1 = (int64_t) blockIdx.y*blockDim.y + threadIdx.y; - const int64_t tid2 = (int64_t) blockIdx.z*blockDim.z + threadIdx.z; + const int64_t tid0 = int64_t(blockIdx.x)*blockDim.x + threadIdx.x; + const int64_t tid1 = int64_t(blockIdx.y)*blockDim.y + threadIdx.y; + const int64_t tid23 = int64_t(blockIdx.z)*blockDim.z + threadIdx.z; + const int64_t tid2 = tid23 % ne2; + const int64_t tid3 = tid23 / ne2; if (tid0 >= ne0) { return; } T sum = 0; - for (int64_t i2 = tid2; i2 < ne02; i2 += ne2) { - for (int64_t i1 = tid1; i1 < ne01; i1 += ne1) { - for (int64_t i0 = tid0; i0 < ne00; i0 += ne0) { - sum += src[i2*ne01*ne00 + i1*ne00 + i0]; + for (int64_t i3 = tid3; i3 < ne03; i3 += ne3) { + for (int64_t i2 = tid2; i2 < ne02; i2 += ne2) { + for (int64_t i1 = tid1; i1 < ne01; i1 += ne1) { + for (int64_t i0 = tid0; i0 < ne00; i0 += ne0) { + sum += src[i3*s03 + i2*s02 + i1*s01 + i0*s00]; + } } } } - dst[tid2*ne1*ne0 + tid1*ne0 + tid0] = sum; + dst[tid3*ne2*ne1*ne0 + tid2*ne1*ne0 + tid1*ne0 + tid0] = sum; } template @@ -274,12 +279,14 @@ struct bin_bcast_cuda { template static void repeat_back_cuda( - const T * src, T * dst, const int64_t ne00, const int64_t ne01, const int64_t ne02, - const int64_t ne0, const int64_t ne1, const int64_t ne2, cudaStream_t stream) { + const T * src, T * dst, const int64_t ne00, const int64_t ne01, const int64_t ne02, const int64_t ne03, + const size_t s00, const size_t s01, const size_t s02, const size_t s03, + const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { const dim3 block_dims(WARP_SIZE, 1, 1); - const dim3 block_nums((ne0 + WARP_SIZE - 1) / WARP_SIZE, ne1, ne2); - k_repeat_back<<>>(src, dst, ne00, ne01, ne02, ne0, ne1, ne2); + const dim3 block_nums((ne0 + WARP_SIZE - 1) / WARP_SIZE, ne1, ne2*ne3); + k_repeat_back<<>> + (src, dst, ne00, ne01, ne02, ne03, s00, s01, s02, s03, ne0, ne1, ne2, ne3); } template @@ -326,27 +333,26 @@ void ggml_cuda_op_repeat_back(ggml_backend_cuda_context & ctx, ggml_tensor * dst const ggml_tensor * src0 = dst->src[0]; GGML_ASSERT(src0->type == dst->type); - GGML_ASSERT(ggml_is_contiguous(src0)); GGML_ASSERT(ggml_is_contiguous(dst)); GGML_ASSERT(ggml_can_repeat(dst, src0)); cudaStream_t stream = ctx.stream(); - const int64_t ne00 = src0->ne[0]; - const int64_t ne01 = src0->ne[1]; - const int64_t ne02 = src0->ne[2]; - GGML_ASSERT(src0->ne[3] == 1); + GGML_TENSOR_UNARY_OP_LOCALS; - const int64_t ne0 = dst->ne[0]; - const int64_t ne1 = dst->ne[1]; - const int64_t ne2 = dst->ne[2]; - GGML_ASSERT(dst->ne[3] == 1); + GGML_ASSERT(ne2*ne3 <= (1 << 15)); + + const size_t ts = ggml_type_size(src0->type); + const size_t s00 = nb00 / ts; + const size_t s01 = nb01 / ts; + const size_t s02 = nb02 / ts; + const size_t s03 = nb03 / ts; switch (dst->type) { case GGML_TYPE_F32: { const float * src0_d = (const float *) src0->data; float * dst_d = (float *) dst->data; - repeat_back_cuda(src0_d, dst_d, ne00, ne01, ne02, ne0, ne1, ne2, stream); + repeat_back_cuda(src0_d, dst_d, ne00, ne01, ne02, ne03, s00, s01, s02, s03, ne0, ne1, ne2, ne3, stream); } break; default: { GGML_ASSERT(false); diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 7fd1fc853..e602419bc 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -3002,7 +3002,7 @@ static bool ggml_backend_cuda_device_supports_op(ggml_backend_dev_t dev, const g return src0_type != GGML_TYPE_I32 && src0_type != GGML_TYPE_I16; } break; case GGML_OP_REPEAT_BACK: - return op->type == GGML_TYPE_F32 && op->src[0]->ne[3] == 1; + return op->type == GGML_TYPE_F32 && (op->src[0]->ne[2]*op->src[0]->ne[3]) <= (1 << 15); case GGML_OP_CONCAT: { ggml_type src0_type = op->src[0]->type; diff --git a/ggml/src/ggml-cuda/out-prod.cu b/ggml/src/ggml-cuda/out-prod.cu index 73e3e2c47..c9b2b699c 100644 --- a/ggml/src/ggml-cuda/out-prod.cu +++ b/ggml/src/ggml-cuda/out-prod.cu @@ -34,6 +34,9 @@ void ggml_cuda_out_prod(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { CUBLAS_CHECK(cublasSetStream(handle, stream)); + const int64_t lda = nb01 / sizeof(float); + const int64_t ldc = nb1 / sizeof(float); + const bool src1_T = ggml_is_transposed(src1); const cublasOperation_t src1_cublas_op = src1_T ? CUBLAS_OP_N : CUBLAS_OP_T; const int64_t ldb = (src1_T ? nb10 : nb11) / sizeof(float); @@ -57,9 +60,9 @@ void ggml_cuda_out_prod(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { CUBLAS_CHECK( cublasSgemm(handle, CUBLAS_OP_N, src1_cublas_op, ne0, ne1, ne01, - &alpha, src0_d + (i3/dps3)*s03 + (i2/dps2)*s02, ne00, + &alpha, src0_d + (i3/dps3)*s03 + (i2/dps2)*s02, lda, src1_d + i3 *s13 + i2 *s12, ldb, - &beta, dst_d + i3 *s3 + i2 *s2, ne0)); + &beta, dst_d + i3 *s3 + i2 *s2, ldc)); } } } diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index b1d0d4913..92c4294c5 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -5339,7 +5339,7 @@ static void ggml_compute_backward( } break; case GGML_OP_MUL: { if (src0_needs_grads) { - ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, src1, grad)); + ggml_add_or_set(ctx, cgraph, isrc0, ggml_mul(ctx, grad, src1)); } if (src1_needs_grads) { struct ggml_tensor * tmp = ggml_mul(ctx, src0, grad); @@ -5431,21 +5431,25 @@ static void ggml_compute_backward( // src1.shape [n,p,qq,rr] if (src0_needs_grads) { - struct ggml_tensor * s1_tg = + GGML_ASSERT(grad->ne[2] == src1->ne[2]); + GGML_ASSERT(grad->ne[3] == src1->ne[3]); + struct ggml_tensor * tmp = ggml_out_prod(ctx, // [n,m,qq,rr] src1, // [n,p,qq,rr] grad); // [m,p,qq,rr] - const int64_t qq = s1_tg->ne[2]; - const int64_t rr = s1_tg->ne[3]; - const int64_t q1 = src0->ne[2]; - const int64_t r1 = src0->ne[3]; - const bool ne2_broadcasted = qq > q1; - const bool ne3_broadcasted = rr > r1; - if (ne2_broadcasted || ne3_broadcasted) { - // sum broadcast repetitions of s1_tg into shape of src0 - s1_tg = ggml_repeat_back(ctx, s1_tg, src0); + if (!ggml_are_same_shape(tmp, src0)) { + GGML_ASSERT(tmp->ne[0] == src0->ne[0]); + GGML_ASSERT(tmp->ne[1] == src0->ne[1]); + GGML_ASSERT(tmp->ne[3] == 1); + + const int64_t nr2 = tmp->ne[2] / src0->ne[2]; + const size_t nb2 = tmp->nb[2] * nr2; + const size_t nb3 = tmp->nb[2]; + + tmp = ggml_view_4d(ctx, tmp, src0->ne[0], src0->ne[1], src0->ne[2], nr2, tmp->nb[1], nb2, nb3, 0); + tmp = ggml_repeat_back(ctx, tmp, src0); } - ggml_add_or_set(ctx, cgraph, isrc0, s1_tg /*= [n,m,q1,r1]*/); + ggml_add_or_set(ctx, cgraph, isrc0, tmp); } if (src1_needs_grads) { ggml_add_or_set(ctx, cgraph, isrc1, @@ -5514,7 +5518,9 @@ static void ggml_compute_backward( if (src0_needs_grads) { GGML_ASSERT(!cgraph->grads[isrc0] || ggml_is_contiguous(cgraph->grads[isrc0])); GGML_ASSERT(ggml_is_contiguous(grad)); - ggml_add_or_set(ctx, cgraph, isrc0, grad); + GGML_ASSERT(ggml_nelements(tensor) == ggml_nelements(src0)); + ggml_add_or_set(ctx, cgraph, isrc0, + ggml_are_same_shape(tensor, src0) ? grad : ggml_reshape(ctx, grad, src0)); } } break; case GGML_OP_RESHAPE: { diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 381956a04..468016403 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -1302,6 +1302,59 @@ struct test_repeat : public test_case { } }; +// GGML_OP_REPEAT_BACK +struct test_repeat_back : public test_case { + const ggml_type type; + const std::array ne; + const std::array nr; + const bool v; // whether src is a noncontiguous view + + std::string vars() override { + return VARS_TO_STR4(type, ne, nr, v); + } + + size_t op_size(ggml_tensor * t) override { + return ggml_nbytes(t) * 2; + } + + test_repeat_back(ggml_type type = GGML_TYPE_F32, + std::array ne = {8, 6, 4, 2}, + std::array nr = {2, 2, 2, 2}, + bool v = false) + : type(type), ne(ne), nr(nr), v(v) {} + + ggml_tensor * build_graph(ggml_context * ctx) override { + ggml_tensor * src = ggml_new_tensor_4d(ctx, type, ne[0]*nr[0], ne[1]*nr[1], ne[2]*nr[2], ne[3]*nr[3]); + ggml_set_name(src, "src"); + + if (v) { + GGML_ASSERT(ne[0] % 2 == 0); + GGML_ASSERT(ne[1] % 2 == 0); + GGML_ASSERT(ne[2] % 2 == 0); + GGML_ASSERT(ne[3] % 2 == 0); + GGML_ASSERT(nr[0] % 2 == 0 || nr[0] == 1); + GGML_ASSERT(nr[1] % 2 == 0 || nr[1] == 1); + GGML_ASSERT(nr[2] % 2 == 0 || nr[2] == 1); + GGML_ASSERT(nr[3] % 2 == 0 || nr[3] == 1); + + const int64_t ne00 = nr[0] == 1 ? src->ne[0] : src->ne[0] / 2; + const int64_t ne01 = nr[1] == 1 ? src->ne[1] : src->ne[1] / 2; + const int64_t ne02 = nr[2] == 1 ? src->ne[2] : src->ne[2] / 2; + const int64_t ne03 = nr[3] == 1 ? src->ne[3] : src->ne[3] / 2; + + src = ggml_view_4d(ctx, src, ne00, ne01, ne02, ne03, src->nb[1], src->nb[2], src->nb[3], 0); + } + + ggml_tensor * target = ggml_new_tensor(ctx, type, 4, ne.data()); + ggml_set_name(target, "target"); + + ggml_tensor * out = ggml_repeat_back(ctx, src, target); + ggml_set_name(out, "out"); + + return out; + } +}; + // GGML_OP_DUP struct test_dup : public test_case { const ggml_type type; @@ -1849,6 +1902,10 @@ struct test_mul_mat : public test_case { return 5e-4; } + int64_t grad_nmax() override { + return 20000; + } + uint64_t op_flops(ggml_tensor * t) override { GGML_UNUSED(t); return 2 * m * n * k * bs[0] * nr[0] * bs[1] * nr[1]; @@ -1878,8 +1935,12 @@ struct test_mul_mat : public test_case { a = ggml_new_tensor_4d(ctx, type_a, ne_a[per[0]], ne_a[per[1]], ne_a[per[2]], ne_a[per[3]]); b = ggml_new_tensor_4d(ctx, type_b, ne_b[per[0]], ne_b[per[1]], ne_b[per[2]], ne_b[per[3]]); - ggml_set_param(ctx, a); - ggml_set_param(ctx, b); + if (!ggml_is_quantized(type_a)) { + if (bs[1] == 1 && nr[1] == 1) { + ggml_set_param(ctx, a); + } + ggml_set_param(ctx, b); + } ggml_set_name(a, "a"); ggml_set_name(b, "b"); @@ -1890,8 +1951,12 @@ struct test_mul_mat : public test_case { } else { a = ggml_new_tensor_4d(ctx, type_a, k, m, bs[0], bs[1]); b = ggml_new_tensor_4d(ctx, type_b, k, n, bs[0]*nr[0], bs[1]*nr[1]); - ggml_set_param(ctx, a); - ggml_set_param(ctx, b); + if (!ggml_is_quantized(type_a)) { + if (bs[1] == 1 && nr[1] == 1) { + ggml_set_param(ctx, a); + } + ggml_set_param(ctx, b); + } ggml_set_name(a, "a"); ggml_set_name(b, "b"); } @@ -3798,6 +3863,16 @@ static std::vector> make_test_cases_eval() { test_cases.emplace_back(new test_repeat(GGML_TYPE_I16, {10, 5, 4, ne3}, {1, 1, 1, 2})); } + for (bool view : {false, true}) { + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_F32, {8, 6, 4, 2}, {1, 1, 1, 1}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_F32, {8, 6, 4, 2}, {2, 1, 1, 1}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_F32, {8, 6, 4, 2}, {1, 2, 1, 1}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_F32, {8, 6, 4, 2}, {1, 1, 2, 1}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_F32, {8, 6, 4, 2}, {1, 1, 1, 2}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_I32, {8, 6, 4, 2}, {2, 1, 1, 1}, view)); + test_cases.emplace_back(new test_repeat_back(GGML_TYPE_I16, {8, 6, 4, 2}, {1, 1, 1, 2}, view)); + } + test_cases.emplace_back(new test_dup(GGML_TYPE_F32)); test_cases.emplace_back(new test_dup(GGML_TYPE_F16)); test_cases.emplace_back(new test_dup(GGML_TYPE_I32)); @@ -3919,21 +3994,25 @@ static std::vector> make_test_cases_eval() { for (ggml_type type_a : base_types) { for (ggml_type type_b : {GGML_TYPE_F32, GGML_TYPE_F16}) { // test cases without permutation - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 1}, {2, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 10}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 10}, {2, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 10}, {1, 2})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {10, 10}, {2, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {1, 1}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {1, 1}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {1, 1}, {1, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 1}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 1}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 2}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 2}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 2}, {1, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {3, 2}, {2, 2})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, { 1, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 1}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 1}, {2, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 10}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 10}, {2, 1})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 10}, {1, 2})); - test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {10, 10}, {2, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {1, 1}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {1, 1}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {1, 1}, {1, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 1}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 1}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 2}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 2}, {2, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 2}, {1, 2})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {3, 2}, {2, 2})); // test cases with permutation test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 256, {2, 3}, {1, 1}, {0, 2, 1, 3})); From a07c2c8a52464646ce13040e62c1ea04459f721e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jafar=20Uru=C3=A7?= Date: Fri, 24 Jan 2025 13:30:13 +0000 Subject: [PATCH 025/162] docs : Update readme to build targets for local docker build (#11368) --- docs/backend/SYCL.md | 2 +- docs/build.md | 2 +- docs/docker.md | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/backend/SYCL.md b/docs/backend/SYCL.md index 8d8312e91..89ddbd669 100644 --- a/docs/backend/SYCL.md +++ b/docs/backend/SYCL.md @@ -133,7 +133,7 @@ The docker build option is currently limited to *intel GPU* targets. ### Build image ```sh # Using FP16 -docker build -t llama-cpp-sycl --build-arg="GGML_SYCL_F16=ON" -f .devops/llama-cli-intel.Dockerfile . +docker build -t llama-cpp-sycl --build-arg="GGML_SYCL_F16=ON" --target light -f .devops/intel.Dockerfile . ``` *Notes*: diff --git a/docs/build.md b/docs/build.md index 3b0d2211d..dd6495028 100644 --- a/docs/build.md +++ b/docs/build.md @@ -286,7 +286,7 @@ You don't need to install Vulkan SDK. It will be installed inside the container. ```sh # Build the image -docker build -t llama-cpp-vulkan -f .devops/llama-cli-vulkan.Dockerfile . +docker build -t llama-cpp-vulkan --target light -f .devops/vulkan.Dockerfile . # Then, use it: docker run -it --rm -v "$(pwd):/app:Z" --device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card1:/dev/dri/card1 llama-cpp-vulkan -m "/app/models/YOUR_MODEL_FILE" -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 diff --git a/docs/docker.md b/docs/docker.md index 8d90e6ded..dac9a9ec1 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -60,9 +60,9 @@ Assuming one has the [nvidia-container-toolkit](https://github.com/NVIDIA/nvidia ## Building Docker locally ```bash -docker build -t local/llama.cpp:full-cuda -f .devops/full-cuda.Dockerfile . -docker build -t local/llama.cpp:light-cuda -f .devops/llama-cli-cuda.Dockerfile . -docker build -t local/llama.cpp:server-cuda -f .devops/llama-server-cuda.Dockerfile . +docker build -t local/llama.cpp:full-cuda --target full -f .devops/cuda.Dockerfile . +docker build -t local/llama.cpp:light-cuda --target light -f .devops/cuda.Dockerfile . +docker build -t local/llama.cpp:server-cuda --target server -f .devops/cuda.Dockerfile . ``` You may want to pass in some different `ARGS`, depending on the CUDA environment supported by your container host, as well as the GPU architecture. @@ -95,9 +95,9 @@ Assuming one has the [mt-container-toolkit](https://developer.mthreads.com/musa/ ## Building Docker locally ```bash -docker build -t local/llama.cpp:full-musa -f .devops/full-musa.Dockerfile . -docker build -t local/llama.cpp:light-musa -f .devops/llama-cli-musa.Dockerfile . -docker build -t local/llama.cpp:server-musa -f .devops/llama-server-musa.Dockerfile . +docker build -t local/llama.cpp:full-musa --target full -f .devops/musa.Dockerfile . +docker build -t local/llama.cpp:light-musa --target light -f .devops/musa.Dockerfile . +docker build -t local/llama.cpp:server-musa --target server -f .devops/musa.Dockerfile . ``` You may want to pass in some different `ARGS`, depending on the MUSA environment supported by your container host, as well as the GPU architecture. From 9755129c27da76d768bd7e47e206bac61b40cf18 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 24 Jan 2025 18:41:30 +0200 Subject: [PATCH 026/162] release : pack /lib in the packages (#11392) * release : pack /lib and /include in the packages * cmake : put libs in /bin * TMP : push artifacts * Revert "TMP : push artifacts" This reverts commit 4decf2c4dfc5cdf5d96ea44c03c8f9801ab41262. * ci : fix HIP cmake compiler options to be on first line * ci : restore the original HIP commands * ci : change ubuntu build from latest to 20.04 * ci : try to fix macos build rpaths * ci : remove obsolete MacOS build * TMP : push artifacts * ci : change back to ubuntu latest * ci : macos set build rpath to "@loader_path" * ci : fix typo * ci : change ubuntu package to 22.04 * Revert "TMP : push artifacts" This reverts commit 537b09e70ffc604c414ee78acf3acb4c940ec597. --- .github/workflows/build.yml | 101 +++++++++++++++++++----------------- CMakeLists.txt | 1 + 2 files changed, 53 insertions(+), 49 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe3b2cdfa..fda726955 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,6 +56,7 @@ jobs: mkdir build cd build cmake .. \ + -DCMAKE_BUILD_RPATH="@loader_path" \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_CURL=ON \ -DGGML_METAL_USE_BF16=ON \ @@ -120,6 +121,7 @@ jobs: # Metal is disabled due to intermittent failures with Github runners not having a GPU: # https://github.com/ggerganov/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313 cmake -B build \ + -DCMAKE_BUILD_RPATH="@loader_path" \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_CURL=ON \ -DGGML_METAL=OFF \ @@ -160,8 +162,8 @@ jobs: path: llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip name: llama-bin-macos-x64.zip - ubuntu-latest-cmake: - runs-on: ubuntu-latest + ubuntu-cpu-cmake: + runs-on: ubuntu-22.04 steps: - name: Clone @@ -181,7 +183,10 @@ jobs: run: | mkdir build cd build - cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_CURL=ON -DGGML_RPC=ON + cmake .. \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_CURL=ON \ + -DGGML_RPC=ON cmake --build . --config Release -j $(nproc) - name: Test @@ -256,7 +261,10 @@ jobs: run: | mkdir build cd build - cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + cmake .. \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} cmake --build . --config ${{ matrix.build_type }} -j $(nproc) - name: Build (no OpenMP) @@ -265,7 +273,11 @@ jobs: run: | mkdir build cd build - cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DGGML_OPENMP=OFF + cmake .. \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DGGML_OPENMP=OFF cmake --build . --config ${{ matrix.build_type }} -j $(nproc) - name: Test @@ -295,7 +307,8 @@ jobs: run: | mkdir build cd build - cmake -DGGML_RPC=ON .. + cmake .. \ + -DGGML_RPC=ON cmake --build . --config Release -j $(nproc) - name: Test @@ -325,7 +338,8 @@ jobs: run: | mkdir build cd build - cmake -DGGML_VULKAN=ON .. + cmake .. \ + -DGGML_VULKAN=ON cmake --build . --config Release -j $(nproc) - name: Test @@ -352,13 +366,18 @@ jobs: - name: Build with native CMake HIP support id: cmake_build run: | - cmake -B build -S . -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" -DGGML_HIP=ON + cmake -B build -S . \ + -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" \ + -DGGML_HIP=ON cmake --build build --config Release -j $(nproc) - name: Build with legacy HIP support id: cmake_build_legacy_hip run: | - cmake -B build2 -S . -DCMAKE_C_COMPILER=hipcc -DCMAKE_CXX_COMPILER=hipcc -DGGML_HIP=ON + cmake -B build2 -S . \ + -DCMAKE_C_COMPILER=hipcc \ + -DCMAKE_CXX_COMPILER=hipcc \ + -DGGML_HIP=ON cmake --build build2 --config Release -j $(nproc) ubuntu-22-cmake-musa: @@ -379,7 +398,8 @@ jobs: - name: Build with native CMake MUSA support id: cmake_build run: | - cmake -B build -S . -DGGML_MUSA=ON + cmake -B build -S . \ + -DGGML_MUSA=ON cmake --build build --config Release -j $(nproc) ubuntu-22-cmake-sycl: @@ -420,7 +440,10 @@ jobs: source /opt/intel/oneapi/setvars.sh mkdir build cd build - cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx .. + cmake .. \ + -DGGML_SYCL=ON \ + -DCMAKE_C_COMPILER=icx \ + -DCMAKE_CXX_COMPILER=icpx cmake --build . --config Release -j $(nproc) ubuntu-22-cmake-sycl-fp16: @@ -461,42 +484,13 @@ jobs: source /opt/intel/oneapi/setvars.sh mkdir build cd build - cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON .. + cmake .. \ + -DGGML_SYCL=ON \ + -DCMAKE_C_COMPILER=icx \ + -DCMAKE_CXX_COMPILER=icpx \ + -DGGML_SYCL_F16=ON cmake --build . --config Release -j $(nproc) - # TODO: build with GGML_METAL=OFF because test-backend-ops fail on "Apple Paravirtual device" and I don't know - # how to debug it. - # ref: https://github.com/ggerganov/llama.cpp/actions/runs/7132125951/job/19422043567?pr=4359#step:5:6584 - # would be great if we fix these - macOS-latest-cmake: - runs-on: macos-latest - - steps: - - name: Clone - id: checkout - uses: actions/checkout@v4 - - - name: Dependencies - id: depends - continue-on-error: true - run: | - brew update - - - name: Build - id: cmake_build - run: | - sysctl -a - mkdir build - cd build - cmake -DLLAMA_FATAL_WARNINGS=ON -DGGML_METAL=OFF .. - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) - - - name: Test - id: cmake_test - run: | - cd build - ctest -L main --verbose --timeout 900 - macOS-latest-cmake-ios: runs-on: macos-latest @@ -827,7 +821,13 @@ jobs: - name: Build with CMake run: | - cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=89-real -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined -DLLAMA_FATAL_WARNINGS=ON + cmake -S . -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CUDA_ARCHITECTURES=89-real \ + -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DGGML_NATIVE=OFF \ + -DGGML_CUDA=ON cmake --build build windows-2019-cmake-cuda: @@ -916,7 +916,11 @@ jobs: shell: cmd run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -S . -B build -G "Ninja Multi-Config" -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DGGML_RPC=ON + cmake -S . -B build -G "Ninja Multi-Config" \ + -DLLAMA_BUILD_SERVER=ON \ + -DGGML_NATIVE=OFF \ + -DGGML_CUDA=ON \ + -DGGML_RPC=ON set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1 cmake --build build --config Release -j %NINJA_JOBS% -t ggml cmake --build build --config Release @@ -1201,8 +1205,7 @@ jobs: runs-on: ubuntu-latest needs: - - ubuntu-latest-cmake - - macOS-latest-cmake + - ubuntu-cpu-cmake - windows-latest-cmake - windows-2019-cmake-cuda - windows-latest-cmake-hip-release diff --git a/CMakeLists.txt b/CMakeLists.txt index 42caed486..7e41a44d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(LLAMA_STANDALONE ON) From 9fbadaef4f0903c64895ba9c70f02ac6e6a4b41c Mon Sep 17 00:00:00 2001 From: uvos Date: Fri, 24 Jan 2025 17:50:49 +0100 Subject: [PATCH 027/162] rocBLAS: Avoid fp32->fp16->fp32 conversion on cdna (#11356) --- ggml/src/ggml-cuda/ggml-cuda.cu | 62 ++++++++++++++++++++------------- ggml/src/ggml-cuda/mmvq.cu | 3 +- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index e602419bc..fb3d9e2d9 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1082,7 +1082,9 @@ static void ggml_cuda_op_mul_mat_cublas( const int compute_capability = ggml_cuda_info().devices[id].cc; - if (compute_capability >= GGML_CUDA_CC_VOLTA && (src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type)) && ggml_is_contiguous(src0) && row_diff == src0->ne[1] && dst->op_params[0] == GGML_PREC_DEFAULT) { + const bool use_fp16 = (src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type)) && ggml_is_contiguous(src0) && row_diff == src0->ne[1] && dst->op_params[0] == GGML_PREC_DEFAULT; + + if (compute_capability >= GGML_CUDA_CC_VOLTA && use_fp16) { // convert src0 and src1 to fp16, multiply as fp16, convert dst to fp32 ggml_cuda_pool_alloc src0_as_f16(ctx.pool(id)); if (src0->type != GGML_TYPE_F16) { @@ -1103,28 +1105,38 @@ static void ggml_cuda_op_mul_mat_cublas( to_fp16_cuda(src1_ddf_i, src1_as_f16.get(), ne, stream); } const half * src1_ptr = src1->type == GGML_TYPE_F16 ? (const half *) src1_ddf_i : src1_as_f16.get(); - ggml_cuda_pool_alloc dst_f16(ctx.pool(id), row_diff*src1_ncols); - - const half alpha_f16 = 1.0f; - const half beta_f16 = 0.0f; - - cublasComputeType_t cu_compute_type = CUBLAS_COMPUTE_16F; - if (ggml_cuda_info().devices[ctx.device].cc == GGML_CUDA_CC_CDNA) { - cu_compute_type = CUBLAS_COMPUTE_32F; - } CUBLAS_CHECK(cublasSetStream(ctx.cublas_handle(id), stream)); - CUBLAS_CHECK( - cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, - row_diff, src1_ncols, ne10, - &alpha_f16, src0_ptr, CUDA_R_16F, ne00, - src1_ptr, CUDA_R_16F, ne10, - &beta_f16, dst_f16.get(), CUDA_R_16F, ldc, - cu_compute_type, - CUBLAS_GEMM_DEFAULT_TENSOR_OP)); - const to_fp32_cuda_t to_fp32_cuda = ggml_get_to_fp32_cuda(GGML_TYPE_F16); - to_fp32_cuda(dst_f16.get(), dst_dd_i, row_diff*src1_ncols, stream); + if (compute_capability == GGML_CUDA_CC_CDNA) { + const float alpha = 1.0f; + const float beta = 0.0f; + CUBLAS_CHECK( + cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, + row_diff, src1_ncols, ne10, + &alpha, src0_ptr, CUDA_R_16F, ne00, + src1_ptr, CUDA_R_16F, ne10, + &beta, dst_dd_i, CUDA_R_32F, ldc, + CUBLAS_COMPUTE_32F, + CUBLAS_GEMM_DEFAULT_TENSOR_OP)); + } else { + ggml_cuda_pool_alloc dst_f16(ctx.pool(id), row_diff*src1_ncols); + + const half alpha_f16 = 1.0f; + const half beta_f16 = 0.0f; + + CUBLAS_CHECK( + cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, + row_diff, src1_ncols, ne10, + &alpha_f16, src0_ptr, CUDA_R_16F, ne00, + src1_ptr, CUDA_R_16F, ne10, + &beta_f16, dst_dd_i, CUDA_R_16F, ldc, + CUBLAS_COMPUTE_16F, + CUBLAS_GEMM_DEFAULT_TENSOR_OP)); + + const to_fp32_cuda_t to_fp32_cuda = ggml_get_to_fp32_cuda(GGML_TYPE_F16); + to_fp32_cuda(dst_f16.get(), dst_dd_i, row_diff*src1_ncols, stream); + } } else { ggml_cuda_pool_alloc src0_ddq_as_f32(ctx.pool(id)); ggml_cuda_pool_alloc src1_ddq_as_f32(ctx.pool(id)); @@ -1613,10 +1625,6 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co cublasComputeType_t cu_compute_type = CUBLAS_COMPUTE_16F; cudaDataType_t cu_data_type = CUDA_R_16F; - if (ggml_cuda_info().devices[ctx.device].cc == GGML_CUDA_CC_CDNA) { - cu_compute_type = CUBLAS_COMPUTE_32F; - } - // dst strides size_t nbd2 = dst->nb[2]; size_t nbd3 = dst->nb[3]; @@ -1645,6 +1653,12 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co beta = &beta_f32; } + if (ggml_cuda_info().devices[ctx.device].cc == GGML_CUDA_CC_CDNA) { + cu_compute_type = CUBLAS_COMPUTE_32F; + alpha = &alpha_f32; + beta = &beta_f32; + } + GGML_ASSERT(ne12 % ne02 == 0); GGML_ASSERT(ne13 % ne03 == 0); diff --git a/ggml/src/ggml-cuda/mmvq.cu b/ggml/src/ggml-cuda/mmvq.cu index e3b912d87..4fb466ca0 100644 --- a/ggml/src/ggml-cuda/mmvq.cu +++ b/ggml/src/ggml-cuda/mmvq.cu @@ -142,7 +142,7 @@ static void mul_mat_vec_q_cuda( int64_t nwarps = 1; int64_t rows_per_cuda_block = 1; - if (ggml_cuda_info().devices[id].cc < GGML_CUDA_CC_CDNA || ggml_cuda_info().devices[id].cc == GGML_CUDA_CC_RDNA1) { // NVIDIA and AMD older than RDNA2 but not CDNA + if (ggml_cuda_info().devices[id].cc < GGML_CUDA_CC_RDNA2) { // NVIDIA and AMD older than RDNA2 switch(ncols_y) { case 1: nwarps = 4; @@ -166,6 +166,7 @@ static void mul_mat_vec_q_cuda( break; } } + const int64_t nblocks = (nrows_x + rows_per_cuda_block - 1) / rows_per_cuda_block; const dim3 block_nums(nblocks, 1, 1); const dim3 block_dims(WARP_SIZE, nwarps, 1); From c5d9effb49649db80a52caf5c0626de6f342f526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Fri, 24 Jan 2025 21:02:43 +0100 Subject: [PATCH 028/162] CUDA: fix FP16 cuBLAS GEMM (#11396) --- ggml/src/ggml-cuda/ggml-cuda.cu | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index fb3d9e2d9..fbe889a01 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1114,8 +1114,8 @@ static void ggml_cuda_op_mul_mat_cublas( CUBLAS_CHECK( cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, row_diff, src1_ncols, ne10, - &alpha, src0_ptr, CUDA_R_16F, ne00, - src1_ptr, CUDA_R_16F, ne10, + &alpha, src0_ptr, CUDA_R_16F, ne00, + src1_ptr, CUDA_R_16F, ne10, &beta, dst_dd_i, CUDA_R_32F, ldc, CUBLAS_COMPUTE_32F, CUBLAS_GEMM_DEFAULT_TENSOR_OP)); @@ -1128,9 +1128,9 @@ static void ggml_cuda_op_mul_mat_cublas( CUBLAS_CHECK( cublasGemmEx(ctx.cublas_handle(id), CUBLAS_OP_T, CUBLAS_OP_N, row_diff, src1_ncols, ne10, - &alpha_f16, src0_ptr, CUDA_R_16F, ne00, - src1_ptr, CUDA_R_16F, ne10, - &beta_f16, dst_dd_i, CUDA_R_16F, ldc, + &alpha_f16, src0_ptr, CUDA_R_16F, ne00, + src1_ptr, CUDA_R_16F, ne10, + &beta_f16, dst_f16.get(), CUDA_R_16F, ldc, CUBLAS_COMPUTE_16F, CUBLAS_GEMM_DEFAULT_TENSOR_OP)); From 5f0db9522f347b095f84c3033d6c1c1895402e25 Mon Sep 17 00:00:00 2001 From: uvos Date: Sat, 25 Jan 2025 00:02:23 +0100 Subject: [PATCH 029/162] hip : Add hipGraph and VMM support to ROCM (#11362) * Add hipGraph support * Enable VMM on rocm --- ggml/CMakeLists.txt | 1 + ggml/src/ggml-cuda/common.cuh | 2 +- ggml/src/ggml-cuda/ggml-cuda.cu | 58 +++++++++++++++++++++----------- ggml/src/ggml-cuda/vendors/hip.h | 43 +++++++++++++++++++++++ ggml/src/ggml-hip/CMakeLists.txt | 8 +++++ 5 files changed, 92 insertions(+), 20 deletions(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index ff68ddc21..123c755ac 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -154,6 +154,7 @@ option(GGML_CUDA_FA_ALL_QUANTS "ggml: compile all quants for FlashA option(GGML_CUDA_GRAPHS "ggml: use CUDA graphs (llama.cpp only)" ${GGML_CUDA_GRAPHS_DEFAULT}) option(GGML_HIP "ggml: use HIP" OFF) +option(GGML_HIP_GRAPHS "ggml: use HIP graph, experimental, slow" OFF) option(GGML_HIP_UMA "ggml: use HIP unified memory architecture" OFF) option(GGML_VULKAN "ggml: use Vulkan" OFF) option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 2c0a56226..a79fa83c5 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -588,7 +588,7 @@ struct ggml_tensor_extra_gpu { }; -#if (CUDART_VERSION >= 12000) && defined(GGML_CUDA_USE_GRAPHS) +#if ((CUDART_VERSION >= 12000) && defined(GGML_CUDA_USE_GRAPHS)) || defined(GGML_HIP_GRAPHS) #define USE_CUDA_GRAPH #endif diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index fbe889a01..a53a1bbd0 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -62,7 +62,7 @@ static_assert(sizeof(half) == sizeof(ggml_fp16_t), "wrong fp16 size"); [[noreturn]] void ggml_cuda_error(const char * stmt, const char * func, const char * file, int line, const char * msg) { int id = -1; // in case cudaGetDevice fails - cudaGetDevice(&id); + (void)cudaGetDevice(&id); GGML_LOG_ERROR(GGML_CUDA_NAME " error: %s\n", msg); GGML_LOG_ERROR(" current device: %d, in function %s at %s:%d\n", id, func, file, line); @@ -152,7 +152,7 @@ static ggml_cuda_device_info ggml_cuda_init() { for (int id = 0; id < info.device_count; ++id) { int device_vmm = 0; -#if !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#if !defined(GGML_CUDA_NO_VMM) CUdevice device; CU_CHECK(cuDeviceGet(&device, id)); CU_CHECK(cuDeviceGetAttribute(&device_vmm, CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED, device)); @@ -164,7 +164,7 @@ static ggml_cuda_device_info ggml_cuda_init() { alloc_prop.location.id = id; CU_CHECK(cuMemGetAllocationGranularity(&info.devices[id].vmm_granularity, &alloc_prop, CU_MEM_ALLOC_GRANULARITY_RECOMMENDED)); } -#endif // !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#endif // !defined(GGML_CUDA_NO_VMM) info.devices[id].vmm = !!device_vmm; cudaDeviceProp prop; @@ -300,7 +300,7 @@ struct ggml_cuda_pool_leg : public ggml_cuda_pool { }; // pool with virtual memory -#if !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#if !defined(GGML_CUDA_NO_VMM) struct ggml_cuda_pool_vmm : public ggml_cuda_pool { static const size_t CUDA_POOL_VMM_MAX_SIZE = 1ull << 35; // 32 GB @@ -309,6 +309,9 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { size_t pool_used = 0; size_t pool_size = 0; size_t granularity; +#if defined(GGML_USE_HIP) + std::vector> mappings; +#endif explicit ggml_cuda_pool_vmm(int device) : device(device), @@ -317,7 +320,14 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { ~ggml_cuda_pool_vmm() { if (pool_addr != 0) { +#if defined(GGML_USE_HIP) + // Workaround for https://github.com/ROCm/ROCR-Runtime/issues/285 + for (std::pair & mapping : mappings) { + CU_CHECK(cuMemUnmap(mapping.first, mapping.second)); + } +#else CU_CHECK(cuMemUnmap(pool_addr, pool_size)); +#endif CU_CHECK(cuMemAddressFree(pool_addr, CUDA_POOL_VMM_MAX_SIZE)); } } @@ -350,7 +360,11 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { } // map at the end of the pool - CU_CHECK(cuMemMap(pool_addr + pool_size, reserve_size, 0, handle, 0)); + CUdeviceptr start_ptr = (CUdeviceptr)((char *)(pool_addr) + pool_size); + CU_CHECK(cuMemMap(start_ptr, reserve_size, 0, handle, 0)); +#if defined(GGML_USE_HIP) + mappings.push_back({start_ptr, reserve_size}); +#endif // the memory allocation handle is no longer needed after mapping CU_CHECK(cuMemRelease(handle)); @@ -360,7 +374,7 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { access.location.type = CU_MEM_LOCATION_TYPE_DEVICE; access.location.id = device; access.flags = CU_MEM_ACCESS_FLAGS_PROT_READWRITE; - CU_CHECK(cuMemSetAccess(pool_addr + pool_size, reserve_size, &access, 1)); + CU_CHECK(cuMemSetAccess((CUdeviceptr)((char *)(pool_addr) + pool_size), reserve_size, &access, 1)); // add to the pool pool_size += reserve_size; @@ -372,7 +386,7 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { GGML_ASSERT(pool_addr != 0); - void * ptr = (void *) (pool_addr + pool_used); + void * ptr = (void *) ((CUdeviceptr)((char *)(pool_addr) + pool_used)); *actual_size = size; pool_used += size; @@ -391,17 +405,17 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { pool_used -= size; // all deallocations must be in reverse order of the allocations - GGML_ASSERT(ptr == (void *) (pool_addr + pool_used)); + GGML_ASSERT(ptr == (void *) ((char *)(pool_addr) + pool_used)); } }; -#endif // !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#endif // !defined(GGML_CUDA_NO_VMM) std::unique_ptr ggml_backend_cuda_context::new_pool_for_device(int device) { -#if !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#if !defined(GGML_CUDA_NO_VMM) if (ggml_cuda_info().devices[device].vmm) { return std::unique_ptr(new ggml_cuda_pool_vmm(device)); } -#endif // !defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM) +#endif // !defined(GGML_CUDA_NO_VMM) return std::unique_ptr(new ggml_cuda_pool_leg(device)); } @@ -547,7 +561,7 @@ static ggml_backend_buffer_t ggml_backend_cuda_buffer_type_alloc_buffer(ggml_bac cudaError_t err = ggml_cuda_device_malloc(&dev_ptr, size, buft_ctx->device); if (err != cudaSuccess) { // clear the error - cudaGetLastError(); + (void)cudaGetLastError(); GGML_LOG_ERROR("%s: allocating %.2f MiB on device %d: cudaMalloc failed: %s\n", __func__, size / 1024.0 / 1024.0, buft_ctx->device, cudaGetErrorString(err)); return nullptr; } @@ -962,7 +976,7 @@ static void * ggml_cuda_host_malloc(size_t size) { cudaError_t err = cudaMallocHost((void **) &ptr, size); if (err != cudaSuccess) { // clear the error - cudaGetLastError(); + (void)cudaGetLastError(); GGML_LOG_DEBUG("%s: failed to allocate %.2f MiB of pinned memory: %s\n", __func__, size / 1024.0 / 1024.0, cudaGetErrorString(err)); return nullptr; @@ -1209,7 +1223,7 @@ static void ggml_cuda_set_peer_access(const int n_tokens, int main_device) { CUDA_CHECK(err); } else { // reset the error - cudaGetLastError(); + (void)cudaGetLastError(); } } else { cudaError_t err = cudaDeviceDisablePeerAccess(id_other); @@ -1217,7 +1231,7 @@ static void ggml_cuda_set_peer_access(const int n_tokens, int main_device) { CUDA_CHECK(err); } else { // reset the error - cudaGetLastError(); + (void)cudaGetLastError(); } } } @@ -2452,7 +2466,7 @@ static void maintain_cuda_graph(ggml_backend_cuda_context * cuda_ctx, std::vecto if (stat == cudaErrorInvalidDeviceFunction) { // Fails due to incorrect handling by CUDA runtime of CUDA BLAS node. // We don't need to update blas nodes, so clear error and move on. - cudaGetLastError(); + (void)cudaGetLastError(); } else { GGML_ASSERT(stat == cudaSuccess); } @@ -2507,14 +2521,20 @@ static bool is_cuda_graph_update_required(ggml_backend_cuda_context * cuda_ctx, static void update_cuda_graph_executable(ggml_backend_cuda_context * cuda_ctx) { cudaGraphExecUpdateResultInfo result_info; +#ifdef __HIP_PLATFORM_AMD__ + hipGraphNode_t errorNode; + hipError_t stat = hipGraphExecUpdate(cuda_ctx->cuda_graph->instance, cuda_ctx->cuda_graph->graph, &errorNode, &result_info); +#else cudaError_t stat = cudaGraphExecUpdate(cuda_ctx->cuda_graph->instance, cuda_ctx->cuda_graph->graph, &result_info); +#endif if (stat == cudaErrorGraphExecUpdateFailure) { #ifndef NDEBUG GGML_LOG_DEBUG("%s: CUDA graph update failed\n", __func__); #endif + // The pre-existing graph exec cannot be updated due to violated constraints // so instead clear error and re-instantiate - cudaGetLastError(); + (void)cudaGetLastError(); CUDA_CHECK(cudaGraphExecDestroy(cuda_ctx->cuda_graph->instance)); cuda_ctx->cuda_graph->instance = nullptr; CUDA_CHECK(cudaGraphInstantiate(&cuda_ctx->cuda_graph->instance, cuda_ctx->cuda_graph->graph, NULL, NULL, 0)); @@ -2742,7 +2762,7 @@ bool ggml_backend_cuda_register_host_buffer(void * buffer, size_t size) { cudaError_t err = cudaHostRegister(buffer, size, cudaHostRegisterPortable | cudaHostRegisterReadOnly); if (err != cudaSuccess) { // clear the error - cudaGetLastError(); + (void)cudaGetLastError(); GGML_LOG_DEBUG("%s: failed to register %.2f MiB of pinned memory: %s\n", __func__, size / 1024.0 / 1024.0, cudaGetErrorString(err)); @@ -2762,7 +2782,7 @@ void ggml_backend_cuda_unregister_host_buffer(void * buffer) { cudaError_t err = cudaHostUnregister(buffer); if (err != cudaSuccess) { // clear the error - cudaGetLastError(); + (void)cudaGetLastError(); } } diff --git a/ggml/src/ggml-cuda/vendors/hip.h b/ggml/src/ggml-cuda/vendors/hip.h index c905b15d7..8594093f0 100644 --- a/ggml/src/ggml-cuda/vendors/hip.h +++ b/ggml/src/ggml-cuda/vendors/hip.h @@ -19,6 +19,12 @@ #define CUBLAS_TF32_TENSOR_OP_MATH 0 #define CUDA_R_16F HIPBLAS_R_16F #define CUDA_R_32F HIPBLAS_R_32F +#define CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED hipDeviceAttributeVirtualMemoryManagementSupported +#define CU_MEM_ALLOC_GRANULARITY_RECOMMENDED hipMemAllocationGranularityRecommended +#define CU_MEM_ALLOCATION_TYPE_PINNED hipMemAllocationTypePinned +#define CU_MEM_LOCATION_TYPE_DEVICE hipMemLocationTypeDevice +#define CU_MEM_ACCESS_FLAGS_PROT_READWRITE hipMemAccessFlagsProtReadWrite +#define CU_CHECK(fn) {hipError_t err = fn; if(err != hipSuccess) { GGML_ABORT("HipVMM Failure: %s\n", hipGetErrorString(err)); }} #define __shfl_xor_sync(mask, var, laneMask, width) __shfl_xor(var, laneMask, width) #define cublasComputeType_t hipblasDatatype_t //deprecated, new hipblasComputeType_t not in 5.6 #define cublasCreate hipblasCreate @@ -74,6 +80,21 @@ #define cudaMemGetInfo hipMemGetInfo #define cudaOccupancyMaxPotentialBlockSize hipOccupancyMaxPotentialBlockSize #define cudaSetDevice hipSetDevice +#define cuDeviceGet hipDeviceGet +#define CUdevice hipDevice_t +#define CUdeviceptr hipDeviceptr_t +#define cuMemUnmap hipMemUnmap +#define CUmemAccessDesc hipMemAccessDesc +#define cuMemAddressFree hipMemAddressFree +#define cuMemRelease hipMemRelease +#define CUmemGenericAllocationHandle hipMemGenericAllocationHandle_t +#define cuMemCreate hipMemCreate +#define cuMemAddressReserve hipMemAddressReserve +#define cuMemMap hipMemMap +#define cuMemSetAccess hipMemSetAccess +#define cuMemGetAllocationGranularity hipMemGetAllocationGranularity +#define CUmemAllocationProp hipMemAllocationProp +#define cuDeviceGetAttribute hipDeviceGetAttribute #define cudaStreamCreateWithFlags hipStreamCreateWithFlags #define cudaStreamDestroy hipStreamDestroy #define cudaStreamFireAndForget hipStreamFireAndForget @@ -81,6 +102,28 @@ #define cudaStreamPerThread hipStreamPerThread #define cudaStreamSynchronize hipStreamSynchronize #define cudaStreamWaitEvent(stream, event, flags) hipStreamWaitEvent(stream, event, flags) +#define cudaGraphExec_t hipGraphExec_t +#define cudaGraphNode_t hipGraphNode_t +#define cudaKernelNodeParams hipKernelNodeParams +#define cudaKernelNodeParams hipKernelNodeParams +#define cudaGraphExecDestroy hipGraphExecDestroy +#define cudaGraphLaunch hipGraphLaunch +#define cudaErrorGraphExecUpdateFailure hipErrorGraphExecUpdateFailure +#define cudaGraphExecUpdateResultInfo hipGraphExecUpdateResult +#define cudaGraphNodeType hipGraphNodeType +#define cudaGraphNodeTypeKernel hipGraphNodeTypeKernel +#define cudaGraphInstantiate hipGraphInstantiate +#define cudaStreamEndCapture hipStreamEndCapture +#define cudaGraphDestroy hipGraphDestroy +#define cudaGraphKernelNodeSetParams hipGraphKernelNodeSetParams +#define cudaErrorInvalidDeviceFunction hipErrorInvalidDeviceFunction +#define cudaGraphKernelNodeGetParams hipGraphKernelNodeGetParams +#define cudaGraphNodeGetType hipGraphNodeGetType +#define cudaGraphGetNodes hipGraphGetNodes +#define cudaGraphExecUpdate hipGraphExecUpdate +#define cudaStreamCaptureModeRelaxed hipStreamCaptureModeRelaxed +#define cudaStreamBeginCapture hipStreamBeginCapture +#define cudaGraph_t hipGraph_t #define cudaStream_t hipStream_t #define cudaSuccess hipSuccess #define __trap() do { abort(); __builtin_unreachable(); } while(0) diff --git a/ggml/src/ggml-hip/CMakeLists.txt b/ggml/src/ggml-hip/CMakeLists.txt index d090ba9bd..77994a698 100644 --- a/ggml/src/ggml-hip/CMakeLists.txt +++ b/ggml/src/ggml-hip/CMakeLists.txt @@ -92,6 +92,14 @@ if (GGML_CUDA_NO_PEER_COPY) add_compile_definitions(GGML_CUDA_NO_PEER_COPY) endif() +if (GGML_HIP_GRAPHS) + add_compile_definitions(GGML_HIP_GRAPHS) +endif() + +if (GGML_CUDA_NO_VMM) + add_compile_definitions(GGML_CUDA_NO_VMM) +endif() + if (CXX_IS_HIPCC) set_source_files_properties(${GGML_SOURCES_ROCM} PROPERTIES LANGUAGE CXX) target_link_libraries(ggml-hip PRIVATE hip::device) From 466ea66f338d63109540dae1df97ccfdbf4cd08f Mon Sep 17 00:00:00 2001 From: jiahao su Date: Sat, 25 Jan 2025 07:26:01 +0800 Subject: [PATCH 030/162] CANN: Add Ascend CANN build ci (#10217) * CANN: Add Ascend CANN build ci * Update build.yml * Modify cann image version * Update build.yml * Change to run on x86 system * Update build.yml * Update build.yml * Modify format error * Update build.yml * Add 'Ascend NPU' label restrictions * Exclude non PR event Co-authored-by: Yuanhao Ji * Update build.yml --------- Co-authored-by: Yuanhao Ji --- .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fda726955..7d08574f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1464,3 +1464,37 @@ jobs: # popd # emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} # make + + openEuler-latest-cmake-cann: + if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'Ascend NPU') }} + defaults: + run: + shell: bash -el {0} + runs-on: ubuntu-24.04-arm + strategy: + matrix: + cann: + - '8.0.rc3.beta1-910b-openeuler22.03-py3.10' + device: + - 'ascend910b3' + build: + - 'Release' + container: ascendai/cann:${{ matrix.cann }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Dependencies + run: | + yum update -y + yum install -y git gcc gcc-c++ make cmake + + - name: Build + run: | + export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/$(uname -m)-linux/devlib/:${LD_LIBRARY_PATH} + + cmake -S . -B build \ + -DCMAKE_BUILD_TYPE=${{ matrix.build }} \ + -DGGML_CANN=on \ + -DSOC_TYPE=${{ matrix.device }} + cmake --build build -j $(nproc) From 00c24acb2ac49d9f8318e808b6ada2f5649f253f Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 25 Jan 2025 13:36:48 +0200 Subject: [PATCH 031/162] ci : fix line breaks on windows builds (#11409) * ci : fix line breaks on windows builds * cont : another try * ci : fix powershell line breaks --- .github/workflows/build.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7d08574f5..37cb6b1e7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -916,10 +916,10 @@ jobs: shell: cmd run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - cmake -S . -B build -G "Ninja Multi-Config" \ - -DLLAMA_BUILD_SERVER=ON \ - -DGGML_NATIVE=OFF \ - -DGGML_CUDA=ON \ + cmake -S . -B build -G "Ninja Multi-Config" ^ + -DLLAMA_BUILD_SERVER=ON ^ + -DGGML_NATIVE=OFF ^ + -DGGML_CUDA=ON ^ -DGGML_RPC=ON set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1 cmake --build build --config Release -j %NINJA_JOBS% -t ggml @@ -1073,7 +1073,12 @@ jobs: run: | $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" - cmake -G "Unix Makefiles" -B build -S . -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release -DGGML_RPC=ON + cmake -G "Unix Makefiles" -B build -S . ` + -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" ` + -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" ` + -DCMAKE_BUILD_TYPE=Release ` + -DGGML_HIP=ON ` + -DGGML_RPC=ON cmake --build build -j ${env:NUMBER_OF_PROCESSORS} windows-latest-cmake-hip-release: @@ -1111,7 +1116,13 @@ jobs: run: | $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" - cmake -G "Unix Makefiles" -B build -S . -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS=${{ matrix.gpu_target }} -DGGML_RPC=ON + cmake -G "Unix Makefiles" -B build -S . ` + -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" ` + -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" ` + -DCMAKE_BUILD_TYPE=Release ` + -DAMDGPU_TARGETS=${{ matrix.gpu_target }} ` + -DGGML_HIP=ON ` + -DGGML_RPC=ON cmake --build build -j ${env:NUMBER_OF_PROCESSORS} md "build\bin\rocblas\library\" cp "${env:HIP_PATH}\bin\hipblas.dll" "build\bin\" From 20a758155bc5f37290b20ea44d76ba99c4e7f2cb Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Sat, 25 Jan 2025 15:22:29 +0100 Subject: [PATCH 032/162] docker : fix CPU ARM build (#11403) * docker : fix CPU ARM build * add CURL to other builds --- .devops/cpu.Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.devops/cpu.Dockerfile b/.devops/cpu.Dockerfile index 8d020f16c..ab0e951bc 100644 --- a/.devops/cpu.Dockerfile +++ b/.devops/cpu.Dockerfile @@ -2,6 +2,8 @@ ARG UBUNTU_VERSION=22.04 FROM ubuntu:$UBUNTU_VERSION AS build +ARG TARGETARCH + RUN apt-get update && \ apt-get install -y build-essential git cmake libcurl4-openssl-dev @@ -9,7 +11,11 @@ WORKDIR /app COPY . . -RUN cmake -S . -B build -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_CURL=ON -DCMAKE_BUILD_TYPE=Release && \ +RUN if [ "$TARGETARCH" = "amd64" ]; then \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU_ALL_VARIANTS=ON; \ + else \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON; \ + fi && \ cmake --build build -j $(nproc) RUN mkdir -p /app/lib && \ From 49b0e3cec4b67dc9f4debe3a16acd4c819f751d6 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sat, 25 Jan 2025 16:36:44 +0100 Subject: [PATCH 033/162] server : fix cleaning up stream task (#11418) * server : fix cleaning up stream task * one more spot --- examples/server/server.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index a94c3822c..b1cde2d7f 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1427,16 +1427,16 @@ struct server_queue { int post(server_task task, bool front = false) { std::unique_lock lock(mutex_tasks); GGML_ASSERT(task.id != -1); + // if this is cancel task make sure to clean up pending tasks + if (task.type == SERVER_TASK_TYPE_CANCEL) { + cleanup_pending_task(task.id_target); + } QUE_DBG("new task, id = %d, front = %d\n", task.id, front); if (front) { queue_tasks.push_front(std::move(task)); } else { queue_tasks.push_back(std::move(task)); } - // if this is cancel task make sure to clean up pending tasks - if (task.type == SERVER_TASK_TYPE_CANCEL) { - cleanup_pending_task(task.id_target); - } condition_tasks.notify_one(); return task.id; } @@ -1448,16 +1448,16 @@ struct server_queue { if (task.id == -1) { task.id = id++; } + // if this is cancel task make sure to clean up pending tasks + if (task.type == SERVER_TASK_TYPE_CANCEL) { + cleanup_pending_task(task.id_target); + } QUE_DBG("new task, id = %d/%d, front = %d\n", task.id, (int) tasks.size(), front); if (front) { queue_tasks.push_front(std::move(task)); } else { queue_tasks.push_back(std::move(task)); } - // if this is cancel task make sure to clean up pending tasks - if (task.type == SERVER_TASK_TYPE_CANCEL) { - cleanup_pending_task(task.id_target); - } } condition_tasks.notify_one(); return 0; @@ -1554,10 +1554,10 @@ struct server_queue { } private: - void cleanup_pending_task(int id_task) { + void cleanup_pending_task(int id_target) { // no need lock because this is called exclusively by post() - auto rm_func = [id_task](const server_task & task) { - return task.id_target == id_task; + auto rm_func = [id_target](const server_task & task) { + return task.id_target == id_target; }; queue_tasks.erase( std::remove_if(queue_tasks.begin(), queue_tasks.end(), rm_func), From 6e264a905bec9e4c0111eb4c91379c88accef7c6 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Sat, 25 Jan 2025 17:22:41 +0100 Subject: [PATCH 034/162] docker : add GGML_CPU_ARM_ARCH arg to select ARM architecture to build for (#11419) --- .devops/cpu.Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.devops/cpu.Dockerfile b/.devops/cpu.Dockerfile index ab0e951bc..522ee8147 100644 --- a/.devops/cpu.Dockerfile +++ b/.devops/cpu.Dockerfile @@ -4,6 +4,8 @@ FROM ubuntu:$UBUNTU_VERSION AS build ARG TARGETARCH +ARG GGML_CPU_ARM_ARCH=armv8-a + RUN apt-get update && \ apt-get install -y build-essential git cmake libcurl4-openssl-dev @@ -12,9 +14,12 @@ WORKDIR /app COPY . . RUN if [ "$TARGETARCH" = "amd64" ]; then \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU_ALL_VARIANTS=ON; \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON; \ + elif [ "$TARGETARCH" = "arm64" ]; then \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}; \ else \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON; \ + echo "Unsupported architecture"; \ + exit 1; \ fi && \ cmake --build build -j $(nproc) From ca6baf76c1a7adb9134b08d2bc4c65557297ff87 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Sat, 25 Jan 2025 11:26:37 -0600 Subject: [PATCH 035/162] build: add /bigobj to MSVC build (#11407) --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e41a44d2..e7f520582 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,7 @@ endif() if (MSVC) add_compile_options("$<$:/utf-8>") add_compile_options("$<$:/utf-8>") + add_compile_options(/bigobj) endif() # From 26771a1491f3a4c3d5b99c4c267b81aca9a7dfa0 Mon Sep 17 00:00:00 2001 From: uvos Date: Sat, 25 Jan 2025 21:01:12 +0100 Subject: [PATCH 036/162] Hip: disable VMM on hip as it seams that it dosent work in some configurations (#11420) --- ggml/CMakeLists.txt | 1 + ggml/src/ggml-cuda/common.cuh | 4 ++++ ggml/src/ggml-cuda/ggml-cuda.cu | 14 +++++++------- ggml/src/ggml-hip/CMakeLists.txt | 4 ++-- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index 123c755ac..bbabb14de 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -155,6 +155,7 @@ option(GGML_CUDA_GRAPHS "ggml: use CUDA graphs (llama.cpp on option(GGML_HIP "ggml: use HIP" OFF) option(GGML_HIP_GRAPHS "ggml: use HIP graph, experimental, slow" OFF) +option(GGML_HIP_NO_VMM "ggml: do not try to use HIP VMM" ON) option(GGML_HIP_UMA "ggml: use HIP unified memory architecture" OFF) option(GGML_VULKAN "ggml: use Vulkan" OFF) option(GGML_VULKAN_CHECK_RESULTS "ggml: run Vulkan op checks" OFF) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index a79fa83c5..bb6120568 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -131,6 +131,10 @@ typedef float dfloat; // dequantize float typedef float2 dfloat2; #endif // GGML_CUDA_F16 +#if (!defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM)) || (defined(GGML_USE_HIP) && !defined(GGML_HIP_NO_VMM)) +#define GGML_USE_VMM +#endif // (!defined(GGML_USE_HIP) && !defined(GGML_CUDA_NO_VMM)) || (defined(GGML_USE_HIP) && !defined(GGML_HIP_NO_VMM)) + #if (defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL #define FP16_AVAILABLE #endif // (defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index a53a1bbd0..85178abd2 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -152,7 +152,7 @@ static ggml_cuda_device_info ggml_cuda_init() { for (int id = 0; id < info.device_count; ++id) { int device_vmm = 0; -#if !defined(GGML_CUDA_NO_VMM) +#if defined(GGML_USE_VMM) CUdevice device; CU_CHECK(cuDeviceGet(&device, id)); CU_CHECK(cuDeviceGetAttribute(&device_vmm, CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED, device)); @@ -164,7 +164,7 @@ static ggml_cuda_device_info ggml_cuda_init() { alloc_prop.location.id = id; CU_CHECK(cuMemGetAllocationGranularity(&info.devices[id].vmm_granularity, &alloc_prop, CU_MEM_ALLOC_GRANULARITY_RECOMMENDED)); } -#endif // !defined(GGML_CUDA_NO_VMM) +#endif // defined(GGML_USE_VMM) info.devices[id].vmm = !!device_vmm; cudaDeviceProp prop; @@ -300,7 +300,7 @@ struct ggml_cuda_pool_leg : public ggml_cuda_pool { }; // pool with virtual memory -#if !defined(GGML_CUDA_NO_VMM) +#if defined(GGML_USE_VMM) struct ggml_cuda_pool_vmm : public ggml_cuda_pool { static const size_t CUDA_POOL_VMM_MAX_SIZE = 1ull << 35; // 32 GB @@ -408,14 +408,14 @@ struct ggml_cuda_pool_vmm : public ggml_cuda_pool { GGML_ASSERT(ptr == (void *) ((char *)(pool_addr) + pool_used)); } }; -#endif // !defined(GGML_CUDA_NO_VMM) +#endif // defined(GGML_USE_VMM) std::unique_ptr ggml_backend_cuda_context::new_pool_for_device(int device) { -#if !defined(GGML_CUDA_NO_VMM) +#if defined(GGML_USE_VMM) if (ggml_cuda_info().devices[device].vmm) { return std::unique_ptr(new ggml_cuda_pool_vmm(device)); } -#endif // !defined(GGML_CUDA_NO_VMM) +#endif // defined(GGML_USE_VMM) return std::unique_ptr(new ggml_cuda_pool_leg(device)); } @@ -3250,7 +3250,7 @@ static ggml_backend_feature * ggml_backend_cuda_get_features(ggml_backend_reg_t features.push_back({ "FORCE_CUBLAS", "1" }); #endif - #ifdef GGML_CUDA_NO_VMM + #ifndef GGML_USE_VMM features.push_back({ "NO_VMM", "1" }); #endif diff --git a/ggml/src/ggml-hip/CMakeLists.txt b/ggml/src/ggml-hip/CMakeLists.txt index 77994a698..ecc3bc66d 100644 --- a/ggml/src/ggml-hip/CMakeLists.txt +++ b/ggml/src/ggml-hip/CMakeLists.txt @@ -96,8 +96,8 @@ if (GGML_HIP_GRAPHS) add_compile_definitions(GGML_HIP_GRAPHS) endif() -if (GGML_CUDA_NO_VMM) - add_compile_definitions(GGML_CUDA_NO_VMM) +if (GGML_HIP_NO_VMM) + add_compile_definitions(GGML_HIP_NO_VMM) endif() if (CXX_IS_HIPCC) From 4a75d19376f2f00dbae6c266eb9c4f3001872b52 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Sat, 25 Jan 2025 15:29:57 -0600 Subject: [PATCH 037/162] vulkan: compile shaders on-demand (#11406) Reduce first-run startup time and memory consumption. Should fix #11339. --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 64 ++++++++++++++++++---------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index c325416d1..a9d6b923c 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -85,6 +85,10 @@ struct vk_pipeline_struct { uint32_t parameter_count; std::array wg_denoms; uint32_t align; + // set to true to request the pipeline is compiled after the dryrun + bool needed {}; + // set to true when the shader has been compiled + bool compiled {}; }; typedef std::shared_ptr vk_pipeline; @@ -186,8 +190,11 @@ struct vk_device_struct { bool mul_mat_id_m; bool mul_mat_id_s; - vk_matmul_pipeline pipeline_matmul_f32; - vk_matmul_pipeline pipeline_matmul_f32_f16; + // set to true to indicate that some shaders need to be compiled after the dryrun + bool need_compiles {}; + + vk_matmul_pipeline pipeline_matmul_f32 {}; + vk_matmul_pipeline pipeline_matmul_f32_f16 {}; vk_matmul_pipeline2 pipeline_matmul_f16; vk_matmul_pipeline2 pipeline_matmul_f16_f32; vk_pipeline pipeline_matmul_split_k_reduce; @@ -195,7 +202,7 @@ struct vk_device_struct { vk_matmul_pipeline2 pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_COUNT]; vk_matmul_pipeline2 pipeline_dequant_mul_mat_mat[GGML_TYPE_COUNT]; - vk_matmul_pipeline pipeline_matmul_id_f32; + vk_matmul_pipeline pipeline_matmul_id_f32 {}; vk_matmul_pipeline2 pipeline_matmul_id_f16; vk_matmul_pipeline2 pipeline_matmul_id_f16_f32; @@ -776,13 +783,6 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin GGML_ASSERT(parameter_count > 0); GGML_ASSERT(wg_denoms[0] > 0 && wg_denoms[1] > 0 && wg_denoms[2] > 0); // NOLINT - pipeline = std::make_shared(); - pipeline->name = name; - pipeline->parameter_count = parameter_count; - pipeline->push_constant_size = push_constant_size; - pipeline->wg_denoms = wg_denoms; - pipeline->align = align; - vk::ShaderModuleCreateInfo shader_module_create_info({}, spv_size, reinterpret_cast(spv_data)); pipeline->shader_module = device->device.createShaderModule(shader_module_create_info); @@ -865,6 +865,7 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin } pipeline->pipeline = device->device.createComputePipeline(VK_NULL_HANDLE, compute_pipeline_create_info).value; + pipeline->compiled = true; { std::lock_guard guard(device->mutex); @@ -875,12 +876,6 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin std::lock_guard guard(compile_count_mutex); assert(compile_count > 0); compile_count--; - - // "Progress bar" for shader compiles - static uint32_t total_compile_count = 0; - if ((total_compile_count++ % 10) == 0) { - std::cerr << "."; - } } compile_count_cond.notify_all(); } @@ -906,6 +901,10 @@ static void ggml_vk_destroy_pipeline(vk::Device& device, vk_pipeline& pipeline) static void ggml_pipeline_request_descriptor_sets(vk_device& device, vk_pipeline& pipeline, uint32_t n) { VK_LOG_DEBUG("ggml_pipeline_request_descriptor_sets(" << pipeline->name << ", " << n << ")"); device->pipeline_descriptor_set_requirements[pipeline->name] += n; + if (!pipeline->compiled) { + pipeline->needed = true; + device->need_compiles = true; + } } static void ggml_pipeline_allocate_descriptor_sets(vk_device& device) { @@ -1388,8 +1387,6 @@ static bool ggml_vk_matmul_shmem_support(const vk_device& device, const std::vec static void ggml_vk_load_shaders(vk_device& device) { VK_LOG_DEBUG("ggml_vk_load_shaders(" << device->name << ")"); - std::cerr << "ggml_vulkan: Compiling shaders"; - // some shaders have a minimum subgroup size const uint32_t subgroup_size_16 = std::max(device->subgroup_size, 16u); const uint32_t subgroup_size_32 = std::max(device->subgroup_size, 32u); @@ -1527,15 +1524,33 @@ static void ggml_vk_load_shaders(vk_device& device) { } } - device->pipeline_matmul_f32 = std::make_shared(); - device->pipeline_matmul_f32_f16 = std::make_shared(); - - device->pipeline_matmul_id_f32 = std::make_shared(); + if (!device->pipeline_matmul_f32) { + device->pipeline_matmul_f32 = std::make_shared(); + } + if (!device->pipeline_matmul_f32_f16) { + device->pipeline_matmul_f32_f16 = std::make_shared(); + } + if (!device->pipeline_matmul_id_f32) { + device->pipeline_matmul_id_f32 = std::make_shared(); + } std::vector> compiles; auto const &ggml_vk_create_pipeline = [&](vk_device& device, vk_pipeline& pipeline, const std::string &name, size_t spv_size, const void* spv_data, const std::string &entrypoint, uint32_t parameter_count, uint32_t push_constant_size, std::array wg_denoms, const std::vector& specialization_constants, uint32_t align, bool disable_robustness = false, bool require_full_subgroups = false, uint32_t required_subgroup_size = 0) { + + if (!pipeline) { + pipeline = std::make_shared(); + pipeline->name = name; + pipeline->parameter_count = parameter_count; + pipeline->push_constant_size = push_constant_size; + pipeline->wg_denoms = wg_denoms; + pipeline->align = align; + } + + if (!pipeline->needed || pipeline->compiled) { + return; + } { // wait until fewer than N compiles are in progress uint32_t N = std::max(1u, std::thread::hardware_concurrency()); @@ -2050,7 +2065,7 @@ static void ggml_vk_load_shaders(vk_device& device) { for (auto &c : compiles) { c.wait(); } - std::cerr << "Done!" << std::endl; + device->need_compiles = false; } static bool ggml_vk_khr_cooperative_matrix_support(const vk::PhysicalDeviceProperties& props, const vk::PhysicalDeviceDriverProperties& driver_props); @@ -7656,6 +7671,9 @@ static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cg for (int i = 0; i < cgraph->n_nodes; i++) { ggml_vk_build_graph(ctx, cgraph->nodes[i], i, nullptr, 0, true, false, false); } + if (ctx->device->need_compiles) { + ggml_vk_load_shaders(ctx->device); + } ggml_vk_preallocate_buffers(ctx); ggml_pipeline_allocate_descriptor_sets(ctx->device); From f35726c2fb0a824246e004ab4bedcde37f3f0dd0 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Sat, 25 Jan 2025 20:10:03 -0600 Subject: [PATCH 038/162] build: apply MSVC /bigobj option to c/cpp files only (#11423) --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e7f520582..2f2b1a201 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,8 @@ endif() if (MSVC) add_compile_options("$<$:/utf-8>") add_compile_options("$<$:/utf-8>") - add_compile_options(/bigobj) + add_compile_options("$<$:/bigobj>") + add_compile_options("$<$:/bigobj>") endif() # From 2cc9b8c32c78d09cd1b4df0aaa605ab2d0176243 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 26 Jan 2025 14:30:15 +0200 Subject: [PATCH 039/162] readme : update hot topics --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97d028670..ff8536773 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) ## Hot topics +- **How to use [MTLResidencySet](https://developer.apple.com/documentation/metal/mtlresidencyset?language=objc) to keep the GPU memory active?** https://github.com/ggerganov/llama.cpp/pull/11427 - **VS Code extension for FIM completions:** https://github.com/ggml-org/llama.vscode - Vim/Neovim plugin for FIM completions: https://github.com/ggml-org/llama.vim - Introducing GGUF-my-LoRA https://github.com/ggerganov/llama.cpp/discussions/10123 From 1d8ee06000ecdd274e7f0a0465d6bf26ad2b3491 Mon Sep 17 00:00:00 2001 From: Frank Mai Date: Sun, 26 Jan 2025 23:20:34 +0800 Subject: [PATCH 040/162] rpc: fix register position (#11424) Signed-off-by: thxCode --- src/llama-model.cpp | 2 ++ src/llama.cpp | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 031b4c30b..18bd0b071 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -1303,10 +1303,12 @@ bool llama_model::load_tensors(llama_model_loader & ml) { const int act_gpu_layers = devices.empty() ? 0 : std::min(n_gpu_layers, (int)n_layer + 1); auto get_layer_buft_list = [&](int il) -> llama_model::impl::layer_dev { if (il < i_gpu_start || (il - i_gpu_start) >= act_gpu_layers) { + LLAMA_LOG_DEBUG("load_tensors: layer %3d assigned to device %s\n", il, ggml_backend_dev_name(cpu_dev)); return {cpu_dev, &pimpl->cpu_buft_list}; } const int layer_gpu = std::upper_bound(splits.begin(), splits.begin() + n_devices(), float(il - i_gpu_start)/act_gpu_layers) - splits.begin(); auto * dev = devices.at(layer_gpu); + LLAMA_LOG_DEBUG("load_tensors: layer %3d assigned to device %s\n", il, ggml_backend_dev_name(dev)); return {dev, &pimpl->gpu_buft_list.at(dev)}; }; diff --git a/src/llama.cpp b/src/llama.cpp index e8cfe5012..094157ccf 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -9405,6 +9405,7 @@ static struct llama_model * llama_model_load_from_file_impl( model->devices.push_back(*dev); } } else { + std::vector rpc_servers; // use all available devices for (size_t i = 0; i < ggml_backend_dev_count(); ++i) { ggml_backend_dev_t dev = ggml_backend_dev_get(i); @@ -9415,10 +9416,19 @@ static struct llama_model * llama_model_load_from_file_impl( break; case GGML_BACKEND_DEVICE_TYPE_GPU: - model->devices.push_back(dev); + ggml_backend_reg_t reg = ggml_backend_dev_backend_reg(dev); + if (ggml_backend_reg_name(reg) == std::string("RPC")) { + rpc_servers.push_back(dev); + } else { + model->devices.push_back(dev); + } break; } } + // add RPC servers at the front of the list + if (!rpc_servers.empty()) { + model->devices.insert(model->devices.begin(), rpc_servers.begin(), rpc_servers.end()); + } } // if using single GPU mode, remove all except the main GPU From 19f65187cbf009801288861133267ee5573ceead Mon Sep 17 00:00:00 2001 From: bandoti <141645996+bandoti@users.noreply.github.com> Date: Sun, 26 Jan 2025 12:07:48 -0400 Subject: [PATCH 041/162] cmake: add ggml find package (#11369) * Add initial ggml cmake package * Add build numbers to ggml find-package * Expand variables with GGML_ prefix * Guard against adding to cache variable twice * Add git to msys2 workflow * Handle ggml-cpu-* variants * Link ggml/ggml-base libraries to their targets * Replace main-cmake-pkg with simple-cmake-pkg * Interface features require c_std_90 * Fix typo * Removed unnecessary bracket from status message * Update examples/simple-cmake-pkg/README.md Co-authored-by: Georgi Gerganov * Update examples/simple-cmake-pkg/README.md Co-authored-by: Georgi Gerganov --------- Co-authored-by: Georgi Gerganov --- .github/workflows/build.yml | 1 + CMakeLists.txt | 23 +-- cmake/llama-config.cmake.in | 156 +----------------- examples/main-cmake-pkg/CMakeLists.txt | 32 ---- examples/main-cmake-pkg/README.md | 31 ---- .../.gitignore | 0 examples/simple-cmake-pkg/CMakeLists.txt | 11 ++ examples/simple-cmake-pkg/README.md | 34 ++++ ggml/CMakeLists.txt | 71 ++++++++ ggml/cmake/ggml-config.cmake.in | 147 +++++++++++++++++ ggml/src/CMakeLists.txt | 11 ++ 11 files changed, 284 insertions(+), 233 deletions(-) delete mode 100644 examples/main-cmake-pkg/CMakeLists.txt delete mode 100644 examples/main-cmake-pkg/README.md rename examples/{main-cmake-pkg => simple-cmake-pkg}/.gitignore (100%) create mode 100644 examples/simple-cmake-pkg/CMakeLists.txt create mode 100644 examples/simple-cmake-pkg/README.md create mode 100644 ggml/cmake/ggml-config.cmake.in diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37cb6b1e7..cd8422f8a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -613,6 +613,7 @@ jobs: msystem: ${{matrix.sys}} install: >- base-devel + git mingw-w64-${{matrix.env}}-toolchain mingw-w64-${{matrix.env}}-cmake mingw-w64-${{matrix.env}}-openblas diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f2b1a201..4c62d1788 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,27 +188,14 @@ set(LLAMA_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location o set(LLAMA_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") set(LLAMA_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") -# At the moment some compile definitions are placed within the ggml/src -# directory but not exported on the `ggml` target. This could be improved by -# determining _precisely_ which defines are necessary for the llama-config -# package. -# -set(GGML_TRANSIENT_DEFINES) -get_target_property(GGML_DIRECTORY ggml SOURCE_DIR) -get_directory_property(GGML_DIR_DEFINES DIRECTORY ${GGML_DIRECTORY} COMPILE_DEFINITIONS) -if (GGML_DIR_DEFINES) - list(APPEND GGML_TRANSIENT_DEFINES ${GGML_DIR_DEFINES}) -endif() -get_target_property(GGML_TARGET_DEFINES ggml COMPILE_DEFINITIONS) -if (GGML_TARGET_DEFINES) - list(APPEND GGML_TRANSIENT_DEFINES ${GGML_TARGET_DEFINES}) -endif() -get_target_property(GGML_LINK_LIBRARIES ggml LINK_LIBRARIES) -# all public headers set(LLAMA_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/llama.h ${CMAKE_CURRENT_SOURCE_DIR}/include/llama-cpp.h) -set_target_properties(llama PROPERTIES PUBLIC_HEADER "${LLAMA_PUBLIC_HEADERS}") + +set_target_properties(llama + PROPERTIES + PUBLIC_HEADER "${LLAMA_PUBLIC_HEADERS}") + install(TARGETS llama LIBRARY PUBLIC_HEADER) configure_package_config_file( diff --git a/cmake/llama-config.cmake.in b/cmake/llama-config.cmake.in index 5c55bc6b8..40ade96e5 100644 --- a/cmake/llama-config.cmake.in +++ b/cmake/llama-config.cmake.in @@ -3,159 +3,13 @@ set(LLAMA_BUILD_COMMIT @LLAMA_BUILD_COMMIT@) set(LLAMA_BUILD_NUMBER @LLAMA_BUILD_NUMBER@) set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@) -set(GGML_STATIC @GGML_STATIC@) -set(GGML_NATIVE @GGML_NATIVE@) -set(GGML_LTO @GGML_LTO@) -set(GGML_CCACHE @GGML_CCACHE@) -set(GGML_AVX @GGML_AVX@) -set(GGML_AVX2 @GGML_AVX2@) -set(GGML_AVX512 @GGML_AVX512@) -set(GGML_AVX512_VBMI @GGML_AVX512_VBMI@) -set(GGML_AVX512_VNNI @GGML_AVX512_VNNI@) -set(GGML_AVX512_BF16 @GGML_AVX512_BF16@) -set(GGML_AMX_TILE @GGML_AMX_TILE@) -set(GGML_AMX_INT8 @GGML_AMX_INT8@) -set(GGML_AMX_BF16 @GGML_AMX_BF16@) -set(GGML_FMA @GGML_FMA@) -set(GGML_LASX @GGML_LASX@) -set(GGML_LSX @GGML_LSX@) -set(GGML_RVV @GGML_RVV@) -set(GGML_SVE @GGML_SVE@) - -set(GGML_ACCELERATE @GGML_ACCELERATE@) -set(GGML_OPENMP @GGML_OPENMP@) -set(GGML_CPU_HBM @GGML_CPU_HBM@) -set(GGML_BLAS_VENDOR @GGML_BLAS_VENDOR@) - -set(GGML_CUDA_FORCE_MMQ @GGML_CUDA_FORCE_MMQ@) -set(GGML_CUDA_FORCE_CUBLAS @GGML_CUDA_FORCE_CUBLAS@) -set(GGML_CUDA_F16 @GGML_CUDA_F16@) -set(GGML_CUDA_PEER_MAX_BATCH_SIZE @GGML_CUDA_PEER_MAX_BATCH_SIZE@) -set(GGML_CUDA_NO_PEER_COPY @GGML_CUDA_NO_PEER_COPY@) -set(GGML_CUDA_NO_VMM @GGML_CUDA_NO_VMM@) -set(GGML_CUDA_FA_ALL_QUANTS @GGML_CUDA_FA_ALL_QUANTS@) -set(GGML_CUDA_GRAPHS @GGML_CUDA_GRAPHS@) - -set(GGML_HIP_UMA @GGML_HIP_UMA@) - -set(GGML_VULKAN_CHECK_RESULTS @GGML_VULKAN_CHECK_RESULTS@) -set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@) -set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@) -set(GGML_VULKAN_SHADER_DEBUG_INFO @GGML_VULKAN_SHADER_DEBUG_INFO@) -set(GGML_VULKAN_PERF @GGML_VULKAN_PERF@) -set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@) -set(GGML_VULKAN_RUN_TESTS @GGML_VULKAN_RUN_TESTS@) - -set(GGML_METAL_USE_BF16 @GGML_METAL_USE_BF16@) -set(GGML_METAL_NDEBUG @GGML_METAL_NDEBUG@) -set(GGML_METAL_SHADER_DEBUG @GGML_METAL_SHADER_DEBUG@) -set(GGML_METAL_EMBED_LIBRARY @GGML_METAL_EMBED_LIBRARY@) -set(GGML_METAL_MACOSX_VERSION_MIN @GGML_METAL_MACOSX_VERSION_MIN@) -set(GGML_METAL_STD @GGML_METAL_STD@) - -set(GGML_SYCL_F16 @GGML_SYCL_F16@) -set(GGML_SYCL_TARGET @GGML_SYCL_TARGET@) -set(GGML_SYCL_DEVICE_ARCH @GGML_SYCL_DEVICE_ARCH@) - - @PACKAGE_INIT@ set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@") set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@") set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@") -find_package(Threads REQUIRED) - -set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@") -set(_llama_link_deps "") -set(_llama_link_opts "") -foreach(_ggml_lib ggml ggml-base) - string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") - find_library(${_ggml_lib_var} ${_ggml_lib} - REQUIRED - HINTS ${LLAMA_LIB_DIR} - NO_CMAKE_FIND_ROOT_PATH - ) - list(APPEND _llama_link_deps "${${_ggml_lib_var}}") - message(STATUS "Found ${${_ggml_lib_var}}") -endforeach() - -foreach(backend amx blas cann cpu cuda hip kompute metal musa rpc sycl vulkan) - string(TOUPPER "GGML_${backend}" backend_id) - set(_ggml_lib "ggml-${backend}") - string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") - - find_library(${_ggml_lib_var} ${_ggml_lib} - HINTS ${LLAMA_LIB_DIR} - NO_CMAKE_FIND_ROOT_PATH - ) - if(${_ggml_lib_var}) - list(APPEND _llama_link_deps "${${_ggml_lib_var}}") - set(${backend_id} ON) - message(STATUS "Found backend ${${_ggml_lib_var}}") - else() - set(${backend_id} OFF) - endif() -endforeach() - -if (NOT LLAMA_SHARED_LIB) - if (APPLE AND GGML_ACCELERATE) - find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED) - list(APPEND _llama_link_deps ${ACCELERATE_FRAMEWORK}) - endif() - - if (GGML_OPENMP) - find_package(OpenMP REQUIRED) - list(APPEND _llama_link_deps OpenMP::OpenMP_C OpenMP::OpenMP_CXX) - endif() - - if (GGML_CPU_HBM) - find_library(memkind memkind REQUIRED) - list(APPEND _llama_link_deps memkind) - endif() - - if (GGML_BLAS) - find_package(BLAS REQUIRED) - list(APPEND _llama_link_deps ${BLAS_LIBRARIES}) - list(APPEND _llama_link_opts ${BLAS_LINKER_FLAGS}) - endif() - - if (GGML_CUDA) - find_package(CUDAToolkit REQUIRED) - endif() - - if (GGML_METAL) - find_library(FOUNDATION_LIBRARY Foundation REQUIRED) - find_library(METAL_FRAMEWORK Metal REQUIRED) - find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) - list(APPEND _llama_link_deps ${FOUNDATION_LIBRARY} - ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK}) - endif() - - if (GGML_VULKAN) - find_package(Vulkan REQUIRED) - list(APPEND _llama_link_deps Vulkan::Vulkan) - endif() - - if (GGML_HIP) - find_package(hip REQUIRED) - find_package(hipblas REQUIRED) - find_package(rocblas REQUIRED) - list(APPEND _llama_link_deps hip::host roc::rocblas roc::hipblas) - endif() - - if (GGML_SYCL) - find_package(DNNL) - if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL") - list(APPEND _llama_link_deps DNNL::dnnl) - endif() - if (WIN32) - find_package(IntelSYCL REQUIRED) - find_package(MKL REQUIRED) - list(APPEND _llama_link_deps IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL) - endif() - endif() -endif() +find_package(ggml REQUIRED) find_library(llama_LIBRARY llama REQUIRED @@ -167,12 +21,10 @@ add_library(llama UNKNOWN IMPORTED) set_target_properties(llama PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LLAMA_INCLUDE_DIR}" - INTERFACE_LINK_LIBRARIES "${_llama_link_deps}" - INTERFACE_LINK_OPTIONS "${_llama_link_opts}" - INTERFACE_COMPILE_DEFINITIONS "${_llama_transient_defines}" + INTERFACE_LINK_LIBRARIES "ggml::ggml;ggml::ggml-base;" IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" IMPORTED_LOCATION "${llama_LIBRARY}" - INTERFACE_COMPILE_FEATURES cxx_std_11 - POSITION_INDEPENDENT_CODE ON ) + INTERFACE_COMPILE_FEATURES c_std_90 + POSITION_INDEPENDENT_CODE ON) check_required_components(Llama) diff --git a/examples/main-cmake-pkg/CMakeLists.txt b/examples/main-cmake-pkg/CMakeLists.txt deleted file mode 100644 index 5563f4de0..000000000 --- a/examples/main-cmake-pkg/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -cmake_minimum_required(VERSION 3.12) -project("llama-cli-cmake-pkg" C CXX) -set(TARGET llama-cli-cmake-pkg) - -find_package(Llama 0.0.1 REQUIRED) - -# Bake common functionality in with target. Because applications -# using the relocatable Llama package should be outside of the -# source tree, llama-cli-cmake-pkg pretends the dependencies are built-in. -set(_common_path "${CMAKE_CURRENT_LIST_DIR}/../../common") -add_library(common OBJECT) -file(GLOB _common_files - "${_common_path}/*.h" - "${_common_path}/*.cpp" -) -target_sources(common PRIVATE ${_common_files}) - -# If the common project was part of "llama-cli-cmake-pkg" the transient -# defines would automatically be attached. Because the common func- -# tionality is separate, but dependent upon the defines, it must be -# explicitly extracted from the "llama" target. -# -get_target_property(_llama_transient_defines llama - INTERFACE_COMPILE_DEFINITIONS) - -target_compile_definitions(common PRIVATE "${_llama_transient_defines}") - -add_executable(${TARGET} ${CMAKE_CURRENT_LIST_DIR}/../main/main.cpp) -target_include_directories(${TARGET} PRIVATE ${_common_path}) -install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_17) diff --git a/examples/main-cmake-pkg/README.md b/examples/main-cmake-pkg/README.md deleted file mode 100644 index 08d83dd08..000000000 --- a/examples/main-cmake-pkg/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# llama.cpp/example/main-cmake-pkg - -This program builds [llama-cli](../main) using a relocatable CMake package. It serves as an example of using the `find_package()` CMake command to conveniently include [llama.cpp](https://github.com/ggerganov/llama.cpp) in projects which live outside of the source tree. - -## Building - -Because this example is "outside of the source tree", it is important to first build/install llama.cpp using CMake. An example is provided here, but please see the [llama.cpp build instructions](../..) for more detailed build instructions. - -### Considerations - -When hardware acceleration libraries are used (e.g. CUDA, Metal, etc.), CMake must be able to locate the associated CMake package. - -### Build llama.cpp and install to C:\LlamaCPP directory - -```cmd -git clone https://github.com/ggerganov/llama.cpp -cd llama.cpp -cmake -B build -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 17 2022" -A x64 -cmake --build build --config Release -cmake --install build --prefix C:/LlamaCPP -``` - -### Build llama-cli-cmake-pkg - - -```cmd -cd ..\examples\main-cmake-pkg -cmake -B build -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH="C:/LlamaCPP/lib/cmake/Llama" -G "Visual Studio 17 2022" -A x64 -cmake --build build --config Release -cmake --install build --prefix C:/MyLlamaApp -``` diff --git a/examples/main-cmake-pkg/.gitignore b/examples/simple-cmake-pkg/.gitignore similarity index 100% rename from examples/main-cmake-pkg/.gitignore rename to examples/simple-cmake-pkg/.gitignore diff --git a/examples/simple-cmake-pkg/CMakeLists.txt b/examples/simple-cmake-pkg/CMakeLists.txt new file mode 100644 index 000000000..128e38c8f --- /dev/null +++ b/examples/simple-cmake-pkg/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.12) +project(llama-simple-cmake-pkg) + +set(TARGET llama-simple-cmake-pkg) + +find_package(Llama REQUIRED) + +add_executable(${TARGET} ${CMAKE_CURRENT_LIST_DIR}/../simple/simple.cpp) +install(TARGETS ${TARGET} RUNTIME) +target_link_libraries(${TARGET} PRIVATE llama ggml::all ${CMAKE_THREAD_LIBS_INIT}) +target_compile_features(${TARGET} PRIVATE cxx_std_17) diff --git a/examples/simple-cmake-pkg/README.md b/examples/simple-cmake-pkg/README.md new file mode 100644 index 000000000..8b30049e2 --- /dev/null +++ b/examples/simple-cmake-pkg/README.md @@ -0,0 +1,34 @@ +# llama.cpp/example/simple-cmake-pkg + +This program builds [simple](../simple) using a relocatable CMake package. It serves as an example of using the `find_package()` CMake command to conveniently include [llama.cpp](https://github.com/ggerganov/llama.cpp) in projects which live outside of the source tree. + +## Building + +Because this example is "outside of the source tree", it is important to first build/install llama.cpp using CMake. An example is provided here, but please see the [llama.cpp build instructions](../..) for more detailed build instructions. + +### Considerations + +When hardware acceleration libraries are used (e.g. CUDA, Metal, Vulkan, etc.), the appropriate dependencies will be searched for automatically. So, for example, when finding a package + +### Build llama.cpp and install to llama.cpp/inst + +```sh +git clone https://github.com/ggerganov/llama.cpp +cd llama.cpp +cmake -S . -B build +cmake --build build +cmake --install build --prefix inst + +### Build simple-cmake-pkg + +```sh +cd examples/simple-cmake-pkg +cmake -S . -B build -DCMAKE_PREFIX_PATH=../../inst/lib/cmake +cmake --build build +``` + +### Run simple-cmake-pkg + +```sh +./build/llama-simple-cmake-pkg -m ./models/llama-7b-v2/ggml-model-f16.gguf "Hello my name is" +``` diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index bbabb14de..7c069e420 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -267,3 +267,74 @@ if (GGML_STANDALONE) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ggml.pc DESTINATION share/pkgconfig) endif() + +# +# Create CMake package +# + +# Generate version info based on git commit. + +find_program(GIT_EXE NAMES git git.exe REQUIRED NO_CMAKE_FIND_ROOT_PATH) +execute_process(COMMAND ${GIT_EXE} rev-list --count HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GGML_BUILD_NUMBER + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if(GGML_BUILD_NUMBER EQUAL 1) + message(WARNING "GGML build version fixed at 1 likely due to a shallow clone.") +endif() + +execute_process(COMMAND ${GIT_EXE} rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GGML_BUILD_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Capture variables prefixed with GGML_. + +set(variable_set_statements +" +####### Expanded from @GGML_VARIABLES_EXPANED@ by configure_package_config_file() ####### +####### Any changes to this file will be overwritten by the next CMake run ####### + +") + +set(GGML_SHARED_LIB ${BUILD_SHARED_LIBS}) + +get_cmake_property(all_variables VARIABLES) +foreach(variable_name IN LISTS all_variables) + if(variable_name MATCHES "^GGML_") + string(REPLACE ";" "\\;" + variable_value "${${variable_name}}") + + set(variable_set_statements + "${variable_set_statements}set(${variable_name} \"${variable_value}\")\n") + endif() +endforeach() + +set(GGML_VARIABLES_EXPANDED ${variable_set_statements}) + +# Create the CMake package and set install location. + +set(GGML_INSTALL_VERSION 0.0.${GGML_BUILD_NUMBER}) +set(GGML_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location of header files") +set(GGML_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") +set(GGML_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") + +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ggml-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/ggml-config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ggml + PATH_VARS GGML_INCLUDE_INSTALL_DIR + GGML_LIB_INSTALL_DIR + GGML_BIN_INSTALL_DIR) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/ggml-version.cmake + VERSION ${GGML_INSTALL_VERSION} + COMPATIBILITY SameMajorVersion) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ggml-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/ggml-version.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ggml) diff --git a/ggml/cmake/ggml-config.cmake.in b/ggml/cmake/ggml-config.cmake.in new file mode 100644 index 000000000..bf39f9c00 --- /dev/null +++ b/ggml/cmake/ggml-config.cmake.in @@ -0,0 +1,147 @@ + +@GGML_VARIABLES_EXPANDED@ + +@PACKAGE_INIT@ + +set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@") +set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@") +set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@") + +find_package(Threads REQUIRED) + +find_library(GGML_LIBRARY ggml + REQUIRED + HINTS ${GGML_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH) + +add_library(ggml::ggml UNKNOWN IMPORTED) +set_target_properties(ggml::ggml + PROPERTIES + IMPORTED_LOCATION "${GGML_LIBRARY}") + +find_library(GGML_BASE_LIBRARY ggml-base + REQUIRED + HINTS ${GGML_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH) + +add_library(ggml::ggml-base UNKNOWN IMPORTED) +set_target_properties(ggml::ggml-base + PROPERTIES + IMPORTED_LOCATION "${GGML_BASE_LIBRARY}") + +if (NOT GGML_SHARED_LIB) + if (APPLE AND GGML_ACCELERATE) + find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED) + list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${ACCELERATE_FRAMEWORK}) + endif() + + if (GGML_OPENMP) + find_package(OpenMP REQUIRED) + list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES OpenMP::OpenMP_C OpenMP::OpenMP_CXX) + endif() + + if (GGML_CPU_HBM) + find_library(memkind memkind REQUIRED) + list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES memkind) + endif() + + if (GGML_BLAS) + find_package(BLAS REQUIRED) + list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES}) + list(APPEND GGML_CPU_INTERFACE_LINK_OPTIONS ${BLAS_LINKER_FLAGS}) + endif() + + if (GGML_CUDA) + find_package(CUDAToolkit REQUIRED) + endif() + + if (GGML_METAL) + find_library(FOUNDATION_LIBRARY Foundation REQUIRED) + find_library(METAL_FRAMEWORK Metal REQUIRED) + find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) + + list(APPEND GGML_METAL_INTERFACE_LINK_LIBRARIES + ${FOUNDATION_LIBRARY} ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK}) + endif() + + if (GGML_VULKAN) + find_package(Vulkan REQUIRED) + list(APPEND GGML_VULKAN_INTERFACE_LINK_LIBRARIES Vulkan::Vulkan) + endif() + + if (GGML_HIP) + find_package(hip REQUIRED) + find_package(hipblas REQUIRED) + find_package(rocblas REQUIRED) + list(APPEND GGML_HIP_INTERFACE_LINK_LIBRARIES hip::host roc::rocblas roc::hipblas) + endif() + + if (GGML_SYCL) + find_package(DNNL) + if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL") + list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES DNNL::dnnl) + endif() + if (WIN32) + find_package(IntelSYCL REQUIRED) + find_package(MKL REQUIRED) + list(APPEND GGML_SYCL_INTERFACE_LINK_LIBRARIES IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL) + endif() + endif() +endif() + +set(_ggml_all_targets "") +foreach(_ggml_backend ${GGML_AVAILABLE_BACKENDS}) + string(REPLACE "-" "_" _ggml_backend_pfx "${_ggml_backend}") + string(TOUPPER "${_ggml_backend_pfx}" _ggml_backend_pfx) + + find_library(${_ggml_backend_pfx}_LIBRARY ${_ggml_backend} + REQUIRED + HINTS ${GGML_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH) + + message(STATUS "Found ${${_ggml_backend_pfx}_LIBRARY}") + + add_library(ggml::${_ggml_backend} UNKNOWN IMPORTED) + set_target_properties(ggml::${_ggml_backend} + PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GGML_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${${_ggml_backend_pfx}_LIBRARY}" + INTERFACE_COMPILE_FEATURES c_std_90 + POSITION_INDEPENDENT_CODE ON) + + string(REGEX MATCH "^ggml-cpu" is_cpu_variant "${_ggml_backend}") + if(is_cpu_variant) + list(APPEND GGML_CPU_INTERFACE_LINK_LIBRARIES "ggml::ggml" "ggml::ggml-base") + set_target_properties(ggml::${_ggml_backend} + PROPERTIES + INTERFACE_LINK_LIBRARIES "${GGML_CPU_INTERFACE_LINK_LIBRARIES}") + + if(GGML_CPU_INTERFACE_LINK_OPTIONS) + set_target_properties(ggml::${_ggml_backend} + PROPERTIES + INTERFACE_LINK_OPTIONS "${GGML_CPU_INTERFACE_LINK_OPTIONS}") + endif() + + else() + list(APPEND ${_ggml_backend_pfx}_INTERFACE_LINK_LIBRARIES "ggml::ggml" "ggml::ggml-base") + set_target_properties(ggml::${_ggml_backend} + PROPERTIES + INTERFACE_LINK_LIBRARIES "${${_ggml_backend_pfx}_INTERFACE_LINK_LIBRARIES}") + + if(${_ggml_backend_pfx}_INTERFACE_LINK_OPTIONS) + set_target_properties(ggml::${_ggml_backend} + PROPERTIES + INTERFACE_LINK_OPTIONS "${${_ggml_backend_pfx}_INTERFACE_LINK_OPTIONS}") + endif() + endif() + + list(APPEND _ggml_all_targets ggml::${_ggml_backend}) +endforeach() + +add_library(ggml::all INTERFACE IMPORTED) +set_target_properties(ggml::all + PROPERTIES + INTERFACE_LINK_LIBRARIES "${_ggml_all_targets}") + +check_required_components(ggml) diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt index ae1cd2337..8d2b948fb 100644 --- a/ggml/src/CMakeLists.txt +++ b/ggml/src/CMakeLists.txt @@ -250,6 +250,17 @@ function(ggml_add_backend_library backend) target_compile_definitions(${backend} PRIVATE GGML_BACKEND_BUILD) target_compile_definitions(${backend} PUBLIC GGML_BACKEND_SHARED) endif() + + if(NOT GGML_AVAILABLE_BACKENDS) + set(GGML_AVAILABLE_BACKENDS "${backend}" + CACHE INTERNAL "List of backends for cmake package") + else() + list(FIND GGML_AVAILABLE_BACKENDS "${backend}" has_backend) + if(has_backend EQUAL -1) + set(GGML_AVAILABLE_BACKENDS "${GGML_AVAILABLE_BACKENDS};${backend}" + CACHE INTERNAL "List of backends for cmake package") + endif() + endif() endfunction() function(ggml_add_backend backend) From 6f53d8a6b41e48c73b345fc6c712c3b00ea4fb93 Mon Sep 17 00:00:00 2001 From: Nuno Date: Sun, 26 Jan 2025 18:22:43 +0100 Subject: [PATCH 042/162] docker: add missing vulkan library to base layer and update to 24.04 (#11422) Signed-off-by: rare-magma --- .devops/vulkan.Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.devops/vulkan.Dockerfile b/.devops/vulkan.Dockerfile index cfc2162e3..ad5dcd374 100644 --- a/.devops/vulkan.Dockerfile +++ b/.devops/vulkan.Dockerfile @@ -1,4 +1,4 @@ -ARG UBUNTU_VERSION=jammy +ARG UBUNTU_VERSION=24.04 FROM ubuntu:$UBUNTU_VERSION AS build @@ -7,7 +7,7 @@ RUN apt update && apt install -y git build-essential cmake wget # Install Vulkan SDK and cURL RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ - wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list https://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list && \ apt update -y && \ apt-get install -y vulkan-sdk libcurl4-openssl-dev curl @@ -34,7 +34,7 @@ RUN mkdir -p /app/full \ FROM ubuntu:$UBUNTU_VERSION AS base RUN apt-get update \ - && apt-get install -y libgomp1 curl\ + && apt-get install -y libgomp1 curl libvulkan-dev \ && apt autoremove -y \ && apt clean -y \ && rm -rf /tmp/* /var/tmp/* \ From 178a7eb952d211b8d4232d5e50ae1b64519172a9 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 26 Jan 2025 20:06:16 +0200 Subject: [PATCH 043/162] metal : use residency sets (#11427) * metal : use residency sets ggml-ci * metal : restore commandBufferWithUnretainedReferences calls [no ci] * metal : release descriptors ggml-ci * metal : check env GGML_METAL_NO_RESIDENCY ggml-ci * metal : fix build + clean-up ggml-ci --- ggml/src/ggml-metal/ggml-metal.m | 136 +++++++++++++++++++++++++++---- 1 file changed, 119 insertions(+), 17 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m index a85502ee0..c9474345d 100644 --- a/ggml/src/ggml-metal/ggml-metal.m +++ b/ggml/src/ggml-metal/ggml-metal.m @@ -19,7 +19,10 @@ // max number of MTLCommandBuffer used to submit a graph for processing #define GGML_METAL_MAX_COMMAND_BUFFERS 8 -#define UNUSED(x) (void)(x) +// create residency sets only on macOS >= 15.0 +#if TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED >= 150000 +#define GGML_METAL_HAS_RESIDENCY_SETS 1 +#endif // globals @@ -39,6 +42,7 @@ static struct ggml_backend_metal_device_context { bool has_simdgroup_reduction; bool has_simdgroup_mm; + bool has_residency_sets; bool has_bfloat; bool use_bfloat; @@ -48,6 +52,7 @@ static struct ggml_backend_metal_device_context { /*.mtl_device_ref_count =*/ 0, /*.has_simdgroup_reduction =*/ false, /*.has_simdgroup_mm =*/ false, + /*.has_residency_sets =*/ false, /*.has_bfloat =*/ false, /*.use_bfloat =*/ false, /*.name =*/ "", @@ -65,6 +70,10 @@ static id ggml_backend_metal_device_acq(struct ggml_backend_metal_dev ctx->has_simdgroup_mm = [ctx->mtl_device supportsFamily:MTLGPUFamilyApple7]; +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + ctx->has_residency_sets = getenv("GGML_METAL_NO_RESIDENCY") == NULL; +#endif + ctx->has_bfloat = [ctx->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; ctx->has_bfloat |= [ctx->mtl_device supportsFamily:MTLGPUFamilyApple6]; @@ -483,6 +492,11 @@ static struct ggml_backend_metal_context * ggml_metal_init(ggml_backend_dev_t de GGML_LOG_INFO("%s: picking default device: %s\n", __func__, [[device name] UTF8String]); ctx->queue = [device newCommandQueue]; + if (ctx->queue == nil) { + GGML_LOG_ERROR("%s: error: failed to create command queue\n", __func__); + return NULL; + } + ctx->d_queue = dispatch_queue_create("ggml-metal", DISPATCH_QUEUE_CONCURRENT); id metal_library; @@ -649,6 +663,7 @@ static struct ggml_backend_metal_context * ggml_metal_init(ggml_backend_dev_t de GGML_LOG_INFO("%s: simdgroup reduction = %s\n", __func__, ctx_dev->has_simdgroup_reduction ? "true" : "false"); GGML_LOG_INFO("%s: simdgroup matrix mul. = %s\n", __func__, ctx_dev->has_simdgroup_mm ? "true" : "false"); + GGML_LOG_INFO("%s: has residency sets = %s\n", __func__, ctx_dev->has_residency_sets ? "true" : "false"); GGML_LOG_INFO("%s: has bfloat = %s\n", __func__, ctx_dev->has_bfloat ? "true" : "false"); GGML_LOG_INFO("%s: use bfloat = %s\n", __func__, ctx_dev->use_bfloat ? "true" : "false"); GGML_LOG_INFO("%s: hasUnifiedMemory = %s\n", __func__, ctx_dev->mtl_device.hasUnifiedMemory ? "true" : "false"); @@ -1035,8 +1050,70 @@ struct ggml_backend_metal_buffer_context { // multiple buffers are used only to avoid the maximum buffer size limitation when using mmap int n_buffers; struct ggml_backend_metal_buffer buffers[GGML_METAL_MAX_BUFFERS]; + + // optional MTLResidencySet + id rset; }; +// rset init +static bool ggml_backend_metal_buffer_rset_init( + struct ggml_backend_metal_buffer_context * ctx, + struct ggml_backend_metal_device_context * ctx_dev, + id device) { + ctx->rset = nil; + + if (!ctx_dev->has_residency_sets) { + return true; + } + +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + if (@available(macOS 15.0, *)) { + MTLResidencySetDescriptor * desc = [[MTLResidencySetDescriptor alloc] init]; + desc.label = @"ggml_backend_metal"; + desc.initialCapacity = ctx->n_buffers; + + NSError * error; + ctx->rset = [device newResidencySetWithDescriptor:desc error:&error]; + if (error) { + GGML_LOG_ERROR("%s: error: %s\n", __func__, [[error description] UTF8String]); + [desc release]; + return false; + } + + [desc release]; + + for (int i = 0; i < ctx->n_buffers; i++) { + [ctx->rset addAllocation:ctx->buffers[i].metal]; + } + + [ctx->rset commit]; + [ctx->rset requestResidency]; + + return true; + } +#else + GGML_UNUSED(ctx_dev); + GGML_UNUSED(device); +#endif + + return true; +} + +// rset free +static void ggml_backend_metal_buffer_rset_free(struct ggml_backend_metal_buffer_context * ctx) { +#if defined(GGML_METAL_HAS_RESIDENCY_SETS) + if (@available(macOS 15.0, *)) { + if (ctx->rset) { + [ctx->rset endResidency]; + [ctx->rset removeAllAllocations]; + [ctx->rset release]; + } + } +#else + GGML_UNUSED(ctx); +#endif +} + // finds the Metal buffer that contains the tensor data on the GPU device // the assumption is that there is 1-to-1 mapping between the host and device memory buffers, so we can find the // Metal buffer based on the host memory pointer @@ -4176,6 +4253,8 @@ static void ggml_backend_metal_buffer_free_buffer(ggml_backend_buffer_t buffer) for (int i = 0; i < ctx->n_buffers; i++) { [ctx->buffers[i].metal release]; } + + ggml_backend_metal_buffer_rset_free(ctx); ggml_backend_metal_device_rel(buffer->buft->device->context); if (ctx->owned) { @@ -4198,19 +4277,19 @@ static void * ggml_backend_metal_buffer_get_base(ggml_backend_buffer_t buffer) { static void ggml_backend_metal_buffer_memset_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) { memset((char *)tensor->data + offset, value, size); - UNUSED(buffer); + GGML_UNUSED(buffer); } static void ggml_backend_metal_buffer_set_tensor(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor, const void * data, size_t offset, size_t size) { memcpy((char *)tensor->data + offset, data, size); - UNUSED(buffer); + GGML_UNUSED(buffer); } static void ggml_backend_metal_buffer_get_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor, void * data, size_t offset, size_t size) { memcpy(data, (const char *)tensor->data + offset, size); - UNUSED(buffer); + GGML_UNUSED(buffer); } static bool ggml_backend_metal_buffer_cpy_tensor(ggml_backend_buffer_t buffer, const struct ggml_tensor * src, struct ggml_tensor * dst) { @@ -4220,7 +4299,7 @@ static bool ggml_backend_metal_buffer_cpy_tensor(ggml_backend_buffer_t buffer, c } return false; - UNUSED(buffer); + GGML_UNUSED(buffer); } static void ggml_backend_metal_buffer_clear(ggml_backend_buffer_t buffer, uint8_t value) { @@ -4246,7 +4325,7 @@ static struct ggml_backend_buffer_i ggml_backend_metal_buffer_i = { static const char * ggml_backend_metal_buffer_type_get_name(ggml_backend_buffer_type_t buft) { return "Metal"; - UNUSED(buft); + GGML_UNUSED(buft); } static void ggml_backend_metal_log_allocated_size(id device, size_t size_aligned) { @@ -4270,8 +4349,8 @@ static void ggml_backend_metal_log_allocated_size(id device, size_t s } #endif #endif - UNUSED(device); - UNUSED(size_aligned); + GGML_UNUSED(device); + GGML_UNUSED(size_aligned); } static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_backend_buffer_type_t buft, size_t size) { @@ -4284,7 +4363,8 @@ static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_ba size_aligned += (size_page - (size_aligned % size_page)); } - id device = ggml_backend_metal_device_acq(buft->device->context); + struct ggml_backend_metal_device_context * ctx_dev = (struct ggml_backend_metal_device_context *)buft->device->context; + id device = ggml_backend_metal_device_acq(ctx_dev); ctx->all_data = ggml_metal_host_malloc(size_aligned); ctx->all_size = size_aligned; @@ -4307,7 +4387,14 @@ static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_ba if (size_aligned > 0 && (ctx->all_data == NULL || ctx->buffers[0].metal == nil)) { GGML_LOG_ERROR("%s: error: failed to allocate buffer, size = %8.2f MiB\n", __func__, size_aligned / 1024.0 / 1024.0); free(ctx); - ggml_backend_metal_device_rel(buft->device->context); + ggml_backend_metal_device_rel(ctx_dev); + return NULL; + } + + if (!ggml_backend_metal_buffer_rset_init(ctx, ctx_dev, device)) { + GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); + free(ctx); + ggml_backend_metal_device_rel(ctx_dev); return NULL; } @@ -4318,7 +4405,7 @@ static ggml_backend_buffer_t ggml_backend_metal_buffer_type_alloc_buffer(ggml_ba static size_t ggml_backend_metal_buffer_type_get_alignment(ggml_backend_buffer_type_t buft) { return 32; - UNUSED(buft); + GGML_UNUSED(buft); } static size_t ggml_backend_metal_buffer_type_get_max_size(ggml_backend_buffer_type_t buft) { @@ -4328,13 +4415,13 @@ static size_t ggml_backend_metal_buffer_type_get_max_size(ggml_backend_buffer_ty return max_size; - UNUSED(buft); + GGML_UNUSED(buft); } static bool ggml_backend_metal_buffer_type_is_host(ggml_backend_buffer_type_t buft) { return true; - UNUSED(buft); + GGML_UNUSED(buft); } ggml_backend_buffer_type_t ggml_backend_metal_buffer_type(void) { @@ -4357,7 +4444,7 @@ ggml_backend_buffer_type_t ggml_backend_metal_buffer_type(void) { static const char * ggml_backend_metal_buffer_from_ptr_type_get_name(ggml_backend_buffer_type_t buft) { return "Metal_Mapped"; - UNUSED(buft); + GGML_UNUSED(buft); } static ggml_backend_buffer_type_t ggml_backend_metal_buffer_from_ptr_type(void) { @@ -4400,7 +4487,8 @@ ggml_backend_buffer_t ggml_backend_metal_buffer_from_ptr(void * data, size_t siz size_aligned += (size_page - (size_aligned % size_page)); } - id device = ggml_backend_metal_device_acq(&g_ggml_ctx_dev_main); + struct ggml_backend_metal_device_context * ctx_dev = &g_ggml_ctx_dev_main; + id device = ggml_backend_metal_device_acq(ctx_dev); // the buffer fits into the max buffer size allowed by the device if (size_aligned <= device.maxBufferLength) { @@ -4453,6 +4541,13 @@ ggml_backend_buffer_t ggml_backend_metal_buffer_from_ptr(void * data, size_t siz } } + if (!ggml_backend_metal_buffer_rset_init(ctx, ctx_dev, device)) { + GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); + free(ctx); + ggml_backend_metal_device_rel(ctx_dev); + return NULL; + } + return ggml_backend_buffer_init(ggml_backend_metal_buffer_from_ptr_type(), ggml_backend_metal_buffer_i, ctx, size); } @@ -4461,7 +4556,7 @@ ggml_backend_buffer_t ggml_backend_metal_buffer_from_ptr(void * data, size_t siz static const char * ggml_backend_metal_name(ggml_backend_t backend) { return "Metal"; - UNUSED(backend); + GGML_UNUSED(backend); } static void ggml_backend_metal_free(ggml_backend_t backend) { @@ -4766,6 +4861,13 @@ static ggml_backend_buffer_t ggml_backend_metal_device_buffer_from_ptr(ggml_back } } + if (!ggml_backend_metal_buffer_rset_init(ctx, ctx_dev, device)) { + GGML_LOG_ERROR("%s: error: failed to initialize residency set\n", __func__); + free(ctx); + ggml_backend_metal_device_rel(ctx_dev); + return NULL; + } + return ggml_backend_buffer_init(ggml_backend_metal_buffer_from_ptr_type(), ggml_backend_metal_buffer_i, ctx, size); } @@ -4779,7 +4881,7 @@ static bool ggml_backend_metal_device_supports_buft(ggml_backend_dev_t dev, ggml return buft->iface.get_name == ggml_backend_metal_buffer_type_get_name || buft->iface.get_name == ggml_backend_metal_buffer_from_ptr_type_get_name; - UNUSED(dev); + GGML_UNUSED(dev); } static bool ggml_backend_metal_device_offload_op(ggml_backend_dev_t dev, const struct ggml_tensor * op) { From caf773f249aa267c78d3da5567b8ab156080ea59 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Sun, 26 Jan 2025 22:45:32 +0100 Subject: [PATCH 044/162] docker : fix ARM build and Vulkan build (#11434) * ci : do not fail-fast for docker * build arm64/amd64 separatedly * fix pip * no fast fail * vulkan: try jammy --- .devops/vulkan.Dockerfile | 4 ++-- .github/workflows/docker.yml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.devops/vulkan.Dockerfile b/.devops/vulkan.Dockerfile index ad5dcd374..b5bd3b6d2 100644 --- a/.devops/vulkan.Dockerfile +++ b/.devops/vulkan.Dockerfile @@ -1,4 +1,4 @@ -ARG UBUNTU_VERSION=24.04 +ARG UBUNTU_VERSION=22.04 FROM ubuntu:$UBUNTU_VERSION AS build @@ -7,7 +7,7 @@ RUN apt update && apt install -y git build-essential cmake wget # Install Vulkan SDK and cURL RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ - wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list https://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ apt update -y && \ apt-get install -y vulkan-sdk libcurl4-openssl-dev curl diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d71f1eb38..6bf22eb66 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -32,10 +32,12 @@ jobs: env: COMMIT_SHA: ${{ github.sha }} strategy: + fail-fast: false matrix: config: # Multi-stage build - - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/amd64,linux/arm64", full: true, light: true, server: true, freediskspace: false} + - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} + - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/arm64", full: true, light: true, server: true, freediskspace: false} - { tag: "cuda", dockerfile: ".devops/cuda.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} - { tag: "musa", dockerfile: ".devops/musa.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} - { tag: "intel", dockerfile: ".devops/intel.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} From acd38efee316f3a5ed2e6afcbc5814807c347053 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Mon, 27 Jan 2025 02:41:59 -0500 Subject: [PATCH 045/162] metal: Handle null returned from MTLCreateSystemDefaultDevice() (#11441) This fixes segmentation fault error when running tests when no metal devices are available (for example, when not linked with Core Graphics framework or otherwise). --- ggml/src/ggml-metal/ggml-metal.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m index c9474345d..76f8e4291 100644 --- a/ggml/src/ggml-metal/ggml-metal.m +++ b/ggml/src/ggml-metal/ggml-metal.m @@ -64,7 +64,9 @@ static id ggml_backend_metal_device_acq(struct ggml_backend_metal_dev if (ctx->mtl_device == nil) { ctx->mtl_device = MTLCreateSystemDefaultDevice(); + } + if (ctx->mtl_device) { ctx->has_simdgroup_reduction = [ctx->mtl_device supportsFamily:MTLGPUFamilyApple7]; ctx->has_simdgroup_reduction |= [ctx->mtl_device supportsFamily:MTLGPUFamilyMetal3_GGML]; @@ -99,8 +101,10 @@ static void ggml_backend_metal_device_rel(struct ggml_backend_metal_device_conte ctx->mtl_device_ref_count--; if (ctx->mtl_device_ref_count == 0) { - [ctx->mtl_device release]; - ctx->mtl_device = nil; + if (ctx->mtl_device) { + [ctx->mtl_device release]; + ctx->mtl_device = nil; + } } } From df984e014714cba4c99ef894b20b51cbcef31b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Mon, 27 Jan 2025 12:07:12 +0100 Subject: [PATCH 046/162] llama: refactor llama_decode_impl (#11381) --- src/llama.cpp | 243 +++++++++++++++++++++++++++++--------------------- 1 file changed, 140 insertions(+), 103 deletions(-) diff --git a/src/llama.cpp b/src/llama.cpp index 094157ccf..12e8f41fc 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -8432,13 +8432,141 @@ static enum ggml_status llama_graph_compute( return status; } +static int llama_prepare_sbatch( + llama_context & lctx, + const llama_batch & batch, + uint32_t & n_outputs) { + const auto & model = lctx.model; + const auto & hparams = model.hparams; + const auto & cparams = lctx.cparams; + + const uint32_t n_tokens_all = batch.n_tokens; + const int64_t n_embd = hparams.n_embd; + + // this indicates we are doing pooled embedding, so we ignore batch.logits and output all tokens + const bool embd_pooled = cparams.embeddings && cparams.pooling_type != LLAMA_POOLING_TYPE_NONE; + + GGML_ASSERT((!batch.token && batch.embd) || (batch.token && !batch.embd)); // NOLINT + if (batch.token) { + for (uint32_t i = 0; i < n_tokens_all; ++i) { + if (batch.token[i] < 0 || uint32_t(batch.token[i]) >= model.vocab.n_tokens()) { + LLAMA_LOG_ERROR("%s: invalid token[%d] = %d\n", __func__, i, batch.token[i]); + return -1; + } + } + } + GGML_ASSERT(n_tokens_all <= cparams.n_batch); + GGML_ASSERT((cparams.causal_attn || cparams.n_ubatch >= n_tokens_all) && "non-causal attention requires n_ubatch >= n_tokens"); + + lctx.n_queued_tokens += n_tokens_all; + lctx.embd_seq.clear(); + + // count outputs + if (batch.logits && !embd_pooled) { + for (uint32_t i = 0; i < n_tokens_all; ++i) { + n_outputs += batch.logits[i] != 0; + } + } else if (lctx.logits_all || embd_pooled) { + n_outputs = n_tokens_all; + } else { + // keep last output only + n_outputs = 1; + } + + lctx.sbatch.from_batch(batch, n_embd, + /* simple_split */ !lctx.kv_self.recurrent, + /* logits_all */ n_outputs == n_tokens_all); + + // reserve output buffer + if (llama_output_reserve(lctx, n_outputs) < n_outputs) { + LLAMA_LOG_ERROR("%s: could not reserve space for batch with %u outputs\n", __func__, n_outputs); + return -2; + }; + + return 0; +} + +static int llama_prepare_ubatch( + llama_context & lctx, + llama_kv_slot_restorer & kv_slot_restorer, + llama_ubatch & ubatch, + const uint32_t n_outputs, + const uint32_t n_tokens_all) { + GGML_ASSERT(lctx.sbatch.n_tokens > 0); + + auto & kv_self = lctx.kv_self; + const auto & cparams = lctx.cparams; + const auto & hparams = lctx.model.hparams; + + // this indicates we are doing pooled embedding, so we ignore batch.logits and output all tokens + const bool embd_pooled = cparams.embeddings && cparams.pooling_type != LLAMA_POOLING_TYPE_NONE; + + if (lctx.kv_self.recurrent) { + if (embd_pooled) { + // Pooled embeddings cannot be split across ubatches (yet) + ubatch = lctx.sbatch.split_seq(cparams.n_ubatch); + } else { + // recurrent model architectures are easier to implement + // with equal-length sequences + ubatch = lctx.sbatch.split_equal(cparams.n_ubatch); + } + } else { + ubatch = lctx.sbatch.split_simple(cparams.n_ubatch); + } + + // count the outputs in this u_batch + { + int32_t n_outputs_new = 0; + + if (n_outputs == n_tokens_all) { + n_outputs_new = ubatch.n_tokens; + } else { + GGML_ASSERT(ubatch.output); + for (uint32_t i = 0; i < ubatch.n_tokens; i++) { + n_outputs_new += int32_t(ubatch.output[i] != 0); + } + } + + // needs to happen before the graph is built + lctx.n_outputs = n_outputs_new; + } + + // non-causal masks do not use the KV cache + if (hparams.causal_attn) { + llama_kv_cache_update(&lctx); + + // if we have enough unused cells before the current head -> + // better to start searching from the beginning of the cache, hoping to fill it + if (kv_self.head > kv_self.used + 2*ubatch.n_tokens) { + kv_self.head = 0; + } + + const auto slot = llama_kv_cache_find_slot(kv_self, ubatch); + if (!slot) { + return 1; + } + kv_slot_restorer.save(slot); + + if (!kv_self.recurrent) { + // a heuristic, to avoid attending the full cache if it is not yet utilized + // after enough generations, the benefit from this heuristic disappears + // if we start defragmenting the cache, the benefit from this will be more important + const uint32_t pad = llama_kv_cache_get_padding(cparams); + kv_self.n = std::min(kv_self.size, std::max(pad, GGML_PAD(llama_kv_cache_cell_max(kv_self), pad))); + //kv_self.n = llama_kv_cache_cell_max(kv_self); + } + } + + return 0; +} + // decode a batch of tokens by evaluating the transformer // in case of unsuccessful decoding (error or warning), // the kv_cache state will be returned to its original state // (for non-recurrent models) or cleaned (for recurrent models) // // - lctx: llama context -// - batch: batch to evaluate +// - inp_batch: batch to evaluate // // return 0 on success // return positive int on warning @@ -8455,37 +8583,18 @@ static int llama_decode_impl( return -1; } - // temporary allocate memory for the input batch if needed + // temporarily allocate memory for the input batch if needed llama_batch_allocr batch_allocr(inp_batch, inp_batch.pos ? -1 : lctx.kv_self.max_pos() + 1); - const llama_batch & batch = batch_allocr.batch; - const uint32_t n_tokens_all = batch.n_tokens; const auto & model = lctx.model; const auto & vocab = model.vocab; const auto & hparams = model.hparams; const auto & cparams = lctx.cparams; - GGML_ASSERT((!batch.token && batch.embd) || (batch.token && !batch.embd)); // NOLINT - - if (batch.token) { - for (uint32_t i = 0; i < n_tokens_all; ++i) { - if (batch.token[i] < 0 || (uint32_t) batch.token[i] >= model.vocab.n_tokens()) { - LLAMA_LOG_ERROR("%s: invalid token[%d] = %d\n", __func__, i, batch.token[i]); - return -1; - } - } - } - - GGML_ASSERT(n_tokens_all <= cparams.n_batch); - - GGML_ASSERT((cparams.causal_attn || cparams.n_ubatch >= n_tokens_all) && "non-causal attention requires n_ubatch >= n_tokens"); - if (lctx.t_compute_start_us == 0) { lctx.t_compute_start_us = ggml_time_us(); } - lctx.n_queued_tokens += n_tokens_all; - auto & kv_self = lctx.kv_self; llama_kv_slot_restorer kv_slot_restorer(kv_self); @@ -8495,99 +8604,27 @@ static int llama_decode_impl( uint32_t n_outputs = 0; uint32_t n_outputs_prev = 0; - const auto n_ubatch = cparams.n_ubatch; - - // this indicates we are doing pooled embedding, so we ignore batch.logits and output all tokens - const bool embd_pooled = cparams.embeddings && cparams.pooling_type != LLAMA_POOLING_TYPE_NONE; - - lctx.embd_seq.clear(); - - // count outputs - if (batch.logits && !embd_pooled) { - for (uint32_t i = 0; i < n_tokens_all; ++i) { - n_outputs += batch.logits[i] != 0; + { + const int ret = llama_prepare_sbatch(lctx, batch, n_outputs); + if (ret != 0) { + return ret; } - } else if (lctx.logits_all || embd_pooled) { - n_outputs = n_tokens_all; - } else { - // keep last output only - n_outputs = 1; } - lctx.sbatch.from_batch(batch, n_embd, - /* simple_split */ !kv_self.recurrent, - /* logits_all */ n_outputs == n_tokens_all); - - // reserve output buffer - if (llama_output_reserve(lctx, n_outputs) < n_outputs) { - LLAMA_LOG_ERROR("%s: could not reserve space for batch with %u outputs\n", __func__, n_outputs); - return -2; - }; - while (lctx.sbatch.n_tokens > 0) { llama_ubatch ubatch; - if (kv_self.recurrent) { - if (embd_pooled) { - // Pooled embeddings cannot be split across ubatches (yet) - ubatch = lctx.sbatch.split_seq(n_ubatch); - } else { - // recurrent model architectures are easier to implement - // with equal-length sequences - ubatch = lctx.sbatch.split_equal(n_ubatch); - } - } else { - ubatch = lctx.sbatch.split_simple(n_ubatch); - } - const uint32_t n_tokens = ubatch.n_tokens; - - // count the outputs in this u_batch { - int32_t n_outputs_new = 0; - - if (n_outputs == n_tokens_all) { - n_outputs_new = n_tokens; - } else { - GGML_ASSERT(ubatch.output); - for (uint32_t i = 0; i < n_tokens; i++) { - n_outputs_new += (int32_t) (ubatch.output[i] != 0); - } + const int ret = llama_prepare_ubatch(lctx, kv_slot_restorer, ubatch, n_outputs, batch.n_tokens); + if (ret != 0) { + return ret; } - - // needs to happen before the graph is built - lctx.n_outputs = n_outputs_new; } - int n_threads = n_tokens == 1 ? cparams.n_threads : cparams.n_threads_batch; - ggml_threadpool_t threadpool = n_tokens == 1 ? lctx.threadpool : lctx.threadpool_batch; + const int n_threads = ubatch.n_tokens == 1 ? cparams.n_threads : cparams.n_threads_batch; + ggml_threadpool_t threadpool = ubatch.n_tokens == 1 ? lctx.threadpool : lctx.threadpool_batch; GGML_ASSERT(n_threads > 0); - // non-causal masks do not use the KV cache - if (hparams.causal_attn) { - llama_kv_cache_update(&lctx); - - // if we have enough unused cells before the current head -> - // better to start searching from the beginning of the cache, hoping to fill it - if (kv_self.head > kv_self.used + 2*n_tokens) { - kv_self.head = 0; - } - - const auto slot = llama_kv_cache_find_slot(kv_self, ubatch); - if (!slot) { - return 1; - } - kv_slot_restorer.save(slot); - - if (!kv_self.recurrent) { - // a heuristic, to avoid attending the full cache if it is not yet utilized - // after enough generations, the benefit from this heuristic disappears - // if we start defragmenting the cache, the benefit from this will be more important - const uint32_t pad = llama_kv_cache_get_padding(cparams); - kv_self.n = std::min(kv_self.size, std::max(pad, GGML_PAD(llama_kv_cache_cell_max(kv_self), pad))); - //kv_self.n = llama_kv_cache_cell_max(kv_self); - } - } - //printf("kv_self.n = %5d, kv_self.used = %5d, kv_self.head = %5d\n", kv_self.n, kv_self.used, kv_self.head); ggml_backend_sched_reset(lctx.sched.get()); @@ -8640,7 +8677,7 @@ static int llama_decode_impl( // update the kv ring buffer { - kv_self.head += n_tokens; + kv_self.head += ubatch.n_tokens; // Ensure kv cache head points to a valid index. if (kv_self.head >= kv_self.size) { From a5203b4465c5c87813936bde98170e25bb09024f Mon Sep 17 00:00:00 2001 From: lexasub Date: Mon, 27 Jan 2025 17:42:09 +0400 Subject: [PATCH 047/162] llama : minor fixes for up llama load model speed (#11448) * impl::load change map bpe_ranks to onordered map for reduce time of impl::load on 30% * llama_model_loader::init_mapping - replace new llama_mmap to std::make_unique for clean code & reduce (/2) time of running init_mappings * Update src/llama-vocab.cpp --------- Co-authored-by: lexasub Co-authored-by: Diego Devesa --- src/llama-model-loader.cpp | 2 +- src/llama-vocab.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/llama-model-loader.cpp b/src/llama-model-loader.cpp index 75073bf61..05d58ad90 100644 --- a/src/llama-model-loader.cpp +++ b/src/llama-model-loader.cpp @@ -819,7 +819,7 @@ void llama_model_loader::init_mappings(bool prefetch, llama_mlocks * mlock_mmaps for (const auto & file : files) { auto * reg = ggml_backend_dev_backend_reg(ggml_backend_dev_by_type(GGML_BACKEND_DEVICE_TYPE_CPU)); auto * is_numa_fn = (decltype(ggml_is_numa) *) ggml_backend_reg_get_proc_address(reg, "ggml_backend_cpu_is_numa"); - std::unique_ptr mapping(new llama_mmap(file.get(), prefetch ? -1 : 0, is_numa_fn())); + std::unique_ptr mapping = std::make_unique(file.get(), prefetch ? -1 : 0, is_numa_fn()); mmaps_used.emplace_back(mapping->size(), 0); if (mlock_mmaps) { std::unique_ptr mlock_mmap(new llama_mlock()); diff --git a/src/llama-vocab.cpp b/src/llama-vocab.cpp index 0782d3a41..561f8bdb8 100644 --- a/src/llama-vocab.cpp +++ b/src/llama-vocab.cpp @@ -1245,8 +1245,13 @@ struct llama_vocab::impl { std::vector cache_special_tokens; std::vector cache_token_to_piece; // llama_token_to_piece(special = true); - - std::map, int> bpe_ranks; + struct pair_hash { + size_t operator()(const std::pair & p) const { + return std::hash{}(p.first) ^ //create some hash for pair + (std::hash{}(p.second) << 1); + } + }; + std::unordered_map, int, pair_hash> bpe_ranks; // set of all tokens that cause "end of generation" std::set special_eog_ids; From d6d24cd9ed6d0b9558643dcc28f2124bef488c52 Mon Sep 17 00:00:00 2001 From: Haus1 Date: Mon, 27 Jan 2025 08:58:17 -0500 Subject: [PATCH 048/162] AMD: parse the architecture as supplied by gcnArchName (#11244) The value provided by minor doesn't include stepping for AMD, parse the value returned by gcnArchName instead to retrieve an accurate ID. --- ggml/src/ggml-cuda/common.cuh | 20 +++++----- ggml/src/ggml-cuda/ggml-cuda.cu | 67 ++++++++++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 12 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index bb6120568..a66322da0 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -46,20 +46,20 @@ #define GGML_CUDA_CC_VOLTA 700 #define GGML_CUDA_CC_TURING 750 #define GGML_CUDA_CC_AMPERE 800 -#define GGML_CUDA_CC_OFFSET_AMD 1000000 +#define GGML_CUDA_CC_OFFSET_AMD 0x1000000 // GCN/CNDA, wave size is 64 -#define GGML_CUDA_CC_GCN4 (GGML_CUDA_CC_OFFSET_AMD + 803) // Tonga, Fiji, Polaris, minimum for fast fp16 -#define GGML_CUDA_CC_VEGA (GGML_CUDA_CC_OFFSET_AMD + 900) // Vega56/64, minimum for fp16 dual issue -#define GGML_CUDA_CC_VEGA20 (GGML_CUDA_CC_OFFSET_AMD + 906) // MI50/Radeon VII, minimum for dp4a -#define GGML_CUDA_CC_CDNA (GGML_CUDA_CC_OFFSET_AMD + 908) // MI100, minimum for MFMA, acc registers -#define GGML_CUDA_CC_CDNA2 (GGML_CUDA_CC_OFFSET_AMD + 910) // MI210, minimum acc register renameing -#define GGML_CUDA_CC_CDNA3 (GGML_CUDA_CC_OFFSET_AMD + 942) // MI300 +#define GGML_CUDA_CC_GCN4 (GGML_CUDA_CC_OFFSET_AMD + 0x803) // Tonga, Fiji, Polaris, minimum for fast fp16 +#define GGML_CUDA_CC_VEGA (GGML_CUDA_CC_OFFSET_AMD + 0x900) // Vega56/64, minimum for fp16 dual issue +#define GGML_CUDA_CC_VEGA20 (GGML_CUDA_CC_OFFSET_AMD + 0x906) // MI50/Radeon VII, minimum for dp4a +#define GGML_CUDA_CC_CDNA (GGML_CUDA_CC_OFFSET_AMD + 0x908) // MI100, minimum for MFMA, acc registers +#define GGML_CUDA_CC_CDNA2 (GGML_CUDA_CC_OFFSET_AMD + 0x910) // MI210, minimum acc register renameing +#define GGML_CUDA_CC_CDNA3 (GGML_CUDA_CC_OFFSET_AMD + 0x942) // MI300 // RNDA removes MFMA, dp4a, xnack, acc registers, wave size is 32 -#define GGML_CUDA_CC_RDNA1 (GGML_CUDA_CC_OFFSET_AMD + 1010) // RX 5000 -#define GGML_CUDA_CC_RDNA2 (GGML_CUDA_CC_OFFSET_AMD + 1030) // RX 6000, minimum for dp4a -#define GGML_CUDA_CC_RDNA3 (GGML_CUDA_CC_OFFSET_AMD + 1100) // RX 7000, minimum for WMMA +#define GGML_CUDA_CC_RDNA1 (GGML_CUDA_CC_OFFSET_AMD + 0x1010) // RX 5000 +#define GGML_CUDA_CC_RDNA2 (GGML_CUDA_CC_OFFSET_AMD + 0x1030) // RX 6000, minimum for dp4a +#define GGML_CUDA_CC_RDNA3 (GGML_CUDA_CC_OFFSET_AMD + 0x1100) // RX 7000, minimum for WMMA #define GGML_CUDA_CC_QY1 210 #define GGML_CUDA_CC_QY2 220 diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 85178abd2..402f37e85 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -119,6 +119,55 @@ static cudaError_t ggml_cuda_device_malloc(void ** ptr, size_t size, int device) #endif } +#if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) +static int ggml_cuda_parse_id(char devName[]) { + // A list of possible Target IDs can be found under the rocclr/clr repo in device.cpp + // these values are not stable so this is susceptible to breakage + // https://github.com/ROCm/clr/blob/amd-staging/rocclr/device/device.cpp + int archMajor = 0x0; + int archMinor = 0x0; + int archNum = GGML_CUDA_CC_OFFSET_AMD; + int archLen = strlen(devName); + char archName[archLen + 1]; + + // strip leading 'gfx' while copying into our buffer + if (archLen > 3) { + strcpy(archName, &devName[3]); + archLen -= 3; + } + + // trim trailing :xnack- or :sramecc- statuses + archLen = strcspn(archName, ":"); + archName[archLen] = '\0'; + + // tease out the version information + if (archLen > 8) { + // versions labeled generic use '-' as delimiter + // strip the trailing "-generic" then iterate through what remains + if ((strstr(archName, "-generic"))) { + archName[archLen - 8] = '\0'; + char * pch; + if ((pch = strtok(archName, "-"))) { + archMajor = (int)strtoul(pch, 0, 16); + if ((pch = strtok(NULL, "-"))) { + archMinor = 0x10 * (int)strtoul(pch, 0, 16); + } + } + } + } else if (archLen >= 3) { + // last two digits should be the minor * 0x10 + stepping + archMinor = (int)strtoul(&archName[archLen - 2], 0, 16); + archName[archLen - 2] = '\0'; + + // only the major version remains + archMajor = (int)strtoul(archName, 0, 16); + } + archNum += archMajor * 0x100; + archNum += archMinor; + return archNum; +} +#endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) + static ggml_cuda_device_info ggml_cuda_init() { #ifdef __HIP_PLATFORM_AMD__ // Workaround for a rocBLAS bug when using multiple graphics cards: @@ -169,7 +218,6 @@ static ggml_cuda_device_info ggml_cuda_init() { cudaDeviceProp prop; CUDA_CHECK(cudaGetDeviceProperties(&prop, id)); - GGML_LOG_INFO(" Device %d: %s, compute capability %d.%d, VMM: %s\n", id, prop.name, prop.major, prop.minor, device_vmm ? "yes" : "no"); info.default_tensor_split[id] = total_vram; total_vram += prop.totalGlobalMem; @@ -178,10 +226,25 @@ static ggml_cuda_device_info ggml_cuda_init() { info.devices[id].smpb = prop.sharedMemPerBlock; #if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) info.devices[id].smpbo = prop.sharedMemPerBlock; - info.devices[id].cc = 100*prop.major + 10*prop.minor + GGML_CUDA_CC_OFFSET_AMD; + + info.devices[id].cc = ggml_cuda_parse_id(prop.gcnArchName); + if ((info.devices[id].cc & 0xff00) == 0x0) { + GGML_LOG_WARN("invalid architecture ID received for device %d %s: %s cc %d.%d\n", + id, prop.name, prop.gcnArchName, prop.major, prop.minor); + + // Fallback to prop.major and prop.minor + if (prop.major > 0) { + info.devices[id].cc = GGML_CUDA_CC_OFFSET_AMD + prop.major * 0x100; + info.devices[id].cc += prop.minor * 0x10; + } + } + GGML_LOG_INFO(" Device %d: %s, %s (0x%x), VMM: %s\n", + id, prop.name, prop.gcnArchName, info.devices[id].cc & 0xffff, device_vmm ? "yes" : "no"); #else info.devices[id].smpbo = prop.sharedMemPerBlockOptin; info.devices[id].cc = 100*prop.major + 10*prop.minor; + GGML_LOG_INFO(" Device %d: %s, compute capability %d.%d, VMM: %s\n", + id, prop.name, prop.major, prop.minor, device_vmm ? "yes" : "no"); #endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) } From a4417ddda98fd0558fb4d802253e68a933704b59 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Mon, 27 Jan 2025 19:36:10 +0100 Subject: [PATCH 049/162] Add new hf protocol for ollama (#11449) https://huggingface.co/docs/hub/en/ollama Signed-off-by: Eric Curtin --- examples/run/run.cpp | 121 ++++++++++++++++++++++++++++--------------- 1 file changed, 80 insertions(+), 41 deletions(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 92a49eb74..8a0db74b6 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -319,6 +319,10 @@ class HttpClient { public: int init(const std::string & url, const std::vector & headers, const std::string & output_file, const bool progress, std::string * response_str = nullptr) { + if (std::filesystem::exists(output_file)) { + return 0; + } + std::string output_file_partial; curl = curl_easy_init(); if (!curl) { @@ -558,13 +562,14 @@ class LlamaData { } sampler = initialize_sampler(opt); + return 0; } private: #ifdef LLAMA_USE_CURL - int download(const std::string & url, const std::vector & headers, const std::string & output_file, - const bool progress, std::string * response_str = nullptr) { + int download(const std::string & url, const std::string & output_file, const bool progress, + const std::vector & headers = {}, std::string * response_str = nullptr) { HttpClient http; if (http.init(url, headers, output_file, progress, response_str)) { return 1; @@ -573,48 +578,85 @@ class LlamaData { return 0; } #else - int download(const std::string &, const std::vector &, const std::string &, const bool, + int download(const std::string &, const std::string &, const bool, const std::vector & = {}, std::string * = nullptr) { printe("%s: llama.cpp built without libcurl, downloading from an url not supported.\n", __func__); + return 1; } #endif - int huggingface_dl(const std::string & model, const std::vector headers, const std::string & bn) { - // Find the second occurrence of '/' after protocol string - size_t pos = model.find('/'); - pos = model.find('/', pos + 1); - if (pos == std::string::npos) { - return 1; - } - - const std::string hfr = model.substr(0, pos); - const std::string hff = model.substr(pos + 1); - const std::string url = "https://huggingface.co/" + hfr + "/resolve/main/" + hff; - return download(url, headers, bn, true); - } - - int ollama_dl(std::string & model, const std::vector headers, const std::string & bn) { - if (model.find('/') == std::string::npos) { - model = "library/" + model; - } - - std::string model_tag = "latest"; - size_t colon_pos = model.find(':'); + // Helper function to handle model tag extraction and URL construction + std::pair extract_model_and_tag(std::string & model, const std::string & base_url) { + std::string model_tag = "latest"; + const size_t colon_pos = model.find(':'); if (colon_pos != std::string::npos) { model_tag = model.substr(colon_pos + 1); model = model.substr(0, colon_pos); } - std::string manifest_url = "https://registry.ollama.ai/v2/" + model + "/manifests/" + model_tag; + std::string url = base_url + model + "/manifests/" + model_tag; + + return { model, url }; + } + + // Helper function to download and parse the manifest + int download_and_parse_manifest(const std::string & url, const std::vector & headers, + nlohmann::json & manifest) { std::string manifest_str; - const int ret = download(manifest_url, headers, "", false, &manifest_str); + int ret = download(url, "", false, headers, &manifest_str); if (ret) { return ret; } - nlohmann::json manifest = nlohmann::json::parse(manifest_str); - std::string layer; + manifest = nlohmann::json::parse(manifest_str); + + return 0; + } + + int huggingface_dl(std::string & model, const std::string & bn) { + // Find the second occurrence of '/' after protocol string + size_t pos = model.find('/'); + pos = model.find('/', pos + 1); + std::string hfr, hff; + std::vector headers = { "User-Agent: llama-cpp", "Accept: application/json" }; + std::string url; + + if (pos == std::string::npos) { + auto [model_name, manifest_url] = extract_model_and_tag(model, "https://huggingface.co/v2/"); + hfr = model_name; + + nlohmann::json manifest; + int ret = download_and_parse_manifest(manifest_url, headers, manifest); + if (ret) { + return ret; + } + + hff = manifest["ggufFile"]["rfilename"]; + } else { + hfr = model.substr(0, pos); + hff = model.substr(pos + 1); + } + + url = "https://huggingface.co/" + hfr + "/resolve/main/" + hff; + + return download(url, bn, true, headers); + } + + int ollama_dl(std::string & model, const std::string & bn) { + const std::vector headers = { "Accept: application/vnd.docker.distribution.manifest.v2+json" }; + if (model.find('/') == std::string::npos) { + model = "library/" + model; + } + + auto [model_name, manifest_url] = extract_model_and_tag(model, "https://registry.ollama.ai/v2/"); + nlohmann::json manifest; + int ret = download_and_parse_manifest(manifest_url, {}, manifest); + if (ret) { + return ret; + } + + std::string layer; for (const auto & l : manifest["layers"]) { if (l["mediaType"] == "application/vnd.ollama.image.model") { layer = l["digest"]; @@ -622,8 +664,9 @@ class LlamaData { } } - std::string blob_url = "https://registry.ollama.ai/v2/" + model + "/blobs/" + layer; - return download(blob_url, headers, bn, true); + std::string blob_url = "https://registry.ollama.ai/v2/" + model_name + "/blobs/" + layer; + + return download(blob_url, bn, true, headers); } std::string basename(const std::string & path) { @@ -653,22 +696,18 @@ class LlamaData { return ret; } - const std::string bn = basename(model_); - const std::vector headers = { "--header", - "Accept: application/vnd.docker.distribution.manifest.v2+json" }; + const std::string bn = basename(model_); if (string_starts_with(model_, "hf://") || string_starts_with(model_, "huggingface://")) { rm_until_substring(model_, "://"); - ret = huggingface_dl(model_, headers, bn); + ret = huggingface_dl(model_, bn); } else if (string_starts_with(model_, "hf.co/")) { rm_until_substring(model_, "hf.co/"); - ret = huggingface_dl(model_, headers, bn); - } else if (string_starts_with(model_, "ollama://")) { - rm_until_substring(model_, "://"); - ret = ollama_dl(model_, headers, bn); + ret = huggingface_dl(model_, bn); } else if (string_starts_with(model_, "https://")) { - ret = download(model_, headers, bn, true); - } else { - ret = ollama_dl(model_, headers, bn); + ret = download(model_, bn, true); + } else { // ollama:// or nothing + rm_until_substring(model_, "://"); + ret = ollama_dl(model_, bn); } model_ = bn; From 2b8525d5c89b124c4578a2621cbeb64354ff3d9c Mon Sep 17 00:00:00 2001 From: Michael Engel Date: Tue, 28 Jan 2025 09:32:40 +0100 Subject: [PATCH 050/162] Handle missing model in CLI parameters for llama-run (#11399) The HTTP client in llama-run only prints an error in case the download of a resource failed. If the model name in the CLI parameter list is missing, this causes the application to crash. In order to prevent this, a check for the required model parameter has been added and errors for resource downloads get propagated to the caller. Signed-off-by: Michael Engel --- examples/run/run.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 8a0db74b6..5980a786f 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -181,6 +181,10 @@ class Opt { } } + if (model_.empty()){ + return 1; + } + return 0; } @@ -350,7 +354,11 @@ class HttpClient { data.file_size = set_resume_point(output_file_partial); set_progress_options(progress, data); set_headers(headers); - perform(url); + CURLcode res = perform(url); + if (res != CURLE_OK){ + printe("Fetching resource '%s' failed: %s\n", url.c_str(), curl_easy_strerror(res)); + return 1; + } if (!output_file.empty()) { std::filesystem::rename(output_file_partial, output_file); } @@ -415,16 +423,12 @@ class HttpClient { } } - void perform(const std::string & url) { - CURLcode res; + CURLcode perform(const std::string & url) { curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L); - res = curl_easy_perform(curl); - if (res != CURLE_OK) { - printe("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); - } + return curl_easy_perform(curl); } static std::string human_readable_time(double seconds) { From 6e84b0ab8e10b8f6f99a32855f976ebcd35b0353 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Tue, 28 Jan 2025 15:26:58 +0530 Subject: [PATCH 051/162] SYCL : SOFTMAX F16 mask support and other fixes (#11261) Implemented ggml_sycl_op_soft_max() F16 src1(mask) support for which a pragma deprecation warning was added during #5021. To do this, had to decouple it from ggml_sycl_op_flatten which always considered src1 to be of fp32 type(many OP functions are dependent on it). * SYCL: SOFTMAX F16 mask support and other fixes * test-backend-ops: Add F16 mask test cases --- ggml/src/ggml-sycl/ggml-sycl.cpp | 6 +--- ggml/src/ggml-sycl/softmax.cpp | 56 +++++++++++++++++++------------- ggml/src/ggml-sycl/softmax.hpp | 6 +--- tests/test-backend-ops.cpp | 45 ++++++++++++++++--------- 4 files changed, 64 insertions(+), 49 deletions(-) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index ed4d8bb8b..2984ed82e 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -3878,10 +3878,6 @@ static void ggml_sycl_diag_mask_inf(ggml_backend_sycl_context & ctx, ggml_tensor ggml_sycl_op_flatten(ctx, dst->src[0], dst->src[1], dst, ggml_sycl_op_diag_mask_inf); } -static void ggml_sycl_soft_max(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { - ggml_sycl_op_flatten(ctx, dst->src[0], dst->src[1], dst, ggml_sycl_op_soft_max); -} - static void ggml_sycl_rope(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { GGML_ASSERT(ggml_is_contiguous(dst->src[0])); // TODO: this restriction is temporary until non-cont support is implemented ggml_sycl_op_flatten(ctx, dst->src[0], dst->src[1], dst, ggml_sycl_op_rope); @@ -4090,7 +4086,7 @@ bool ggml_sycl_compute_forward(ggml_backend_sycl_context & ctx, struct ggml_tens ggml_sycl_diag_mask_inf(ctx, dst); break; case GGML_OP_SOFT_MAX: - ggml_sycl_soft_max(ctx, dst); + ggml_sycl_op_soft_max(ctx, dst); break; case GGML_OP_ROPE: ggml_sycl_rope(ctx, dst); diff --git a/ggml/src/ggml-sycl/softmax.cpp b/ggml/src/ggml-sycl/softmax.cpp index a9b3fce0d..563e0655f 100644 --- a/ggml/src/ggml-sycl/softmax.cpp +++ b/ggml/src/ggml-sycl/softmax.cpp @@ -1,7 +1,7 @@ -#include "norm.hpp" +#include "softmax.hpp" -template -static void soft_max_f32(const float * x, const float * mask, float * dst, const int ncols_par, +template +static void soft_max_f32(const float * x, const T * mask, float * dst, const int ncols_par, const int nrows_y, const float scale, const float max_bias, const float m0, const float m1, uint32_t n_head_log2, const sycl::nd_item<3> &item_ct1, float *buf) { const int ncols = ncols_template == 0 ? ncols_par : ncols_template; @@ -29,7 +29,7 @@ static void soft_max_f32(const float * x, const float * mask, float * dst, const slope = sycl::pow(base, float(exp)); } - float *vals = vals_smem ? buf + std::max(nwarps, WARP_SIZE) : dst + rowx * ncols; + float *vals = vals_smem ? buf + sycl::max(nwarps, WARP_SIZE) : dst + rowx * ncols; float max_val = -INFINITY; for (int col0 = 0; col0 < ncols; col0 += block_size) { @@ -42,7 +42,7 @@ static void soft_max_f32(const float * x, const float * mask, float * dst, const const int ix = rowx*ncols + col; const int iy = rowy*ncols + col; - const float val = x[ix]*scale + (mask ? slope*mask[iy] : 0.0f); + const float val = x[ix]*scale + (mask ? slope*static_cast(mask[iy]) : 0.0f); vals[col] = val; max_val = sycl::max(max_val, val); @@ -65,7 +65,7 @@ static void soft_max_f32(const float * x, const float * mask, float * dst, const item_ct1.barrier(sycl::access::fence_space::local_space); max_val = buf[lane_id]; for (size_t i = 1; i < nreduce; i += 1) { - max_val = std::max(max_val, buf[lane_id + i * WARP_SIZE]); + max_val = sycl::max(max_val, buf[lane_id + i * WARP_SIZE]); } max_val = warp_reduce_max(max_val, item_ct1); } @@ -122,8 +122,8 @@ static void soft_max_f32(const float * x, const float * mask, float * dst, const } } -template -static void soft_max_f32_submitter(const float * x, const float * mask, float * dst, const int ncols_par, +template +static void soft_max_f32_submitter(const float * x, const T * mask, float * dst, const int ncols_par, const int nrows_y, const float scale, const float max_bias, const float m0, const float m1, uint32_t n_head_log2, sycl::range<3> block_nums, sycl::range<3> block_dims, const size_t n_local_scratch, queue_ptr stream) { @@ -141,7 +141,8 @@ static void soft_max_f32_submitter(const float * x, const float * mask, float * }); } -static void soft_max_f32_sycl(const float * x, const float * mask, +template +static void soft_max_f32_sycl(const float * x, const T * mask, float * dst, const int ncols_x, const int nrows_x, const int nrows_y, const float scale, const float max_bias, queue_ptr stream, int device) { @@ -223,22 +224,16 @@ static void soft_max_f32_sycl(const float * x, const float * mask, } } -void ggml_sycl_op_soft_max(ggml_backend_sycl_context & ctx, const ggml_tensor *src0, - const ggml_tensor *src1, ggml_tensor *dst, - const float *src0_dd, const float *src1_dd, - float *dst_dd, - const queue_ptr &main_stream) { +void ggml_sycl_op_soft_max(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { - GGML_ASSERT(src0->type == GGML_TYPE_F32); + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32); GGML_ASSERT( dst->type == GGML_TYPE_F32); -#pragma message("TODO: add ggml_sycl_op_soft_max() F16 src1 support") -#pragma message("ref: https://github.com/ggerganov/llama.cpp/pull/5021") - GGML_ASSERT(!src1 || src1->type == GGML_TYPE_F32); // src1 contains mask and it is optional + GGML_ASSERT(!dst->src[1] || dst->src[1]->type == GGML_TYPE_F16 || dst->src[1]->type == GGML_TYPE_F32); // src1 contains mask and it is optional - const int64_t ne00 = src0->ne[0]; - const int64_t nrows_x = ggml_nrows(src0); - const int64_t nrows_y = src0->ne[1]; + const int64_t ne00 = dst->src[0]->ne[0]; + const int64_t nrows_x = ggml_nrows(dst->src[0]); + const int64_t nrows_y = dst->src[0]->ne[1]; float scale = 1.0f; float max_bias = 0.0f; @@ -246,6 +241,21 @@ void ggml_sycl_op_soft_max(ggml_backend_sycl_context & ctx, const ggml_tensor *s memcpy(&scale, dst->op_params + 0, sizeof(float)); memcpy(&max_bias, dst->op_params + 1, sizeof(float)); - soft_max_f32_sycl(src0_dd, src1 ? src1_dd : nullptr, dst_dd, ne00, - nrows_x, nrows_y, scale, max_bias, main_stream, ctx.device); + const float * src0_dd = static_cast(dst->src[0]->data); + float * dst_dd = static_cast(dst->data); + + ggml_sycl_set_device(ctx.device); + dpct::queue_ptr main_stream = ctx.stream(); + + if (dst->src[1] && dst->src[1]->type == GGML_TYPE_F16) { + const sycl::half * src1_dd = static_cast(dst->src[1]->data); + soft_max_f32_sycl(src0_dd, src1_dd, dst_dd, ne00, nrows_x, nrows_y, scale, max_bias, + main_stream, ctx.device); + } else if (dst->src[1] && dst->src[1]->type == GGML_TYPE_F32) { + const float * src1_dd = static_cast(dst->src[1]->data); + soft_max_f32_sycl(src0_dd, src1_dd, dst_dd, ne00, nrows_x, nrows_y, scale, max_bias, main_stream, ctx.device); + } else { + /* mask unavailable */ + soft_max_f32_sycl(src0_dd, nullptr, dst_dd, ne00, nrows_x, nrows_y, scale, max_bias, main_stream, ctx.device); + } } diff --git a/ggml/src/ggml-sycl/softmax.hpp b/ggml/src/ggml-sycl/softmax.hpp index bdb8f712e..2cf8582ec 100644 --- a/ggml/src/ggml-sycl/softmax.hpp +++ b/ggml/src/ggml-sycl/softmax.hpp @@ -15,10 +15,6 @@ #include "common.hpp" -void ggml_sycl_op_soft_max(ggml_backend_sycl_context &ctx, const ggml_tensor *src0, - const ggml_tensor *src1, ggml_tensor *dst, - const float *src0_dd, const float *src1_dd, - float *dst_dd, - const queue_ptr &main_stream); +void ggml_sycl_op_soft_max(ggml_backend_sycl_context &ctx, ggml_tensor *dst); #endif // GGML_SYCL_SOFTMAX_HPP diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 468016403..4c5c4dd9c 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -2347,11 +2347,12 @@ struct test_soft_max : public test_case { const ggml_type type; const std::array ne; const bool mask; + const ggml_type m_prec; const float scale; const float max_bias; std::string vars() override { - return VARS_TO_STR5(type, ne, mask, scale, max_bias); + return VARS_TO_STR6(type, ne, mask, m_prec, scale, max_bias); } // the 1024 test with bias occasionally fails: @@ -2363,9 +2364,10 @@ struct test_soft_max : public test_case { test_soft_max(ggml_type type = GGML_TYPE_F32, std::array ne = {10, 5, 4, 3}, bool mask = false, + ggml_type m_prec = GGML_TYPE_F32, float scale = 1.0f, float max_bias = 0.0f) - : type(type), ne(ne), mask(mask), scale(scale), max_bias(max_bias) {} + : type(type), ne(ne), mask(mask), m_prec(m_prec), scale(scale), max_bias(max_bias) {} ggml_tensor * build_graph(ggml_context * ctx) override { ggml_tensor * a = ggml_new_tensor(ctx, type, 4, ne.data()); @@ -2374,7 +2376,7 @@ struct test_soft_max : public test_case { ggml_tensor * mask = nullptr; if (this->mask) { - mask = ggml_new_tensor_2d(ctx, GGML_TYPE_F32, ne[0], ne[1]); + mask = ggml_new_tensor_2d(ctx, m_prec, ne[0], ne[1]); ggml_set_name(mask, "mask"); } @@ -4150,17 +4152,28 @@ static std::vector> make_test_cases_eval() { for (float scale : {1.0f, 0.1f}) { for (int64_t ne0 : {16, 1024}) { for (int64_t ne1 : {16, 1024}) { - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0, ne1, 1, 1}, mask, scale, max_bias)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0-1, ne1-1, 1, 1}, mask, scale, max_bias)); + if (mask) { + for (ggml_type m_prec : {GGML_TYPE_F32, GGML_TYPE_F16}) { + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0, ne1, 1, 1}, mask, m_prec, scale, max_bias)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0-1, ne1-1, 1, 1}, mask, m_prec, scale, max_bias)); + } + } else { + /* The precision of mask here doesn't matter as boolean mask is false */ + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0, ne1, 1, 1}, mask, GGML_TYPE_F32, scale, max_bias)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {ne0-1, ne1-1, 1, 1}, mask, GGML_TYPE_F32, scale, max_bias)); + } } } } } } - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {16, 2, 32, 1}, true, 0.1f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {16, 2, 32, 1}, false, 0.1f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, 0.1f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, 0.1f, 8.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {16, 2, 32, 1}, true, GGML_TYPE_F32, 0.1f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {16, 2, 32, 1}, true, GGML_TYPE_F16, 0.1f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {16, 2, 32, 1}, false, GGML_TYPE_F32, 0.1f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, GGML_TYPE_F32, 0.1f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, GGML_TYPE_F16, 0.1f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, GGML_TYPE_F32, 0.1f, 8.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {32, 2, 32, 1}, true, GGML_TYPE_F16, 0.1f, 8.0f)); for (float max_bias : {0.0f, 8.0f}) { for (float scale : {1.0f, 0.1f}) { @@ -4296,13 +4309,13 @@ static std::vector> make_test_cases_perf() { test_cases.emplace_back(new test_cpy(GGML_TYPE_F32, GGML_TYPE_F32, {8192, 512, 2, 1}, {0, 2, 1, 3})); test_cases.emplace_back(new test_cpy(GGML_TYPE_F32, GGML_TYPE_F32, {3072, 512, 2, 1}, {0, 2, 1, 3})); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {4096, 4096, 5, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 4096, 5, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {1024, 1024, 10, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 1024, 10, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {256, 256, 20, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {64, 64, 20, 1}, false, 1.0f, 0.0f)); - test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 64, 20, 1}, false, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {4096, 4096, 5, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 4096, 5, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {1024, 1024, 10, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 1024, 10, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {256, 256, 20, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {64, 64, 20, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); + test_cases.emplace_back(new test_soft_max(GGML_TYPE_F32, {77, 64, 20, 1}, false, GGML_TYPE_F32, 1.0f, 0.0f)); test_cases.emplace_back(new test_argmax(GGML_TYPE_F32, {32, 10, 1, 1})); test_cases.emplace_back(new test_argmax(GGML_TYPE_F32, {1024, 10, 1, 1})); From f643120bad8ab3a753daa64aaac8288ee5800e06 Mon Sep 17 00:00:00 2001 From: Nuno Date: Tue, 28 Jan 2025 11:42:32 +0100 Subject: [PATCH 052/162] docker: add perplexity and bench commands to full image (#11438) Signed-off-by: rare-magma --- .devops/tools.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.devops/tools.sh b/.devops/tools.sh index 9a86e6ea0..41a6b1e55 100755 --- a/.devops/tools.sh +++ b/.devops/tools.sh @@ -13,9 +13,13 @@ elif [[ "$arg1" == '--quantize' || "$arg1" == '-q' ]]; then exec ./llama-quantize "$@" elif [[ "$arg1" == '--run' || "$arg1" == '-r' ]]; then exec ./llama-cli "$@" +elif [[ "$arg1" == '--bench' || "$arg1" == '-b' ]]; then + exec ./llama-bench "$@" +elif [[ "$arg1" == '--perplexity' || "$arg1" == '-p' ]]; then + exec ./llama-perplexity "$@" elif [[ "$arg1" == '--all-in-one' || "$arg1" == '-a' ]]; then echo "Converting PTH to GGML..." - for i in `ls $1/$2/ggml-model-f16.bin*`; do + for i in $(ls $1/$2/ggml-model-f16.bin*); do if [ -f "${i/f16/q4_0}" ]; then echo "Skip model quantization, it already exists: ${i/f16/q4_0}" else @@ -30,6 +34,10 @@ else echo "Available commands: " echo " --run (-r): Run a model previously converted into ggml" echo " ex: -m /models/7B/ggml-model-q4_0.bin -p \"Building a website can be done in 10 simple steps:\" -n 512" + echo " --bench (-b): Benchmark the performance of the inference for various parameters." + echo " ex: -m model.gguf" + echo " --perplexity (-p): Measure the perplexity of a model over a given text." + echo " ex: -m model.gguf -f file.txt" echo " --convert (-c): Convert a llama model into ggml" echo " ex: --outtype f16 \"/models/7B/\" " echo " --quantize (-q): Optimize with quantization process ggml" From 4bf3119d61c1de5660025fd5a611effe503e3d2b Mon Sep 17 00:00:00 2001 From: someone13574 <81528246+someone13574@users.noreply.github.com> Date: Tue, 28 Jan 2025 09:15:34 -0500 Subject: [PATCH 053/162] cmake : don't fail on `GGML_CPU=OFF` (#11457) --- ggml/src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt index 8d2b948fb..566709135 100644 --- a/ggml/src/CMakeLists.txt +++ b/ggml/src/CMakeLists.txt @@ -308,7 +308,7 @@ if (GGML_CPU_ALL_VARIANTS) # MSVC doesn't support AMX ggml_add_cpu_backend_variant(sapphirerapids AVX F16C AVX2 FMA AVX512 AVX512_VBMI AVX512_VNNI AVX512_BF16 AMX_TILE AMX_INT8) endif() -else () +elseif (GGML_CPU) ggml_add_cpu_backend_variant_impl("") endif() From d7d1eccacccaa698c9232014b96a82b359595d6e Mon Sep 17 00:00:00 2001 From: Nuno Date: Tue, 28 Jan 2025 15:17:25 +0100 Subject: [PATCH 054/162] docker: allow installing pip packages system-wide (#11437) Signed-off-by: rare-magma --- .devops/vulkan.Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.devops/vulkan.Dockerfile b/.devops/vulkan.Dockerfile index b5bd3b6d2..eabf832f8 100644 --- a/.devops/vulkan.Dockerfile +++ b/.devops/vulkan.Dockerfile @@ -55,8 +55,9 @@ RUN apt-get update \ git \ python3 \ python3-pip \ - && pip install --upgrade pip setuptools wheel \ - && pip install -r requirements.txt \ + python3-wheel \ + && pip install --break-system-packages --upgrade setuptools \ + && pip install --break-system-packages -r requirements.txt \ && apt autoremove -y \ && apt clean -y \ && rm -rf /tmp/* /var/tmp/* \ From 7fee2889e6565830631fbe76d47ef85cf8fd946a Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Tue, 28 Jan 2025 15:45:41 +0100 Subject: [PATCH 055/162] Add github protocol pulling and http:// (#11465) As pulling protocols to llama-run Signed-off-by: Eric Curtin --- examples/run/run.cpp | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 5980a786f..40f2bcb00 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -673,6 +673,40 @@ class LlamaData { return download(blob_url, bn, true, headers); } + int github_dl(const std::string & model, const std::string & bn) { + std::string repository = model; + std::string branch = "main"; + size_t at_pos = model.find('@'); + if (at_pos != std::string::npos) { + repository = model.substr(0, at_pos); + branch = model.substr(at_pos + 1); + } + + std::vector repo_parts; + size_t start = 0; + for (size_t end = 0; (end = repository.find('/', start)) != std::string::npos; start = end + 1) { + repo_parts.push_back(repository.substr(start, end - start)); + } + + repo_parts.push_back(repository.substr(start)); + if (repo_parts.size() < 3) { + printe("Invalid GitHub repository format\n"); + return 1; + } + + const std::string org = repo_parts[0]; + const std::string project = repo_parts[1]; + std::string project_path = repo_parts[2]; + for (size_t i = 3; i < repo_parts.size(); ++i) { + project_path += "/" + repo_parts[i]; + } + + const std::string url = + "https://raw.githubusercontent.com/" + org + "/" + project + "/" + branch + "/" + project_path; + + return download(url, bn, true); + } + std::string basename(const std::string & path) { const size_t pos = path.find_last_of("/\\"); if (pos == std::string::npos) { @@ -707,8 +741,12 @@ class LlamaData { } else if (string_starts_with(model_, "hf.co/")) { rm_until_substring(model_, "hf.co/"); ret = huggingface_dl(model_, bn); - } else if (string_starts_with(model_, "https://")) { + } else if (string_starts_with(model_, "https://") || string_starts_with(model_, "http://")) { ret = download(model_, bn, true); + } else if (string_starts_with(model_, "github:") || string_starts_with(model_, "github://")) { + rm_until_substring(model_, "github://"); + rm_until_substring(model_, "github:"); + ret = github_dl(model_, bn); } else { // ollama:// or nothing rm_until_substring(model_, "://"); ret = ollama_dl(model_, bn); From cae9fb4361138b937464524eed907328731b81f6 Mon Sep 17 00:00:00 2001 From: Nikita Sarychev <42014488+sARY77@users.noreply.github.com> Date: Tue, 28 Jan 2025 07:42:20 -0800 Subject: [PATCH 056/162] HIP: Only call rocblas_initialize on rocblas versions with the multiple instantation bug (#11080) This disables the workaround on rocblas fixed versions (>=4.0.0) to eliminate the runtime cost and unnecessary VRAM allocation of loading all tensile objects. --- ggml/src/ggml-cuda/ggml-cuda.cu | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 402f37e85..de3f9c2ca 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -172,8 +173,25 @@ static ggml_cuda_device_info ggml_cuda_init() { #ifdef __HIP_PLATFORM_AMD__ // Workaround for a rocBLAS bug when using multiple graphics cards: // https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1346 - rocblas_initialize(); - CUDA_CHECK(cudaDeviceSynchronize()); + { + int major_version = 0; + size_t version_length = 0; + if (rocblas_get_version_string_size(&version_length) == rocblas_status_success) { + std::string version(version_length, '\0'); + if (rocblas_get_version_string(version.data(), version.size()) == rocblas_status_success) { + version.resize(::strlen(version.c_str())); + int parsed_value = 0; + if (std::from_chars(version.c_str(), version.c_str() + version.length(), parsed_value).ec == std::errc()) { + major_version = parsed_value; + } + } + } + if (major_version < 4) { + GGML_LOG_DEBUG(GGML_CUDA_NAME " calling rocblas_initialize as a workaround for a rocBLAS bug\n"); + rocblas_initialize(); + CUDA_CHECK(cudaDeviceSynchronize()); + } + } #endif ggml_cuda_device_info info = {}; From be5ef7963fcf14a9c77c963fdd3f7b606eacb498 Mon Sep 17 00:00:00 2001 From: uvos Date: Tue, 28 Jan 2025 23:06:32 +0100 Subject: [PATCH 057/162] HIP: Supress transformation warning in softmax.cu loops with bounds not known at compile time can not be unrolled. when ncols_template == 0, the bounds of the loop are not constexpr, thus llvm cant unroll the loops here. --- ggml/src/ggml-cuda/softmax.cu | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ggml/src/ggml-cuda/softmax.cu b/ggml/src/ggml-cuda/softmax.cu index 9aa4b8489..da377200e 100644 --- a/ggml/src/ggml-cuda/softmax.cu +++ b/ggml/src/ggml-cuda/softmax.cu @@ -13,6 +13,12 @@ __device__ float __forceinline__ t2f32(half val) { return __half2float(val); } +// When ncols_template == 0 the bounds for the loops in this function are not known and can't be unrolled. +// As we want to keep pragma unroll for all other cases we supress the clang transformation warning here. +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpass-failed" +#endif template static __global__ void soft_max_f32( const float * x, const T * mask, float * dst, const int ncols_par, const int nrows_y, @@ -118,6 +124,9 @@ static __global__ void soft_max_f32( dst[col] = vals[col] * inv_sum; } } +#ifdef __clang__ +#pragma clang diagnostic pop +#endif static __global__ void soft_max_back_f32( const float * grad, const float * dstf, float * dst, const int ncols, const float scale) { From d0c08040b6c8bebeade7b8d5764df6cf901678d5 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 29 Jan 2025 00:02:56 +0100 Subject: [PATCH 058/162] ci : fix build CPU arm64 (#11472) * ci : fix build CPU arm64 * failed, trying ubuntu 22 * vulkan: ubuntu 24 * vulkan : jammy --> noble --- .devops/vulkan.Dockerfile | 4 ++-- .github/workflows/docker.yml | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.devops/vulkan.Dockerfile b/.devops/vulkan.Dockerfile index eabf832f8..9064f3838 100644 --- a/.devops/vulkan.Dockerfile +++ b/.devops/vulkan.Dockerfile @@ -1,4 +1,4 @@ -ARG UBUNTU_VERSION=22.04 +ARG UBUNTU_VERSION=24.04 FROM ubuntu:$UBUNTU_VERSION AS build @@ -7,7 +7,7 @@ RUN apt update && apt install -y git build-essential cmake wget # Install Vulkan SDK and cURL RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ - wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list https://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list && \ apt update -y && \ apt-get install -y vulkan-sdk libcurl4-openssl-dev curl diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6bf22eb66..6955a7dc8 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -28,7 +28,7 @@ jobs: push_to_registry: name: Push Docker image to Docker Hub - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 env: COMMIT_SHA: ${{ github.sha }} strategy: @@ -36,8 +36,7 @@ jobs: matrix: config: # Multi-stage build - - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} - - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/arm64", full: true, light: true, server: true, freediskspace: false} + - { tag: "cpu", dockerfile: ".devops/cpu.Dockerfile", platforms: "linux/amd64,linux/arm64", full: true, light: true, server: true, freediskspace: false} - { tag: "cuda", dockerfile: ".devops/cuda.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} - { tag: "musa", dockerfile: ".devops/musa.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} - { tag: "intel", dockerfile: ".devops/intel.Dockerfile", platforms: "linux/amd64", full: true, light: true, server: true, freediskspace: false} From cf8cc856d7d02165bd08593b4757e1256a62d501 Mon Sep 17 00:00:00 2001 From: peidaqi Date: Tue, 28 Jan 2025 16:03:42 -0700 Subject: [PATCH 059/162] server : Fixed wrong function name in llamacpp server unit test (#11473) The test_completion_stream_with_openai_library() function is actually with stream=False by default, and test_completion_with_openai_library() with stream=True --- examples/server/tests/unit/test_completion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/server/tests/unit/test_completion.py b/examples/server/tests/unit/test_completion.py index c1fc12462..0ed5b99be 100644 --- a/examples/server/tests/unit/test_completion.py +++ b/examples/server/tests/unit/test_completion.py @@ -87,7 +87,7 @@ def test_completion_stream_vs_non_stream(): assert content_stream == res_non_stream.body["content"] -def test_completion_stream_with_openai_library(): +def test_completion_with_openai_library(): global server server.start() client = OpenAI(api_key="dummy", base_url=f"http://{server.server_host}:{server.server_port}/v1") @@ -102,7 +102,7 @@ def test_completion_stream_with_openai_library(): assert match_regex("(going|bed)+", res.choices[0].text) -def test_completion_with_openai_library(): +def test_completion_stream_with_openai_library(): global server server.start() client = OpenAI(api_key="dummy", base_url=f"http://{server.server_host}:{server.server_port}/v1") From 794fe23f29fb40104975c91fe19f23798f7c726e Mon Sep 17 00:00:00 2001 From: Emreerdog <34742675+Emreerdog@users.noreply.github.com> Date: Wed, 29 Jan 2025 02:22:06 +0300 Subject: [PATCH 060/162] cmake: add hints for locating ggml on Windows using Llama find-package (#11466) --- cmake/llama-config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/llama-config.cmake.in b/cmake/llama-config.cmake.in index 40ade96e5..90cbec5b6 100644 --- a/cmake/llama-config.cmake.in +++ b/cmake/llama-config.cmake.in @@ -9,7 +9,7 @@ set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@") set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@") set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@") -find_package(ggml REQUIRED) +find_package(ggml REQUIRED HINTS ${LLAMA_LIB_DIR}/cmake) find_library(llama_LIBRARY llama REQUIRED From 325afb370a1a7b32b5fe46a749bc840c66db9765 Mon Sep 17 00:00:00 2001 From: Molly Sophia Date: Wed, 29 Jan 2025 12:07:21 +0800 Subject: [PATCH 061/162] llama: fix missing k_cache store for rwkv6qwen2 (#11445) Signed-off-by: Molly Sophia --- src/llama.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/llama.cpp b/src/llama.cpp index 12e8f41fc..192b20a27 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -7700,17 +7700,13 @@ struct llm_build_context { 1 ); + struct ggml_tensor * last_norm_att = ggml_view_3d(ctx0, x_norm_att, n_embd, 1, n_seqs, x_norm_att->nb[1], x_norm_att->nb[2], (n_seq_tokens-1)*n_embd*ggml_element_size(x_norm_att)); ggml_build_forward_expand( gf, ggml_cpy( ctx0, - wkv_states, - ggml_view_1d( - ctx0, - kv_self.v_l[il], - hparams.n_embd_v_s() * n_seqs, - hparams.n_embd_v_s() * kv_head * ggml_element_size(kv_self.v_l[il]) - ) + ggml_view_1d(ctx0, last_norm_att, n_embd * n_seqs, 0), + ggml_view_1d(ctx0, kv_self.k_l[il], hparams.n_embd_k_s() * n_seqs, hparams.n_embd_k_s() * kv_head * ggml_element_size(kv_self.k_l[il])) ) ); From b636228c0ad0db95bf73008094c6145a05615cf6 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 29 Jan 2025 09:38:54 +0100 Subject: [PATCH 062/162] embedding : enable --no-warmup option (#11475) This commit enables the `--no-warmup` option for the llama-embeddings. The motivation for this change is to allow the user to disable the warmup when running the the program. --- common/arg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/arg.cpp b/common/arg.cpp index a6226a34b..f5e9b294f 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -877,7 +877,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex [](common_params & params) { params.warmup = false; } - ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER})); + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER, LLAMA_EXAMPLE_EMBEDDING})); add_opt(common_arg( {"--spm-infill"}, string_format( From d2e518e9b4231077013ffb0e5c4cc24a0c4c1b7d Mon Sep 17 00:00:00 2001 From: issixx <46835150+issixx@users.noreply.github.com> Date: Fri, 17 Jan 2025 21:29:08 +0900 Subject: [PATCH 063/162] ggml-cpu : fix ggml_graph_compute_thread did not terminate on abort. (ggml/1065) some threads kept looping and failed to terminate properly after an abort during CPU execution. Co-authored-by: issi --- ggml/src/ggml-cpu/ggml-cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index 9e627da8c..e809f05d2 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -1302,7 +1302,7 @@ struct ggml_threadpool { // these are atomic as an annotation for thread-sanitizer atomic_bool stop; // Used for stopping the threadpool altogether atomic_bool pause; // Used for pausing the threadpool or individual threads - atomic_bool abort; // Used for aborting processing of a graph + atomic_int abort; // Used for aborting processing of a graph struct ggml_compute_state * workers; // per thread state int n_threads_max; // number of threads in the pool @@ -13851,14 +13851,14 @@ static thread_ret_t ggml_graph_compute_thread(void * data) { /*.threadpool=*/ tp, }; - for (int node_n = 0; node_n < cgraph->n_nodes && !tp->abort; node_n++) { + for (int node_n = 0; node_n < cgraph->n_nodes && atomic_load_explicit(&tp->abort, memory_order_relaxed) != node_n; node_n++) { struct ggml_tensor * node = cgraph->nodes[node_n]; ggml_compute_forward(¶ms, node); if (state->ith == 0 && cplan->abort_callback && cplan->abort_callback(cplan->abort_callback_data)) { - tp->abort = true; + atomic_store_explicit(&tp->abort, node_n + 1, memory_order_relaxed); tp->ec = GGML_STATUS_ABORTED; } @@ -14031,7 +14031,7 @@ static struct ggml_threadpool * ggml_threadpool_new_impl( threadpool->current_chunk = 0; threadpool->stop = false; threadpool->pause = tpp->paused; - threadpool->abort = false; + threadpool->abort = -1; threadpool->workers = NULL; threadpool->n_threads_max = tpp->n_threads; threadpool->n_threads_cur = tpp->n_threads; @@ -14110,7 +14110,7 @@ enum ggml_status ggml_graph_compute(struct ggml_cgraph * cgraph, struct ggml_cpl threadpool->cgraph = cgraph; threadpool->cplan = cplan; threadpool->current_chunk = 0; - threadpool->abort = false; + threadpool->abort = -1; threadpool->ec = GGML_STATUS_SUCCESS; } From 1a0e87d29152cb9d4ce13b4ad64b0382c9ba1ab6 Mon Sep 17 00:00:00 2001 From: William Tambellini Date: Thu, 23 Jan 2025 11:59:08 -0800 Subject: [PATCH 064/162] ggml : add option to not print stack on abort (ggml/1081) * Add option to not print stack on abort Add option/envvar to disable stack printing on abort. Also link some unittests with Threads to fix link errors on ubuntu/g++11. * Update ggml/src/ggml.c --------- Co-authored-by: Diego Devesa --- ggml/src/ggml.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index 92c4294c5..3b4861542 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -128,6 +128,10 @@ static void ggml_print_backtrace_symbols(void) { #endif static void ggml_print_backtrace(void) { + const char * GGML_NO_BACKTRACE = getenv("GGML_NO_BACKTRACE"); + if (GGML_NO_BACKTRACE) { + return; + } char attach[32]; snprintf(attach, sizeof(attach), "attach %d", getpid()); int pid = fork(); From 815857791d3639a4d544d0a8cf25a49b0325c08c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 29 Jan 2025 11:25:29 +0200 Subject: [PATCH 065/162] sync : ggml --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index cfba59d32..ddb9d817e 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -d92321c0d151fe73a47d89738c7c3091ac904297 +32f0b85987396945afea2291d5f4c5862434292b From f0d4b29edfc633ec3ba6442482a6b43a5cd80a01 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Wed, 29 Jan 2025 12:23:10 +0100 Subject: [PATCH 066/162] Parse https://ollama.com/library/ syntax (#11480) People search for ollama models using the web ui, this change allows one to copy the url from the browser and for it to be compatible with llama-run. Signed-off-by: Eric Curtin --- examples/run/run.cpp | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 40f2bcb00..9cecae48c 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -674,36 +674,27 @@ class LlamaData { } int github_dl(const std::string & model, const std::string & bn) { - std::string repository = model; - std::string branch = "main"; - size_t at_pos = model.find('@'); + std::string repository = model; + std::string branch = "main"; + const size_t at_pos = model.find('@'); if (at_pos != std::string::npos) { repository = model.substr(0, at_pos); branch = model.substr(at_pos + 1); } - std::vector repo_parts; - size_t start = 0; - for (size_t end = 0; (end = repository.find('/', start)) != std::string::npos; start = end + 1) { - repo_parts.push_back(repository.substr(start, end - start)); - } - - repo_parts.push_back(repository.substr(start)); + const std::vector repo_parts = string_split(repository, "/"); if (repo_parts.size() < 3) { printe("Invalid GitHub repository format\n"); return 1; } - const std::string org = repo_parts[0]; - const std::string project = repo_parts[1]; - std::string project_path = repo_parts[2]; - for (size_t i = 3; i < repo_parts.size(); ++i) { - project_path += "/" + repo_parts[i]; + const std::string & org = repo_parts[0]; + const std::string & project = repo_parts[1]; + std::string url = "https://raw.githubusercontent.com/" + org + "/" + project + "/" + branch; + for (size_t i = 2; i < repo_parts.size(); ++i) { + url += "/" + repo_parts[i]; } - const std::string url = - "https://raw.githubusercontent.com/" + org + "/" + project + "/" + branch + "/" + project_path; - return download(url, bn, true); } @@ -735,19 +726,20 @@ class LlamaData { } const std::string bn = basename(model_); - if (string_starts_with(model_, "hf://") || string_starts_with(model_, "huggingface://")) { + if (string_starts_with(model_, "hf://") || string_starts_with(model_, "huggingface://") || + string_starts_with(model_, "hf.co/")) { + rm_until_substring(model_, "hf.co/"); rm_until_substring(model_, "://"); ret = huggingface_dl(model_, bn); - } else if (string_starts_with(model_, "hf.co/")) { - rm_until_substring(model_, "hf.co/"); - ret = huggingface_dl(model_, bn); - } else if (string_starts_with(model_, "https://") || string_starts_with(model_, "http://")) { + } else if ((string_starts_with(model_, "https://") || string_starts_with(model_, "http://")) && + !string_starts_with(model_, "https://ollama.com/library/")) { ret = download(model_, bn, true); } else if (string_starts_with(model_, "github:") || string_starts_with(model_, "github://")) { - rm_until_substring(model_, "github://"); rm_until_substring(model_, "github:"); + rm_until_substring(model_, "://"); ret = github_dl(model_, bn); } else { // ollama:// or nothing + rm_until_substring(model_, "ollama.com/library/"); rm_until_substring(model_, "://"); ret = ollama_dl(model_, bn); } From 2711d0215ff6a1ecb2202ac8c1f135bceed7057b Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Wed, 29 Jan 2025 09:26:50 -0600 Subject: [PATCH 067/162] vulkan: Catch pipeline creation failure and print an error message (#11436) * vulkan: Catch pipeline creation failure and print an error message Also, fix some warnings from my on-demand compile change. * vulkan: fix pipeline creation logging --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index a9d6b923c..6c7e60650 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -774,12 +774,12 @@ static uint32_t compile_count = 0; static std::mutex compile_count_mutex; static std::condition_variable compile_count_cond; -static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipeline, const std::string name, size_t spv_size, const void* spv_data, const std::string entrypoint, - uint32_t parameter_count, uint32_t push_constant_size, std::array wg_denoms, std::vector specialization_constants, - uint32_t align, bool disable_robustness, bool require_full_subgroups, uint32_t required_subgroup_size) { - VK_LOG_DEBUG("ggml_vk_create_pipeline(" << device->name << ", " << name << ", " << entrypoint << ", " << parameter_count << ", " << push_constant_size << - ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << align << - ", " << disable_robustness << ", " << require_full_subgroups << ", " << required_subgroup_size << ")"); +static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipeline, size_t spv_size, const void* spv_data, const std::string entrypoint, + uint32_t parameter_count, std::array wg_denoms, std::vector specialization_constants, + bool disable_robustness, bool require_full_subgroups, uint32_t required_subgroup_size) { + VK_LOG_DEBUG("ggml_vk_create_pipeline(" << device->name << ", " << pipeline->name << ", " << entrypoint << ", " << parameter_count << + ", (" << wg_denoms[0] << "," << wg_denoms[1] << "," << wg_denoms[2] << "), specialization_constants, " << + disable_robustness << ", " << require_full_subgroups << ", " << required_subgroup_size << ")"); GGML_ASSERT(parameter_count > 0); GGML_ASSERT(wg_denoms[0] > 0 && wg_denoms[1] > 0 && wg_denoms[2] > 0); // NOLINT @@ -864,7 +864,13 @@ static void ggml_vk_create_pipeline_func(vk_device& device, vk_pipeline& pipelin compute_pipeline_create_info.setPNext(&rci); } - pipeline->pipeline = device->device.createComputePipeline(VK_NULL_HANDLE, compute_pipeline_create_info).value; + try { + pipeline->pipeline = device->device.createComputePipeline(VK_NULL_HANDLE, compute_pipeline_create_info).value; + } catch (const vk::SystemError& e) { + std::cerr << "ggml_vulkan: Compute pipeline creation failed for " << pipeline->name << std::endl; + std::cerr << "ggml_vulkan: " << e.what() << std::endl; + throw e; + } pipeline->compiled = true; { @@ -1560,8 +1566,8 @@ static void ggml_vk_load_shaders(vk_device& device) { } compile_count++; } - compiles.push_back(std::async(ggml_vk_create_pipeline_func, std::ref(device), std::ref(pipeline), name, spv_size, spv_data, entrypoint, - parameter_count, push_constant_size, wg_denoms, specialization_constants, align, disable_robustness, require_full_subgroups, required_subgroup_size)); + compiles.push_back(std::async(ggml_vk_create_pipeline_func, std::ref(device), std::ref(pipeline), spv_size, spv_data, entrypoint, + parameter_count, wg_denoms, specialization_constants, disable_robustness, require_full_subgroups, required_subgroup_size)); }; #if defined(VK_NV_cooperative_matrix2) && defined(GGML_VULKAN_COOPMAT2_GLSLC_SUPPORT) From e51c47b401f8cb5f21630a05171e2529cde4d186 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 29 Jan 2025 16:34:18 +0100 Subject: [PATCH 068/162] server : update auto gen files comments [no ci] (#11484) * server : update auto gen files comments This commit updates the 'auto generated files' comments in server.cpp and removes `deps.sh` from the comment. The motivation for this change is that `deps.sh` was removed in Commit 91c36c269bca75b2d08119c653512cd20b4ea2ba ("server : (web ui) Various improvements, now use vite as bundler (#10599)"). * squash! server : update auto gen files comments [no ci] Move comments about file generation to README.md. * squash! server : update auto gen files comments [no ci] Remove the comments in server.cpp that mention that information can be found in the README.md file. --- examples/server/README.md | 6 +++++- examples/server/server.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/server/README.md b/examples/server/README.md index 5022de672..e788d8b59 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -236,9 +236,13 @@ npm i # to run the dev server npm run dev -# to build the public/index.html +# to build the public/index.html.gz npm run build ``` +After `public/index.html.gz` has been generated we need to generate the c++ +headers (like build/examples/server/index.html.gz.hpp) that will be included +by server.cpp. This is done by building `llama-server` as described in the +[build](#build) section above. NOTE: if you are using the vite dev server, you can change the API base URL to llama.cpp. To do that, run this code snippet in browser's console: diff --git a/examples/server/server.cpp b/examples/server/server.cpp index b1cde2d7f..c5efbdb09 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -14,7 +14,7 @@ // mime type for sending response #define MIMETYPE_JSON "application/json; charset=utf-8" -// auto generated files (update with ./deps.sh) +// auto generated files (see README.md for details) #include "index.html.gz.hpp" #include "loading.html.hpp" From 66ee4f297cff3c7ce98b31dbc0ce909d41b9e408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Oudompheng?= Date: Wed, 29 Jan 2025 18:29:39 +0100 Subject: [PATCH 069/162] vulkan: implement initial support for IQ2 and IQ3 quantizations (#11360) * vulkan: initial support for IQ3_S * vulkan: initial support for IQ3_XXS * vulkan: initial support for IQ2_XXS * vulkan: initial support for IQ2_XS * vulkan: optimize Q3_K by removing branches * vulkan: implement dequantize variants for coopmat2 * vulkan: initial support for IQ2_S * vulkan: vertically realign code * port failing dequant callbacks from mul_mm * Fix array length mismatches * vulkan: avoid using workgroup size before it is referenced * tests: increase timeout for Vulkan llvmpipe backend --------- Co-authored-by: Jeff Bolz --- .github/workflows/build.yml | 3 +- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 157 +++- .../vulkan-shaders/copy_from_quant.comp | 4 +- .../vulkan-shaders/copy_to_quant.comp | 4 +- .../vulkan-shaders/dequant_funcs.comp | 218 +++++- .../vulkan-shaders/dequant_funcs_cm2.comp | 164 ++++ .../vulkan-shaders/dequant_iq2_s.comp | 44 ++ .../vulkan-shaders/dequant_iq2_xs.comp | 43 + .../vulkan-shaders/dequant_iq2_xxs.comp | 48 ++ .../vulkan-shaders/dequant_iq3_s.comp | 39 + .../vulkan-shaders/dequant_iq3_xxs.comp | 49 ++ .../vulkan-shaders/dequant_iq4_nl.comp | 2 +- .../vulkan-shaders/flash_attn_cm2.comp | 4 +- .../vulkan-shaders/get_rows_quant.comp | 4 +- .../vulkan-shaders/mul_mat_vec.comp | 4 +- .../ggml-vulkan/vulkan-shaders/mul_mm.comp | 122 ++- .../vulkan-shaders/mul_mm_cm2.comp | 4 +- .../src/ggml-vulkan/vulkan-shaders/types.comp | 738 +++++++++++++++++- .../vulkan-shaders/vulkan-shaders-gen.cpp | 5 + 19 files changed, 1616 insertions(+), 40 deletions(-) create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd8422f8a..7eaf9c460 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -346,7 +346,8 @@ jobs: id: cmake_test run: | cd build - ctest -L main --verbose --timeout 900 + # This is using llvmpipe and runs slower than other backends + ctest -L main --verbose --timeout 1800 ubuntu-22-cmake-hip: runs-on: ubuntu-22.04 diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 6c7e60650..9ca3959ab 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -1616,6 +1616,11 @@ static void ggml_vk_load_shaders(vk_device& device) { //CREATE_FA(GGML_TYPE_Q4_K, q4_k) //CREATE_FA(GGML_TYPE_Q5_K, q5_k) //CREATE_FA(GGML_TYPE_Q6_K, q6_k) + //CREATE_FA(GGML_TYPE_IQ2_XXS, iq2_xxs) + //CREATE_FA(GGML_TYPE_IQ2_XS, iq2_xs) + //CREATE_FA(GGML_TYPE_IQ2_S, iq2_s) + //CREATE_FA(GGML_TYPE_IQ3_XXS, iq3_xxs) + //CREATE_FA(GGML_TYPE_IQ3_S, iq3_s) CREATE_FA(GGML_TYPE_IQ4_NL, iq4_nl) #undef CREATE_FA @@ -1644,7 +1649,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f16, _f16acc, mmq_wg_denoms_k, warptile_mmq_k, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f16, _f16acc, mmq_wg_denoms_k, warptile_mmq_k, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f16, _f16acc, mmq_wg_denoms_k, warptile_mmq_k, vk_mat_mat_push_constants, 3) - CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ2_XXS].f16acc, matmul_iq2_xxs_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ2_XS].f16acc, matmul_iq2_xs_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM2(pipeline_matmul_id_f16, matmul_id_f16, wg_denoms, warptile, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) @@ -1657,7 +1667,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XXS].f16acc, matmul_id_iq2_xxs_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XS].f16acc, matmul_id_iq2_xs_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) #undef CREATE_MM #undef CREATE_MM2 } else @@ -1705,7 +1720,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XXS].f16acc, matmul_iq2_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XS].f16acc, matmul_iq2_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } else { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); @@ -1718,7 +1738,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XXS].f16acc, matmul_iq2_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XS].f16acc, matmul_iq2_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. @@ -1739,7 +1764,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XXS].f16acc, matmul_id_iq2_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XS].f16acc, matmul_id_iq2_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } else { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); @@ -1752,7 +1782,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XXS].f16acc, matmul_id_iq2_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XS].f16acc, matmul_id_iq2_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } } #undef CREATE_MM2 @@ -1796,7 +1831,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f16acc, matmul_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f16acc, matmul_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f16acc, matmul_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XXS].f16acc, matmul_iq2_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XS].f16acc, matmul_iq2_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. if (device->mul_mat_id_s || device->mul_mat_id_m || device->mul_mat_id_l) { @@ -1815,7 +1855,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f16acc, matmul_id_q4_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f16acc, matmul_id_q5_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f16acc, matmul_id_q6_k_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XXS].f16acc, matmul_id_iq2_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XS].f16acc, matmul_id_iq2_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } #undef CREATE_MM2 #undef CREATE_MM @@ -1851,7 +1896,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_K].f32acc, matmul_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_K].f32acc, matmul_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q6_K].f32acc, matmul_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); - CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f32acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XXS].f32acc, matmul_iq2_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_XS].f32acc, matmul_iq2_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f32acc, matmul_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f32acc, matmul_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f32acc, matmul_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f32acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. if (device->mul_mat_id_s || device->mul_mat_id_m || device->mul_mat_id_l) { @@ -1870,7 +1920,12 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_K].f32acc, matmul_id_q4_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_K].f32acc, matmul_id_q5_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q6_K].f32acc, matmul_id_q6_k_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); - CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f32acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XXS].f32acc, matmul_id_iq2_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_XS].f32acc, matmul_id_iq2_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f32acc, matmul_id_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f32acc, matmul_id_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f32acc, matmul_id_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f32acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } #undef CREATE_MM } @@ -1901,7 +1956,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_K][i], "mul_mat_vec_q4_k_f32_f32_"+std::to_string(i+1), mul_mat_vec_q4_k_f32_f32_len, mul_mat_vec_q4_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_K][i], "mul_mat_vec_q5_k_f32_f32_"+std::to_string(i+1), mul_mat_vec_q5_k_f32_f32_len, mul_mat_vec_q5_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q6_K][i], "mul_mat_vec_q6_k_f32_f32_"+std::to_string(i+1), mul_mat_vec_q6_k_f32_f32_len, mul_mat_vec_q6_k_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); - ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f32_f32_len, mul_mat_vec_iq4_nl_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ2_XXS][i], "mul_mat_vec_iq2_xxs_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq2_xxs_f32_f32_len, mul_mat_vec_iq2_xxs_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ2_XS][i], "mul_mat_vec_iq2_xs_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq2_xs_f32_f32_len, mul_mat_vec_iq2_xs_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ2_S][i], "mul_mat_vec_iq2_s_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq2_s_f32_f32_len, mul_mat_vec_iq2_s_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ3_XXS][i], "mul_mat_vec_iq3_xxs_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq3_xxs_f32_f32_len, mul_mat_vec_iq3_xxs_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ3_S][i], "mul_mat_vec_iq3_s_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq3_s_f32_f32_len, mul_mat_vec_iq3_s_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f32_f32_len, mul_mat_vec_iq4_nl_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ][i], "mul_mat_vec_f32_f16_f32_"+std::to_string(i+1), mul_mat_vec_f32_f16_f32_len, mul_mat_vec_f32_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F16 ][i], "mul_mat_vec_f16_f16_f32_"+std::to_string(i+1), mul_mat_vec_f16_f16_f32_len, mul_mat_vec_f16_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); @@ -1915,7 +1975,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_K][i], "mul_mat_vec_q4_k_f16_f32_"+std::to_string(i+1), mul_mat_vec_q4_k_f16_f32_len, mul_mat_vec_q4_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_K][i], "mul_mat_vec_q5_k_f16_f32_"+std::to_string(i+1), mul_mat_vec_q5_k_f16_f32_len, mul_mat_vec_q5_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q6_K][i], "mul_mat_vec_q6_k_f16_f32_"+std::to_string(i+1), mul_mat_vec_q6_k_f16_f32_len, mul_mat_vec_q6_k_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); - ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f16_f32_len, mul_mat_vec_iq4_nl_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ2_XXS][i], "mul_mat_vec_iq2_xxs_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq2_xxs_f16_f32_len, mul_mat_vec_iq2_xxs_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ2_XS][i], "mul_mat_vec_iq2_xs_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq2_xs_f16_f32_len, mul_mat_vec_iq2_xs_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ2_S][i], "mul_mat_vec_iq2_s_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq2_s_f16_f32_len, mul_mat_vec_iq2_s_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ3_XXS][i], "mul_mat_vec_iq3_xxs_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq3_xxs_f16_f32_len, mul_mat_vec_iq3_xxs_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ3_S][i], "mul_mat_vec_iq3_s_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq3_s_f16_f32_len, mul_mat_vec_iq3_s_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f16_f32_len, mul_mat_vec_iq4_nl_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); } ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F32 ], "mul_mat_vec_id_f32_f32", mul_mat_vec_id_f32_f32_len, mul_mat_vec_id_f32_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2, 1, 1}, {device->subgroup_size, 2}, 1); @@ -1930,7 +1995,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_K], "mul_mat_vec_id_q4_k_f32", mul_mat_vec_id_q4_k_f32_len, mul_mat_vec_id_q4_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_K], "mul_mat_vec_id_q5_k_f32", mul_mat_vec_id_q5_k_f32_len, mul_mat_vec_id_q5_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q6_K], "mul_mat_vec_id_q6_k_f32", mul_mat_vec_id_q6_k_f32_len, mul_mat_vec_id_q6_k_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); - ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ4_NL], "mul_mat_vec_id_iq4_nl_f32", mul_mat_vec_id_iq4_nl_f32_len, mul_mat_vec_id_iq4_nl_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ2_XXS], "mul_mat_vec_id_iq2_xxs_f32", mul_mat_vec_id_iq2_xxs_f32_len, mul_mat_vec_id_iq2_xxs_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ2_XS], "mul_mat_vec_id_iq2_xs_f32", mul_mat_vec_id_iq2_xs_f32_len, mul_mat_vec_id_iq2_xs_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ2_S], "mul_mat_vec_id_iq2_s_f32", mul_mat_vec_id_iq2_s_f32_len, mul_mat_vec_id_iq2_s_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ3_XXS], "mul_mat_vec_id_iq3_xxs_f32", mul_mat_vec_id_iq3_xxs_f32_len, mul_mat_vec_id_iq3_xxs_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ3_S], "mul_mat_vec_id_iq3_s_f32", mul_mat_vec_id_iq3_s_f32_len, mul_mat_vec_id_iq3_s_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ4_NL], "mul_mat_vec_id_iq4_nl_f32", mul_mat_vec_id_iq4_nl_f32_len, mul_mat_vec_id_iq4_nl_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq}, 1, true); // dequant shaders ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_F32 ], "f32_to_f16", dequant_f32_len, dequant_f32_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); @@ -1944,7 +2014,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q4_K], "dequant_q4_k", dequant_q4_k_len, dequant_q4_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q5_K], "dequant_q5_k", dequant_q5_k_len, dequant_q5_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_Q6_K], "dequant_q6_k", dequant_q6_k_len, dequant_q6_k_data, "main", 2, 5 * sizeof(uint32_t), {256 * 64, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ4_NL], "dequant_iq4_nl", dequant_iq4_nl_len, dequant_iq4_nl_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ2_XXS], "dequant_iq2_xxs", dequant_iq2_xxs_len, dequant_iq2_xxs_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ2_XS], "dequant_iq2_xs", dequant_iq2_xs_len, dequant_iq2_xs_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ2_S], "dequant_iq2_s", dequant_iq2_s_len, dequant_iq2_s_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ3_XXS], "dequant_iq3_xxs", dequant_iq3_xxs_len, dequant_iq3_xxs_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ3_S], "dequant_iq3_s", dequant_iq3_s_len, dequant_iq3_s_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ4_NL], "dequant_iq4_nl", dequant_iq4_nl_len, dequant_iq4_nl_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); // get_rows ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_F32 ], "get_rows_f32", get_rows_f32_len, get_rows_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); @@ -1954,7 +2029,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q5_0], "get_rows_q5_0", get_rows_q5_0_len, get_rows_q5_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q5_1], "get_rows_q5_1", get_rows_q5_1_len, get_rows_q5_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q8_0], "get_rows_q8_0", get_rows_q8_0_len, get_rows_q8_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl", get_rows_iq4_nl_len, get_rows_iq4_nl_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ2_XXS], "get_rows_iq2_xxs", get_rows_iq2_xxs_len, get_rows_iq2_xxs_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ2_XS], "get_rows_iq2_xs", get_rows_iq2_xs_len, get_rows_iq2_xs_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ2_S], "get_rows_iq2_s", get_rows_iq2_s_len, get_rows_iq2_s_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ3_XXS], "get_rows_iq3_xxs", get_rows_iq3_xxs_len, get_rows_iq3_xxs_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ3_S], "get_rows_iq3_s", get_rows_iq3_s_len, get_rows_iq3_s_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl", get_rows_iq4_nl_len, get_rows_iq4_nl_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F32 ], "get_rows_f32_f32", get_rows_f32_f32_len, get_rows_f32_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F16 ], "get_rows_f16_f32", get_rows_f16_f32_len, get_rows_f16_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); @@ -1963,7 +2043,12 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q5_0], "get_rows_q5_0_f32", get_rows_q5_0_f32_len, get_rows_q5_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q5_1], "get_rows_q5_1_f32", get_rows_q5_1_f32_len, get_rows_q5_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q8_0], "get_rows_q8_0_f32", get_rows_q8_0_f32_len, get_rows_q8_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl_f32", get_rows_iq4_nl_f32_len, get_rows_iq4_nl_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ2_XXS], "get_rows_iq2_xxs_f32", get_rows_iq2_xxs_f32_len, get_rows_iq2_xxs_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ2_XS], "get_rows_iq2_xs_f32", get_rows_iq2_xs_f32_len, get_rows_iq2_xs_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ2_S], "get_rows_iq2_s_f32", get_rows_iq2_s_f32_len, get_rows_iq2_s_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ3_XXS], "get_rows_iq3_xxs_f32", get_rows_iq3_xxs_f32_len, get_rows_iq3_xxs_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ3_S], "get_rows_iq3_s_f32", get_rows_iq3_s_f32_len, get_rows_iq3_s_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl_f32", get_rows_iq4_nl_f32_len, get_rows_iq4_nl_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_matmul_split_k_reduce, "split_k_reduce", split_k_reduce_len, split_k_reduce_data, "main", 2, 2 * sizeof(uint32_t), {256 * 4, 1, 1}, {}, 1); @@ -2890,6 +2975,11 @@ static vk_pipeline ggml_vk_get_to_fp16(ggml_backend_vk_context * ctx, ggml_type case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -2938,6 +3028,11 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_pipeline(ggml_backend_vk_conte case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -2969,6 +3064,11 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec(ggml_backend_vk_context * case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -3012,6 +3112,11 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_id_pipeline(ggml_backend_vk_co case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -3038,6 +3143,11 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec_id(ggml_backend_vk_context case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -7907,6 +8017,11 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_TYPE_Q4_K: case GGML_TYPE_Q5_K: case GGML_TYPE_Q6_K: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -7975,6 +8090,11 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm //case GGML_TYPE_Q4_K: //case GGML_TYPE_Q5_K: //case GGML_TYPE_Q6_K: + //case GGML_TYPE_IQ2_XXS: + //case GGML_TYPE_IQ2_XS: + //case GGML_TYPE_IQ2_S: + //case GGML_TYPE_IQ3_XXS: + //case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: break; default: @@ -7992,6 +8112,11 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_TYPE_Q5_0: case GGML_TYPE_Q5_1: case GGML_TYPE_Q8_0: + case GGML_TYPE_IQ2_XXS: + case GGML_TYPE_IQ2_XS: + case GGML_TYPE_IQ2_S: + case GGML_TYPE_IQ3_XXS: + case GGML_TYPE_IQ3_S: case GGML_TYPE_IQ4_NL: return true; default: diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp index c09bf496b..aeae5400d 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp @@ -12,8 +12,8 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; #endif void main() { -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); if (gl_LocalInvocationIndex.x != 0) { return; } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp index ccf5b980a..d4b068e61 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp @@ -217,8 +217,8 @@ void quantize(uint dst_idx, uint src_idx) #endif void main() { -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); if (gl_LocalInvocationIndex.x != 0) { return; } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp index 91bb8f8db..ee6877531 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp @@ -88,6 +88,222 @@ vec4 dequantize4(uint ib, uint iqs, uint a_offset) { } #endif +#if defined(DATA_A_IQ2_XXS) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint ib8 = (iqs / 8) % 4; + const uint qs = data_a[a_offset + ib].qs[8 * ib32 + ib8]; + // Scales are stored as packed 7+7+7+7+4 bits (4 sign tuples and 1 int4 scale) + const uint signs = pack32(u16vec2(data_a_packed16[a_offset + ib].qs[4 * ib32 + 2], + data_a_packed16[a_offset + ib].qs[4 * ib32 + 3])); + const float db = 0.25 * (0.5 + (signs >> 28)); + const uint sign7 = bitfieldExtract(signs, 7 * int(ib8), 7); + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq2xxs_grid[qs][(iqs % 8) / 4] >> (8 * (iqs % 4))); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + return db * vec2( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0) + ); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint ib8 = (iqs / 8) % 4; + const uint qs = data_a[a_offset + ib].qs[8 * ib32 + ib8]; + // Scales are stored as packed 7+7+7+7+4 bits (4 sign tuples and 1 int4 scale) + const uint signs = pack32(u16vec2(data_a_packed16[a_offset + ib].qs[4 * ib32 + 2], + data_a_packed16[a_offset + ib].qs[4 * ib32 + 3])); + const float db = 0.25 * (0.5 + (signs >> 28)); + const uint sign7 = bitfieldExtract(signs, 7 * int(ib8), 7); + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq2xxs_grid[qs][(iqs % 8) / 4] >> (8 * (iqs % 4))); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + bool sign2 = (sign & 4) != 0; + bool sign3 = (sign & 8) != 0; + return db * vec4( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0), + grid.z * (sign2 ? -1.0 : 1.0), + grid.w * (sign3 ? -1.0 : 1.0) + ); +} +#endif + +#if defined(DATA_A_IQ2_XS) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint scale = (data_a[a_offset + ib].scales[iqs / 32] >> (4 * ((iqs / 16) & 1))) & 0xf; + const uint qs = data_a[a_offset + ib].qs[iqs / 8]; + const float db = 0.25 * (0.5 + scale); + const uint sign7 = qs >> 9; + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq2xs_grid[qs & 511][(iqs % 8) / 4] >> (8 * (iqs % 4))); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + return db * vec2( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0) + ); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint scale = (data_a[a_offset + ib].scales[iqs / 32] >> (4 * ((iqs / 16) & 1))) & 0xf; + const uint qs = data_a[a_offset + ib].qs[iqs / 8]; + const float db = 0.25 * (0.5 + scale); + const uint sign7 = qs >> 9; + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq2xs_grid[qs & 511][(iqs % 8) / 4] >> (8 * (iqs % 4))); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + bool sign2 = (sign & 4) != 0; + bool sign3 = (sign & 8) != 0; + return db * vec4( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0), + grid.z * (sign2 ? -1.0 : 1.0), + grid.w * (sign3 ? -1.0 : 1.0) + ); +} +#endif + +#if defined(DATA_A_IQ2_S) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint ib8 = iqs / 8; + + const uint scale = (data_a[a_offset + ib].scales[ib32] >> (4 * ((iqs / 16) & 1))) & 0xf; + const uint qs = data_a[a_offset + ib].qs[ib8]; + const uint qh = data_a[a_offset + ib].qh[ib32]; + const uint qhshift = 2 * (ib8 % 4); + const uint sign = data_a[a_offset + ib].qs[QUANT_K / 8 + ib8] >> (iqs % 8); + + const float db = 0.25 * (0.5 + scale); + const u8vec4 grid = unpack8(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(iqs % 8) / 4]); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + return db * vec2( + grid[iqs % 4] * (sign0 ? -1.0 : 1.0), + grid[(iqs % 4) + 1] * (sign1 ? -1.0 : 1.0) + ); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint ib8 = iqs / 8; + + const uint scale = (data_a[a_offset + ib].scales[ib32] >> (4 * ((iqs / 16) & 1))) & 0xf; + const uint qs = data_a[a_offset + ib].qs[ib8]; + const uint qh = data_a[a_offset + ib].qh[ib32]; + const uint qhshift = 2 * (ib8 % 4); + const uint sign = data_a[a_offset + ib].qs[QUANT_K / 8 + ib8] >> (iqs % 8); + + const float db = 0.25 * (0.5 + scale); + const u8vec4 grid = unpack8(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(iqs % 8) / 4]); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + bool sign2 = (sign & 4) != 0; + bool sign3 = (sign & 8) != 0; + return db * vec4( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0), + grid.z * (sign2 ? -1.0 : 1.0), + grid.w * (sign3 ? -1.0 : 1.0) + ); +} +#endif + +#if defined(DATA_A_IQ3_XXS) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint ib4 = iqs / 4; + const uint ib32 = iqs / 32; + const uint is = QUANT_K / 4 + 4 * ib32; + const uint qs = data_a[a_offset + ib].qs[ib4]; + // Scales are stored as packed 7+7+7+7+4 bits (4 sign tuples and 1 int4 scale) + const uint signs = pack32(u16vec2(data_a_packed16[a_offset + ib].qs[is / 2], + data_a_packed16[a_offset + ib].qs[is / 2 + 1])); + const float db = 0.5 * (0.5 + (signs >> 28)); + const uint sign7 = bitfieldExtract(signs, 7 * (int(ib4 / 2) % 4), 7); + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq3xxs_grid[qs] >> (8 * (iqs % 4))); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + return db * vec2( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0) + ); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint ib4 = iqs / 4; + const uint ib32 = iqs / 32; + const uint is = QUANT_K / 4 + 4 * ib32; + const uint qs = data_a[a_offset + ib].qs[ib4]; + const uint signs = pack32(u16vec2(data_a_packed16[a_offset + ib].qs[is / 2], + data_a_packed16[a_offset + ib].qs[is / 2 + 1])); + const float db = 0.5 * (0.5 + (signs >> 28)); + const uint sign7 = bitfieldExtract(signs, 7 * (int(ib4 / 2) % 4), 7); + // Add parity bit + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const uint sign = sign8 >> (iqs % 8); + const u8vec4 grid = unpack8(iq3xxs_grid[qs]); + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + bool sign2 = (sign & 4) != 0; + bool sign3 = (sign & 8) != 0; + return db * vec4( + grid.x * (sign0 ? -1.0 : 1.0), + grid.y * (sign1 ? -1.0 : 1.0), + grid.z * (sign2 ? -1.0 : 1.0), + grid.w * (sign3 ? -1.0 : 1.0) + ); +} +#endif + +#if defined(DATA_A_IQ3_S) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint qs = data_a[a_offset + ib].qs[iqs / 4]; + const uint qh = data_a[a_offset + ib].qh[iqs / 32]; + const uint sign = data_a[a_offset + ib].signs[iqs / 8] >> (iqs % 8); + const uint scale = data_a[a_offset + ib].scales[iqs / 64]; + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + const float db = 1 + 2 * ((scale >> (4 * ((iqs / 32) & 1))) & 0xf); + const uint32_t grid = iq3s_grid[qs | ((qh << (8 - ((iqs / 4) % 8))) & 256)] >> (8 * (iqs % 4)); + return db * vec2( + int(grid & 0xFF) * (sign0 ? -1.0 : 1.0), + int((grid >> 8) & 0xFF) * (sign1 ? -1.0 : 1.0) + ); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint ib4 = iqs / 4; + const uint ib32 = iqs / 32; + const uint qs = data_a[a_offset + ib].qs[ib4]; + const uint qh = data_a[a_offset + ib].qh[ib32]; + const uint sign = data_a[a_offset + ib].signs[iqs / 8] >> (iqs % 8); + const uint scale = data_a[a_offset + ib].scales[ib32 / 2]; + bool sign0 = (sign & 1) != 0; + bool sign1 = (sign & 2) != 0; + bool sign2 = (sign & 4) != 0; + bool sign3 = (sign & 8) != 0; + const float db = 1 + 2 * ((scale >> (4 * (ib32 & 1))) & 0xf); + const uint32_t grid = iq3s_grid[qs | ((qh << (8 - ib4 % 8)) & 256)] >> (8 * (iqs % 4)); + return db * vec4( + int(grid & 0xFF) * (sign0 ? -1.0 : 1.0), + int((grid >> 8) & 0xFF) * (sign1 ? -1.0 : 1.0), + int((grid >> 16) & 0xFF) * (sign2 ? -1.0 : 1.0), + int((grid >> 24) & 0xFF) * (sign3 ? -1.0 : 1.0) + ); +} +#endif + #if defined(DATA_A_IQ4_NL) vec2 dequantize(uint ib, uint iqs, uint a_offset) { const uint vui = uint(data_a[a_offset + ib].qs[iqs]); @@ -105,7 +321,7 @@ vec2 get_dm(uint ib, uint a_offset) { } #endif -#if defined(DATA_A_Q4_0) || defined(DATA_A_Q5_0) || defined(DATA_A_Q8_0) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_Q4_0) || defined(DATA_A_Q5_0) || defined(DATA_A_Q8_0) || defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) vec2 get_dm(uint ib, uint a_offset) { return vec2(float(data_a[a_offset + ib].d), 0); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp index 175e31fa7..974efd3f9 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp @@ -301,6 +301,160 @@ float16_t dequantFuncQ6_K(const in decodeBufQ6_K bl, const in uint blockCoords[2 return ret; } +#if defined(DATA_A_IQ2_XXS) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ2_XXS { + block_iq2_xxs block; +}; + +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ2_XXS_packed16 { + block_iq2_xxs_packed16 block; +}; + +float16_t dequantFuncIQ2_XXS(const in decodeBufIQ2_XXS bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + decodeBufIQ2_XXS_packed16 bl16 = decodeBufIQ2_XXS_packed16(bl); + const float16_t d = bl.block.d; + const uint idx = coordInBlock[1]; + + const uint ib32 = (idx & 0xE0) >> 5; // 0..7 + const uint ib8 = (idx & 0x18) >> 3; // 0..3 + const uint iqs = 8 * ib32 + ib8; + + const uint8_t qs = bl.block.qs[iqs]; + const uint signscale = pack32(u16vec2(bl16.block.qs[4*ib32+2], bl16.block.qs[4*ib32+3])); + + const float16_t dscale = bl.block.d * 0.25hf * (0.5hf + float16_t(signscale >> 28)); + uint sign = bitfieldExtract(signscale, 7 * int(ib8), 7); + sign |= bitCount(sign) << 7; + + const uint8_t g = unpack8(iq2xxs_grid[qs][(idx & 4) >> 2])[idx & 3]; + + float16_t ret = dscale * float16_t(g) * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); + + return ret; +} +#endif + +#if defined(DATA_A_IQ2_XS) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ2_XS { + block_iq2_xs block; +}; + +float16_t dequantFuncIQ2_XS(const in decodeBufIQ2_XS bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + const float16_t d = bl.block.d; + const uint idx = coordInBlock[1]; + + const uint is = (idx & 0xE0) >> 5; // 0..8 + const uint sshift = (idx & 0x10) >> 2; // 0,4 + const uint iqs = (idx & 0xF8) >> 3; // 0..63 + + const uint16_t qs = bl.block.qs[iqs]; + const float16_t dscale = bl.block.d * 0.25hf * (0.5hf + float16_t((bl.block.scales[is] >> sshift) & 0xF)); + + uint sign = uint(qs >> 9); + sign |= bitCount(sign) << 7; + const uint8_t g = unpack8(iq2xs_grid[qs & 0x1FF][(idx & 4) >> 2])[idx & 3]; + + float16_t ret = dscale * float16_t(g) * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); + return ret; +} +#endif + +#if defined(DATA_A_IQ2_S) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ2_S { + block_iq2_s block; +}; + +float16_t dequantFuncIQ2_S(const in decodeBufIQ2_S bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + uint idx = coordInBlock[1]; + uint lsb = idx & 1; + idx /= 2; + + const uint ib8 = (idx % 128) / 4; // 0..31 + const uint ib32 = ib8 / 4; // 0..7 + + const uint scale = (bl.block.scales[ib32] >> (2 * (ib8 & 2))) & 0xf; + const uint qs = bl.block.qs[ib8]; + const uint qh = bl.block.qh[ib32]; + const uint qhshift = 2 * (ib8 % 4); + const uint sign = bl.block.qs[QUANT_K / 8 + ib8] >> (2 * (idx % 4)); + + const float d = float(bl.block.d); + const float db = d * 0.25 * (0.5 + scale); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint16_t grid = unpack16(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(idx & 2) >> 1])[idx & 1]; + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid)); + return float16_t(v[lsb]); +} +#endif + +#if defined(DATA_A_IQ3_XXS) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ3_XXS { + block_iq3_xxs block; +}; + +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ3_XXS_packed16 { + block_iq3_xxs_packed16 block; +}; + +float16_t dequantFuncIQ3_XXS(const in decodeBufIQ3_XXS bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + uint idx = coordInBlock[1]; + uint lsb = idx & 1; + idx /= 2; + + const uint iqs = (idx % 128) / 2; // 0..63 + const uint is = QUANT_K / 4 + 4 * (iqs / 8); // 8 values + + const float d = float(bl.block.d); + const uint qs = bl.block.qs[iqs]; + const uint signs = pack32(u8vec4( + bl.block.qs[is+0], + bl.block.qs[is+1], + bl.block.qs[is+2], + bl.block.qs[is+3] + )); + const float db = d * 0.5 * (0.5 + (signs >> 28)); + const uint32_t sign7 = bitfieldExtract(signs, 7 * (int(iqs / 2) % 4), 7); + const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4)); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint grid = iq3xxs_grid[qs] >> (16 * (idx & 1)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + return float16_t(v[lsb]); +} +#endif + +#if defined(DATA_A_IQ3_S) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ3_S { + block_iq3_s block; +}; + +float16_t dequantFuncIQ3_S(const in decodeBufIQ3_S bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + uint idx = coordInBlock[1]; + uint lsb = idx & 1; + idx /= 2; + + const uint iqs = (idx % 128) / 2; // 0..63 + const uint iqh = iqs / 8; + + const float d = float(bl.block.d); + const uint qs = bl.block.qs[iqs]; + const uint qh = bl.block.qh[iqh]; + const int8_t sign = int8_t(bl.block.signs[iqs / 2] >> (2 * (idx % 4))); + const uint scale = bl.block.scales[iqs / 16]; + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(sign << 1, sign))); + const float db = d * (1 + 2 * ((scale >> (4 * (iqh & 1))) & 0xf)); + const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> (16 * (idx % 2)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + + return float16_t(v[lsb]); +} +#endif + + #if defined(DATA_A_IQ4_NL) layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ4_NL { block_iq4_nl block; @@ -340,6 +494,16 @@ float16_t dequantFuncIQ4_NL(const in decodeBufIQ4_NL bl, const in uint blockCoor #define dequantFuncA dequantFuncQ5_K #elif defined(DATA_A_Q6_K) #define dequantFuncA dequantFuncQ6_K +#elif defined(DATA_A_IQ2_XXS) +#define dequantFuncA dequantFuncIQ2_XXS +#elif defined(DATA_A_IQ2_XS) +#define dequantFuncA dequantFuncIQ2_XS +#elif defined(DATA_A_IQ2_S) +#define dequantFuncA dequantFuncIQ2_S +#elif defined(DATA_A_IQ3_XXS) +#define dequantFuncA dequantFuncIQ3_XXS +#elif defined(DATA_A_IQ3_S) +#define dequantFuncA dequantFuncIQ3_S #elif defined(DATA_A_IQ4_NL) #define dequantFuncA dequantFuncIQ4_NL #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp new file mode 100644 index 000000000..48f6b65bc --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp @@ -0,0 +1,44 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq2_s data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 subblock (32 values with 2 scales) + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint ib32 = gl_LocalInvocationID.x % 8; + const uint b_idx = 256 * ib + 32 * ib32; + + const float d = float(data_a[ib].d); + const vec2 scale = vec2(data_a[ib].scales[ib32] & 0xf, data_a[ib].scales[ib32] >> 4); + const vec2 db = d * (0.5 + scale) * 0.25; + + uint qh = data_a[ib].qh[ib32]; + [[unroll]] for (uint l = 0; l < 4; ++l) { + uint qs = data_a[ib].qs[4 * ib32 + l]; + const uint8_t sign = data_a[ib].qs[QUANT_K / 8 + 4 * ib32 + l]; + qs |= (qh << (8 - 2 * l)) & 0x300; + const uvec2 grid = iq2s_grid[qs & 511]; + const u8vec4 grid0 = unpack8(grid.x); + const u8vec4 grid1 = unpack8(grid.y); + data_b[b_idx + 8 * l + 0] = D_TYPE(db[l/2] * grid0.x * ((sign & 1) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 1] = D_TYPE(db[l/2] * grid0.y * ((sign & 2) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 2] = D_TYPE(db[l/2] * grid0.z * ((sign & 4) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 3] = D_TYPE(db[l/2] * grid0.w * ((sign & 8) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 4] = D_TYPE(db[l/2] * grid1.x * ((sign & 16) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 5] = D_TYPE(db[l/2] * grid1.y * ((sign & 32) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 6] = D_TYPE(db[l/2] * grid1.z * ((sign & 64) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 7] = D_TYPE(db[l/2] * grid1.w * ((sign & 128) != 0 ? -1.0 : 1.0)); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp new file mode 100644 index 000000000..a08331c40 --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp @@ -0,0 +1,43 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq2_xs data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 subblock (32 values with 2 scales) + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint ib32 = gl_LocalInvocationID.x % 8; + const uint b_idx = 256 * ib + 32 * ib32; + + const float d = float(data_a[ib].d); + const vec2 scale = vec2(data_a[ib].scales[ib32] & 0xf, data_a[ib].scales[ib32] >> 4); + const vec2 db = d * (0.5 + scale) * 0.25; + + [[unroll]] for (uint l = 0; l < 4; ++l) { + uint16_t qs = data_a[ib].qs[4 * ib32 + l]; + const uint sign7 = qs >> 9; + const uint sign8 = sign7 | (bitCount(sign7) << 7); // parity bit + const uvec2 grid = iq2xs_grid[qs & 511]; + const u8vec4 grid0 = unpack8(grid.x); + const u8vec4 grid1 = unpack8(grid.y); + data_b[b_idx + 8 * l + 0] = D_TYPE(db[l/2] * grid0.x * ((sign8 & 1) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 1] = D_TYPE(db[l/2] * grid0.y * ((sign8 & 2) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 2] = D_TYPE(db[l/2] * grid0.z * ((sign8 & 4) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 3] = D_TYPE(db[l/2] * grid0.w * ((sign8 & 8) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 4] = D_TYPE(db[l/2] * grid1.x * ((sign8 & 16) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 5] = D_TYPE(db[l/2] * grid1.y * ((sign8 & 32) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 6] = D_TYPE(db[l/2] * grid1.z * ((sign8 & 64) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 7] = D_TYPE(db[l/2] * grid1.w * ((sign8 & 128) != 0 ? -1.0 : 1.0)); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp new file mode 100644 index 000000000..e370690bc --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp @@ -0,0 +1,48 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq2_xxs data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 scale block (32 values) + // Each block is described by 4 lattice indices, 4x7 sign bits and 4 scale bits + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint is = gl_LocalInvocationID.x % 8; + const uint b_idx = 256 * ib + 32 * is; + + const float d = float(data_a[ib].d); + uint signscale = pack32(u8vec4( + data_a[ib].qs[8*is + 4], + data_a[ib].qs[8*is + 5], + data_a[ib].qs[8*is + 6], + data_a[ib].qs[8*is + 7] + )); + const float db = d * (0.5 + (signscale >> 28)) * 0.25; + + [[unroll]] for (uint l = 0; l < 4; ++l) { + const uint sign7 = bitfieldExtract(signscale, 7 * int(l), 7); + const uint sign8 = sign7 | (bitCount(sign7) << 7); // parity bit + const uvec2 grid = iq2xxs_grid[data_a[ib].qs[8 * is + l]]; + const u8vec4 grid0 = unpack8(grid.x); + const u8vec4 grid1 = unpack8(grid.y); + data_b[b_idx + 8 * l + 0] = D_TYPE(db * grid0.x * ((sign8 & 1) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 1] = D_TYPE(db * grid0.y * ((sign8 & 2) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 2] = D_TYPE(db * grid0.z * ((sign8 & 4) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 3] = D_TYPE(db * grid0.w * ((sign8 & 8) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 4] = D_TYPE(db * grid1.x * ((sign8 & 16) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 5] = D_TYPE(db * grid1.y * ((sign8 & 32) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 6] = D_TYPE(db * grid1.z * ((sign8 & 64) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 7] = D_TYPE(db * grid1.w * ((sign8 & 128) != 0 ? -1.0 : 1.0)); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp new file mode 100644 index 000000000..c3f4bca5d --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp @@ -0,0 +1,39 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq3_s data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 scale nibble. + // Each block contains 4 scale bytes (8 scales) for 256 output values. + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint is = gl_LocalInvocationID.x % 8; + const uint b_idx = 256 * ib + 32 * is; + + const float d = float(data_a[ib].d); + const float db = d * (1 + 2 * ((data_a[ib].scales[is] >> (4 * (is % 2))) & 0xf)); + + // We must produce 32 values using 4 sign bytes, 1 qh byte, 8 qs bytes. + uint qh = data_a[ib].qh[is]; + [[unroll]] for (uint l = 0; l < 8; ++l) { + uint qs = data_a[ib].qs[8 * is + l]; + uint gidx = qs | ((qh << (8 - l)) & 256); + uint8_t signs = data_a[ib].signs[8 * is + l / 2] >> (4 * (l & 1)); + u8vec4 grid = unpack8(iq3s_grid[gidx]); + data_b[b_idx + 4 * l + 0] = D_TYPE(db * grid.x * ((signs & 1) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 4 * l + 1] = D_TYPE(db * grid.y * ((signs & 2) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 4 * l + 2] = D_TYPE(db * grid.z * ((signs & 4) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 4 * l + 3] = D_TYPE(db * grid.w * ((signs & 8) != 0 ? -1.0 : 1.0)); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp new file mode 100644 index 000000000..a92b82961 --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp @@ -0,0 +1,49 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq3_xxs data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 scale block (32 values) + // 8 threads handle 1 superblock + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint is = gl_LocalInvocationID.x % 8; + const uint b_idx = 256 * ib + 32 * is; + const uint s_idx = QUANT_K / 4 + 4 * is; + + const float d = float(data_a[ib].d); + uint signscale = pack32(u8vec4( + data_a[ib].qs[s_idx + 0], + data_a[ib].qs[s_idx + 1], + data_a[ib].qs[s_idx + 2], + data_a[ib].qs[s_idx + 3] + )); + const float db = d * (0.5 + (signscale >> 28)) * 0.5; + + [[unroll]] for (uint l = 0; l < 4; ++l) { + const uint sign7 = bitfieldExtract(signscale, 7 * int(l), 7); + // Restore parity bit. + const uint sign8 = sign7 | (bitCount(sign7) << 7); + const u8vec4 grid0 = unpack8(iq3xxs_grid[data_a[ib].qs[8 * is + 2 * l]]); + const u8vec4 grid1 = unpack8(iq3xxs_grid[data_a[ib].qs[8 * is + 2 * l + 1]]); + data_b[b_idx + 8 * l + 0] = D_TYPE(db * grid0.x * ((sign8 & 1) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 1] = D_TYPE(db * grid0.y * ((sign8 & 2) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 2] = D_TYPE(db * grid0.z * ((sign8 & 4) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 3] = D_TYPE(db * grid0.w * ((sign8 & 8) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 4] = D_TYPE(db * grid1.x * ((sign8 & 16) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 5] = D_TYPE(db * grid1.y * ((sign8 & 32) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 6] = D_TYPE(db * grid1.z * ((sign8 & 64) != 0 ? -1.0 : 1.0)); + data_b[b_idx + 8 * l + 7] = D_TYPE(db * grid1.w * ((sign8 & 128) != 0 ? -1.0 : 1.0)); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp index 8de14fc03..46d9ad15e 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp @@ -10,7 +10,7 @@ layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; void main() { const uint i = gl_WorkGroupID.x * 4 + gl_LocalInvocationID.x / 64; - init_iq4nl_shmem(); + init_iq_shmem(gl_WorkGroupSize); const uint tid = gl_LocalInvocationID.x % 64; const uint il = tid/32; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp index 3735d0dbb..043a53023 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp @@ -104,8 +104,8 @@ ACC_TYPE Max(const in uint32_t row, const in uint32_t col, const in ACC_TYPE ele #endif void main() { -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); #endif const uint32_t N = p.N; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp index 1426fde65..09dc43d8d 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp @@ -12,8 +12,8 @@ void main() { const uint i11 = (gl_GlobalInvocationID.z)/p.ne12; const uint i12 = (gl_GlobalInvocationID.z)%p.ne12; -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); #endif if (i00 >= p.ne00) { diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp index 53902858d..48156e7ba 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp @@ -133,8 +133,8 @@ void compute_outputs(const uint32_t first_row, const uint32_t num_rows) { void main() { const uint first_row = NUM_ROWS * (gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z); -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); #endif // do NUM_ROWS at a time, unless there aren't enough remaining rows diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp index 48122cbef..d0559aac8 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp @@ -95,8 +95,8 @@ shared ACC_TYPE coopmat_stage[TM * TN * NUM_WARPS]; #endif void main() { -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); #endif #ifdef MUL_MAT_ID @@ -343,10 +343,8 @@ void main() { const uint qsshift = halfsplit * 2; // 0,2,4,6 const uint m = 1 << (4 * n + halfsplit); // 1,2,4,8,16,32,64,128 - const int8_t us = int8_t(is < 4 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+8] >> 0) & 3) << 4) : - is < 8 ? (data_a[ib].scales[is-0] & 0xF) | (((data_a[ib].scales[is+4] >> 2) & 3) << 4) : - is < 12 ? (data_a[ib].scales[is-8] >> 4) | (((data_a[ib].scales[is+0] >> 4) & 3) << 4) : - (data_a[ib].scales[is-8] >> 4) | (((data_a[ib].scales[is-4] >> 6) & 3) << 4)); + const int8_t us = int8_t(((data_a[ib].scales[is % 8] >> (4 * int(is / 8))) & 0xF) + | (((data_a[ib].scales[8 + (is % 4)] >> (2 * int(is / 4))) & 3) << 4)); const float dl = float(data_a[ib].d) * float(us - 32); buf_a[buf_idx ] = FLOAT_TYPE(dl * float(int8_t((data_a[ib].qs[qsi ] >> qsshift) & 3) - (((data_a[ib].hmask[hmi ] & m) != 0) ? 0 : 4))); @@ -439,6 +437,118 @@ void main() { buf_a[buf_idx ] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi ] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi ] >> qhshift) & 3) << 4)) - 32)); buf_a[buf_idx + 1] = FLOAT_TYPE(dscale * float(int8_t(((data_a[ib].ql[qsi + 1] >> (b * 4)) & 0xF) | (((data_a[ib].qh[qhi + 1] >> qhshift) & 3) << 4)) - 32)); +#elif defined(DATA_A_IQ2_XXS) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint ib32 = (idx % 128) / 16; // 0..7 + const uint ib8 = (idx / 4) % 4; + + const float d = float(data_a[ib].d); + const uint qs = data_a[ib].qs[8 * ib32 + ib8]; + const uint signs = pack32(u8vec4( + data_a[ib].qs[8*ib32 + 4], + data_a[ib].qs[8*ib32 + 5], + data_a[ib].qs[8*ib32 + 6], + data_a[ib].qs[8*ib32 + 7] + )); + const float db = d * 0.25 * (0.5 + (signs >> 28)); + const uint32_t sign7 = bitfieldExtract(signs, 7 * int(ib8), 7); + const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4)); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint grid = iq2xxs_grid[qs][(idx % 4) / 2] >> (16 * (idx & 1)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); +#elif defined(DATA_A_IQ2_XS) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint ib32 = (idx % 128) / 16; // 0..7 + const uint ib8 = (idx / 4) % 4; // 0..3 + + const float d = float(data_a[ib].d); + const uint scale = (data_a[ib].scales[ib32] >> (2 * (ib8 & 2))) & 0xf; + const float db = d * 0.25 * (0.5 + scale); + const uint qs = data_a[ib].qs[4 * ib32 + ib8]; + const uint sign7 = qs >> 9; + const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4)); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint grid = iq2xs_grid[qs & 511][(idx % 4) / 2] >> (16 * (idx & 1)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); +#elif defined(DATA_A_IQ2_S) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint ib8 = (idx % 128) / 4; // 0..31 + const uint ib32 = ib8 / 4; // 0..7 + + const uint scale = (data_a[ib].scales[ib32] >> (2 * (ib8 & 2))) & 0xf; + const uint qs = data_a[ib].qs[ib8]; + const uint qh = data_a[ib].qh[ib32]; + const uint qhshift = 2 * (ib8 % 4); + const uint sign = data_a[ib].qs[QUANT_K / 8 + ib8] >> (2 * (idx % 4)); + + const float d = float(data_a[ib].d); + const float db = d * 0.25 * (0.5 + scale); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint16_t grid = unpack16(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(idx & 2) >> 1])[idx & 1]; + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid)); + + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); +#elif defined(DATA_A_IQ3_XXS) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint iqs = (idx % 128) / 2; // 0..63 + const uint is = QUANT_K / 4 + 4 * (iqs / 8); // 8 values + + const float d = float(data_a[ib].d); + const uint qs = data_a[ib].qs[iqs]; + const uint signs = pack32(u8vec4( + data_a[ib].qs[is+0], + data_a[ib].qs[is+1], + data_a[ib].qs[is+2], + data_a[ib].qs[is+3] + )); + const float db = d * 0.5 * (0.5 + (signs >> 28)); + const uint32_t sign7 = bitfieldExtract(signs, 7 * (int(iqs / 2) % 4), 7); + const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4)); + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); + const uint grid = iq3xxs_grid[qs] >> (16 * (idx & 1)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); +#elif defined(DATA_A_IQ3_S) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint iqs = (idx % 128) / 2; // 0..63 + const uint iqh = iqs / 8; + + const float d = float(data_a[ib].d); + const uint qs = data_a[ib].qs[iqs]; + const uint qh = data_a[ib].qh[iqh]; + const int8_t sign = int8_t(data_a[ib].signs[iqs / 2] >> (2 * (idx % 4))); + const uint scale = data_a[ib].scales[iqs / 16]; + const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(sign << 1, sign))); + const float db = d * (1 + 2 * ((scale >> (4 * (iqh & 1))) & 0xf)); + const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> (16 * (idx % 2)); + const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); #elif defined(DATA_A_IQ4_NL) const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp index 57f9e7245..27c5d68b3 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp @@ -106,8 +106,8 @@ D_TYPE perElemOpD(const in uint32_t r, const in uint32_t c, const in D_TYPE elem #endif void main() { -#if defined(DATA_A_IQ4_NL) - init_iq4nl_shmem(); +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) + init_iq_shmem(gl_WorkGroupSize); #endif #ifdef MUL_MAT_ID diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp index 1e35b6652..9e56a3530 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp @@ -294,6 +294,738 @@ struct block_q6_K_packed16 // IQuants +#define QUANT_K_IQ2_XXS 256 +#define QUANT_R_IQ2_XXS 1 + +struct block_iq2_xxs +{ + float16_t d; + uint8_t qs[QUANT_K_IQ2_XXS/4]; +}; + +struct block_iq2_xxs_packed16 +{ + float16_t d; + uint16_t qs[QUANT_K_IQ2_XXS/8]; +}; + +#if defined(DATA_A_IQ2_XXS) + +const uvec2[256] iq2xxs_grid_const = { + uvec2(0x08080808, 0x08080808), uvec2(0x0808082b, 0x08080808), uvec2(0x08081919, 0x08080808), uvec2(0x08082b08, 0x08080808), + uvec2(0x08082b2b, 0x08080808), uvec2(0x08190819, 0x08080808), uvec2(0x08191908, 0x08080808), uvec2(0x082b0808, 0x08080808), + uvec2(0x082b082b, 0x08080808), uvec2(0x082b2b08, 0x08080808), uvec2(0x082b2b2b, 0x08080808), uvec2(0x19080819, 0x08080808), + uvec2(0x19081908, 0x08080808), uvec2(0x19190808, 0x08080808), uvec2(0x19192b08, 0x08080808), uvec2(0x192b0819, 0x08080808), + uvec2(0x192b1908, 0x08080808), uvec2(0x2b080808, 0x08080808), uvec2(0x2b08082b, 0x08080808), uvec2(0x2b082b2b, 0x08080808), + uvec2(0x2b2b082b, 0x08080808), uvec2(0x08080819, 0x08080819), uvec2(0x08081908, 0x08080819), uvec2(0x08190808, 0x08080819), + uvec2(0x08191919, 0x08080819), uvec2(0x19080808, 0x08080819), uvec2(0x2b081908, 0x08080819), uvec2(0x2b192b08, 0x08080819), + uvec2(0x08080808, 0x0808082b), uvec2(0x0808082b, 0x0808082b), uvec2(0x082b082b, 0x0808082b), uvec2(0x2b08082b, 0x0808082b), + uvec2(0x08080819, 0x08081908), uvec2(0x08081908, 0x08081908), uvec2(0x08190808, 0x08081908), uvec2(0x082b0819, 0x08081908), + uvec2(0x082b1908, 0x08081908), uvec2(0x19080808, 0x08081908), uvec2(0x1908082b, 0x08081908), uvec2(0x19082b08, 0x08081908), + uvec2(0x192b0808, 0x08081908), uvec2(0x2b080819, 0x08081908), uvec2(0x2b081908, 0x08081908), uvec2(0x2b190808, 0x08081908), + uvec2(0x2b2b1908, 0x08081908), uvec2(0x08080808, 0x08081919), uvec2(0x0808082b, 0x08081919), uvec2(0x08082b08, 0x08081919), + uvec2(0x082b0808, 0x08081919), uvec2(0x1908192b, 0x08081919), uvec2(0x192b2b19, 0x08081919), uvec2(0x2b080808, 0x08081919), + uvec2(0x2b190819, 0x08081919), uvec2(0x08082b19, 0x0808192b), uvec2(0x08190808, 0x0808192b), uvec2(0x19080808, 0x0808192b), + uvec2(0x2b081908, 0x0808192b), uvec2(0x2b2b1908, 0x0808192b), uvec2(0x08080808, 0x08082b08), uvec2(0x08081919, 0x08082b08), + uvec2(0x08082b08, 0x08082b08), uvec2(0x08191908, 0x08082b08), uvec2(0x082b2b08, 0x08082b08), uvec2(0x19080819, 0x08082b08), + uvec2(0x19081908, 0x08082b08), uvec2(0x19190808, 0x08082b08), uvec2(0x1919082b, 0x08082b08), uvec2(0x2b082b08, 0x08082b08), + uvec2(0x08081908, 0x08082b19), uvec2(0x19080808, 0x08082b19), uvec2(0x0808082b, 0x08082b2b), uvec2(0x08191908, 0x08082b2b), + uvec2(0x08080819, 0x08190808), uvec2(0x08081908, 0x08190808), uvec2(0x08190808, 0x08190808), uvec2(0x082b0819, 0x08190808), + uvec2(0x19080808, 0x08190808), uvec2(0x192b0808, 0x08190808), uvec2(0x2b081908, 0x08190808), uvec2(0x2b190808, 0x08190808), + uvec2(0x2b191919, 0x08190808), uvec2(0x08080808, 0x08190819), uvec2(0x08082b08, 0x08190819), uvec2(0x082b0808, 0x08190819), + uvec2(0x19190808, 0x08190819), uvec2(0x19192b2b, 0x08190819), uvec2(0x2b080808, 0x08190819), uvec2(0x082b1908, 0x0819082b), + uvec2(0x19081919, 0x0819082b), uvec2(0x08080808, 0x08191908), uvec2(0x08082b08, 0x08191908), uvec2(0x082b0808, 0x08191908), + uvec2(0x082b1919, 0x08191908), uvec2(0x19082b19, 0x08191908), uvec2(0x2b080808, 0x08191908), uvec2(0x08192b08, 0x08191919), + uvec2(0x192b082b, 0x08191919), uvec2(0x08080808, 0x0819192b), uvec2(0x0819192b, 0x0819192b), uvec2(0x08080819, 0x08192b08), + uvec2(0x08081908, 0x08192b08), uvec2(0x08190808, 0x08192b08), uvec2(0x19080808, 0x08192b08), uvec2(0x2b080819, 0x08192b08), + uvec2(0x08080808, 0x08192b19), uvec2(0x08081919, 0x08192b19), uvec2(0x2b2b0808, 0x08192b19), uvec2(0x19190819, 0x08192b2b), + uvec2(0x08080808, 0x082b0808), uvec2(0x0808082b, 0x082b0808), uvec2(0x08082b2b, 0x082b0808), uvec2(0x19081908, 0x082b0808), + uvec2(0x192b0819, 0x082b0808), uvec2(0x2b080808, 0x082b0808), uvec2(0x2b08082b, 0x082b0808), uvec2(0x082b2b19, 0x082b0819), + uvec2(0x19082b08, 0x082b0819), uvec2(0x08080808, 0x082b082b), uvec2(0x0808082b, 0x082b082b), uvec2(0x08080819, 0x082b1908), + uvec2(0x08081908, 0x082b1908), uvec2(0x08190808, 0x082b1908), uvec2(0x19080808, 0x082b1908), uvec2(0x1919192b, 0x082b1908), + uvec2(0x08080808, 0x082b1919), uvec2(0x19080819, 0x082b1919), uvec2(0x192b1908, 0x082b1919), uvec2(0x2b190808, 0x082b192b), + uvec2(0x08082b08, 0x082b2b08), uvec2(0x082b0808, 0x082b2b08), uvec2(0x2b191908, 0x082b2b08), uvec2(0x19081908, 0x082b2b2b), + uvec2(0x08080819, 0x19080808), uvec2(0x08081908, 0x19080808), uvec2(0x08190808, 0x19080808), uvec2(0x08192b08, 0x19080808), + uvec2(0x082b0819, 0x19080808), uvec2(0x082b1908, 0x19080808), uvec2(0x19080808, 0x19080808), uvec2(0x19082b08, 0x19080808), + uvec2(0x1919192b, 0x19080808), uvec2(0x192b0808, 0x19080808), uvec2(0x2b080819, 0x19080808), uvec2(0x2b081908, 0x19080808), + uvec2(0x2b190808, 0x19080808), uvec2(0x08080808, 0x19080819), uvec2(0x082b0808, 0x19080819), uvec2(0x192b0819, 0x19080819), + uvec2(0x2b080808, 0x19080819), uvec2(0x2b081919, 0x19080819), uvec2(0x08080819, 0x1908082b), uvec2(0x08190808, 0x1908082b), + uvec2(0x19082b08, 0x1908082b), uvec2(0x1919192b, 0x1908082b), uvec2(0x192b2b08, 0x1908082b), uvec2(0x08080808, 0x19081908), + uvec2(0x08082b08, 0x19081908), uvec2(0x082b0808, 0x19081908), uvec2(0x2b080808, 0x19081908), uvec2(0x2b192b19, 0x19081908), + uvec2(0x0819082b, 0x19081919), uvec2(0x082b1908, 0x19081919), uvec2(0x08080808, 0x1908192b), uvec2(0x08080819, 0x19082b08), + uvec2(0x08081908, 0x19082b08), uvec2(0x08190808, 0x19082b08), uvec2(0x19080808, 0x19082b08), uvec2(0x19081919, 0x19082b08), + uvec2(0x08080808, 0x19082b19), uvec2(0x19192b08, 0x19082b19), uvec2(0x192b0819, 0x19082b19), uvec2(0x2b08082b, 0x19082b19), + uvec2(0x19081919, 0x19082b2b), uvec2(0x2b190808, 0x19082b2b), uvec2(0x08080808, 0x19190808), uvec2(0x08082b08, 0x19190808), + uvec2(0x08190819, 0x19190808), uvec2(0x08192b19, 0x19190808), uvec2(0x082b0808, 0x19190808), uvec2(0x2b080808, 0x19190808), + uvec2(0x2b082b08, 0x19190808), uvec2(0x08081908, 0x19190819), uvec2(0x1908082b, 0x19190819), uvec2(0x2b2b1908, 0x19190819), + uvec2(0x2b190819, 0x1919082b), uvec2(0x2b190808, 0x19191908), uvec2(0x2b19082b, 0x19191908), uvec2(0x08082b2b, 0x19191919), + uvec2(0x08080819, 0x1919192b), uvec2(0x19191908, 0x1919192b), uvec2(0x08080808, 0x19192b08), uvec2(0x08190819, 0x19192b08), + uvec2(0x08192b19, 0x19192b08), uvec2(0x192b1908, 0x19192b08), uvec2(0x19080808, 0x19192b19), uvec2(0x08082b08, 0x19192b2b), + uvec2(0x08081908, 0x192b0808), uvec2(0x08190808, 0x192b0808), uvec2(0x19080808, 0x192b0808), uvec2(0x192b2b08, 0x192b0808), + uvec2(0x08080808, 0x192b0819), uvec2(0x19191919, 0x192b0819), uvec2(0x08192b08, 0x192b082b), uvec2(0x192b0808, 0x192b082b), + uvec2(0x08080808, 0x192b1908), uvec2(0x08081919, 0x192b1908), uvec2(0x08190808, 0x192b1919), uvec2(0x0819082b, 0x192b1919), + uvec2(0x2b081908, 0x192b1919), uvec2(0x1908082b, 0x192b2b08), uvec2(0x08080808, 0x2b080808), uvec2(0x0808082b, 0x2b080808), + uvec2(0x08082b2b, 0x2b080808), uvec2(0x19080819, 0x2b080808), uvec2(0x2b08082b, 0x2b080808), uvec2(0x08081908, 0x2b080819), + uvec2(0x08192b08, 0x2b080819), uvec2(0x19080808, 0x2b080819), uvec2(0x08190819, 0x2b08082b), uvec2(0x08080819, 0x2b081908), + uvec2(0x08081908, 0x2b081908), uvec2(0x08190808, 0x2b081908), uvec2(0x08191919, 0x2b081908), uvec2(0x19080808, 0x2b081908), + uvec2(0x192b0808, 0x2b081908), uvec2(0x08080808, 0x2b081919), uvec2(0x1908192b, 0x2b081919), uvec2(0x2b191908, 0x2b081919), + uvec2(0x08082b19, 0x2b08192b), uvec2(0x19080808, 0x2b08192b), uvec2(0x192b0808, 0x2b08192b), uvec2(0x0808082b, 0x2b082b08), + uvec2(0x08081908, 0x2b082b19), uvec2(0x08190819, 0x2b082b2b), uvec2(0x08081908, 0x2b190808), uvec2(0x08190808, 0x2b190808), + uvec2(0x082b1908, 0x2b190808), uvec2(0x19080808, 0x2b190808), uvec2(0x2b2b0819, 0x2b190808), uvec2(0x0819192b, 0x2b190819), + uvec2(0x2b080808, 0x2b190819), uvec2(0x19081919, 0x2b19082b), uvec2(0x08080808, 0x2b191908), uvec2(0x082b082b, 0x2b191908), + uvec2(0x19081908, 0x2b191908), uvec2(0x19190819, 0x2b191919), uvec2(0x2b080819, 0x2b192b08), uvec2(0x082b0808, 0x2b192b19), + uvec2(0x0808082b, 0x2b2b0808), uvec2(0x19190808, 0x2b2b0808), uvec2(0x2b081919, 0x2b2b0808), uvec2(0x08082b19, 0x2b2b0819), + uvec2(0x08080808, 0x2b2b082b), uvec2(0x08192b08, 0x2b2b1908), uvec2(0x19190808, 0x2b2b2b08), uvec2(0x08081908, 0x2b2b2b19) +}; + +shared uvec2 iq2xxs_grid[256]; + +void init_iq_shmem(uvec3 wgsize) +{ + // copy the table into shared memory and sync + for (uint i = gl_LocalInvocationIndex.x; i < iq2xxs_grid.length(); i += wgsize.x) { + iq2xxs_grid[i] = iq2xxs_grid_const[i]; + } + barrier(); +} + +#define QUANT_K QUANT_K_IQ2_XXS +#define QUANT_R QUANT_R_IQ2_XXS +#define A_TYPE block_iq2_xxs +#define A_TYPE_PACKED16 block_iq2_xxs_packed16 +#endif + +#define QUANT_K_IQ2_XS 256 +#define QUANT_R_IQ2_XS 1 + +struct block_iq2_xs +{ + float16_t d; + uint16_t qs[QUANT_K_IQ2_XS/8]; + uint8_t scales[QUANT_K_IQ2_XS/32]; +}; + +struct block_iq2_xs_packed16 +{ + float16_t d; + uint16_t qs[QUANT_K_IQ2_XS/8]; + uint16_t scales[QUANT_K_IQ2_XS/64]; +}; + +#if defined(DATA_A_IQ2_XS) + +const uvec2 iq2xs_grid_const[512] = { + uvec2(0x08080808, 0x08080808), uvec2(0x0808082b, 0x08080808), uvec2(0x08081919, 0x08080808), uvec2(0x08082b08, 0x08080808), + uvec2(0x08082b2b, 0x08080808), uvec2(0x08190819, 0x08080808), uvec2(0x08191908, 0x08080808), uvec2(0x0819192b, 0x08080808), + uvec2(0x08192b19, 0x08080808), uvec2(0x082b0808, 0x08080808), uvec2(0x082b082b, 0x08080808), uvec2(0x082b1919, 0x08080808), + uvec2(0x082b2b08, 0x08080808), uvec2(0x19080819, 0x08080808), uvec2(0x19081908, 0x08080808), uvec2(0x1908192b, 0x08080808), + uvec2(0x19082b19, 0x08080808), uvec2(0x19190808, 0x08080808), uvec2(0x1919082b, 0x08080808), uvec2(0x19191919, 0x08080808), + uvec2(0x19192b08, 0x08080808), uvec2(0x192b0819, 0x08080808), uvec2(0x192b1908, 0x08080808), uvec2(0x2b080808, 0x08080808), + uvec2(0x2b08082b, 0x08080808), uvec2(0x2b081919, 0x08080808), uvec2(0x2b082b08, 0x08080808), uvec2(0x2b190819, 0x08080808), + uvec2(0x2b191908, 0x08080808), uvec2(0x2b192b19, 0x08080808), uvec2(0x2b2b0808, 0x08080808), uvec2(0x08080819, 0x08080819), + uvec2(0x08081908, 0x08080819), uvec2(0x0808192b, 0x08080819), uvec2(0x08082b19, 0x08080819), uvec2(0x08190808, 0x08080819), + uvec2(0x0819082b, 0x08080819), uvec2(0x08191919, 0x08080819), uvec2(0x08192b08, 0x08080819), uvec2(0x08192b2b, 0x08080819), + uvec2(0x082b0819, 0x08080819), uvec2(0x082b1908, 0x08080819), uvec2(0x19080808, 0x08080819), uvec2(0x1908082b, 0x08080819), + uvec2(0x19081919, 0x08080819), uvec2(0x19082b08, 0x08080819), uvec2(0x19190819, 0x08080819), uvec2(0x19191908, 0x08080819), + uvec2(0x192b0808, 0x08080819), uvec2(0x192b2b08, 0x08080819), uvec2(0x2b080819, 0x08080819), uvec2(0x2b081908, 0x08080819), + uvec2(0x2b190808, 0x08080819), uvec2(0x08080808, 0x0808082b), uvec2(0x0808082b, 0x0808082b), uvec2(0x08081919, 0x0808082b), + uvec2(0x08082b08, 0x0808082b), uvec2(0x08190819, 0x0808082b), uvec2(0x08191908, 0x0808082b), uvec2(0x082b0808, 0x0808082b), + uvec2(0x19080819, 0x0808082b), uvec2(0x19081908, 0x0808082b), uvec2(0x19190808, 0x0808082b), uvec2(0x19191919, 0x0808082b), + uvec2(0x2b080808, 0x0808082b), uvec2(0x2b082b2b, 0x0808082b), uvec2(0x08080819, 0x08081908), uvec2(0x08081908, 0x08081908), + uvec2(0x0808192b, 0x08081908), uvec2(0x08082b19, 0x08081908), uvec2(0x08190808, 0x08081908), uvec2(0x0819082b, 0x08081908), + uvec2(0x08191919, 0x08081908), uvec2(0x08192b08, 0x08081908), uvec2(0x082b0819, 0x08081908), uvec2(0x082b1908, 0x08081908), + uvec2(0x19080808, 0x08081908), uvec2(0x1908082b, 0x08081908), uvec2(0x19081919, 0x08081908), uvec2(0x19082b08, 0x08081908), + uvec2(0x19190819, 0x08081908), uvec2(0x19191908, 0x08081908), uvec2(0x1919192b, 0x08081908), uvec2(0x192b0808, 0x08081908), + uvec2(0x2b080819, 0x08081908), uvec2(0x2b081908, 0x08081908), uvec2(0x2b190808, 0x08081908), uvec2(0x08080808, 0x08081919), + uvec2(0x0808082b, 0x08081919), uvec2(0x08081919, 0x08081919), uvec2(0x08082b08, 0x08081919), uvec2(0x08190819, 0x08081919), + uvec2(0x08191908, 0x08081919), uvec2(0x082b0808, 0x08081919), uvec2(0x19080819, 0x08081919), uvec2(0x19081908, 0x08081919), + uvec2(0x19190808, 0x08081919), uvec2(0x192b0819, 0x08081919), uvec2(0x2b080808, 0x08081919), uvec2(0x08080819, 0x0808192b), + uvec2(0x08081908, 0x0808192b), uvec2(0x08190808, 0x0808192b), uvec2(0x082b192b, 0x0808192b), uvec2(0x19080808, 0x0808192b), + uvec2(0x1908082b, 0x0808192b), uvec2(0x2b081908, 0x0808192b), uvec2(0x08080808, 0x08082b08), uvec2(0x0808082b, 0x08082b08), + uvec2(0x08081919, 0x08082b08), uvec2(0x08082b08, 0x08082b08), uvec2(0x08082b2b, 0x08082b08), uvec2(0x08190819, 0x08082b08), + uvec2(0x08191908, 0x08082b08), uvec2(0x082b0808, 0x08082b08), uvec2(0x082b1919, 0x08082b08), uvec2(0x19080819, 0x08082b08), + uvec2(0x19081908, 0x08082b08), uvec2(0x19190808, 0x08082b08), uvec2(0x19192b08, 0x08082b08), uvec2(0x2b080808, 0x08082b08), + uvec2(0x2b2b0808, 0x08082b08), uvec2(0x2b2b2b2b, 0x08082b08), uvec2(0x08080819, 0x08082b19), uvec2(0x08081908, 0x08082b19), + uvec2(0x08190808, 0x08082b19), uvec2(0x19080808, 0x08082b19), uvec2(0x2b080819, 0x08082b19), uvec2(0x2b082b19, 0x08082b19), + uvec2(0x08080808, 0x08082b2b), uvec2(0x082b0808, 0x08082b2b), uvec2(0x082b2b08, 0x08082b2b), uvec2(0x2b19192b, 0x08082b2b), + uvec2(0x2b2b0808, 0x08082b2b), uvec2(0x08080819, 0x08190808), uvec2(0x08081908, 0x08190808), uvec2(0x0808192b, 0x08190808), + uvec2(0x08082b19, 0x08190808), uvec2(0x08190808, 0x08190808), uvec2(0x0819082b, 0x08190808), uvec2(0x08191919, 0x08190808), + uvec2(0x08192b08, 0x08190808), uvec2(0x082b0819, 0x08190808), uvec2(0x082b1908, 0x08190808), uvec2(0x19080808, 0x08190808), + uvec2(0x1908082b, 0x08190808), uvec2(0x19081919, 0x08190808), uvec2(0x19082b08, 0x08190808), uvec2(0x19190819, 0x08190808), + uvec2(0x19191908, 0x08190808), uvec2(0x192b0808, 0x08190808), uvec2(0x192b2b2b, 0x08190808), uvec2(0x2b080819, 0x08190808), + uvec2(0x2b081908, 0x08190808), uvec2(0x2b190808, 0x08190808), uvec2(0x08080808, 0x08190819), uvec2(0x0808082b, 0x08190819), + uvec2(0x08081919, 0x08190819), uvec2(0x08082b08, 0x08190819), uvec2(0x08190819, 0x08190819), uvec2(0x08191908, 0x08190819), + uvec2(0x082b0808, 0x08190819), uvec2(0x19080819, 0x08190819), uvec2(0x19081908, 0x08190819), uvec2(0x19190808, 0x08190819), + uvec2(0x2b080808, 0x08190819), uvec2(0x2b191908, 0x08190819), uvec2(0x2b19192b, 0x08190819), uvec2(0x08080819, 0x0819082b), + uvec2(0x08081908, 0x0819082b), uvec2(0x0808192b, 0x0819082b), uvec2(0x08190808, 0x0819082b), uvec2(0x19080808, 0x0819082b), + uvec2(0x192b0808, 0x0819082b), uvec2(0x08080808, 0x08191908), uvec2(0x0808082b, 0x08191908), uvec2(0x08081919, 0x08191908), + uvec2(0x08082b08, 0x08191908), uvec2(0x08190819, 0x08191908), uvec2(0x08191908, 0x08191908), uvec2(0x082b0808, 0x08191908), + uvec2(0x19080819, 0x08191908), uvec2(0x19081908, 0x08191908), uvec2(0x19082b19, 0x08191908), uvec2(0x19190808, 0x08191908), + uvec2(0x192b1908, 0x08191908), uvec2(0x2b080808, 0x08191908), uvec2(0x08080819, 0x08191919), uvec2(0x08081908, 0x08191919), + uvec2(0x08190808, 0x08191919), uvec2(0x19080808, 0x08191919), uvec2(0x08080808, 0x0819192b), uvec2(0x08191908, 0x0819192b), + uvec2(0x19082b19, 0x0819192b), uvec2(0x08080819, 0x08192b08), uvec2(0x08081908, 0x08192b08), uvec2(0x08190808, 0x08192b08), + uvec2(0x0819082b, 0x08192b08), uvec2(0x19080808, 0x08192b08), uvec2(0x19191908, 0x08192b08), uvec2(0x2b08192b, 0x08192b08), + uvec2(0x08080808, 0x08192b19), uvec2(0x08081919, 0x08192b19), uvec2(0x192b192b, 0x08192b19), uvec2(0x19190819, 0x08192b2b), + uvec2(0x2b2b2b19, 0x08192b2b), uvec2(0x08080808, 0x082b0808), uvec2(0x0808082b, 0x082b0808), uvec2(0x08081919, 0x082b0808), + uvec2(0x08082b08, 0x082b0808), uvec2(0x08082b2b, 0x082b0808), uvec2(0x08190819, 0x082b0808), uvec2(0x08191908, 0x082b0808), + uvec2(0x082b0808, 0x082b0808), uvec2(0x19080819, 0x082b0808), uvec2(0x19081908, 0x082b0808), uvec2(0x19190808, 0x082b0808), + uvec2(0x2b080808, 0x082b0808), uvec2(0x2b2b0808, 0x082b0808), uvec2(0x08080819, 0x082b0819), uvec2(0x08081908, 0x082b0819), + uvec2(0x08190808, 0x082b0819), uvec2(0x19080808, 0x082b0819), uvec2(0x19082b08, 0x082b0819), uvec2(0x192b1919, 0x082b0819), + uvec2(0x08080808, 0x082b082b), uvec2(0x082b082b, 0x082b082b), uvec2(0x2b080808, 0x082b082b), uvec2(0x2b2b2b08, 0x082b082b), + uvec2(0x08080819, 0x082b1908), uvec2(0x08081908, 0x082b1908), uvec2(0x08190808, 0x082b1908), uvec2(0x082b2b19, 0x082b1908), + uvec2(0x19080808, 0x082b1908), uvec2(0x08080808, 0x082b1919), uvec2(0x19080819, 0x082b1919), uvec2(0x1919082b, 0x082b1919), + uvec2(0x2b192b19, 0x082b1919), uvec2(0x08080819, 0x082b192b), uvec2(0x08192b2b, 0x082b192b), uvec2(0x2b2b192b, 0x082b192b), + uvec2(0x08080808, 0x082b2b08), uvec2(0x08082b08, 0x082b2b08), uvec2(0x08082b2b, 0x082b2b08), uvec2(0x082b0808, 0x082b2b08), + uvec2(0x19191919, 0x082b2b08), uvec2(0x2b082b08, 0x082b2b08), uvec2(0x2b2b082b, 0x082b2b08), uvec2(0x192b2b08, 0x082b2b19), + uvec2(0x2b190808, 0x082b2b19), uvec2(0x08082b08, 0x082b2b2b), uvec2(0x082b0808, 0x082b2b2b), uvec2(0x2b08082b, 0x082b2b2b), + uvec2(0x2b082b08, 0x082b2b2b), uvec2(0x2b082b2b, 0x082b2b2b), uvec2(0x08080819, 0x19080808), uvec2(0x08081908, 0x19080808), + uvec2(0x0808192b, 0x19080808), uvec2(0x08082b19, 0x19080808), uvec2(0x08190808, 0x19080808), uvec2(0x0819082b, 0x19080808), + uvec2(0x08191919, 0x19080808), uvec2(0x08192b08, 0x19080808), uvec2(0x082b0819, 0x19080808), uvec2(0x082b1908, 0x19080808), + uvec2(0x19080808, 0x19080808), uvec2(0x1908082b, 0x19080808), uvec2(0x19081919, 0x19080808), uvec2(0x19082b08, 0x19080808), + uvec2(0x19082b2b, 0x19080808), uvec2(0x19190819, 0x19080808), uvec2(0x19191908, 0x19080808), uvec2(0x192b0808, 0x19080808), + uvec2(0x192b1919, 0x19080808), uvec2(0x2b080819, 0x19080808), uvec2(0x2b081908, 0x19080808), uvec2(0x2b190808, 0x19080808), + uvec2(0x08080808, 0x19080819), uvec2(0x0808082b, 0x19080819), uvec2(0x08081919, 0x19080819), uvec2(0x08082b08, 0x19080819), + uvec2(0x08190819, 0x19080819), uvec2(0x08191908, 0x19080819), uvec2(0x082b0808, 0x19080819), uvec2(0x19080819, 0x19080819), + uvec2(0x19081908, 0x19080819), uvec2(0x19190808, 0x19080819), uvec2(0x2b080808, 0x19080819), uvec2(0x2b081919, 0x19080819), + uvec2(0x2b2b082b, 0x19080819), uvec2(0x08080819, 0x1908082b), uvec2(0x08081908, 0x1908082b), uvec2(0x08190808, 0x1908082b), + uvec2(0x0819082b, 0x1908082b), uvec2(0x082b2b19, 0x1908082b), uvec2(0x19080808, 0x1908082b), uvec2(0x08080808, 0x19081908), + uvec2(0x0808082b, 0x19081908), uvec2(0x08081919, 0x19081908), uvec2(0x08082b08, 0x19081908), uvec2(0x08190819, 0x19081908), + uvec2(0x08191908, 0x19081908), uvec2(0x08192b19, 0x19081908), uvec2(0x082b0808, 0x19081908), uvec2(0x19080819, 0x19081908), + uvec2(0x19081908, 0x19081908), uvec2(0x19190808, 0x19081908), uvec2(0x2b080808, 0x19081908), uvec2(0x2b191908, 0x19081908), + uvec2(0x08080819, 0x19081919), uvec2(0x08081908, 0x19081919), uvec2(0x08190808, 0x19081919), uvec2(0x082b1908, 0x19081919), + uvec2(0x19080808, 0x19081919), uvec2(0x2b192b2b, 0x19081919), uvec2(0x08080808, 0x1908192b), uvec2(0x08082b2b, 0x1908192b), + uvec2(0x19081908, 0x1908192b), uvec2(0x19190808, 0x1908192b), uvec2(0x08080819, 0x19082b08), uvec2(0x08081908, 0x19082b08), + uvec2(0x08190808, 0x19082b08), uvec2(0x19080808, 0x19082b08), uvec2(0x19081919, 0x19082b08), uvec2(0x19191908, 0x19082b08), + uvec2(0x192b082b, 0x19082b08), uvec2(0x08080808, 0x19082b19), uvec2(0x08190819, 0x19082b19), uvec2(0x19081908, 0x19082b19), + uvec2(0x19190808, 0x19082b19), uvec2(0x192b2b19, 0x19082b19), uvec2(0x08081908, 0x19082b2b), uvec2(0x08080808, 0x19190808), + uvec2(0x0808082b, 0x19190808), uvec2(0x08081919, 0x19190808), uvec2(0x08082b08, 0x19190808), uvec2(0x08190819, 0x19190808), + uvec2(0x08191908, 0x19190808), uvec2(0x082b0808, 0x19190808), uvec2(0x082b2b08, 0x19190808), uvec2(0x19080819, 0x19190808), + uvec2(0x19081908, 0x19190808), uvec2(0x19190808, 0x19190808), uvec2(0x2b080808, 0x19190808), uvec2(0x08080819, 0x19190819), + uvec2(0x08081908, 0x19190819), uvec2(0x08190808, 0x19190819), uvec2(0x08191919, 0x19190819), uvec2(0x19080808, 0x19190819), + uvec2(0x1908082b, 0x19190819), uvec2(0x08080808, 0x1919082b), uvec2(0x19081908, 0x1919082b), uvec2(0x2b2b2b2b, 0x1919082b), + uvec2(0x08080819, 0x19191908), uvec2(0x08081908, 0x19191908), uvec2(0x08190808, 0x19191908), uvec2(0x082b0819, 0x19191908), + uvec2(0x19080808, 0x19191908), uvec2(0x192b0808, 0x19191908), uvec2(0x2b080819, 0x19191908), uvec2(0x2b2b0819, 0x19191908), + uvec2(0x08080808, 0x19191919), uvec2(0x08082b08, 0x19191919), uvec2(0x2b080808, 0x19191919), uvec2(0x2b082b08, 0x19191919), + uvec2(0x082b0819, 0x1919192b), uvec2(0x192b2b08, 0x1919192b), uvec2(0x2b2b0819, 0x1919192b), uvec2(0x08080808, 0x19192b08), + uvec2(0x08191908, 0x19192b08), uvec2(0x19080819, 0x19192b08), uvec2(0x19190808, 0x19192b08), uvec2(0x2b192b19, 0x19192b08), + uvec2(0x08192b2b, 0x19192b19), uvec2(0x19080808, 0x19192b19), uvec2(0x1908082b, 0x19192b19), uvec2(0x2b081919, 0x19192b2b), + uvec2(0x08080819, 0x192b0808), uvec2(0x08081908, 0x192b0808), uvec2(0x08190808, 0x192b0808), uvec2(0x19080808, 0x192b0808), + uvec2(0x19191908, 0x192b0808), uvec2(0x192b082b, 0x192b0808), uvec2(0x2b08192b, 0x192b0808), uvec2(0x2b2b2b19, 0x192b0808), + uvec2(0x08080808, 0x192b0819), uvec2(0x082b1908, 0x192b082b), uvec2(0x19082b2b, 0x192b082b), uvec2(0x2b19082b, 0x192b082b), + uvec2(0x08080808, 0x192b1908), uvec2(0x0819192b, 0x192b1908), uvec2(0x08190808, 0x192b1919), uvec2(0x19080808, 0x192b1919), + uvec2(0x19081919, 0x192b1919), uvec2(0x2b2b1908, 0x192b1919), uvec2(0x08080819, 0x192b2b08), uvec2(0x192b2b2b, 0x192b2b08), + uvec2(0x082b1919, 0x192b2b19), uvec2(0x0808192b, 0x192b2b2b), uvec2(0x19191908, 0x192b2b2b), uvec2(0x192b082b, 0x192b2b2b), + uvec2(0x08080808, 0x2b080808), uvec2(0x0808082b, 0x2b080808), uvec2(0x08081919, 0x2b080808), uvec2(0x08082b08, 0x2b080808), + uvec2(0x08190819, 0x2b080808), uvec2(0x08191908, 0x2b080808), uvec2(0x082b0808, 0x2b080808), uvec2(0x082b2b2b, 0x2b080808), + uvec2(0x19080819, 0x2b080808), uvec2(0x19081908, 0x2b080808), uvec2(0x19190808, 0x2b080808), uvec2(0x2b080808, 0x2b080808), + uvec2(0x2b08082b, 0x2b080808), uvec2(0x2b2b2b08, 0x2b080808), uvec2(0x2b2b2b2b, 0x2b080808), uvec2(0x08080819, 0x2b080819), + uvec2(0x08081908, 0x2b080819), uvec2(0x0808192b, 0x2b080819), uvec2(0x08190808, 0x2b080819), uvec2(0x19080808, 0x2b080819), + uvec2(0x19190819, 0x2b080819), uvec2(0x19192b19, 0x2b080819), uvec2(0x08080808, 0x2b08082b), uvec2(0x082b0808, 0x2b08082b), + uvec2(0x2b080808, 0x2b08082b), uvec2(0x2b08082b, 0x2b08082b), uvec2(0x2b2b0808, 0x2b08082b), uvec2(0x2b2b2b08, 0x2b08082b), + uvec2(0x08080819, 0x2b081908), uvec2(0x08081908, 0x2b081908), uvec2(0x08190808, 0x2b081908), uvec2(0x0819082b, 0x2b081908), + uvec2(0x08191919, 0x2b081908), uvec2(0x19080808, 0x2b081908), uvec2(0x192b0808, 0x2b081908), uvec2(0x2b082b19, 0x2b081908), + uvec2(0x08080808, 0x2b081919), uvec2(0x19081908, 0x2b081919), uvec2(0x2b2b1919, 0x2b081919), uvec2(0x08192b08, 0x2b08192b), + uvec2(0x192b2b2b, 0x2b08192b), uvec2(0x08080808, 0x2b082b08), uvec2(0x08082b08, 0x2b082b08), uvec2(0x082b1919, 0x2b082b08), + uvec2(0x19192b2b, 0x2b082b08), uvec2(0x2b080808, 0x2b082b08), uvec2(0x2b08082b, 0x2b082b08), uvec2(0x2b2b2b08, 0x2b082b08), + uvec2(0x0808192b, 0x2b082b19), uvec2(0x082b082b, 0x2b082b2b), uvec2(0x2b080808, 0x2b082b2b), uvec2(0x2b082b08, 0x2b082b2b), + uvec2(0x2b19192b, 0x2b082b2b), uvec2(0x2b2b2b08, 0x2b082b2b), uvec2(0x08080819, 0x2b190808), uvec2(0x08081908, 0x2b190808), + uvec2(0x08190808, 0x2b190808), uvec2(0x19080808, 0x2b190808), uvec2(0x1919192b, 0x2b190808), uvec2(0x2b081908, 0x2b190808), + uvec2(0x08080808, 0x2b190819), uvec2(0x082b082b, 0x2b190819), uvec2(0x192b1908, 0x2b190819), uvec2(0x1919192b, 0x2b19082b), + uvec2(0x2b082b19, 0x2b19082b), uvec2(0x08080808, 0x2b191908), uvec2(0x08081919, 0x2b191908), uvec2(0x19081908, 0x2b191908), + uvec2(0x19190808, 0x2b191908), uvec2(0x19192b08, 0x2b191908), uvec2(0x082b2b19, 0x2b191919), uvec2(0x2b190808, 0x2b191919), + uvec2(0x2b19082b, 0x2b191919), uvec2(0x19080819, 0x2b19192b), uvec2(0x19190819, 0x2b192b08), uvec2(0x2b2b192b, 0x2b192b08), + uvec2(0x19082b19, 0x2b192b19), uvec2(0x08191919, 0x2b192b2b), uvec2(0x192b0808, 0x2b192b2b), uvec2(0x08080808, 0x2b2b0808), + uvec2(0x0808082b, 0x2b2b0808), uvec2(0x08082b08, 0x2b2b0808), uvec2(0x08082b2b, 0x2b2b0808), uvec2(0x082b0808, 0x2b2b0808), + uvec2(0x082b2b2b, 0x2b2b0808), uvec2(0x2b2b0808, 0x2b2b0808), uvec2(0x19190819, 0x2b2b0819), uvec2(0x19192b19, 0x2b2b0819), + uvec2(0x2b2b192b, 0x2b2b0819), uvec2(0x08080808, 0x2b2b082b), uvec2(0x0808082b, 0x2b2b082b), uvec2(0x08082b08, 0x2b2b082b), + uvec2(0x082b2b2b, 0x2b2b082b), uvec2(0x2b080808, 0x2b2b082b), uvec2(0x2b2b0808, 0x2b2b082b), uvec2(0x19080808, 0x2b2b1908), + uvec2(0x2b191919, 0x2b2b1908), uvec2(0x192b1919, 0x2b2b192b), uvec2(0x2b192b08, 0x2b2b192b), uvec2(0x08082b2b, 0x2b2b2b08), + uvec2(0x082b0808, 0x2b2b2b08), uvec2(0x082b082b, 0x2b2b2b08), uvec2(0x082b2b08, 0x2b2b2b08), uvec2(0x2b2b0808, 0x2b2b2b08), + uvec2(0x2b2b2b08, 0x2b2b2b08), uvec2(0x08081908, 0x2b2b2b19), uvec2(0x2b081908, 0x2b2b2b19), uvec2(0x2b08192b, 0x2b2b2b19), + uvec2(0x082b2b08, 0x2b2b2b2b), uvec2(0x082b2b2b, 0x2b2b2b2b), uvec2(0x2b190819, 0x2b2b2b2b), uvec2(0x2b2b2b2b, 0x2b2b2b2b), +}; + +shared uvec2 iq2xs_grid[512]; + +void init_iq_shmem(uvec3 wgsize) +{ + // copy the table into shared memory and sync + for (uint i = gl_LocalInvocationIndex.x; i < iq2xs_grid.length(); i += wgsize.x) { + iq2xs_grid[i] = iq2xs_grid_const[i]; + } + barrier(); +} + +#define QUANT_K QUANT_K_IQ2_XS +#define QUANT_R QUANT_R_IQ2_XS +#define A_TYPE block_iq2_xs +#define A_TYPE_PACKED16 block_iq2_xs_packed16 +#endif + +#define QUANT_K_IQ2_S 256 +#define QUANT_R_IQ2_S 1 + +struct block_iq2_s +{ + float16_t d; + uint8_t qs[QUANT_K_IQ2_S/4]; + uint8_t qh[QUANT_K_IQ2_S/32]; + uint8_t scales[QUANT_K_IQ2_S/32]; +}; + +#if defined(DATA_A_IQ2_S) + +const uvec2 iq2s_grid_const[1024] = { + uvec2(0x08080808, 0x08080808), uvec2(0x0808082b, 0x08080808), uvec2(0x08081919, 0x08080808), uvec2(0x08082b08, 0x08080808), + uvec2(0x08082b2b, 0x08080808), uvec2(0x08190819, 0x08080808), uvec2(0x08191908, 0x08080808), uvec2(0x0819192b, 0x08080808), + uvec2(0x08192b19, 0x08080808), uvec2(0x082b0808, 0x08080808), uvec2(0x082b082b, 0x08080808), uvec2(0x082b1919, 0x08080808), + uvec2(0x082b2b08, 0x08080808), uvec2(0x19080819, 0x08080808), uvec2(0x19081908, 0x08080808), uvec2(0x1908192b, 0x08080808), + uvec2(0x19082b19, 0x08080808), uvec2(0x19190808, 0x08080808), uvec2(0x1919082b, 0x08080808), uvec2(0x19191919, 0x08080808), + uvec2(0x19192b08, 0x08080808), uvec2(0x192b0819, 0x08080808), uvec2(0x192b1908, 0x08080808), uvec2(0x192b192b, 0x08080808), + uvec2(0x192b2b19, 0x08080808), uvec2(0x2b080808, 0x08080808), uvec2(0x2b08082b, 0x08080808), uvec2(0x2b081919, 0x08080808), + uvec2(0x2b082b08, 0x08080808), uvec2(0x2b190819, 0x08080808), uvec2(0x2b191908, 0x08080808), uvec2(0x2b2b0808, 0x08080808), + uvec2(0x2b2b1919, 0x08080808), uvec2(0x2b2b2b2b, 0x08080808), uvec2(0x08080819, 0x08080819), uvec2(0x08081908, 0x08080819), + uvec2(0x0808192b, 0x08080819), uvec2(0x08082b19, 0x08080819), uvec2(0x08190808, 0x08080819), uvec2(0x0819082b, 0x08080819), + uvec2(0x08191919, 0x08080819), uvec2(0x08192b08, 0x08080819), uvec2(0x082b0819, 0x08080819), uvec2(0x082b1908, 0x08080819), + uvec2(0x19080808, 0x08080819), uvec2(0x1908082b, 0x08080819), uvec2(0x19081919, 0x08080819), uvec2(0x19082b08, 0x08080819), + uvec2(0x19190819, 0x08080819), uvec2(0x19191908, 0x08080819), uvec2(0x1919192b, 0x08080819), uvec2(0x19192b19, 0x08080819), + uvec2(0x192b0808, 0x08080819), uvec2(0x192b1919, 0x08080819), uvec2(0x192b2b08, 0x08080819), uvec2(0x2b080819, 0x08080819), + uvec2(0x2b081908, 0x08080819), uvec2(0x2b190808, 0x08080819), uvec2(0x2b19082b, 0x08080819), uvec2(0x2b191919, 0x08080819), + uvec2(0x2b2b0819, 0x08080819), uvec2(0x2b2b1908, 0x08080819), uvec2(0x08080808, 0x0808082b), uvec2(0x0808082b, 0x0808082b), + uvec2(0x08081919, 0x0808082b), uvec2(0x08082b08, 0x0808082b), uvec2(0x08190819, 0x0808082b), uvec2(0x08191908, 0x0808082b), + uvec2(0x082b0808, 0x0808082b), uvec2(0x082b2b2b, 0x0808082b), uvec2(0x19080819, 0x0808082b), uvec2(0x19081908, 0x0808082b), + uvec2(0x1908192b, 0x0808082b), uvec2(0x19082b19, 0x0808082b), uvec2(0x19190808, 0x0808082b), uvec2(0x19191919, 0x0808082b), + uvec2(0x2b080808, 0x0808082b), uvec2(0x2b081919, 0x0808082b), uvec2(0x2b082b2b, 0x0808082b), uvec2(0x2b191908, 0x0808082b), + uvec2(0x2b2b082b, 0x0808082b), uvec2(0x08080819, 0x08081908), uvec2(0x08081908, 0x08081908), uvec2(0x0808192b, 0x08081908), + uvec2(0x08082b19, 0x08081908), uvec2(0x08190808, 0x08081908), uvec2(0x0819082b, 0x08081908), uvec2(0x08191919, 0x08081908), + uvec2(0x08192b08, 0x08081908), uvec2(0x082b0819, 0x08081908), uvec2(0x082b1908, 0x08081908), uvec2(0x082b192b, 0x08081908), + uvec2(0x082b2b19, 0x08081908), uvec2(0x19080808, 0x08081908), uvec2(0x1908082b, 0x08081908), uvec2(0x19081919, 0x08081908), + uvec2(0x19082b08, 0x08081908), uvec2(0x19082b2b, 0x08081908), uvec2(0x19190819, 0x08081908), uvec2(0x19191908, 0x08081908), + uvec2(0x1919192b, 0x08081908), uvec2(0x19192b19, 0x08081908), uvec2(0x192b0808, 0x08081908), uvec2(0x192b082b, 0x08081908), + uvec2(0x192b1919, 0x08081908), uvec2(0x2b080819, 0x08081908), uvec2(0x2b081908, 0x08081908), uvec2(0x2b08192b, 0x08081908), + uvec2(0x2b082b19, 0x08081908), uvec2(0x2b190808, 0x08081908), uvec2(0x2b191919, 0x08081908), uvec2(0x2b192b08, 0x08081908), + uvec2(0x2b2b0819, 0x08081908), uvec2(0x2b2b1908, 0x08081908), uvec2(0x08080808, 0x08081919), uvec2(0x0808082b, 0x08081919), + uvec2(0x08081919, 0x08081919), uvec2(0x08082b08, 0x08081919), uvec2(0x08082b2b, 0x08081919), uvec2(0x08190819, 0x08081919), + uvec2(0x08191908, 0x08081919), uvec2(0x0819192b, 0x08081919), uvec2(0x08192b19, 0x08081919), uvec2(0x082b0808, 0x08081919), + uvec2(0x082b1919, 0x08081919), uvec2(0x082b2b08, 0x08081919), uvec2(0x19080819, 0x08081919), uvec2(0x19081908, 0x08081919), + uvec2(0x1908192b, 0x08081919), uvec2(0x19082b19, 0x08081919), uvec2(0x19190808, 0x08081919), uvec2(0x1919082b, 0x08081919), + uvec2(0x19191919, 0x08081919), uvec2(0x19192b08, 0x08081919), uvec2(0x192b0819, 0x08081919), uvec2(0x192b1908, 0x08081919), + uvec2(0x2b080808, 0x08081919), uvec2(0x2b08082b, 0x08081919), uvec2(0x2b081919, 0x08081919), uvec2(0x2b082b08, 0x08081919), + uvec2(0x2b190819, 0x08081919), uvec2(0x2b191908, 0x08081919), uvec2(0x2b2b0808, 0x08081919), uvec2(0x08080819, 0x0808192b), + uvec2(0x08081908, 0x0808192b), uvec2(0x0808192b, 0x0808192b), uvec2(0x08082b19, 0x0808192b), uvec2(0x08190808, 0x0808192b), + uvec2(0x08191919, 0x0808192b), uvec2(0x19080808, 0x0808192b), uvec2(0x19081919, 0x0808192b), uvec2(0x19082b08, 0x0808192b), + uvec2(0x19190819, 0x0808192b), uvec2(0x19191908, 0x0808192b), uvec2(0x192b0808, 0x0808192b), uvec2(0x2b080819, 0x0808192b), + uvec2(0x2b081908, 0x0808192b), uvec2(0x2b190808, 0x0808192b), uvec2(0x08080808, 0x08082b08), uvec2(0x0808082b, 0x08082b08), + uvec2(0x08081919, 0x08082b08), uvec2(0x08082b08, 0x08082b08), uvec2(0x08190819, 0x08082b08), uvec2(0x08191908, 0x08082b08), + uvec2(0x0819192b, 0x08082b08), uvec2(0x08192b19, 0x08082b08), uvec2(0x082b0808, 0x08082b08), uvec2(0x082b1919, 0x08082b08), + uvec2(0x082b2b2b, 0x08082b08), uvec2(0x19080819, 0x08082b08), uvec2(0x19081908, 0x08082b08), uvec2(0x1908192b, 0x08082b08), + uvec2(0x19082b19, 0x08082b08), uvec2(0x19190808, 0x08082b08), uvec2(0x1919082b, 0x08082b08), uvec2(0x19191919, 0x08082b08), + uvec2(0x19192b08, 0x08082b08), uvec2(0x192b0819, 0x08082b08), uvec2(0x192b1908, 0x08082b08), uvec2(0x2b080808, 0x08082b08), + uvec2(0x2b081919, 0x08082b08), uvec2(0x2b191908, 0x08082b08), uvec2(0x2b2b2b2b, 0x08082b08), uvec2(0x08080819, 0x08082b19), + uvec2(0x08081908, 0x08082b19), uvec2(0x08190808, 0x08082b19), uvec2(0x0819082b, 0x08082b19), uvec2(0x08191919, 0x08082b19), + uvec2(0x08192b08, 0x08082b19), uvec2(0x082b0819, 0x08082b19), uvec2(0x19080808, 0x08082b19), uvec2(0x19081919, 0x08082b19), + uvec2(0x19082b08, 0x08082b19), uvec2(0x19190819, 0x08082b19), uvec2(0x19191908, 0x08082b19), uvec2(0x192b0808, 0x08082b19), + uvec2(0x2b080819, 0x08082b19), uvec2(0x2b190808, 0x08082b19), uvec2(0x08080808, 0x08082b2b), uvec2(0x08190819, 0x08082b2b), + uvec2(0x08191908, 0x08082b2b), uvec2(0x082b082b, 0x08082b2b), uvec2(0x082b2b08, 0x08082b2b), uvec2(0x082b2b2b, 0x08082b2b), + uvec2(0x19190808, 0x08082b2b), uvec2(0x2b192b19, 0x08082b2b), uvec2(0x08080819, 0x08190808), uvec2(0x08081908, 0x08190808), + uvec2(0x0808192b, 0x08190808), uvec2(0x08082b19, 0x08190808), uvec2(0x08190808, 0x08190808), uvec2(0x0819082b, 0x08190808), + uvec2(0x08191919, 0x08190808), uvec2(0x08192b08, 0x08190808), uvec2(0x082b0819, 0x08190808), uvec2(0x082b1908, 0x08190808), + uvec2(0x082b192b, 0x08190808), uvec2(0x19080808, 0x08190808), uvec2(0x1908082b, 0x08190808), uvec2(0x19081919, 0x08190808), + uvec2(0x19082b08, 0x08190808), uvec2(0x19190819, 0x08190808), uvec2(0x19191908, 0x08190808), uvec2(0x1919192b, 0x08190808), + uvec2(0x19192b19, 0x08190808), uvec2(0x192b0808, 0x08190808), uvec2(0x192b082b, 0x08190808), uvec2(0x192b1919, 0x08190808), + uvec2(0x192b2b08, 0x08190808), uvec2(0x2b080819, 0x08190808), uvec2(0x2b081908, 0x08190808), uvec2(0x2b08192b, 0x08190808), + uvec2(0x2b190808, 0x08190808), uvec2(0x2b191919, 0x08190808), uvec2(0x2b192b08, 0x08190808), uvec2(0x2b2b0819, 0x08190808), + uvec2(0x2b2b1908, 0x08190808), uvec2(0x08080808, 0x08190819), uvec2(0x0808082b, 0x08190819), uvec2(0x08081919, 0x08190819), + uvec2(0x08082b08, 0x08190819), uvec2(0x08082b2b, 0x08190819), uvec2(0x08190819, 0x08190819), uvec2(0x08191908, 0x08190819), + uvec2(0x0819192b, 0x08190819), uvec2(0x08192b19, 0x08190819), uvec2(0x082b0808, 0x08190819), uvec2(0x082b082b, 0x08190819), + uvec2(0x082b1919, 0x08190819), uvec2(0x082b2b08, 0x08190819), uvec2(0x19080819, 0x08190819), uvec2(0x19081908, 0x08190819), + uvec2(0x1908192b, 0x08190819), uvec2(0x19082b19, 0x08190819), uvec2(0x19190808, 0x08190819), uvec2(0x1919082b, 0x08190819), + uvec2(0x19191919, 0x08190819), uvec2(0x19192b08, 0x08190819), uvec2(0x192b0819, 0x08190819), uvec2(0x192b1908, 0x08190819), + uvec2(0x2b080808, 0x08190819), uvec2(0x2b08082b, 0x08190819), uvec2(0x2b081919, 0x08190819), uvec2(0x2b082b08, 0x08190819), + uvec2(0x2b190819, 0x08190819), uvec2(0x2b191908, 0x08190819), uvec2(0x08080819, 0x0819082b), uvec2(0x08081908, 0x0819082b), + uvec2(0x08082b19, 0x0819082b), uvec2(0x08190808, 0x0819082b), uvec2(0x08191919, 0x0819082b), uvec2(0x082b0819, 0x0819082b), + uvec2(0x082b1908, 0x0819082b), uvec2(0x19080808, 0x0819082b), uvec2(0x19081919, 0x0819082b), uvec2(0x19190819, 0x0819082b), + uvec2(0x19191908, 0x0819082b), uvec2(0x2b080819, 0x0819082b), uvec2(0x2b081908, 0x0819082b), uvec2(0x2b190808, 0x0819082b), + uvec2(0x08080808, 0x08191908), uvec2(0x0808082b, 0x08191908), uvec2(0x08081919, 0x08191908), uvec2(0x08082b08, 0x08191908), + uvec2(0x08190819, 0x08191908), uvec2(0x08191908, 0x08191908), uvec2(0x0819192b, 0x08191908), uvec2(0x08192b19, 0x08191908), + uvec2(0x082b0808, 0x08191908), uvec2(0x082b1919, 0x08191908), uvec2(0x082b2b08, 0x08191908), uvec2(0x19080819, 0x08191908), + uvec2(0x19081908, 0x08191908), uvec2(0x1908192b, 0x08191908), uvec2(0x19082b19, 0x08191908), uvec2(0x19190808, 0x08191908), + uvec2(0x1919082b, 0x08191908), uvec2(0x19191919, 0x08191908), uvec2(0x19192b08, 0x08191908), uvec2(0x192b0819, 0x08191908), + uvec2(0x192b1908, 0x08191908), uvec2(0x2b080808, 0x08191908), uvec2(0x2b08082b, 0x08191908), uvec2(0x2b081919, 0x08191908), + uvec2(0x2b082b08, 0x08191908), uvec2(0x2b190819, 0x08191908), uvec2(0x2b191908, 0x08191908), uvec2(0x2b2b0808, 0x08191908), + uvec2(0x08080819, 0x08191919), uvec2(0x08081908, 0x08191919), uvec2(0x0808192b, 0x08191919), uvec2(0x08082b19, 0x08191919), + uvec2(0x08190808, 0x08191919), uvec2(0x0819082b, 0x08191919), uvec2(0x08191919, 0x08191919), uvec2(0x08192b08, 0x08191919), + uvec2(0x082b0819, 0x08191919), uvec2(0x082b1908, 0x08191919), uvec2(0x19080808, 0x08191919), uvec2(0x1908082b, 0x08191919), + uvec2(0x19081919, 0x08191919), uvec2(0x19082b08, 0x08191919), uvec2(0x19190819, 0x08191919), uvec2(0x19191908, 0x08191919), + uvec2(0x192b0808, 0x08191919), uvec2(0x2b080819, 0x08191919), uvec2(0x2b081908, 0x08191919), uvec2(0x2b190808, 0x08191919), + uvec2(0x08080808, 0x0819192b), uvec2(0x08081919, 0x0819192b), uvec2(0x08082b08, 0x0819192b), uvec2(0x08190819, 0x0819192b), + uvec2(0x08191908, 0x0819192b), uvec2(0x082b0808, 0x0819192b), uvec2(0x19080819, 0x0819192b), uvec2(0x19081908, 0x0819192b), + uvec2(0x19190808, 0x0819192b), uvec2(0x2b080808, 0x0819192b), uvec2(0x2b2b2b2b, 0x0819192b), uvec2(0x08080819, 0x08192b08), + uvec2(0x08081908, 0x08192b08), uvec2(0x0808192b, 0x08192b08), uvec2(0x08082b19, 0x08192b08), uvec2(0x08190808, 0x08192b08), + uvec2(0x08191919, 0x08192b08), uvec2(0x08192b08, 0x08192b08), uvec2(0x082b0819, 0x08192b08), uvec2(0x19080808, 0x08192b08), + uvec2(0x1908082b, 0x08192b08), uvec2(0x19081919, 0x08192b08), uvec2(0x19082b08, 0x08192b08), uvec2(0x19190819, 0x08192b08), + uvec2(0x19191908, 0x08192b08), uvec2(0x192b0808, 0x08192b08), uvec2(0x2b080819, 0x08192b08), uvec2(0x2b081908, 0x08192b08), + uvec2(0x08080808, 0x08192b19), uvec2(0x0808082b, 0x08192b19), uvec2(0x08081919, 0x08192b19), uvec2(0x08082b08, 0x08192b19), + uvec2(0x08190819, 0x08192b19), uvec2(0x08191908, 0x08192b19), uvec2(0x082b0808, 0x08192b19), uvec2(0x19080819, 0x08192b19), + uvec2(0x19081908, 0x08192b19), uvec2(0x19190808, 0x08192b19), uvec2(0x192b2b19, 0x08192b19), uvec2(0x2b2b082b, 0x08192b19), + uvec2(0x08081908, 0x08192b2b), uvec2(0x08190808, 0x08192b2b), uvec2(0x19080808, 0x08192b2b), uvec2(0x1919192b, 0x08192b2b), + uvec2(0x08080808, 0x082b0808), uvec2(0x0808082b, 0x082b0808), uvec2(0x08081919, 0x082b0808), uvec2(0x08082b08, 0x082b0808), + uvec2(0x08190819, 0x082b0808), uvec2(0x08191908, 0x082b0808), uvec2(0x0819192b, 0x082b0808), uvec2(0x08192b19, 0x082b0808), + uvec2(0x082b0808, 0x082b0808), uvec2(0x082b1919, 0x082b0808), uvec2(0x082b2b2b, 0x082b0808), uvec2(0x19080819, 0x082b0808), + uvec2(0x19081908, 0x082b0808), uvec2(0x19190808, 0x082b0808), uvec2(0x1919082b, 0x082b0808), uvec2(0x19191919, 0x082b0808), + uvec2(0x192b1908, 0x082b0808), uvec2(0x2b080808, 0x082b0808), uvec2(0x2b082b2b, 0x082b0808), uvec2(0x2b191908, 0x082b0808), + uvec2(0x2b2b2b2b, 0x082b0808), uvec2(0x08080819, 0x082b0819), uvec2(0x08081908, 0x082b0819), uvec2(0x08190808, 0x082b0819), + uvec2(0x0819082b, 0x082b0819), uvec2(0x08191919, 0x082b0819), uvec2(0x082b0819, 0x082b0819), uvec2(0x19080808, 0x082b0819), + uvec2(0x1908082b, 0x082b0819), uvec2(0x19081919, 0x082b0819), uvec2(0x19190819, 0x082b0819), uvec2(0x19191908, 0x082b0819), + uvec2(0x192b0808, 0x082b0819), uvec2(0x2b080819, 0x082b0819), uvec2(0x2b081908, 0x082b0819), uvec2(0x2b190808, 0x082b0819), + uvec2(0x08080808, 0x082b082b), uvec2(0x08082b2b, 0x082b082b), uvec2(0x082b082b, 0x082b082b), uvec2(0x082b2b08, 0x082b082b), + uvec2(0x082b2b2b, 0x082b082b), uvec2(0x19081908, 0x082b082b), uvec2(0x19190808, 0x082b082b), uvec2(0x2b082b08, 0x082b082b), + uvec2(0x2b082b2b, 0x082b082b), uvec2(0x2b2b2b08, 0x082b082b), uvec2(0x08080819, 0x082b1908), uvec2(0x08081908, 0x082b1908), + uvec2(0x0808192b, 0x082b1908), uvec2(0x08082b19, 0x082b1908), uvec2(0x08190808, 0x082b1908), uvec2(0x08191919, 0x082b1908), + uvec2(0x08192b08, 0x082b1908), uvec2(0x082b0819, 0x082b1908), uvec2(0x082b1908, 0x082b1908), uvec2(0x19080808, 0x082b1908), + uvec2(0x1908082b, 0x082b1908), uvec2(0x19081919, 0x082b1908), uvec2(0x19082b08, 0x082b1908), uvec2(0x19190819, 0x082b1908), + uvec2(0x19191908, 0x082b1908), uvec2(0x192b0808, 0x082b1908), uvec2(0x2b080819, 0x082b1908), uvec2(0x2b081908, 0x082b1908), + uvec2(0x2b190808, 0x082b1908), uvec2(0x08080808, 0x082b1919), uvec2(0x08081919, 0x082b1919), uvec2(0x08082b08, 0x082b1919), + uvec2(0x08190819, 0x082b1919), uvec2(0x08191908, 0x082b1919), uvec2(0x082b0808, 0x082b1919), uvec2(0x19080819, 0x082b1919), + uvec2(0x19081908, 0x082b1919), uvec2(0x19190808, 0x082b1919), uvec2(0x192b192b, 0x082b1919), uvec2(0x2b080808, 0x082b1919), + uvec2(0x08080819, 0x082b192b), uvec2(0x08081908, 0x082b192b), uvec2(0x08190808, 0x082b192b), uvec2(0x19080808, 0x082b192b), + uvec2(0x19192b19, 0x082b192b), uvec2(0x08080808, 0x082b2b08), uvec2(0x08081919, 0x082b2b08), uvec2(0x08190819, 0x082b2b08), + uvec2(0x08191908, 0x082b2b08), uvec2(0x19080819, 0x082b2b08), uvec2(0x19081908, 0x082b2b08), uvec2(0x19190808, 0x082b2b08), + uvec2(0x2b082b2b, 0x082b2b08), uvec2(0x2b2b2b2b, 0x082b2b08), uvec2(0x08080819, 0x082b2b19), uvec2(0x08081908, 0x082b2b19), + uvec2(0x08190808, 0x082b2b19), uvec2(0x2b191919, 0x082b2b19), uvec2(0x08082b2b, 0x082b2b2b), uvec2(0x082b082b, 0x082b2b2b), + uvec2(0x192b1908, 0x082b2b2b), uvec2(0x2b082b08, 0x082b2b2b), uvec2(0x2b082b2b, 0x082b2b2b), uvec2(0x08080819, 0x19080808), + uvec2(0x08081908, 0x19080808), uvec2(0x0808192b, 0x19080808), uvec2(0x08082b19, 0x19080808), uvec2(0x08190808, 0x19080808), + uvec2(0x0819082b, 0x19080808), uvec2(0x08191919, 0x19080808), uvec2(0x08192b08, 0x19080808), uvec2(0x08192b2b, 0x19080808), + uvec2(0x082b0819, 0x19080808), uvec2(0x082b1908, 0x19080808), uvec2(0x082b192b, 0x19080808), uvec2(0x19080808, 0x19080808), + uvec2(0x1908082b, 0x19080808), uvec2(0x19081919, 0x19080808), uvec2(0x19082b08, 0x19080808), uvec2(0x19082b2b, 0x19080808), + uvec2(0x19190819, 0x19080808), uvec2(0x19191908, 0x19080808), uvec2(0x1919192b, 0x19080808), uvec2(0x19192b19, 0x19080808), + uvec2(0x192b0808, 0x19080808), uvec2(0x192b082b, 0x19080808), uvec2(0x192b1919, 0x19080808), uvec2(0x2b080819, 0x19080808), + uvec2(0x2b081908, 0x19080808), uvec2(0x2b190808, 0x19080808), uvec2(0x2b191919, 0x19080808), uvec2(0x2b192b08, 0x19080808), + uvec2(0x2b2b0819, 0x19080808), uvec2(0x2b2b1908, 0x19080808), uvec2(0x08080808, 0x19080819), uvec2(0x0808082b, 0x19080819), + uvec2(0x08081919, 0x19080819), uvec2(0x08082b08, 0x19080819), uvec2(0x08190819, 0x19080819), uvec2(0x08191908, 0x19080819), + uvec2(0x0819192b, 0x19080819), uvec2(0x08192b19, 0x19080819), uvec2(0x082b0808, 0x19080819), uvec2(0x082b082b, 0x19080819), + uvec2(0x082b1919, 0x19080819), uvec2(0x19080819, 0x19080819), uvec2(0x19081908, 0x19080819), uvec2(0x1908192b, 0x19080819), + uvec2(0x19082b19, 0x19080819), uvec2(0x19190808, 0x19080819), uvec2(0x1919082b, 0x19080819), uvec2(0x19191919, 0x19080819), + uvec2(0x19192b08, 0x19080819), uvec2(0x192b0819, 0x19080819), uvec2(0x192b1908, 0x19080819), uvec2(0x2b080808, 0x19080819), + uvec2(0x2b08082b, 0x19080819), uvec2(0x2b081919, 0x19080819), uvec2(0x2b082b08, 0x19080819), uvec2(0x2b190819, 0x19080819), + uvec2(0x2b191908, 0x19080819), uvec2(0x2b2b0808, 0x19080819), uvec2(0x08080819, 0x1908082b), uvec2(0x08081908, 0x1908082b), + uvec2(0x08190808, 0x1908082b), uvec2(0x0819082b, 0x1908082b), uvec2(0x08191919, 0x1908082b), uvec2(0x08192b08, 0x1908082b), + uvec2(0x082b1908, 0x1908082b), uvec2(0x19080808, 0x1908082b), uvec2(0x19081919, 0x1908082b), uvec2(0x19082b08, 0x1908082b), + uvec2(0x19190819, 0x1908082b), uvec2(0x19191908, 0x1908082b), uvec2(0x192b0808, 0x1908082b), uvec2(0x2b080819, 0x1908082b), + uvec2(0x2b081908, 0x1908082b), uvec2(0x08080808, 0x19081908), uvec2(0x0808082b, 0x19081908), uvec2(0x08081919, 0x19081908), + uvec2(0x08082b08, 0x19081908), uvec2(0x08082b2b, 0x19081908), uvec2(0x08190819, 0x19081908), uvec2(0x08191908, 0x19081908), + uvec2(0x0819192b, 0x19081908), uvec2(0x08192b19, 0x19081908), uvec2(0x082b0808, 0x19081908), uvec2(0x082b082b, 0x19081908), + uvec2(0x082b1919, 0x19081908), uvec2(0x082b2b08, 0x19081908), uvec2(0x19080819, 0x19081908), uvec2(0x19081908, 0x19081908), + uvec2(0x1908192b, 0x19081908), uvec2(0x19082b19, 0x19081908), uvec2(0x19190808, 0x19081908), uvec2(0x1919082b, 0x19081908), + uvec2(0x19191919, 0x19081908), uvec2(0x19192b08, 0x19081908), uvec2(0x192b0819, 0x19081908), uvec2(0x192b1908, 0x19081908), + uvec2(0x2b080808, 0x19081908), uvec2(0x2b08082b, 0x19081908), uvec2(0x2b081919, 0x19081908), uvec2(0x2b082b08, 0x19081908), + uvec2(0x2b190819, 0x19081908), uvec2(0x2b191908, 0x19081908), uvec2(0x2b2b0808, 0x19081908), uvec2(0x08080819, 0x19081919), + uvec2(0x08081908, 0x19081919), uvec2(0x0808192b, 0x19081919), uvec2(0x08082b19, 0x19081919), uvec2(0x08190808, 0x19081919), + uvec2(0x0819082b, 0x19081919), uvec2(0x08191919, 0x19081919), uvec2(0x08192b08, 0x19081919), uvec2(0x082b0819, 0x19081919), + uvec2(0x082b1908, 0x19081919), uvec2(0x19080808, 0x19081919), uvec2(0x1908082b, 0x19081919), uvec2(0x19081919, 0x19081919), + uvec2(0x19082b08, 0x19081919), uvec2(0x19190819, 0x19081919), uvec2(0x19191908, 0x19081919), uvec2(0x192b0808, 0x19081919), + uvec2(0x192b2b2b, 0x19081919), uvec2(0x2b080819, 0x19081919), uvec2(0x2b081908, 0x19081919), uvec2(0x2b190808, 0x19081919), + uvec2(0x08080808, 0x1908192b), uvec2(0x0808082b, 0x1908192b), uvec2(0x08081919, 0x1908192b), uvec2(0x08082b08, 0x1908192b), + uvec2(0x08190819, 0x1908192b), uvec2(0x08191908, 0x1908192b), uvec2(0x082b0808, 0x1908192b), uvec2(0x19080819, 0x1908192b), + uvec2(0x19081908, 0x1908192b), uvec2(0x19190808, 0x1908192b), uvec2(0x2b080808, 0x1908192b), uvec2(0x2b2b1919, 0x1908192b), + uvec2(0x08080819, 0x19082b08), uvec2(0x08081908, 0x19082b08), uvec2(0x08082b19, 0x19082b08), uvec2(0x08190808, 0x19082b08), + uvec2(0x0819082b, 0x19082b08), uvec2(0x08191919, 0x19082b08), uvec2(0x08192b08, 0x19082b08), uvec2(0x082b0819, 0x19082b08), + uvec2(0x082b1908, 0x19082b08), uvec2(0x19080808, 0x19082b08), uvec2(0x1908082b, 0x19082b08), uvec2(0x19081919, 0x19082b08), + uvec2(0x19082b08, 0x19082b08), uvec2(0x19190819, 0x19082b08), uvec2(0x19191908, 0x19082b08), uvec2(0x192b0808, 0x19082b08), + uvec2(0x2b081908, 0x19082b08), uvec2(0x2b190808, 0x19082b08), uvec2(0x08080808, 0x19082b19), uvec2(0x0808082b, 0x19082b19), + uvec2(0x08081919, 0x19082b19), uvec2(0x08082b08, 0x19082b19), uvec2(0x08190819, 0x19082b19), uvec2(0x08191908, 0x19082b19), + uvec2(0x082b0808, 0x19082b19), uvec2(0x19080819, 0x19082b19), uvec2(0x19081908, 0x19082b19), uvec2(0x19190808, 0x19082b19), + uvec2(0x2b080808, 0x19082b19), uvec2(0x2b19192b, 0x19082b19), uvec2(0x08080819, 0x19082b2b), uvec2(0x08081908, 0x19082b2b), + uvec2(0x08190808, 0x19082b2b), uvec2(0x19080808, 0x19082b2b), uvec2(0x08080808, 0x19190808), uvec2(0x0808082b, 0x19190808), + uvec2(0x08081919, 0x19190808), uvec2(0x08082b08, 0x19190808), uvec2(0x08190819, 0x19190808), uvec2(0x08191908, 0x19190808), + uvec2(0x0819192b, 0x19190808), uvec2(0x08192b19, 0x19190808), uvec2(0x082b0808, 0x19190808), uvec2(0x082b082b, 0x19190808), + uvec2(0x082b1919, 0x19190808), uvec2(0x082b2b08, 0x19190808), uvec2(0x19080819, 0x19190808), uvec2(0x19081908, 0x19190808), + uvec2(0x1908192b, 0x19190808), uvec2(0x19082b19, 0x19190808), uvec2(0x19190808, 0x19190808), uvec2(0x1919082b, 0x19190808), + uvec2(0x19191919, 0x19190808), uvec2(0x19192b08, 0x19190808), uvec2(0x192b0819, 0x19190808), uvec2(0x192b1908, 0x19190808), + uvec2(0x2b080808, 0x19190808), uvec2(0x2b08082b, 0x19190808), uvec2(0x2b081919, 0x19190808), uvec2(0x2b082b08, 0x19190808), + uvec2(0x2b190819, 0x19190808), uvec2(0x2b191908, 0x19190808), uvec2(0x08080819, 0x19190819), uvec2(0x08081908, 0x19190819), + uvec2(0x0808192b, 0x19190819), uvec2(0x08082b19, 0x19190819), uvec2(0x08190808, 0x19190819), uvec2(0x0819082b, 0x19190819), + uvec2(0x08191919, 0x19190819), uvec2(0x08192b08, 0x19190819), uvec2(0x082b0819, 0x19190819), uvec2(0x082b1908, 0x19190819), + uvec2(0x19080808, 0x19190819), uvec2(0x1908082b, 0x19190819), uvec2(0x19081919, 0x19190819), uvec2(0x19082b08, 0x19190819), + uvec2(0x19190819, 0x19190819), uvec2(0x19191908, 0x19190819), uvec2(0x192b0808, 0x19190819), uvec2(0x2b080819, 0x19190819), + uvec2(0x2b081908, 0x19190819), uvec2(0x2b190808, 0x19190819), uvec2(0x08080808, 0x1919082b), uvec2(0x08081919, 0x1919082b), + uvec2(0x08082b08, 0x1919082b), uvec2(0x08190819, 0x1919082b), uvec2(0x08191908, 0x1919082b), uvec2(0x082b0808, 0x1919082b), + uvec2(0x19080819, 0x1919082b), uvec2(0x19081908, 0x1919082b), uvec2(0x19190808, 0x1919082b), uvec2(0x192b2b19, 0x1919082b), + uvec2(0x2b080808, 0x1919082b), uvec2(0x08080819, 0x19191908), uvec2(0x08081908, 0x19191908), uvec2(0x0808192b, 0x19191908), + uvec2(0x08082b19, 0x19191908), uvec2(0x08190808, 0x19191908), uvec2(0x0819082b, 0x19191908), uvec2(0x08191919, 0x19191908), + uvec2(0x08192b08, 0x19191908), uvec2(0x082b0819, 0x19191908), uvec2(0x082b1908, 0x19191908), uvec2(0x19080808, 0x19191908), + uvec2(0x1908082b, 0x19191908), uvec2(0x19081919, 0x19191908), uvec2(0x19082b08, 0x19191908), uvec2(0x19190819, 0x19191908), + uvec2(0x19191908, 0x19191908), uvec2(0x192b0808, 0x19191908), uvec2(0x2b080819, 0x19191908), uvec2(0x2b081908, 0x19191908), + uvec2(0x2b190808, 0x19191908), uvec2(0x08080808, 0x19191919), uvec2(0x0808082b, 0x19191919), uvec2(0x08081919, 0x19191919), + uvec2(0x08082b08, 0x19191919), uvec2(0x08190819, 0x19191919), uvec2(0x08191908, 0x19191919), uvec2(0x082b0808, 0x19191919), + uvec2(0x19080819, 0x19191919), uvec2(0x19081908, 0x19191919), uvec2(0x19190808, 0x19191919), uvec2(0x2b080808, 0x19191919), + uvec2(0x08080819, 0x1919192b), uvec2(0x08081908, 0x1919192b), uvec2(0x08190808, 0x1919192b), uvec2(0x082b192b, 0x1919192b), + uvec2(0x19080808, 0x1919192b), uvec2(0x08080808, 0x19192b08), uvec2(0x0808082b, 0x19192b08), uvec2(0x08081919, 0x19192b08), + uvec2(0x08082b08, 0x19192b08), uvec2(0x08190819, 0x19192b08), uvec2(0x08191908, 0x19192b08), uvec2(0x082b0808, 0x19192b08), + uvec2(0x19080819, 0x19192b08), uvec2(0x19081908, 0x19192b08), uvec2(0x19190808, 0x19192b08), uvec2(0x19192b2b, 0x19192b08), + uvec2(0x2b080808, 0x19192b08), uvec2(0x08080819, 0x19192b19), uvec2(0x08081908, 0x19192b19), uvec2(0x08190808, 0x19192b19), + uvec2(0x19080808, 0x19192b19), uvec2(0x08080808, 0x19192b2b), uvec2(0x08192b19, 0x19192b2b), uvec2(0x2b081919, 0x19192b2b), + uvec2(0x2b2b2b08, 0x19192b2b), uvec2(0x08080819, 0x192b0808), uvec2(0x08081908, 0x192b0808), uvec2(0x0808192b, 0x192b0808), + uvec2(0x08190808, 0x192b0808), uvec2(0x0819082b, 0x192b0808), uvec2(0x08191919, 0x192b0808), uvec2(0x08192b08, 0x192b0808), + uvec2(0x082b0819, 0x192b0808), uvec2(0x082b1908, 0x192b0808), uvec2(0x19080808, 0x192b0808), uvec2(0x19081919, 0x192b0808), + uvec2(0x19082b08, 0x192b0808), uvec2(0x19190819, 0x192b0808), uvec2(0x19191908, 0x192b0808), uvec2(0x192b0808, 0x192b0808), + uvec2(0x2b081908, 0x192b0808), uvec2(0x2b190808, 0x192b0808), uvec2(0x08080808, 0x192b0819), uvec2(0x0808082b, 0x192b0819), + uvec2(0x08081919, 0x192b0819), uvec2(0x08082b08, 0x192b0819), uvec2(0x08190819, 0x192b0819), uvec2(0x08191908, 0x192b0819), + uvec2(0x082b0808, 0x192b0819), uvec2(0x19080819, 0x192b0819), uvec2(0x19081908, 0x192b0819), uvec2(0x19190808, 0x192b0819), + uvec2(0x2b080808, 0x192b0819), uvec2(0x2b192b19, 0x192b0819), uvec2(0x08081908, 0x192b082b), uvec2(0x08190808, 0x192b082b), + uvec2(0x19080808, 0x192b082b), uvec2(0x1919192b, 0x192b082b), uvec2(0x2b2b0819, 0x192b082b), uvec2(0x08080808, 0x192b1908), + uvec2(0x08081919, 0x192b1908), uvec2(0x08082b08, 0x192b1908), uvec2(0x08190819, 0x192b1908), uvec2(0x08191908, 0x192b1908), + uvec2(0x082b0808, 0x192b1908), uvec2(0x19080819, 0x192b1908), uvec2(0x19081908, 0x192b1908), uvec2(0x19190808, 0x192b1908), + uvec2(0x2b080808, 0x192b1908), uvec2(0x08080819, 0x192b1919), uvec2(0x08081908, 0x192b1919), uvec2(0x08190808, 0x192b1919), + uvec2(0x19080808, 0x192b1919), uvec2(0x19082b2b, 0x192b1919), uvec2(0x192b2b08, 0x192b1919), uvec2(0x2b19082b, 0x192b1919), + uvec2(0x08080808, 0x192b192b), uvec2(0x2b191908, 0x192b192b), uvec2(0x08080819, 0x192b2b08), uvec2(0x08081908, 0x192b2b08), + uvec2(0x08190808, 0x192b2b08), uvec2(0x192b1919, 0x192b2b08), uvec2(0x2b192b08, 0x192b2b08), uvec2(0x08080808, 0x192b2b19), + uvec2(0x082b2b2b, 0x192b2b19), uvec2(0x1908082b, 0x192b2b2b), uvec2(0x2b2b0819, 0x192b2b2b), uvec2(0x08080808, 0x2b080808), + uvec2(0x0808082b, 0x2b080808), uvec2(0x08081919, 0x2b080808), uvec2(0x08082b08, 0x2b080808), uvec2(0x08190819, 0x2b080808), + uvec2(0x08191908, 0x2b080808), uvec2(0x08192b19, 0x2b080808), uvec2(0x082b0808, 0x2b080808), uvec2(0x082b1919, 0x2b080808), + uvec2(0x19080819, 0x2b080808), uvec2(0x19081908, 0x2b080808), uvec2(0x19190808, 0x2b080808), uvec2(0x1919082b, 0x2b080808), + uvec2(0x19191919, 0x2b080808), uvec2(0x19192b08, 0x2b080808), uvec2(0x192b0819, 0x2b080808), uvec2(0x2b080808, 0x2b080808), + uvec2(0x2b081919, 0x2b080808), uvec2(0x2b190819, 0x2b080808), uvec2(0x2b191908, 0x2b080808), uvec2(0x08080819, 0x2b080819), + uvec2(0x08081908, 0x2b080819), uvec2(0x08082b19, 0x2b080819), uvec2(0x08190808, 0x2b080819), uvec2(0x0819082b, 0x2b080819), + uvec2(0x08191919, 0x2b080819), uvec2(0x08192b08, 0x2b080819), uvec2(0x082b0819, 0x2b080819), uvec2(0x082b1908, 0x2b080819), + uvec2(0x19080808, 0x2b080819), uvec2(0x1908082b, 0x2b080819), uvec2(0x19081919, 0x2b080819), uvec2(0x19082b08, 0x2b080819), + uvec2(0x19190819, 0x2b080819), uvec2(0x19191908, 0x2b080819), uvec2(0x2b080819, 0x2b080819), uvec2(0x2b081908, 0x2b080819), + uvec2(0x2b190808, 0x2b080819), uvec2(0x2b2b2b19, 0x2b080819), uvec2(0x08080808, 0x2b08082b), uvec2(0x08081919, 0x2b08082b), + uvec2(0x08082b2b, 0x2b08082b), uvec2(0x08190819, 0x2b08082b), uvec2(0x08191908, 0x2b08082b), uvec2(0x19080819, 0x2b08082b), + uvec2(0x19081908, 0x2b08082b), uvec2(0x19190808, 0x2b08082b), uvec2(0x08080819, 0x2b081908), uvec2(0x08081908, 0x2b081908), + uvec2(0x0808192b, 0x2b081908), uvec2(0x08082b19, 0x2b081908), uvec2(0x08190808, 0x2b081908), uvec2(0x0819082b, 0x2b081908), + uvec2(0x08191919, 0x2b081908), uvec2(0x08192b08, 0x2b081908), uvec2(0x082b0819, 0x2b081908), uvec2(0x19080808, 0x2b081908), + uvec2(0x1908082b, 0x2b081908), uvec2(0x19081919, 0x2b081908), uvec2(0x19082b08, 0x2b081908), uvec2(0x19190819, 0x2b081908), + uvec2(0x19191908, 0x2b081908), uvec2(0x192b0808, 0x2b081908), uvec2(0x2b080819, 0x2b081908), uvec2(0x2b081908, 0x2b081908), + uvec2(0x2b190808, 0x2b081908), uvec2(0x08080808, 0x2b081919), uvec2(0x0808082b, 0x2b081919), uvec2(0x08081919, 0x2b081919), + uvec2(0x08082b08, 0x2b081919), uvec2(0x08190819, 0x2b081919), uvec2(0x08191908, 0x2b081919), uvec2(0x082b0808, 0x2b081919), + uvec2(0x19080819, 0x2b081919), uvec2(0x19081908, 0x2b081919), uvec2(0x19190808, 0x2b081919), uvec2(0x2b080808, 0x2b081919), + uvec2(0x2b082b2b, 0x2b081919), uvec2(0x08080819, 0x2b08192b), uvec2(0x08081908, 0x2b08192b), uvec2(0x08190808, 0x2b08192b), + uvec2(0x082b2b19, 0x2b08192b), uvec2(0x19080808, 0x2b08192b), uvec2(0x08080808, 0x2b082b08), uvec2(0x08081919, 0x2b082b08), + uvec2(0x08190819, 0x2b082b08), uvec2(0x08191908, 0x2b082b08), uvec2(0x19080819, 0x2b082b08), uvec2(0x19081908, 0x2b082b08), + uvec2(0x19190808, 0x2b082b08), uvec2(0x2b2b082b, 0x2b082b08), uvec2(0x08080819, 0x2b082b19), uvec2(0x08081908, 0x2b082b19), + uvec2(0x19080808, 0x2b082b19), uvec2(0x192b1919, 0x2b082b19), uvec2(0x082b082b, 0x2b082b2b), uvec2(0x19192b08, 0x2b082b2b), + uvec2(0x19192b2b, 0x2b082b2b), uvec2(0x2b08082b, 0x2b082b2b), uvec2(0x2b2b082b, 0x2b082b2b), uvec2(0x08080819, 0x2b190808), + uvec2(0x08081908, 0x2b190808), uvec2(0x08082b19, 0x2b190808), uvec2(0x08190808, 0x2b190808), uvec2(0x0819082b, 0x2b190808), + uvec2(0x08191919, 0x2b190808), uvec2(0x08192b08, 0x2b190808), uvec2(0x082b1908, 0x2b190808), uvec2(0x19080808, 0x2b190808), + uvec2(0x1908082b, 0x2b190808), uvec2(0x19081919, 0x2b190808), uvec2(0x19082b08, 0x2b190808), uvec2(0x19190819, 0x2b190808), + uvec2(0x19191908, 0x2b190808), uvec2(0x192b0808, 0x2b190808), uvec2(0x2b080819, 0x2b190808), uvec2(0x2b081908, 0x2b190808), + uvec2(0x2b190808, 0x2b190808), uvec2(0x08080808, 0x2b190819), uvec2(0x08081919, 0x2b190819), uvec2(0x08190819, 0x2b190819), + uvec2(0x08191908, 0x2b190819), uvec2(0x19080819, 0x2b190819), uvec2(0x19081908, 0x2b190819), uvec2(0x19190808, 0x2b190819), + uvec2(0x19192b2b, 0x2b190819), uvec2(0x08080819, 0x2b19082b), uvec2(0x08081908, 0x2b19082b), uvec2(0x08190808, 0x2b19082b), + uvec2(0x19080808, 0x2b19082b), uvec2(0x2b2b192b, 0x2b19082b), uvec2(0x08080808, 0x2b191908), uvec2(0x0808082b, 0x2b191908), + uvec2(0x08081919, 0x2b191908), uvec2(0x08082b08, 0x2b191908), uvec2(0x08190819, 0x2b191908), uvec2(0x08191908, 0x2b191908), + uvec2(0x082b0808, 0x2b191908), uvec2(0x19080819, 0x2b191908), uvec2(0x19081908, 0x2b191908), uvec2(0x19190808, 0x2b191908), + uvec2(0x2b080808, 0x2b191908), uvec2(0x2b19192b, 0x2b191908), uvec2(0x08080819, 0x2b191919), uvec2(0x08081908, 0x2b191919), + uvec2(0x08190808, 0x2b191919), uvec2(0x19080808, 0x2b191919), uvec2(0x2b192b08, 0x2b191919), uvec2(0x2b2b0819, 0x2b191919), + uvec2(0x08080808, 0x2b19192b), uvec2(0x1908192b, 0x2b19192b), uvec2(0x192b1908, 0x2b19192b), uvec2(0x08080819, 0x2b192b08), + uvec2(0x08081908, 0x2b192b08), uvec2(0x08190808, 0x2b192b08), uvec2(0x082b192b, 0x2b192b08), uvec2(0x19080808, 0x2b192b08), + uvec2(0x2b2b2b19, 0x2b192b08), uvec2(0x08080808, 0x2b192b19), uvec2(0x19082b19, 0x2b192b19), uvec2(0x1919082b, 0x2b192b19), + uvec2(0x2b190808, 0x2b192b2b), uvec2(0x08080808, 0x2b2b0808), uvec2(0x08081919, 0x2b2b0808), uvec2(0x08082b2b, 0x2b2b0808), + uvec2(0x08191908, 0x2b2b0808), uvec2(0x082b082b, 0x2b2b0808), uvec2(0x082b2b2b, 0x2b2b0808), uvec2(0x19080819, 0x2b2b0808), + uvec2(0x19081908, 0x2b2b0808), uvec2(0x19190808, 0x2b2b0808), uvec2(0x2b2b082b, 0x2b2b0808), uvec2(0x2b2b2b2b, 0x2b2b0808), + uvec2(0x19080808, 0x2b2b0819), uvec2(0x192b1919, 0x2b2b0819), uvec2(0x0808082b, 0x2b2b082b), uvec2(0x08082b2b, 0x2b2b082b), + uvec2(0x082b082b, 0x2b2b082b), uvec2(0x082b2b08, 0x2b2b082b), uvec2(0x082b2b2b, 0x2b2b082b), uvec2(0x2b08082b, 0x2b2b082b), + uvec2(0x2b082b08, 0x2b2b082b), uvec2(0x2b082b2b, 0x2b2b082b), uvec2(0x2b2b2b08, 0x2b2b082b), uvec2(0x08080819, 0x2b2b1908), + uvec2(0x08081908, 0x2b2b1908), uvec2(0x08190808, 0x2b2b1908), uvec2(0x19080808, 0x2b2b1908), uvec2(0x2b082b19, 0x2b2b1908), + uvec2(0x2b2b1908, 0x2b2b1908), uvec2(0x08080808, 0x2b2b1919), uvec2(0x08192b19, 0x2b2b1919), uvec2(0x19190819, 0x2b2b192b), + uvec2(0x08082b2b, 0x2b2b2b08), uvec2(0x082b2b08, 0x2b2b2b08), uvec2(0x2b2b082b, 0x2b2b2b08), uvec2(0x19191908, 0x2b2b2b19), + uvec2(0x2b08192b, 0x2b2b2b19), uvec2(0x08082b08, 0x2b2b2b2b), uvec2(0x08082b2b, 0x2b2b2b2b), uvec2(0x082b0808, 0x2b2b2b2b), + uvec2(0x082b082b, 0x2b2b2b2b), uvec2(0x082b2b08, 0x2b2b2b2b), uvec2(0x2b082b08, 0x2b2b2b2b), uvec2(0x2b2b2b2b, 0x2b2b2b2b) +}; + +shared uvec2 iq2s_grid[1024]; + +void init_iq_shmem(uvec3 wgsize) +{ + // copy the table into shared memory and sync + for (uint i = gl_LocalInvocationIndex.x; i < iq2s_grid.length(); i += wgsize.x) { + iq2s_grid[i] = iq2s_grid_const[i]; + } + barrier(); +} + +#define QUANT_K QUANT_K_IQ2_S +#define QUANT_R QUANT_R_IQ2_S +#define A_TYPE block_iq2_s +#endif + +#define QUANT_K_IQ3_XXS 256 +#define QUANT_R_IQ3_XXS 1 + +struct block_iq3_xxs +{ + float16_t d; + uint8_t qs[QUANT_K_IQ3_XXS/4 + QUANT_K_IQ3_XXS/8]; +}; + +struct block_iq3_xxs_packed16 +{ + float16_t d; + uint16_t qs[QUANT_K_IQ3_XXS/8 + QUANT_K_IQ3_XXS/16]; +}; + +#if defined(DATA_A_IQ3_XXS) + +const uint32_t iq3xxs_grid_const[256] = { + 0x04040404, 0x04040414, 0x04040424, 0x04040c0c, 0x04040c1c, 0x04040c3e, 0x04041404, 0x04041414, + 0x04041c0c, 0x04042414, 0x04043e1c, 0x04043e2c, 0x040c040c, 0x040c041c, 0x040c0c04, 0x040c0c14, + 0x040c140c, 0x040c142c, 0x040c1c04, 0x040c1c14, 0x040c240c, 0x040c2c24, 0x040c3e04, 0x04140404, + 0x04140414, 0x04140424, 0x04140c0c, 0x04141404, 0x04141414, 0x04141c0c, 0x04141c1c, 0x04141c3e, + 0x04142c0c, 0x04142c3e, 0x04143e2c, 0x041c040c, 0x041c043e, 0x041c0c04, 0x041c0c14, 0x041c142c, + 0x041c3e04, 0x04240c1c, 0x04241c3e, 0x04242424, 0x04242c3e, 0x04243e1c, 0x04243e2c, 0x042c040c, + 0x042c043e, 0x042c1c14, 0x042c2c14, 0x04341c2c, 0x04343424, 0x043e0c04, 0x043e0c24, 0x043e0c34, + 0x043e241c, 0x043e340c, 0x0c04040c, 0x0c04041c, 0x0c040c04, 0x0c040c14, 0x0c04140c, 0x0c04141c, + 0x0c041c04, 0x0c041c14, 0x0c041c24, 0x0c04243e, 0x0c042c04, 0x0c0c0404, 0x0c0c0414, 0x0c0c0c0c, + 0x0c0c1404, 0x0c0c1414, 0x0c14040c, 0x0c14041c, 0x0c140c04, 0x0c140c14, 0x0c14140c, 0x0c141c04, + 0x0c143e14, 0x0c1c0404, 0x0c1c0414, 0x0c1c1404, 0x0c1c1c0c, 0x0c1c2434, 0x0c1c3434, 0x0c24040c, + 0x0c24042c, 0x0c242c04, 0x0c2c1404, 0x0c2c1424, 0x0c2c2434, 0x0c2c3e0c, 0x0c34042c, 0x0c3e1414, + 0x0c3e2404, 0x14040404, 0x14040414, 0x14040c0c, 0x14040c1c, 0x14041404, 0x14041414, 0x14041434, + 0x14041c0c, 0x14042414, 0x140c040c, 0x140c041c, 0x140c042c, 0x140c0c04, 0x140c0c14, 0x140c140c, + 0x140c1c04, 0x140c341c, 0x140c343e, 0x140c3e04, 0x14140404, 0x14140414, 0x14140c0c, 0x14140c3e, + 0x14141404, 0x14141414, 0x14141c3e, 0x14142404, 0x14142c2c, 0x141c040c, 0x141c0c04, 0x141c0c24, + 0x141c3e04, 0x141c3e24, 0x14241c2c, 0x14242c1c, 0x142c041c, 0x142c143e, 0x142c240c, 0x142c3e24, + 0x143e040c, 0x143e041c, 0x143e0c34, 0x143e242c, 0x1c04040c, 0x1c040c04, 0x1c040c14, 0x1c04140c, + 0x1c04141c, 0x1c042c04, 0x1c04342c, 0x1c043e14, 0x1c0c0404, 0x1c0c0414, 0x1c0c1404, 0x1c0c1c0c, + 0x1c0c2424, 0x1c0c2434, 0x1c14040c, 0x1c14041c, 0x1c140c04, 0x1c14142c, 0x1c142c14, 0x1c143e14, + 0x1c1c0c0c, 0x1c1c1c1c, 0x1c241c04, 0x1c24243e, 0x1c243e14, 0x1c2c0404, 0x1c2c0434, 0x1c2c1414, + 0x1c2c2c2c, 0x1c340c24, 0x1c341c34, 0x1c34341c, 0x1c3e1c1c, 0x1c3e3404, 0x24040424, 0x24040c3e, + 0x24041c2c, 0x24041c3e, 0x24042c1c, 0x24042c3e, 0x240c3e24, 0x24141404, 0x24141c3e, 0x24142404, + 0x24143404, 0x24143434, 0x241c043e, 0x241c242c, 0x24240424, 0x24242c0c, 0x24243424, 0x242c142c, + 0x242c241c, 0x242c3e04, 0x243e042c, 0x243e0c04, 0x243e0c14, 0x243e1c04, 0x2c040c14, 0x2c04240c, + 0x2c043e04, 0x2c0c0404, 0x2c0c0434, 0x2c0c1434, 0x2c0c2c2c, 0x2c140c24, 0x2c141c14, 0x2c143e14, + 0x2c1c0414, 0x2c1c2c1c, 0x2c240c04, 0x2c24141c, 0x2c24143e, 0x2c243e14, 0x2c2c0414, 0x2c2c1c0c, + 0x2c342c04, 0x2c3e1424, 0x2c3e2414, 0x34041424, 0x34042424, 0x34042434, 0x34043424, 0x340c140c, + 0x340c340c, 0x34140c3e, 0x34143424, 0x341c1c04, 0x341c1c34, 0x34242424, 0x342c042c, 0x342c2c14, + 0x34341c1c, 0x343e041c, 0x343e140c, 0x3e04041c, 0x3e04042c, 0x3e04043e, 0x3e040c04, 0x3e041c14, + 0x3e042c14, 0x3e0c1434, 0x3e0c2404, 0x3e140c14, 0x3e14242c, 0x3e142c14, 0x3e1c0404, 0x3e1c0c2c, + 0x3e1c1c1c, 0x3e1c3404, 0x3e24140c, 0x3e24240c, 0x3e2c0404, 0x3e2c0414, 0x3e2c1424, 0x3e341c04, +}; + +shared uint32_t iq3xxs_grid[256]; + +void init_iq_shmem(uvec3 wgsize) +{ + // copy the table into shared memory and sync + for (uint i = gl_LocalInvocationIndex.x; i < iq3xxs_grid.length(); i += wgsize.x) { + iq3xxs_grid[i] = iq3xxs_grid_const[i]; + } + barrier(); +} + +#define QUANT_K QUANT_K_IQ3_XXS +#define QUANT_R QUANT_R_IQ3_XXS +#define A_TYPE block_iq3_xxs +#define A_TYPE_PACKED16 block_iq3_xxs_packed16 +#endif + +#define QUANT_K_IQ3_S 256 +#define QUANT_R_IQ3_S 1 + +struct block_iq3_s +{ + float16_t d; + uint8_t qs[QUANT_K_IQ3_S/4]; + uint8_t qh[QUANT_K_IQ3_S/32]; + uint8_t signs[QUANT_K_IQ3_S/8]; + uint8_t scales[QUANT_K_IQ3_S/64]; +}; + +struct block_iq3_s_packed16 +{ + float16_t d; + uint16_t qs[QUANT_K_IQ3_S/4/2]; + uint16_t qh[QUANT_K_IQ3_S/32/2]; + uint16_t signs[QUANT_K_IQ3_S/8/2]; + uint16_t scales[QUANT_K_IQ3_S/64/2]; +}; + +#if defined(DATA_A_IQ3_S) + +const uint32_t iq3s_grid_const[512] = { + 0x01010101, 0x01010103, 0x01010105, 0x0101010b, 0x0101010f, 0x01010301, 0x01010303, 0x01010305, + 0x01010309, 0x0101030d, 0x01010501, 0x01010503, 0x0101050b, 0x01010707, 0x01010901, 0x01010905, + 0x0101090b, 0x0101090f, 0x01010b03, 0x01010b07, 0x01010d01, 0x01010d05, 0x01010f03, 0x01010f09, + 0x01010f0f, 0x01030101, 0x01030103, 0x01030105, 0x01030109, 0x01030301, 0x01030303, 0x0103030b, + 0x01030501, 0x01030507, 0x0103050f, 0x01030703, 0x0103070b, 0x01030909, 0x01030d03, 0x01030d0b, + 0x01030f05, 0x01050101, 0x01050103, 0x0105010b, 0x0105010f, 0x01050301, 0x01050307, 0x0105030d, + 0x01050503, 0x0105050b, 0x01050701, 0x01050709, 0x01050905, 0x0105090b, 0x0105090f, 0x01050b03, + 0x01050b07, 0x01050f01, 0x01050f07, 0x01070107, 0x01070303, 0x0107030b, 0x01070501, 0x01070505, + 0x01070703, 0x01070707, 0x0107070d, 0x01070909, 0x01070b01, 0x01070b05, 0x01070d0f, 0x01070f03, + 0x01070f0b, 0x01090101, 0x01090307, 0x0109030f, 0x01090503, 0x01090509, 0x01090705, 0x01090901, + 0x01090907, 0x01090b03, 0x01090f01, 0x010b0105, 0x010b0109, 0x010b0501, 0x010b0505, 0x010b050d, + 0x010b0707, 0x010b0903, 0x010b090b, 0x010b090f, 0x010b0d0d, 0x010b0f07, 0x010d010d, 0x010d0303, + 0x010d0307, 0x010d0703, 0x010d0b05, 0x010d0f03, 0x010f0101, 0x010f0105, 0x010f0109, 0x010f0501, + 0x010f0505, 0x010f050d, 0x010f0707, 0x010f0b01, 0x010f0b09, 0x03010101, 0x03010103, 0x03010105, + 0x03010109, 0x03010301, 0x03010303, 0x03010307, 0x0301030b, 0x0301030f, 0x03010501, 0x03010505, + 0x03010703, 0x03010709, 0x0301070d, 0x03010b09, 0x03010b0d, 0x03010d03, 0x03010f05, 0x03030101, + 0x03030103, 0x03030107, 0x0303010d, 0x03030301, 0x03030309, 0x03030503, 0x03030701, 0x03030707, + 0x03030903, 0x03030b01, 0x03030b05, 0x03030f01, 0x03030f0d, 0x03050101, 0x03050305, 0x0305030b, + 0x0305030f, 0x03050501, 0x03050509, 0x03050705, 0x03050901, 0x03050907, 0x03050b0b, 0x03050d01, + 0x03050f05, 0x03070103, 0x03070109, 0x0307010f, 0x03070301, 0x03070307, 0x03070503, 0x0307050f, + 0x03070701, 0x03070709, 0x03070903, 0x03070d05, 0x03070f01, 0x03090107, 0x0309010b, 0x03090305, + 0x03090309, 0x03090703, 0x03090707, 0x03090905, 0x0309090d, 0x03090b01, 0x03090b09, 0x030b0103, + 0x030b0301, 0x030b0307, 0x030b0503, 0x030b0701, 0x030b0705, 0x030b0b03, 0x030d0501, 0x030d0509, + 0x030d050f, 0x030d0909, 0x030d090d, 0x030f0103, 0x030f0107, 0x030f0301, 0x030f0305, 0x030f0503, + 0x030f070b, 0x030f0903, 0x030f0d05, 0x030f0f01, 0x05010101, 0x05010103, 0x05010107, 0x0501010b, + 0x0501010f, 0x05010301, 0x05010305, 0x05010309, 0x0501030d, 0x05010503, 0x05010507, 0x0501050f, + 0x05010701, 0x05010705, 0x05010903, 0x05010907, 0x0501090b, 0x05010b01, 0x05010b05, 0x05010d0f, + 0x05010f01, 0x05010f07, 0x05010f0b, 0x05030101, 0x05030105, 0x05030301, 0x05030307, 0x0503030f, + 0x05030505, 0x0503050b, 0x05030703, 0x05030709, 0x05030905, 0x05030b03, 0x05050103, 0x05050109, + 0x0505010f, 0x05050503, 0x05050507, 0x05050701, 0x0505070f, 0x05050903, 0x05050b07, 0x05050b0f, + 0x05050f03, 0x05050f09, 0x05070101, 0x05070105, 0x0507010b, 0x05070303, 0x05070505, 0x05070509, + 0x05070703, 0x05070707, 0x05070905, 0x05070b01, 0x05070d0d, 0x05090103, 0x0509010f, 0x05090501, + 0x05090507, 0x05090705, 0x0509070b, 0x05090903, 0x05090f05, 0x05090f0b, 0x050b0109, 0x050b0303, + 0x050b0505, 0x050b070f, 0x050b0901, 0x050b0b07, 0x050b0f01, 0x050d0101, 0x050d0105, 0x050d010f, + 0x050d0503, 0x050d0b0b, 0x050d0d03, 0x050f010b, 0x050f0303, 0x050f050d, 0x050f0701, 0x050f0907, + 0x050f0b01, 0x07010105, 0x07010303, 0x07010307, 0x0701030b, 0x0701030f, 0x07010505, 0x07010703, + 0x07010707, 0x0701070b, 0x07010905, 0x07010909, 0x0701090f, 0x07010b03, 0x07010d07, 0x07010f03, + 0x07030103, 0x07030107, 0x0703010b, 0x07030309, 0x07030503, 0x07030507, 0x07030901, 0x07030d01, + 0x07030f05, 0x07030f0d, 0x07050101, 0x07050305, 0x07050501, 0x07050705, 0x07050709, 0x07050b01, + 0x07070103, 0x07070301, 0x07070309, 0x07070503, 0x07070507, 0x0707050f, 0x07070701, 0x07070903, + 0x07070907, 0x0707090f, 0x07070b0b, 0x07070f07, 0x07090107, 0x07090303, 0x0709030d, 0x07090505, + 0x07090703, 0x07090b05, 0x07090d01, 0x07090d09, 0x070b0103, 0x070b0301, 0x070b0305, 0x070b050b, + 0x070b0705, 0x070b0909, 0x070b0b0d, 0x070b0f07, 0x070d030d, 0x070d0903, 0x070f0103, 0x070f0107, + 0x070f0501, 0x070f0505, 0x070f070b, 0x09010101, 0x09010109, 0x09010305, 0x09010501, 0x09010509, + 0x0901050f, 0x09010705, 0x09010903, 0x09010b01, 0x09010f01, 0x09030105, 0x0903010f, 0x09030303, + 0x09030307, 0x09030505, 0x09030701, 0x0903070b, 0x09030907, 0x09030b03, 0x09030b0b, 0x09050103, + 0x09050107, 0x09050301, 0x0905030b, 0x09050503, 0x09050707, 0x09050901, 0x09050b0f, 0x09050d05, + 0x09050f01, 0x09070109, 0x09070303, 0x09070307, 0x09070501, 0x09070505, 0x09070703, 0x0907070b, + 0x09090101, 0x09090105, 0x09090509, 0x0909070f, 0x09090901, 0x09090f03, 0x090b010b, 0x090b010f, + 0x090b0503, 0x090b0d05, 0x090d0307, 0x090d0709, 0x090d0d01, 0x090f0301, 0x090f030b, 0x090f0701, + 0x090f0907, 0x090f0b03, 0x0b010105, 0x0b010301, 0x0b010309, 0x0b010505, 0x0b010901, 0x0b010909, + 0x0b01090f, 0x0b010b05, 0x0b010d0d, 0x0b010f09, 0x0b030103, 0x0b030107, 0x0b03010b, 0x0b030305, + 0x0b030503, 0x0b030705, 0x0b030f05, 0x0b050101, 0x0b050303, 0x0b050507, 0x0b050701, 0x0b05070d, + 0x0b050b07, 0x0b070105, 0x0b07010f, 0x0b070301, 0x0b07050f, 0x0b070909, 0x0b070b03, 0x0b070d0b, + 0x0b070f07, 0x0b090103, 0x0b090109, 0x0b090501, 0x0b090705, 0x0b09090d, 0x0b0b0305, 0x0b0b050d, + 0x0b0b0b03, 0x0b0b0b07, 0x0b0d0905, 0x0b0f0105, 0x0b0f0109, 0x0b0f0505, 0x0d010303, 0x0d010307, + 0x0d01030b, 0x0d010703, 0x0d010707, 0x0d010d01, 0x0d030101, 0x0d030501, 0x0d03050f, 0x0d030d09, + 0x0d050305, 0x0d050709, 0x0d050905, 0x0d050b0b, 0x0d050d05, 0x0d050f01, 0x0d070101, 0x0d070309, + 0x0d070503, 0x0d070901, 0x0d09050b, 0x0d090907, 0x0d090d05, 0x0d0b0101, 0x0d0b0107, 0x0d0b0709, + 0x0d0b0d01, 0x0d0d010b, 0x0d0d0901, 0x0d0f0303, 0x0d0f0307, 0x0f010101, 0x0f010109, 0x0f01010f, + 0x0f010501, 0x0f010505, 0x0f01070d, 0x0f010901, 0x0f010b09, 0x0f010d05, 0x0f030105, 0x0f030303, + 0x0f030509, 0x0f030907, 0x0f03090b, 0x0f050103, 0x0f050109, 0x0f050301, 0x0f05030d, 0x0f050503, + 0x0f050701, 0x0f050b03, 0x0f070105, 0x0f070705, 0x0f07070b, 0x0f070b07, 0x0f090103, 0x0f09010b, + 0x0f090307, 0x0f090501, 0x0f090b01, 0x0f0b0505, 0x0f0b0905, 0x0f0d0105, 0x0f0d0703, 0x0f0f0101, +}; + +shared uint32_t iq3s_grid[512]; + +void init_iq_shmem(uvec3 wgsize) +{ + // copy the table into shared memory and sync + for (uint i = gl_LocalInvocationIndex.x; i < iq3s_grid.length(); i += wgsize.x) { + iq3s_grid[i] = iq3s_grid_const[i]; + } + barrier(); +} + +#define QUANT_K QUANT_K_IQ3_S +#define QUANT_R QUANT_R_IQ3_S +#define A_TYPE block_iq3_s +#define A_TYPE_PACKED16 block_iq3_s_packed16 +#endif + #define QUANT_K_IQ4_NL 32 #define QUANT_R_IQ4_NL 2 @@ -318,11 +1050,11 @@ const int8_t kvalues_iq4nl_const[16] = { shared FLOAT_TYPE kvalues_iq4nl[16]; -void init_iq4nl_shmem() +void init_iq_shmem(uvec3 wgsize) { // copy the table into shared memory and sync - if (gl_LocalInvocationIndex.x < 16) { - kvalues_iq4nl[gl_LocalInvocationIndex.x] = FLOAT_TYPE(kvalues_iq4nl_const[gl_LocalInvocationIndex.x]); + for (uint i = gl_LocalInvocationIndex.x; i < kvalues_iq4nl.length(); i += wgsize.x) { + kvalues_iq4nl[i] = FLOAT_TYPE(kvalues_iq4nl_const[i]); } barrier(); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index e9c6cb9d4..93ddbfadc 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -55,6 +55,11 @@ const std::vector type_names = { "q4_k", "q5_k", "q6_k", + "iq2_xxs", + "iq2_xs", + "iq2_s", + "iq3_xxs", + "iq3_s", "iq4_nl" }; From eb7cf15a808d4d7a71eef89cc6a9b96fe82989dc Mon Sep 17 00:00:00 2001 From: Nigel Bosch Date: Wed, 29 Jan 2025 12:45:44 -0600 Subject: [PATCH 070/162] server : add /apply-template endpoint for additional use cases of Minja functionality (#11489) * add /apply-template endpoint to server * remove unnecessary line * add /apply-template documentation * return only "prompt" field in /apply-template * use suggested idea instead of my overly verbose way --- examples/server/README.md | 8 ++++++++ examples/server/server.cpp | 9 +++++++++ .../server/tests/unit/test_chat_completion.py | 15 +++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/examples/server/README.md b/examples/server/README.md index e788d8b59..cedae0b6d 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -576,6 +576,14 @@ With input 'á' (utf8 hex: C3 A1) on tinyllama/stories260k `tokens`: Set the tokens to detokenize. +### POST `/apply-template`: Apply chat template to a conversation + +Uses the server's prompt template formatting functionality to convert chat messages to a single string expected by a chat model as input, but does not perform inference. Instead, the prompt string is returned in the `prompt` field of the JSON response. The prompt can then be modified as desired (for example, to insert "Sure!" at the beginning of the model's response) before sending to `/completion` to generate the chat response. + +*Options:* + +`messages`: (Required) Chat turns in the same format as `/v1/chat/completions`. + ### POST `/embedding`: Generate embedding of a given text > [!IMPORTANT] diff --git a/examples/server/server.cpp b/examples/server/server.cpp index c5efbdb09..6e28d283a 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -4124,6 +4124,14 @@ int main(int argc, char ** argv) { res_ok(res, root); }; + const auto handle_apply_template = [&ctx_server, ¶ms, &res_ok](const httplib::Request & req, httplib::Response & res) { + auto body = json::parse(req.body); + const auto & chat_template = body.contains("tools") && ctx_server.chat_templates.template_tool_use ? *ctx_server.chat_templates.template_tool_use : *ctx_server.chat_templates.template_default; + json data = oaicompat_completion_params_parse(body, chat_template, params.use_jinja); + + res_ok(res, {{ "prompt", data.at("prompt") }}); + }; + const auto handle_embeddings = [&handle_embeddings_impl](const httplib::Request & req, httplib::Response & res) { handle_embeddings_impl(req, res, OAICOMPAT_TYPE_NONE); }; @@ -4300,6 +4308,7 @@ int main(int argc, char ** argv) { svr->Post("/v1/reranking", handle_rerank); svr->Post("/tokenize", handle_tokenize); svr->Post("/detokenize", handle_detokenize); + svr->Post("/apply-template", handle_apply_template); // LoRA adapters hotswap svr->Get ("/lora-adapters", handle_lora_adapters_list); svr->Post("/lora-adapters", handle_lora_adapters_apply); diff --git a/examples/server/tests/unit/test_chat_completion.py b/examples/server/tests/unit/test_chat_completion.py index 2e15348dc..add3f810f 100644 --- a/examples/server/tests/unit/test_chat_completion.py +++ b/examples/server/tests/unit/test_chat_completion.py @@ -121,6 +121,21 @@ def test_chat_template(): assert res.body["__verbose"]["prompt"] == " <|start_header_id|>system<|end_header_id|>\n\nBook<|eot_id|><|start_header_id|>user<|end_header_id|>\n\nWhat is the best book<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n" +def test_apply_chat_template(): + global server + server.chat_template = "command-r" + server.start() + res = server.make_request("POST", "/apply-template", data={ + "messages": [ + {"role": "system", "content": "You are a test."}, + {"role": "user", "content":"Hi there"}, + ] + }) + assert res.status_code == 200 + assert "prompt" in res.body + assert res.body["prompt"] == "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>You are a test.<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hi there<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>" + + @pytest.mark.parametrize("response_format,n_predicted,re_content", [ ({"type": "json_object", "schema": {"const": "42"}}, 6, "\"42\""), ({"type": "json_object", "schema": {"items": [{"type": "integer"}]}}, 10, "[ -3000 ]"), From e0449763a4f335cca374254a72892141f41eaa59 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 30 Jan 2025 05:48:14 +0100 Subject: [PATCH 071/162] server : update json snippets in README.md [no ci] (#11492) This commit updates some of JSON snippets in README.md file and removes the `json` language tag from the code blocks. The motivation for this changes is that if there is invalid json in a code snippet these are highlighted in red which can make it somewhat difficult to read and can be a little distracting. --- examples/server/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/server/README.md b/examples/server/README.md index cedae0b6d..d1c9be589 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -460,7 +460,7 @@ These words will not be included in the completion, so make sure to add them to - Note: In streaming mode (`stream`), only `content`, `tokens` and `stop` will be returned until end of completion. Responses are sent using the [Server-sent events](https://html.spec.whatwg.org/multipage/server-sent-events.html) standard. Note: the browser's `EventSource` interface cannot be used due to its lack of `POST` request support. - `completion_probabilities`: An array of token probabilities for each completion. The array's length is `n_predict`. Each item in the array has a nested array `top_logprobs`. It contains at **maximum** `n_probs` elements: - ```json + ``` { "content": "", "tokens": [ generated token ids if requested ], @@ -561,7 +561,7 @@ If `with_pieces` is `true`: ``` With input 'á' (utf8 hex: C3 A1) on tinyllama/stories260k -```json +``` { "tokens": [ {"id": 198, "piece": [195]}, // hex C3 @@ -776,7 +776,7 @@ Same as the `/v1/embeddings` endpoint. **Response format** -```json +``` [ { "index": 0, From 7919256c57f05c09b0b50ec9abb37ff62dab7251 Mon Sep 17 00:00:00 2001 From: Guspan Tanadi <36249910+guspan-tanadi@users.noreply.github.com> Date: Thu, 30 Jan 2025 12:58:02 +0700 Subject: [PATCH 072/162] readme : reference examples relative links (#11505) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff8536773..382c67041 100644 --- a/README.md +++ b/README.md @@ -422,7 +422,7 @@ To learn more about model quantization, [read this documentation](examples/quant
-[^1]: [examples/perplexity/README.md](examples/perplexity/README.md) +[^1]: [examples/perplexity/README.md](./examples/perplexity/README.md) [^2]: [https://huggingface.co/docs/transformers/perplexity](https://huggingface.co/docs/transformers/perplexity) ## [`llama-bench`](examples/llama-bench) From 496e5bf46bab757d05e18227cb4e17055ae42f42 Mon Sep 17 00:00:00 2001 From: Isaac McFadyen Date: Thu, 30 Jan 2025 04:11:53 -0500 Subject: [PATCH 073/162] server : (docs) added response format for /apply-template [no ci] (#11503) --- examples/server/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/server/README.md b/examples/server/README.md index d1c9be589..44da503df 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -584,6 +584,10 @@ Uses the server's prompt template formatting functionality to convert chat messa `messages`: (Required) Chat turns in the same format as `/v1/chat/completions`. +**Response format** + +Returns a JSON object with a field `prompt` containing a string of the input messages formatted according to the model's chat template format. + ### POST `/embedding`: Generate embedding of a given text > [!IMPORTANT] From 4314e56c4f8c5091f45732f39bd94c0c6c323798 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 30 Jan 2025 11:05:00 +0100 Subject: [PATCH 074/162] server : use lambda instead of std::bind (#11507) This commit replaces the two usages of `std::bind` in favor of lambdas for the callback functions for `callback_new_task` and `callback_update_slots`. The motivation for this changes is consistency with the rest of the code in server.cpp (lambdas are used for all other callbacks/handlers). Also lambdas are more readable (perhaps this is subjective) but also they are recommended over `std::bind` in modern C++. Ref: https://github.com/LithoCoders/dailycpp/blob/master/EffectiveModernC%2B%2B/chapter6/Item34_Prefer_lambdas_to_std::bind.md --- examples/server/server.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 6e28d283a..b9aa5c81c 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -4387,11 +4387,13 @@ int main(int argc, char ** argv) { ctx_server.chat_templates.template_default->source().c_str(), common_chat_format_example(*ctx_server.chat_templates.template_default, ctx_server.params_base.use_jinja).c_str()); - ctx_server.queue_tasks.on_new_task(std::bind( - &server_context::process_single_task, &ctx_server, std::placeholders::_1)); + ctx_server.queue_tasks.on_new_task([&ctx_server](const server_task & task) { + ctx_server.process_single_task(task); + }); - ctx_server.queue_tasks.on_update_slots(std::bind( - &server_context::update_slots, &ctx_server)); + ctx_server.queue_tasks.on_update_slots([&ctx_server]() { + ctx_server.update_slots(); + }); shutdown_handler = [&](int) { ctx_server.queue_tasks.terminate(); From ffd0821c57edc7e5d04338ab0c6b1461198df15f Mon Sep 17 00:00:00 2001 From: mgroeber9110 <45620825+mgroeber9110@users.noreply.github.com> Date: Thu, 30 Jan 2025 11:10:59 +0100 Subject: [PATCH 075/162] vocab : correctly identify LF token for GPT-2 style BPE tokenizer (#11496) --- src/llama-vocab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-vocab.cpp b/src/llama-vocab.cpp index 561f8bdb8..ad9ffe66a 100644 --- a/src/llama-vocab.cpp +++ b/src/llama-vocab.cpp @@ -1692,7 +1692,7 @@ void llama_vocab::impl::load(llama_model_loader & ml, const LLM_KV & kv) { GGML_ASSERT(!ids.empty() && "model vocab missing newline token"); linefeed_id = ids[0]; } else { - const std::vector ids = tokenize("\xC4\x8A", false); // U+010A + const std::vector ids = tokenize("\n", false); //GGML_ASSERT(!ids.empty() && "model vocab missing newline token"); if (ids.empty()) { From 3d804dec7661fbb7de9b7f93267e2fc3ca0193c1 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 30 Jan 2025 10:30:27 +0000 Subject: [PATCH 076/162] sync: minja (#11499) --- common/chat-template.hpp | 252 +++++++++++++++++++++++++++------------ common/minja.hpp | 119 +++++++++--------- 2 files changed, 238 insertions(+), 133 deletions(-) diff --git a/common/chat-template.hpp b/common/chat-template.hpp index 42ee0b615..75ba5d938 100644 --- a/common/chat-template.hpp +++ b/common/chat-template.hpp @@ -17,17 +17,26 @@ using json = nlohmann::ordered_json; namespace minja { +struct chat_template_caps { + bool supports_tools = false; + bool supports_tool_calls = false; + bool supports_tool_responses = false; + bool supports_system_role = false; + bool supports_parallel_tool_calls = false; + bool supports_tool_call_id = false; + // meta-llama/Llama-3.1-8B-Instruct expects arguments to be an object. + // Most other templates (and OpenAI's API) expect the arguments object to be stringified. + bool requires_object_arguments = false; + // CohereForAI/c4ai-command-r-plus simple variant + bool requires_non_null_content = false; + // MiniMaxAI/MiniMax-Text-01 special + bool requires_typed_content = false; +}; + class chat_template { - public: private: - bool supports_tools_ = true; - // Meta-Llama-3.1-8B-Instruct's template expects arguments to be an object. - // Most other templates (and OpenAI's API) expect the arguments object to be stringified. - bool requires_object_arguments_ = false; - bool requires_typed_content_ = false; - bool supports_system_role_ = true; - bool supports_parallel_tool_calls_ = false; + chat_template_caps caps_; std::string source_; std::string bos_token_; std::string eos_token_; @@ -41,15 +50,16 @@ class chat_template { { try { auto prompt = apply(messages, tools, add_generation_prompt, extra_context, /* adjust_inputs= */ false); - // fprintf(stderr, "Prompt: %s\n", prompt.c_str()); + // fprintf(stderr, "try_raw_render: %s\n", prompt.c_str()); return prompt; } catch (const std::exception & e) { - // fprintf(stderr, "Error: %s\n", e.what()); + // fprintf(stderr, "try_raw_render error: %s\n", e.what()); return ""; } } public: + chat_template(const std::string & source, const std::string & bos_token, const std::string & eos_token) : source_(source), bos_token_(bos_token), eos_token_(eos_token) { @@ -58,69 +68,120 @@ class chat_template { /* .lstrip_blocks = */ true, /* .keep_trailing_newline = */ false, }); - supports_tools_ = source.find("tools") != std::string::npos; - auto renders_string_arguments = - try_raw_render({ - { - {"role", "user"}, - {"content", "Hey"} - }, - { - {"role", "assistant"}, - {"tool_calls", json::array({ - { - {"id", "call_1___"}, - {"type", "function"}, - {"function", { - {"arguments", "{\"code\": \"print('Hello, World!')\"}"}, - {"name", "ipython"}, + auto contains = [](const std::string & haystack, const std::string & needle) { + return haystack.find(needle) != std::string::npos; + }; + + const std::string user_needle = ""; + const std::string sys_needle = ""; + const json dummy_str_user_msg = {{"role", "user"}, {"content", user_needle}}; + const json dummy_typed_user_msg = {{"role", "user"}, {"content", json::array({{{"type", "text"}, {"text", user_needle}}})}}; + + caps_.requires_typed_content = + !contains(try_raw_render(json::array({dummy_str_user_msg}), {}, false), user_needle) + && contains(try_raw_render(json::array({dummy_typed_user_msg}), {}, false), user_needle); + + const auto dummy_user_msg = caps_.requires_typed_content + ? dummy_typed_user_msg + : dummy_str_user_msg; + const json needle_system_msg = { + {"role", "system"}, + {"content", caps_.requires_typed_content ? json::array({{{"type", "text"}, {"text", sys_needle}}}) : json(sys_needle)}, + }; + + caps_.supports_system_role = contains(try_raw_render({needle_system_msg, dummy_user_msg,}, {}, false), sys_needle); + + auto out = try_raw_render(json::array({ + dummy_user_msg + }), json::array({ + { + {"name", "some_tool"}, + {"type", "function"}, + {"function", { + {"name", "some_tool"}, + {"description", "Some tool."}, + {"parameters", { + {"type", "object"}, + {"properties", { + {"arg", { + {"type", "string"}, + {"description", "Some argument."}, }}, - }, - })}, + }}, + {"required", json::array({ "arg" })}, + }}, + }}, + }, + }), false); + caps_.supports_tools = contains(out, "some_tool"); + + auto make_tool_calls_msg = [&](const json & tool_calls) { + return json { + {"role", "assistant"}, + {"content", nullptr}, + {"tool_calls", tool_calls}, + }; + }; + auto make_tool_call = [](const std::string & tool_name, const json & arguments) { + return json { + {"id", "call_1___"}, + {"type", "function"}, + {"function", { + {"arguments", arguments}, + {"name", tool_name}, + }}, + }; + }; + const json dummy_args_obj {{"argument_needle", "print('Hello, World!')"}}; + + // Note: the arguments are rendered in both cases, but may be double-escaped, which we don't want. + out = try_raw_render(json::array({ + dummy_user_msg, + make_tool_calls_msg(json::array({make_tool_call("ipython", dummy_args_obj.dump())})), + }), {}, false); + auto tool_call_renders_str_arguments = contains(out, "\"argument_needle\":") || contains(out, "'argument_needle':"); + out = try_raw_render(json::array({ + dummy_user_msg, + make_tool_calls_msg(json::array({make_tool_call("ipython", dummy_args_obj)})), + }), {}, false); + auto tool_call_renders_obj_arguments = contains(out, "\"argument_needle\":") || contains(out, "'argument_needle':"); + + caps_.supports_tool_calls = tool_call_renders_str_arguments || tool_call_renders_obj_arguments; + caps_.requires_object_arguments = !tool_call_renders_str_arguments && tool_call_renders_obj_arguments; + auto out_empty = try_raw_render(json::array({dummy_user_msg, {{"role", "assistant"}, {"content", ""}}}), {}, false); + auto out_null = try_raw_render(json::array({dummy_user_msg, {{"role", "assistant"}, {"content", nullptr}}}), {}, false); + caps_.requires_non_null_content = contains(out_empty, user_needle) && !contains(out_null, user_needle); + + if (caps_.supports_tool_calls) { + auto dummy_args = caps_.requires_object_arguments ? dummy_args_obj : json(dummy_args_obj.dump()); + auto tc1 = make_tool_call("test_tool1", dummy_args); + auto tc2 = make_tool_call("test_tool2", dummy_args); + auto out = try_raw_render(json::array({ + dummy_user_msg, + make_tool_calls_msg(json::array({tc1, tc2})), + }), {}, false); + caps_.supports_parallel_tool_calls = contains(out, "test_tool1") && contains(out, "test_tool2"); + + out = try_raw_render(json::array({ + dummy_user_msg, + make_tool_calls_msg(json::array({tc1})), + { + {"role", "tool"}, + {"name", "test_tool1"}, + {"content", "Some response!"}, + {"tool_call_id", "call_911_"}, } - }, {}, false).find("{\"code\": \"print") != std::string::npos; - if (!renders_string_arguments) { - auto renders_object_arguments = - try_raw_render({ - { - {"role", "user"}, - {"content", "Hey"} - }, - { - {"role", "assistant"}, - {"tool_calls", json::array({ - { - {"id", "call_1___"}, - {"type", "function"}, - {"function", { - {"arguments", { - {"code", "print('Hello, World!')"}, - }}, - {"name", "ipython"}, - }}, - }, - })}, - } - }, {}, false).find("{\"code\": \"print") != std::string::npos; - requires_object_arguments_ = renders_object_arguments; + }), {}, false); + caps_.supports_tool_responses = contains(out, "Some response!"); + caps_.supports_tool_call_id = contains(out, "call_911_"); } - supports_parallel_tool_calls_ = source.find("tool_call_id") != std::string::npos; - - supports_system_role_ = try_raw_render({ - {{"role", "system"}, {"content", ""}}, - {{"role", "user"}, {"content", "Hey"}} - }, {}, false).find("") != std::string::npos; - - requires_typed_content_ = try_raw_render({{{"role", "user"}, {"content", "Hey"}}}, {}, false).find("Hey") == std::string::npos - && try_raw_render({{{"role", "user"}, {"content", {{{"type", "text"}, {"text", "Hey"}}}}}}, {}, false).find("Hey") != std::string::npos; } const std::string & source() const { return source_; } const std::string & bos_token() const { return bos_token_; } const std::string & eos_token() const { return eos_token_; } - bool supports_tools() const { return supports_tools_; } - bool supports_parallel_tool_calls() const { return supports_parallel_tool_calls_; } + const chat_template_caps & original_caps() const { return caps_; } std::string apply( const nlohmann::ordered_json & messages, @@ -131,13 +192,19 @@ class chat_template { { json actual_messages; - // First, "fix" messages so they have a chance to be rendered correctly by the template - - if (adjust_inputs && (requires_object_arguments_ || !supports_system_role_ || !supports_tools_ || requires_typed_content_)) { + auto needs_adjustments = adjust_inputs && (false + || !caps_.supports_system_role + || !caps_.supports_tools + || !caps_.supports_tool_responses + || !caps_.supports_tool_calls + || caps_.requires_object_arguments + || caps_.requires_typed_content + ); + if (needs_adjustments) { actual_messages = json::array(); auto add_message = [&](const json & msg) { - if (requires_typed_content_ && msg.contains("content") && !msg.at("content").is_null() && msg.at("content").is_string()) { + if (caps_.requires_typed_content && msg.contains("content") && !msg.at("content").is_null() && msg.at("content").is_string()) { actual_messages.push_back({ {"role", msg.at("role")}, {"content", {{ @@ -160,7 +227,9 @@ class chat_template { pending_system.clear(); } }; - for (const auto & message_ : messages) { + auto needs_tools_in_system = !tools.is_null() && tools.size() > 0 && !caps_.supports_tools; + + for (const auto & message_ : needs_tools_in_system ? add_system(messages, "Available tools: " + tools.dump(2)) : messages) { auto message = message_; if (!message.contains("role") || !message.contains("content")) { throw std::runtime_error("message must have 'role' and 'content' fields: " + message.dump()); @@ -168,16 +237,22 @@ class chat_template { std::string role = message.at("role"); if (message.contains("tool_calls")) { - if (requires_object_arguments_ || !supports_tools_) { + if (caps_.requires_object_arguments || !caps_.supports_tool_calls) { for (auto & tool_call : message.at("tool_calls")) { if (tool_call["type"] == "function") { auto & function = tool_call.at("function"); - std::string arguments = function.at("arguments"); - function["arguments"] = json::parse(arguments); + auto & arguments = function.at("arguments"); + if (arguments.is_string()) { + try { + arguments = json::parse(arguments.get()); + } catch (const std::exception & ecvt) { + fprintf(stderr, "Failed to parse arguments: %s\n", ecvt.what()); + } + } } } } - if (!supports_tools_) { + if (!caps_.supports_tool_calls) { auto content = message.at("content"); auto tool_calls = json::array(); for (const auto & tool_call : message.at("tool_calls")) { @@ -204,7 +279,7 @@ class chat_template { message.erase("tool_calls"); } } - if (!supports_tools_ && role == "tool") { + if (!caps_.supports_tool_responses && role == "tool") { message["role"] = "user"; auto obj = json { {"tool_response", { @@ -219,7 +294,7 @@ class chat_template { message.erase("name"); } - if (!message["content"].is_null() && !supports_system_role_) { + if (!message["content"].is_null() && !caps_.supports_system_role) { std::string content = message.at("content"); if (role == "system") { if (!pending_system.empty()) pending_system += "\n"; @@ -238,7 +313,9 @@ class chat_template { } add_message(message); } - flush_sys(); + if (!caps_.supports_system_role) { + flush_sys(); + } } else { actual_messages = messages; } @@ -261,7 +338,28 @@ class chat_template { } } - return template_root_->render(context); + auto ret = template_root_->render(context); + // fprintf(stderr, "actual_messages: %s\n", actual_messages.dump(2).c_str()); + // fprintf(stderr, "apply: %s\n\n", ret.c_str()); + return ret; + } + + static nlohmann::ordered_json add_system(const nlohmann::ordered_json & messages, const std::string & system_prompt) { + json messages_with_system = messages; + + if (messages_with_system.size() > 0 && messages_with_system[0].at("role") == "system") { + std::string existing_system = messages_with_system.at(0).at("content"); + messages_with_system[0] = json { + {"role", "system"}, + {"content", existing_system + "\n" + system_prompt}, + }; + } else { + messages_with_system.insert(messages_with_system.begin(), json { + {"role", "system"}, + {"content", system_prompt}, + }); + } + return messages_with_system; } }; diff --git a/common/minja.hpp b/common/minja.hpp index 80bdd4b41..f0e80fd7c 100644 --- a/common/minja.hpp +++ b/common/minja.hpp @@ -628,7 +628,7 @@ class Context : public std::enable_shared_from_this { if (parent_) return parent_->contains(key); return false; } - virtual void set(const Value & key, Value & value) { + virtual void set(const Value & key, const Value & value) { values_.set(key, value); } }; @@ -2648,31 +2648,34 @@ inline std::shared_ptr Context::builtins() { return filter.call(context, actual_args); }); }; - // https://jinja.palletsprojects.com/en/3.0.x/templates/#jinja-filters.reject - globals.set("reject", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { - args.expectArgs("reject", {2, (std::numeric_limits::max)()}, {0, 0}); - auto & items = args.args[0]; - auto filter_fn = context->get(args.args[1]); - if (filter_fn.is_null()) throw std::runtime_error("Undefined filter: " + args.args[1].dump()); + auto select_or_reject = [make_filter](bool is_select) { + return Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { + args.expectArgs(is_select ? "select" : "reject", {2, (std::numeric_limits::max)()}, {0, 0}); + auto & items = args.args[0]; + auto filter_fn = context->get(args.args[1]); + if (filter_fn.is_null()) throw std::runtime_error("Undefined filter: " + args.args[1].dump()); - auto filter_args = Value::array(); - for (size_t i = 2, n = args.args.size(); i < n; i++) { - filter_args.push_back(args.args[i]); - } - auto filter = make_filter(filter_fn, filter_args); - - auto res = Value::array(); - for (size_t i = 0, n = items.size(); i < n; i++) { - auto & item = items.at(i); - ArgumentsValue filter_args; - filter_args.args.emplace_back(item); - auto pred_res = filter.call(context, filter_args); - if (!pred_res.to_bool()) { - res.push_back(item); + auto filter_args = Value::array(); + for (size_t i = 2, n = args.args.size(); i < n; i++) { + filter_args.push_back(args.args[i]); } - } - return res; - })); + auto filter = make_filter(filter_fn, filter_args); + + auto res = Value::array(); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto & item = items.at(i); + ArgumentsValue filter_args; + filter_args.args.emplace_back(item); + auto pred_res = filter.call(context, filter_args); + if (pred_res.to_bool() == (is_select ? true : false)) { + res.push_back(item); + } + } + return res; + }); + }; + globals.set("select", select_or_reject(/* is_select= */ true)); + globals.set("reject", select_or_reject(/* is_select= */ false)); globals.set("map", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { auto res = Value::array(); if (args.args.size() == 1 && @@ -2720,41 +2723,45 @@ inline std::shared_ptr Context::builtins() { if (!text.empty() && text.back() == '\n') out += "\n"; return out; })); - globals.set("selectattr", Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { - args.expectArgs("selectattr", {2, (std::numeric_limits::max)()}, {0, 0}); - auto & items = args.args[0]; - if (items.is_null()) - return Value::array(); - auto attr_name = args.args[1].get(); + auto select_or_reject_attr = [](bool is_select) { + return Value::callable([=](const std::shared_ptr & context, ArgumentsValue & args) { + args.expectArgs(is_select ? "selectattr" : "rejectattr", {2, (std::numeric_limits::max)()}, {0, 0}); + auto & items = args.args[0]; + if (items.is_null()) + return Value::array(); + auto attr_name = args.args[1].get(); - bool has_test = false; - Value test_fn; - ArgumentsValue test_args {{Value()}, {}}; - if (args.args.size() >= 3) { - has_test = true; - test_fn = context->get(args.args[2]); - if (test_fn.is_null()) throw std::runtime_error("Undefined test: " + args.args[2].dump()); - for (size_t i = 3, n = args.args.size(); i < n; i++) { - test_args.args.emplace_back(args.args[i]); - } - test_args.kwargs = args.kwargs; - } - - auto res = Value::array(); - for (size_t i = 0, n = items.size(); i < n; i++) { - auto & item = items.at(i); - auto attr = item.get(attr_name); - if (has_test) { - test_args.args[0] = attr; - if (test_fn.call(context, test_args).to_bool()) { - res.push_back(item); + bool has_test = false; + Value test_fn; + ArgumentsValue test_args {{Value()}, {}}; + if (args.args.size() >= 3) { + has_test = true; + test_fn = context->get(args.args[2]); + if (test_fn.is_null()) throw std::runtime_error("Undefined test: " + args.args[2].dump()); + for (size_t i = 3, n = args.args.size(); i < n; i++) { + test_args.args.emplace_back(args.args[i]); } - } else { - res.push_back(attr); + test_args.kwargs = args.kwargs; } - } - return res; - })); + + auto res = Value::array(); + for (size_t i = 0, n = items.size(); i < n; i++) { + auto & item = items.at(i); + auto attr = item.get(attr_name); + if (has_test) { + test_args.args[0] = attr; + if (test_fn.call(context, test_args).to_bool() == (is_select ? true : false)) { + res.push_back(item); + } + } else { + res.push_back(attr); + } + } + return res; + }); + }; + globals.set("selectattr", select_or_reject_attr(/* is_select= */ true)); + globals.set("rejectattr", select_or_reject_attr(/* is_select= */ false)); globals.set("range", Value::callable([=](const std::shared_ptr &, ArgumentsValue & args) { std::vector startEndStep(3); std::vector param_set(3); From c300e68ef490e6cf6c04ed96fd27a6a53ab8a422 Mon Sep 17 00:00:00 2001 From: uvos Date: Wed, 29 Jan 2025 17:46:23 +0100 Subject: [PATCH 077/162] CUDA/HIP: add warp_size to cuda_device_info --- ggml/src/ggml-cuda/common.cuh | 1 + ggml/src/ggml-cuda/ggml-cuda.cu | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index a66322da0..eec227dce 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -520,6 +520,7 @@ struct ggml_cuda_device_info { bool vmm; // virtual memory support size_t vmm_granularity; // granularity of virtual memory size_t total_vram; + int warp_size; // Number of threads in a dispatch }; cuda_device_info devices[GGML_CUDA_MAX_DEVICES] = {}; diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index de3f9c2ca..ecf06fec4 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -242,6 +242,7 @@ static ggml_cuda_device_info ggml_cuda_init() { info.devices[id].nsm = prop.multiProcessorCount; info.devices[id].smpb = prop.sharedMemPerBlock; + info.devices[id].warp_size = prop.warpSize; #if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) info.devices[id].smpbo = prop.sharedMemPerBlock; @@ -256,8 +257,9 @@ static ggml_cuda_device_info ggml_cuda_init() { info.devices[id].cc += prop.minor * 0x10; } } - GGML_LOG_INFO(" Device %d: %s, %s (0x%x), VMM: %s\n", - id, prop.name, prop.gcnArchName, info.devices[id].cc & 0xffff, device_vmm ? "yes" : "no"); + GGML_LOG_INFO(" Device %d: %s, %s (0x%x), VMM: %s, Wave Size: %d\n", + id, prop.name, prop.gcnArchName, info.devices[id].cc & 0xffff, + device_vmm ? "yes" : "no", prop.warpSize); #else info.devices[id].smpbo = prop.sharedMemPerBlockOptin; info.devices[id].cc = 100*prop.major + 10*prop.minor; From 6af1ca48cbdf9a438438afd0a9a549a272bc95bf Mon Sep 17 00:00:00 2001 From: uvos Date: Wed, 29 Jan 2025 19:12:42 +0100 Subject: [PATCH 078/162] HIP: Prepare reduction operators for wave 64 --- ggml/src/ggml-cuda/common.cuh | 59 +++++++++++++++------------------ ggml/src/ggml-cuda/ggml-cuda.cu | 4 +-- 2 files changed, 28 insertions(+), 35 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index eec227dce..8d8d3932e 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -190,53 +190,46 @@ static __device__ void no_device_code( #define NO_DEVICE_CODE //GGML_ABORT("NO_DEVICE_CODE not valid in host code.") #endif // __CUDA_ARCH__ +template static __device__ __forceinline__ int warp_reduce_sum(int x) { #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE return __reduce_add_sync(0xffffffff, x); #else #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - x += __shfl_xor_sync(0xffffffff, x, offset, 32); + for (int offset = width/2; offset > 0; offset >>= 1) { + x += __shfl_xor_sync(0xffffffff, x, offset, width); } return x; #endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE } +template static __device__ __forceinline__ float warp_reduce_sum(float x) { #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - x += __shfl_xor_sync(0xffffffff, x, offset, 32); + for (int offset = width/2; offset > 0; offset >>= 1) { + x += __shfl_xor_sync(0xffffffff, x, offset, width); } return x; } +template static __device__ __forceinline__ float2 warp_reduce_sum(float2 a) { #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - a.x += __shfl_xor_sync(0xffffffff, a.x, offset, 32); - a.y += __shfl_xor_sync(0xffffffff, a.y, offset, 32); + for (int offset = width/2; offset > 0; offset >>= 1) { + a.x += __shfl_xor_sync(0xffffffff, a.x, offset, width); + a.y += __shfl_xor_sync(0xffffffff, a.y, offset, width); } return a; } +template static __device__ __forceinline__ half2 warp_reduce_sum(half2 a) { #ifdef FP16_AVAILABLE - -#if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - const half2 a_other = __shfl_xor_sync(0xffffffff, a, offset, 32); - reinterpret_cast(a.x) += __low2half(a_other); - reinterpret_cast(a.y) += __high2half(a_other); + for (int offset = width/2; offset > 0; offset >>= 1) { + a = __hadd2(a, __shfl_xor_sync(0xffffffff, a, offset, width)); } return a; -#else -#pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - a = __hadd2(a, __shfl_xor_sync(0xffffffff, a, offset, 32)); - } - return a; -#endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) #else NO_DEVICE_CODE; @@ -244,10 +237,11 @@ static __device__ __forceinline__ half2 warp_reduce_sum(half2 a) { #endif // FP16_AVAILABLE } +template static __device__ __forceinline__ float warp_reduce_max(float x) { #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - x = fmaxf(x, __shfl_xor_sync(0xffffffff, x, offset, 32)); + for (int offset = width/2; offset > 0; offset >>= 1) { + x = fmaxf(x, __shfl_xor_sync(0xffffffff, x, offset, width)); } return x; } @@ -269,35 +263,34 @@ static __device__ __forceinline__ half ggml_cuda_hmax(const half a, const half b } static __device__ __forceinline__ half2 ggml_cuda_hmax2(const half2 a, const half2 b) { -#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) - -#if CUDART_VERSION >= CUDART_HMAX +#if defined(GGML_USE_HIP) && HIP_VERSION >= 50700000 + return half2(__hmax(a.x, b.x), __hmax(a.y, b.y)); +#elif !defined(GGML_USE_HIP) && CUDART_VERSION >= CUDART_HMAX return __hmax2(a, b); -#else +#elif !defined(GGML_USE_HIP) half2 ret; reinterpret_cast(ret.x) = __float2half(fmaxf( __low2float(a), __low2float(b))); reinterpret_cast(ret.y) = __float2half(fmaxf(__high2float(a), __high2float(b))); return ret; -#endif // CUDART_VERSION >= CUDART_HMAX - #else GGML_UNUSED(a); GGML_UNUSED(b); NO_DEVICE_CODE; -#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +#endif } +template static __device__ __forceinline__ half2 warp_reduce_max(half2 x) { -#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL +#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL || (defined(GGML_USE_HIP) && HIP_VERSION >= 50700000) #pragma unroll - for (int offset = 16; offset > 0; offset >>= 1) { - x = ggml_cuda_hmax2(x, __shfl_xor_sync(0xffffffff, x, offset, 32)); + for (int offset = width/2; offset > 0; offset >>= 1) { + x = ggml_cuda_hmax2(x, __shfl_xor_sync(0xffffffff, x, offset, width)); } return x; #else GGML_UNUSED(x); NO_DEVICE_CODE; -#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL +#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_PASCAL || (defined(GGML_USE_HIP) && HIP_VERSION >= 50700000) } #if CUDART_VERSION < CUDART_HMASK diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index ecf06fec4..383131c77 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -240,8 +240,8 @@ static ggml_cuda_device_info ggml_cuda_init() { info.default_tensor_split[id] = total_vram; total_vram += prop.totalGlobalMem; - info.devices[id].nsm = prop.multiProcessorCount; - info.devices[id].smpb = prop.sharedMemPerBlock; + info.devices[id].nsm = prop.multiProcessorCount; + info.devices[id].smpb = prop.sharedMemPerBlock; info.devices[id].warp_size = prop.warpSize; #if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) info.devices[id].smpbo = prop.sharedMemPerBlock; From 27d135c970c00f655d486f870edacded792bef5c Mon Sep 17 00:00:00 2001 From: uvos Date: Wed, 29 Jan 2025 19:36:00 +0100 Subject: [PATCH 079/162] HIP: require at least HIP 5.5 --- ggml/src/ggml-hip/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ggml/src/ggml-hip/CMakeLists.txt b/ggml/src/ggml-hip/CMakeLists.txt index ecc3bc66d..7a877bdc1 100644 --- a/ggml/src/ggml-hip/CMakeLists.txt +++ b/ggml/src/ggml-hip/CMakeLists.txt @@ -40,6 +40,10 @@ find_package(hip REQUIRED) find_package(hipblas REQUIRED) find_package(rocblas REQUIRED) +if (${hip_VERSION} VERSION_LESS 5.5) + message(FATAL_ERROR "At least ROCM/HIP V5.5 is required") +endif() + message(STATUS "HIP and hipBLAS found") file(GLOB GGML_HEADERS_ROCM "../ggml-cuda/*.cuh") From 8b576b6c55bc4e6be898b47522f0ef402b93ef62 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 30 Jan 2025 19:13:58 +0000 Subject: [PATCH 080/162] Tool call support (generic + native for Llama, Functionary, Hermes, Mistral, Firefunction, DeepSeek) w/ lazy grammars (#9639) --------- Co-authored-by: Xuan Son Nguyen Co-authored-by: Georgi Gerganov Co-authored-by: Xuan Son Nguyen --- .editorconfig | 8 + .github/workflows/server.yml | 2 +- Makefile | 9 + README.md | 1 + common/CMakeLists.txt | 2 + common/chat.cpp | 848 ++++++++++++++++++ common/chat.hpp | 50 ++ common/common.cpp | 22 +- common/common.h | 17 +- common/json-schema-to-grammar.cpp | 15 +- common/json-schema-to-grammar.h | 9 +- common/sampling.cpp | 11 +- examples/gbnf-validator/gbnf-validator.cpp | 2 +- examples/main/main.cpp | 27 +- examples/server/README.md | 76 ++ examples/server/server.cpp | 187 ++-- examples/server/tests/README.md | 13 +- examples/server/tests/pytest.ini | 4 + examples/server/tests/tests.sh | 11 +- .../server/tests/unit/test_chat_completion.py | 11 +- examples/server/tests/unit/test_tool_call.py | 352 ++++++++ examples/server/tests/utils.py | 6 +- examples/server/utils.hpp | 80 +- include/llama.h | 12 + ...reForAI-c4ai-command-r-plus-tool_use.jinja | 202 +++++ ...rch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja | 152 ++++ ...earch-Hermes-3-Llama-3.1-8B-tool_use.jinja | 152 ++++ .../templates/Qwen-Qwen2.5-7B-Instruct.jinja | 54 ++ ...seek-ai-DeepSeek-R1-Distill-Llama-8B.jinja | 1 + ...seek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja | 56 ++ ...fireworks-ai-llama-3-firefunction-v2.jinja | 57 ++ models/templates/google-gemma-2-2b-it.jinja | 4 + .../meetkai-functionary-medium-v3.1.jinja | 58 ++ .../meetkai-functionary-medium-v3.2.jinja | 287 ++++++ .../meta-llama-Llama-3.1-8B-Instruct.jinja | 109 +++ .../meta-llama-Llama-3.2-3B-Instruct.jinja | 93 ++ .../meta-llama-Llama-3.3-70B-Instruct.jinja | 109 +++ .../microsoft-Phi-3.5-mini-instruct.jinja | 8 + ...mistralai-Mistral-Nemo-Instruct-2407.jinja | 87 ++ scripts/fetch_server_test_models.py | 105 +++ ..._chat_template.py => get_chat_template.py} | 12 +- src/llama-grammar.cpp | 88 +- src/llama-grammar.h | 23 +- src/llama-sampling.cpp | 51 +- tests/CMakeLists.txt | 1 + tests/test-chat-template.cpp | 10 +- tests/test-chat.cpp | 521 +++++++++++ tests/test-grammar-integration.cpp | 2 +- 48 files changed, 3861 insertions(+), 156 deletions(-) create mode 100644 common/chat.cpp create mode 100644 common/chat.hpp create mode 100644 examples/server/tests/pytest.ini create mode 100644 examples/server/tests/unit/test_tool_call.py create mode 100644 models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja create mode 100644 models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja create mode 100644 models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja create mode 100644 models/templates/Qwen-Qwen2.5-7B-Instruct.jinja create mode 100644 models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja create mode 100644 models/templates/deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja create mode 100644 models/templates/fireworks-ai-llama-3-firefunction-v2.jinja create mode 100644 models/templates/google-gemma-2-2b-it.jinja create mode 100644 models/templates/meetkai-functionary-medium-v3.1.jinja create mode 100644 models/templates/meetkai-functionary-medium-v3.2.jinja create mode 100644 models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja create mode 100644 models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja create mode 100644 models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja create mode 100644 models/templates/microsoft-Phi-3.5-mini-instruct.jinja create mode 100644 models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja create mode 100755 scripts/fetch_server_test_models.py rename scripts/{get_hf_chat_template.py => get_chat_template.py} (86%) mode change 100755 => 100644 create mode 100644 tests/test-chat.cpp diff --git a/.editorconfig b/.editorconfig index eac38a15f..5d63d0a51 100644 --- a/.editorconfig +++ b/.editorconfig @@ -40,3 +40,11 @@ indent_style = tab [examples/cvector-generator/*.txt] trim_trailing_whitespace = unset insert_final_newline = unset + +[models/templates/*.jinja] +indent_style = unset +indent_size = unset +end_of_line = unset +charset = unset +trim_trailing_whitespace = unset +insert_final_newline = unset diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index ed1c357a5..0cbc3d640 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -205,7 +205,7 @@ jobs: run: | cd examples/server/tests $env:PYTHONIOENCODING = ":replace" - pytest -v -x + pytest -v -x -m "not slow" - name: Slow tests id: server_integration_tests_slow diff --git a/Makefile b/Makefile index 295522ba3..ef152d246 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,7 @@ TEST_TARGETS = \ tests/test-arg-parser \ tests/test-autorelease \ tests/test-backend-ops \ + tests/test-chat \ tests/test-chat-template \ tests/test-double-float \ tests/test-grammar-integration \ @@ -983,6 +984,7 @@ OBJ_COMMON = \ $(DIR_COMMON)/ngram-cache.o \ $(DIR_COMMON)/sampling.o \ $(DIR_COMMON)/speculative.o \ + $(DIR_COMMON)/chat.o \ $(DIR_COMMON)/build-info.o \ $(DIR_COMMON)/json-schema-to-grammar.o @@ -1361,6 +1363,8 @@ llama-server: \ examples/server/httplib.h \ examples/server/index.html.hpp \ examples/server/loading.html.hpp \ + common/chat.cpp \ + common/chat.hpp \ common/chat-template.hpp \ common/json.hpp \ common/minja.hpp \ @@ -1471,6 +1475,11 @@ tests/test-json-schema-to-grammar: tests/test-json-schema-to-grammar.cpp \ $(CXX) $(CXXFLAGS) -Iexamples/server -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) +tests/test-chat: tests/test-chat.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -Iexamples/server -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + tests/test-opt: tests/test-opt.cpp \ $(OBJ_GGML) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) diff --git a/README.md b/README.md index 382c67041..d40309875 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) - **How to use [MTLResidencySet](https://developer.apple.com/documentation/metal/mtlresidencyset?language=objc) to keep the GPU memory active?** https://github.com/ggerganov/llama.cpp/pull/11427 - **VS Code extension for FIM completions:** https://github.com/ggml-org/llama.vscode +- Universal tool call support in `llama-server`: https://github.com/ggerganov/llama.cpp/pull/9639 - Vim/Neovim plugin for FIM completions: https://github.com/ggml-org/llama.vim - Introducing GGUF-my-LoRA https://github.com/ggerganov/llama.cpp/discussions/10123 - Hugging Face Inference Endpoints now support GGUF out of the box! https://github.com/ggerganov/llama.cpp/discussions/9669 diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 24b7f8741..72f0915c1 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -56,6 +56,8 @@ add_library(${TARGET} STATIC arg.cpp arg.h base64.hpp + chat.cpp + chat.hpp chat-template.hpp common.cpp common.h diff --git a/common/chat.cpp b/common/chat.cpp new file mode 100644 index 000000000..d9a654892 --- /dev/null +++ b/common/chat.cpp @@ -0,0 +1,848 @@ +#include "chat.hpp" +#include "chat-template.hpp" +#include "json-schema-to-grammar.h" +#include "log.h" +#include "minja.hpp" + +std::string common_chat_format_name(common_chat_format format) { + switch (format) { + case COMMON_CHAT_FORMAT_CONTENT_ONLY: return "Content-only"; + case COMMON_CHAT_FORMAT_GENERIC: return "Generic"; + case COMMON_CHAT_FORMAT_MISTRAL_NEMO: return "Mistral Nemo"; + case COMMON_CHAT_FORMAT_LLAMA_3_X: return "Llama 3.x"; + case COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS: return "Llama 3.x with builtin tools"; + case COMMON_CHAT_FORMAT_DEEPSEEK_R1: return "DeepSeek R1"; + case COMMON_CHAT_FORMAT_FIREFUNCTION_V2: return "FireFunction v2"; + case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2: return "Functionary v3.2"; + case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1: return "Functionary v3.1 Llama 3.1"; + case COMMON_CHAT_FORMAT_HERMES_2_PRO: return "Hermes 2 Pro"; + default: + throw std::runtime_error("Unknown chat format"); + } +} + +const common_grammar_options grammar_options { + /* .dotall = */ false, + /* .compact_spaces = */ false, + // /* .compact_spaces = */ true, +}; + +static bool parse_json(std::string::const_iterator & it, const std::string::const_iterator & end, json & out) { + // // https://json.nlohmann.me/features/parsing/sax_interface/ + struct json_error_locator : public nlohmann::json_sax { + std::size_t position; + bool found_error; + + json_error_locator() : position(0), found_error(false) {} + + bool parse_error(std::size_t position, const std::string &, const json::exception &) override { + this->position = position - 1; + this->found_error = true; + return false; + } + bool null() override { return true; } + bool boolean(bool) override { return true; } + bool number_integer(number_integer_t) override { return true; } + bool number_unsigned(number_unsigned_t) override { return true; } + bool number_float(number_float_t, const string_t &) override { return true; } + bool string(string_t &) override { return true; } + bool binary(binary_t &) override { return true; } + bool start_object(std::size_t) override { return true; } + bool key(string_t &) override { return true; } + bool end_object() override { return true; } + bool start_array(std::size_t) override { return true; } + bool end_array() override { return true; } + }; + json_error_locator err_loc; + json::sax_parse(it, end, &err_loc); + + std::string::const_iterator temptative_end; + if (err_loc.found_error) { + temptative_end = it + err_loc.position; + } else { + temptative_end = end; + } + std::string json_sub {it, temptative_end}; + try { + out = json::parse(json_sub); + it = temptative_end; + return true; + } catch (const std::exception &) { + return false; + } +} + + +/** + * Takes a prefix regex that must have 1 group to capture the function name, a closing suffix, and expects json parameters in between. + * Aggregates the prefix, suffix and in-between text into the content. + */ +static common_chat_msg parse_json_tool_calls( + const std::string& input, + const std::optional & trigger_opt, + const std::regex & function_regex, + const std::regex & close_regex) { + std::smatch match; + + common_chat_msg result; + result.role = "assistant"; + + + auto end = input.end(); + auto it = input.begin(); + + if (trigger_opt) { + if (!std::regex_search(it, end, match, *trigger_opt)) { + result.content = input; + return result; + } + result.content = match.prefix().str(); + it = match.suffix().first; + } + + while (it != end) { + std::sregex_iterator rend; + std::sregex_iterator rit(it, end, function_regex); + if (rit == rend) { + fprintf(stderr, "No more tool calls found\n"); + result.content += std::string(it, end); + break; + } + auto name = rit->str(1); + result.content += std::string(it, rit->prefix().second); + it = rit->suffix().first; + + json arguments; + if (!parse_json(it, end, arguments)) { + throw std::runtime_error("Failed to parse json tool call arguments"); + } + if (!std::regex_search(it, end, match, close_regex)) { + throw std::runtime_error("Malformed input, missing closing pattern"); + } + it = match.suffix().first; + result.tool_calls.push_back({name, arguments.is_string() ? arguments.get() : arguments.dump(), /* id= */ ""}); + } + return result; +} + +static common_chat_msg parse_prefixed_json_tool_call_array(const std::string& input, const std::string & prefix, size_t rstrip_prefix = 0) { + auto content_end = input.find(prefix); + size_t tc_start = std::string::npos; + + common_chat_msg result; + result.role = "assistant"; + const auto process_tool_calls = [&](const json & tool_calls) { + for (const auto & tool_call : tool_calls) { + const auto & arguments = tool_call["arguments"]; + result.tool_calls.push_back({ + tool_call["name"], + arguments.is_string() ? arguments.get() : arguments.dump(), + tool_call.contains("id") ? tool_call["id"] : "", + }); + } + }; + if (content_end == std::string::npos) { + result.content = input; + } else { + tc_start = content_end + prefix.size() - rstrip_prefix; + result.content = input.substr(0, content_end); + auto tool_calls = json::parse(input.substr(tc_start)); + process_tool_calls(tool_calls); + } + return result; +} + +static void foreach_function(const json & tools, const std::function & fn) { + for (const auto & tool : tools) { + if (!tool.contains("type") || tool["type"] != "function" || !tool.contains("function")) { + LOG_INF("Skipping tool without function: %s", tool.dump(2).c_str()); + continue; + } + fn(tool); + } +} + +static common_chat_params common_chat_params_init_generic(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + + auto tool_call_schemas = json::array(); + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + auto tool_schema = json { + {"type", "object"}, + {"properties", { + {"name", { + {"type", "string"}, + {"const", function["name"]}, + }}, + {"arguments", function["parameters"]}, + }}, + {"required", json::array({"name", "arguments"})}, + }; + if (function.contains("description")) { + tool_schema["description"] = function["description"]; + } + if (inputs.parallel_tool_calls) { + tool_schema["properties"]["id"] = { + {"type", "string"}, + {"minLength", 4}, + }; + tool_schema["required"].push_back("id"); + } + tool_call_schemas.emplace_back(tool_schema); + }); + const auto tool_call = + inputs.parallel_tool_calls + ? json { + {"type", "object"}, + {"properties", { + {"tool_calls", { + {"type", "array"}, + {"items", tool_call_schemas.size() == 1 ? tool_call_schemas[0] : json { + {"anyOf", tool_call_schemas}, + }}, + {"minItems", 1}, + }}, + }}, + {"required", json::array({"tool_calls"})}, + } + : json { + {"type", "object"}, + {"properties", { + {"tool_call", tool_call_schemas.size() == 1 ? tool_call_schemas[0] : json { + {"anyOf", tool_call_schemas}, + }}, + }}, + {"required", json::array({"tool_call"})}, + }; + const auto schema = + inputs.tool_choice != "required" + ? json { + {"anyOf", json::array({ + tool_call, + { + {"type", "object"}, + {"properties", { + {"response", inputs.json_schema.is_null() + ? json {{"type", "string"}} + : inputs.json_schema + }, + }}, + {"required", json::array({"response"})}, + }, + })} + } + : tool_call; + + data.grammar_lazy = false; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + builder.add_schema("root", schema); + }, grammar_options); + + auto tweaked_messages = common_chat_template::add_system( + inputs.messages, + "Respond in JSON format, either with `tool_call` (a request to call tools) or with `response` reply to the user's request"); + + data.prompt = tmpl.apply(tweaked_messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_GENERIC; + return data; +} +static common_chat_msg common_chat_parse_generic(const std::string & input) { + json data = json::parse(input); + common_chat_msg result; + result.role = "assistant"; + if (data.contains("tool_calls")) { + for (const auto & tool_call : data["tool_calls"]) { + result.tool_calls.push_back({ + tool_call["name"], + tool_call["arguments"].dump(), + tool_call.contains("id") ? tool_call["id"] : "", + }); + } + } else if (data.contains("tool_call")) { + result.tool_calls.push_back({ + data["tool_call"]["name"], + data["tool_call"]["arguments"].dump(), + /* id= */ "", + }); + } else if (data.contains("response")) { + const auto & response = data["response"]; + result.content = response.is_string() ? response.get() : response.dump(2); + } + return result; +} + +static common_chat_params common_chat_params_init_mistral_nemo(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + auto schemas = json::array(); + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + schemas.push_back({ + {"type", "object"}, + {"properties", { + // Important note: the model is probably trained to take a JSON stringified arguments value. + // It's hard to constrain that for now (while reusing the JSON schema conversion), so we're just expecting a plain object. + {"name", { + {"type", "string"}, + {"const", function["name"]}, + }}, + {"arguments", function["parameters"]}, + {"id", { + {"type", "string"}, + // Nemo's template expects a 9-character alphanumeric ID. + {"pattern", "^[a-zA-Z0-9]{9}$"}, + }}, + }}, + {"required", json::array({"name", "arguments", "id"})}, + }); + }); + auto schema = json { + {"type", "array"}, + {"items", schemas.size() == 1 ? schemas[0] : json {{"anyOf", schemas}}}, + {"minItems", 1}, + }; + if (!inputs.parallel_tool_calls) { + schema["maxItems"] = 1; + } + builder.add_rule("root", "\"[TOOL_CALLS]\" " + builder.add_schema("tool_calls", schema)); + }, grammar_options); + data.grammar_triggers.push_back({"[TOOL_CALLS]", /* .at_start = */ true}); + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_MISTRAL_NEMO; + return data; +} +static common_chat_msg common_chat_parse_mistral_nemo(const std::string & input) { + return parse_prefixed_json_tool_call_array(input, "[TOOL_CALLS]"); +} + +static void expect_tool_parameters(const std::string & name, const json & parameters, const std::vector & expected_properties) { + if (!parameters.is_object() || !parameters.contains("type") || parameters["type"] != "object" || !parameters.contains("properties") || !parameters.contains("required")) { + throw std::runtime_error("Parameters of tool " + name + " must be an object w/ required properties"); + } + const auto & parameters_properties = parameters.at("properties"); + const auto & parameters_required = parameters.at("required"); + for (const auto & prop : expected_properties) { + if (!parameters_properties.contains(prop)) { + throw std::runtime_error("Parameters of tool " + name + " is missing property: " + prop); + } + if (std::find(parameters_required.begin(), parameters_required.end(), json(prop)) == parameters_required.end()) { + throw std::runtime_error("Parameters of tool " + name + " must have property marked as required: " + prop); + } + } + if (parameters_properties.size() != expected_properties.size()) { + throw std::runtime_error("Parameters of tool " + name + " must only have these properties:" + string_join(expected_properties, ", ")); + } +} + +static common_chat_params common_chat_params_init_llama_3_1_tool_calls(const common_chat_template & tmpl, const struct common_chat_inputs & inputs, bool allow_python_tag_builtin_tools) { + auto builtin_tools = json::array(); + common_chat_params data; + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + std::vector tool_rules; + + auto handle_builtin_tool = [&](const std::string & name, const json & parameters) { + if (name == "wolfram_alpha") { + // https://github.com/meta-llama/llama-stack/blob/main/llama_stack/providers/remote/tool_runtime/wolfram_alpha/wolfram_alpha.py + expect_tool_parameters(name, parameters, {"query"}); + } else if (name == "web_search" || name == "brave_search") { + // https://github.com/meta-llama/llama-stack/blob/main/llama_stack/providers/remote/tool_runtime/brave_search/brave_search.py + expect_tool_parameters(name, parameters, {"query"}); + } else if (name == "python" || name == "code_interpreter") { + // https://github.com/meta-llama/llama-stack/blob/main/llama_stack/providers/inline/tool_runtime/code_interpreter/code_interpreter.py + expect_tool_parameters(name, parameters, {"code"}); + } else { + return false; + } + + std::vector kvs; + for (const auto & [key, value] : parameters.at("properties").items()) { + kvs.push_back("\"" + key + "=\" " + builder.add_schema(name + "-args-" + key, value)); + } + + tool_rules.push_back( + builder.add_rule( + name + "-call", + "\"<|python_tag|>" + name + ".call(\" " + string_join(kvs, " \", \" ") + " \")\"")); + builtin_tools.push_back(name); + + return true; + }; + + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + std::string name = function["name"]; + auto parameters = function["parameters"]; + builder.resolve_refs(parameters); + + // https://github.com/meta-llama/llama-stack/tree/main/llama_stack/providers/remote/tool_runtime + if (allow_python_tag_builtin_tools) { + handle_builtin_tool(name, parameters); + } + tool_rules.push_back( + builder.add_rule( + name + "-call", + "\"{\" ( \"\\\"type\\\": \\\"function\\\", \" | space ) " + "\"\\\"name\\\": \\\"" + name + "\\\", \\\"parameters\\\": \" " + + builder.add_schema(name + "-args", parameters) + + " \"}\"")); + data.grammar_triggers.push_back({"{\"name\": \"" + name + "\"", /* .at_start = */ true}); + }); + data.grammar_triggers.push_back({"{\"name\":", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\"type\": \"function\"", /* .at_start = */ true}); + if (!builtin_tools.empty()) { + data.grammar_triggers.push_back({"<|python_tag|>", /* .at_start = */ false}); + } + builder.add_rule("root", string_join(tool_rules, " | ")); + }, grammar_options); + data.additional_stops.push_back("<|eom_id|>"); + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt, { + {"tools_in_user_message", false}, + {"builtin_tools", builtin_tools.empty() ? json() : builtin_tools}, + }); + data.format = allow_python_tag_builtin_tools && !builtin_tools.empty() + ? COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS + : COMMON_CHAT_FORMAT_LLAMA_3_X; + return data; +} +static common_chat_msg common_chat_parse_llama_3_1(const std::string & input, bool with_builtin_tools = false) { + // TODO: tighten & simplify the parser, don't accept leading text context. + static std::regex function_regex("\\{[\\s\\n\\r]*(?:\"type\"[\\s\\n\\r]*:[\\s\\n\\r]*\"function\"[\\s\\n\\r]*,[\\s\\n\\r]*|[\\s\\n\\r]*)\"name\"[\\s\\n\\r]*:[\\s\\n\\r]*\"([^\"]+)\"[\\s\\n\\r]*,[\\s\\n\\r]*\"parameters\": "); + static std::regex close_regex("\\}"); + static std::regex builtin_call_regex("<\\|python_tag\\|>([^.(]+)\\.call\\((.*)\\)"); + + if (with_builtin_tools) { + std::smatch match; + if (std::regex_match(input, match, builtin_call_regex)) { + auto name = match[1].str(); + auto raw_args = match[2].str(); + + // TODO: if/when builtin tools start accepting more than 1 argument, use parse_json for real parsing. + auto it_eq = raw_args.find('='); + auto arg_name = raw_args.substr(0, it_eq); + auto arg_value_str = raw_args.substr(it_eq + 1); + auto arg_value = json::parse(arg_value_str); + + return { + /* .role = */ "assistant", + /* .content = */ match.prefix().str(), + /* .tool_calls = */ { + { + /* .name = */ match[1], + /* .arguments = */ (json { + {arg_name, arg_value}, + }).dump(), + /* .id = */ "", + }, + }, + }; + } + } + return parse_json_tool_calls(input, std::nullopt, function_regex, close_regex); +} + +static common_chat_params common_chat_params_init_deepseek_r1(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + std::vector tool_rules; + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + std::string name = function["name"]; + auto parameters = function["parameters"]; + auto args_rule = builder.add_schema(name + "-args", parameters); + tool_rules.push_back(builder.add_rule(name + "-call", + "\"<|tool▁call▁begin|>function<|tool▁sep|>" + name + "\\n```json\\n\" " + args_rule + " \"```<|tool▁call▁end|>\"")); + }); + data.grammar_triggers.push_back({"<|tool▁calls▁begin|>", /* .at_start = */ false}); + builder.add_rule("root", "\"<|tool▁calls▁begin|>\" (" + string_join(tool_rules, " | ") + ")" + (inputs.parallel_tool_calls ? "*" : "") + " space"); + }, grammar_options); + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_DEEPSEEK_R1; + return data; +} +static common_chat_msg common_chat_parse_deepseek_r1(const std::string & input) { + static std::regex trigger_regex("<|tool▁calls▁begin|>"); + static std::regex function_regex("<|tool▁call▁begin|>function<|tool▁sep|>([^\n]+)\n```json\n"); + static std::regex close_regex("```<|tool▁call▁end|>"); + return parse_json_tool_calls(input, trigger_regex, function_regex, close_regex); +} + +static common_chat_params common_chat_params_init_firefunction_v2(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + fprintf(stderr, "%s\n", __func__); + common_chat_params data; + data.prompt = tmpl.apply(inputs.messages, /* tools= */ nullptr, inputs.add_generation_prompt, { + {"datetime", "Jan 29 2025 13:00:00 GMT"}, + {"functions", json(inputs.tools.empty() ? "" : inputs.tools.dump(2))}, + }, /* adjust_inputs= */ false); + if (!inputs.tools.is_null() && !inputs.tools.empty()) { + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + auto schemas = json::array(); + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + schemas.push_back({ + {"type", "object"}, + {"properties", { + {"name", { + {"type", "string"}, + {"const", function["name"]}, + }}, + {"arguments", function["parameters"]}, + }}, + {"required", json::array({"name", "arguments", "id"})}, + }); + }); + auto schema = json { + {"type", "array"}, + {"items", schemas.size() == 1 ? schemas[0] : json {{"anyOf", schemas}}}, + {"minItems", 1}, + }; + if (!inputs.parallel_tool_calls) { + schema["maxItems"] = 1; + } + builder.add_rule("root", "\" functools\"? " + builder.add_schema("tool_calls", schema)); + }, grammar_options); + data.grammar_triggers.push_back({" functools[", /* .at_start = */ false}); + data.format = COMMON_CHAT_FORMAT_FIREFUNCTION_V2; + } else { + data.format = COMMON_CHAT_FORMAT_CONTENT_ONLY; + } + return data; +} +static common_chat_msg common_chat_parse_firefunction_v2(const std::string & input) { + return parse_prefixed_json_tool_call_array(input, " functools[", /* rstrip_prefix= */ 1); +} + +static common_chat_params common_chat_params_init_functionary_v3_2(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + // >>>all\nlet's call functions>>>fn1\n{"arg1": 1...}\n>>>fn2\n{"arg1": 1...}... + // Using ">>>f1\n", ">>>f2\n"... as trigger words for the grammar + common_chat_params data; + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2; + if (!inputs.tools.is_null() && !inputs.tools.empty()) { + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + std::vector first_tool_rules; + std::vector subsequent_tool_rules; + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + std::string name = function["name"]; + auto parameters = function["parameters"]; + auto args_rule = builder.add_schema(name + "-args", parameters); + first_tool_rules.push_back(builder.add_rule(name + "-call", "\"" + name + "\\n\" " + args_rule)); + subsequent_tool_rules.push_back(builder.add_rule(name + "-call2", "\">>>" + name + "\\n\" " + args_rule)); + data.grammar_triggers.push_back({name, /* .at_start = */ true}); + data.grammar_triggers.push_back({">>>" + name, /* .at_start = */ false}); + }); + auto first_rule = first_tool_rules.empty() ? "" : builder.add_rule("first_tool_call", string_join(first_tool_rules, " | ")) + " space"; + if (inputs.parallel_tool_calls) { + auto subsequent_rule = builder.add_rule("subsequent_tool_call", string_join(subsequent_tool_rules, " | ")) + " space"; + builder.add_rule("root", first_rule + " (" + subsequent_rule + ")*"); + } else { + builder.add_rule("root", first_rule); + } + + }, grammar_options); + } + return data; +} + +static bool consume(std::string::const_iterator & it, const std::string::const_iterator & end, const std::string & expected) { + auto expected_it = expected.begin(); + auto tmp_it = it; + while (tmp_it != end && expected_it != expected.end() && *tmp_it == *expected_it) { + ++tmp_it; + ++expected_it; + } + if (expected_it == expected.end()) { + it = tmp_it; + return true; + } + return false; +} + +static common_chat_msg common_chat_parse_functionary_v3_2(const std::string & input) { + static std::regex function_regex(R"((?:>>>)?(\w+)\n)"); + static std::regex close_regex(R"($|(?=>>>))"); + + std::string content; + auto it = input.begin(); + const auto end = input.end(); + + if (consume(it, end, "all\n")) { + std::smatch match; + if (std::regex_search(it, end, match, function_regex)) { + auto fun_it = match.prefix().second; + content = std::string(it, fun_it); + it = fun_it; + } else { + common_chat_msg res; + res.role = "assistant"; + res.content = std::string(it, end); + return res; + } + } + // TODO: tighten & simplify. + auto res = parse_json_tool_calls(std::string(it, end), std::nullopt, function_regex, close_regex); + res.content = content; + return res; +} + +static common_chat_params common_chat_params_init_functionary_v3_1_llama_3_1(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + // https://github.com/MeetKai/functionary/blob/main/tests/prompt_test_v3-llama3.1.txt + common_chat_params data; + json tools = inputs.tools.is_null() ? inputs.tools : json::array(); + std::string python_code_argument_name; + auto has_raw_python = false; + + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + std::vector tool_rules; + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + const auto & parameters = function["parameters"]; + std::string name = function["name"]; + if (name == "python" || name == "ipython") { + if (!parameters.contains("type")) { + throw std::runtime_error("Missing type in python tool"); + } + has_raw_python = true; + auto type = parameters.at("type"); + if (type == "object") { + auto properties = parameters.at("properties"); + for (auto it = properties.begin(); it != properties.end(); ++it) { + if (it.value().at("type") == "string") { + if (!python_code_argument_name.empty()) { + throw std::runtime_error("Multiple string arguments found in python tool"); + } + python_code_argument_name = it.key(); + } + } + if (python_code_argument_name.empty()) { + throw std::runtime_error("No string argument found in python tool"); + } + } else if (type != "string") { + throw std::runtime_error("Invalid type in python tool: " + type.dump()); + } + } + tool_rules.push_back(builder.add_rule(name + "-call", "\"\" " + builder.add_schema(name + "-args", parameters) + " \"\" space")); + }); + if (has_raw_python) { + tool_rules.push_back(builder.add_rule("python-call", "\"<|python_tag|>\" .*")); + data.grammar_triggers.push_back({"<|python_tag|>", /* .at_start = */ false}); + } + auto tool_call = builder.add_rule("tool_call", string_join(tool_rules, " | ")) + " space"; + builder.add_rule("root", inputs.parallel_tool_calls ? "(" + tool_call + ")+" : tool_call); + data.grammar_triggers.push_back({"([\s\S\n]*)$)"); + std::smatch match; + if (std::regex_search(input, match, python_tag_regex)) { + auto code = match[1].str(); + return { + /* .role = */ "assistant", + /* .content = */ match.prefix().str(), + /* .tool_calls = */ { + { + /* .name = */ "python", + /* .arguments = */ (json {{"code", code}}).dump(), + /* .id = */ "", + }, + } + }; + } + static std::regex function_regex(R"()"); + static std::regex close_regex(R"()"); + // TODO: tighten & simplify. + return parse_json_tool_calls(input, std::nullopt, function_regex, close_regex); +} + +static common_chat_params common_chat_params_init_hermes_2_pro(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + // (content)?({"name": "foo", "arguments": {"a": 1}})* + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + std::vector tool_rules; + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + std::string name = function["name"]; + auto parameters = function["parameters"]; + builder.resolve_refs(parameters); + tool_rules.push_back(builder.add_schema(name + "-call", { + {"type", "object"}, + {"properties", json { + {"name", json {{"const", name}}}, + {"arguments", parameters}, + }}, + {"required", json::array({"name", "arguments"})}, + })); + }); + auto tool_call = "\"\" space " + builder.add_rule("tool_call", string_join(tool_rules, " | ")) + " \"\" space"; + builder.add_rule("root", inputs.parallel_tool_calls ? "(" + tool_call + ")+" : tool_call); + data.grammar_triggers.push_back({"", /* .at_start = */ false}); + // Not really a trigger but need to print this special token to get a successful parse. + data.grammar_triggers.push_back({"", /* .at_start = */ false}); + }, grammar_options); + + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_HERMES_2_PRO; + return data; +} +static common_chat_msg common_chat_parse_hermes_2_pro(const std::string & input) { + try { + std::regex start_pattern(R"([\n\s]*)"); + std::regex middle_pattern(R"([\n\s]*[\n\s]*)"); + std::regex end_pattern(R"([\n\s]*[\n\s]*$)"); + + auto end = input.end(); + std::sregex_iterator rend; + std::sregex_iterator rit(input.begin(), end, start_pattern); + if (rit == rend) { + return { + /* .role = */ "assistant", + /* .content = */ input, + /* .tool_calls = */ {}, + }; + } + + common_chat_msg result; + result.role = "assistant"; + result.content = rit->prefix(); + + auto it = rit->suffix().first; + while (it != end) { + json call; + if (!parse_json(it, end, call)) { + throw std::runtime_error("Failed to parse json tool call"); + } + const auto & arguments = call["arguments"]; + result.tool_calls.push_back({ + call["name"], + arguments.dump(), + // arguments.is_string() ? arguments.get() : arguments.dump(), + /* id= */ "", + }); + rit = {it, end, middle_pattern}; + if (rit != rend) { + it = rit->suffix().first; + } else { + rit = {it, end, end_pattern}; + if (rit == rend) { + throw std::runtime_error("Malformed input, missing "); + } + break; + } + } + return result; + } catch (const std::exception & e) { + return { + /* .role = */ "assistant", + /* .content = */ input, + /* .tool_calls = */ {}, + }; + } +} + +static common_chat_params common_chat_params_init_without_tools(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_CONTENT_ONLY; + data.grammar_lazy = false; + if (!inputs.json_schema.is_null()) { + if (!inputs.grammar.empty()) { + throw std::runtime_error("Either \"json_schema\" or \"grammar\" can be specified, but not both"); + } + data.grammar = json_schema_to_grammar(inputs.json_schema); + } else { + data.grammar = inputs.grammar.empty(); + } + return data; +} + +common_chat_params common_chat_params_init(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + auto has_tools = !inputs.tools.is_null() && inputs.tool_choice != "none"; + LOG_DBG("[%s] has_tools=%s\n", __func__, has_tools ? "true" : "false"); + + if (has_tools && !inputs.grammar.empty()) { + throw std::runtime_error("Cannot specify grammar with tools"); + } + + const auto & src = tmpl.source(); + if (src.find(">>>all") != std::string::npos) { + // Functionary prepends "all\n" to plain content outputs, so we use the parser no matter when + return common_chat_params_init_functionary_v3_2(tmpl, inputs); + } + if (src.find(" functools[") != std::string::npos) { + // Firefunction v2 requires datetime and functions in the context, even w/o tools. + return common_chat_params_init_firefunction_v2(tmpl, inputs); + } + + if (!has_tools) { + return common_chat_params_init_without_tools(tmpl, inputs); + } + + if (src.find("") != std::string::npos) { + return common_chat_params_init_hermes_2_pro(tmpl, inputs); + } + if (src.find("<|start_header_id|>") != std::string::npos + && src.find("ipython<|end_header_id|>") != std::string::npos) { + auto allow_python_tag_builtin_tools = src.find("<|python_tag|>") != std::string::npos; + return common_chat_params_init_llama_3_1_tool_calls(tmpl, inputs, allow_python_tag_builtin_tools); + } + if (src.find("<|tool▁calls▁begin|>") != std::string::npos) { + return common_chat_params_init_deepseek_r1(tmpl, inputs); + } + if (src.find("[TOOL_CALLS]") != std::string::npos) { + return common_chat_params_init_mistral_nemo(tmpl, inputs); + } + return common_chat_params_init_generic(tmpl, inputs); +} + +static common_chat_msg common_chat_parse_content_only(const std::string & input) { + return { + /* .role = */ "assistant", + /* .content = */ input, + /* .tool_calls = */ {}, + }; +} + +common_chat_msg common_chat_parse(const std::string & input, common_chat_format format) { + switch (format) { + case COMMON_CHAT_FORMAT_CONTENT_ONLY: + return common_chat_parse_content_only(input); + case COMMON_CHAT_FORMAT_GENERIC: + return common_chat_parse_generic(input); + case COMMON_CHAT_FORMAT_MISTRAL_NEMO: + return common_chat_parse_mistral_nemo(input); + case COMMON_CHAT_FORMAT_LLAMA_3_X: + return common_chat_parse_llama_3_1(input); + case COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS: + return common_chat_parse_llama_3_1(input, /* with_builtin_tools= */ true); + case COMMON_CHAT_FORMAT_DEEPSEEK_R1: + return common_chat_parse_deepseek_r1(input); + case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2: + return common_chat_parse_functionary_v3_2(input); + case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1: + return common_chat_parse_functionary_v3_1_llama_3_1(input); + case COMMON_CHAT_FORMAT_HERMES_2_PRO: + return common_chat_parse_hermes_2_pro(input); + case COMMON_CHAT_FORMAT_FIREFUNCTION_V2: + return common_chat_parse_firefunction_v2(input); + default: + throw std::runtime_error("Unsupported format: " + common_chat_format_name(format)); + } +} diff --git a/common/chat.hpp b/common/chat.hpp new file mode 100644 index 000000000..ca165aa13 --- /dev/null +++ b/common/chat.hpp @@ -0,0 +1,50 @@ +// Chat support (incl. tool call grammar constraining & output parsing) w/ generic & custom template handlers. + +#pragma once + +#include "common.h" +#include +#include +#include +#include + +using json = nlohmann::ordered_json; + +struct common_chat_inputs { + json messages; + json tools; + json tool_choice; + json json_schema; + bool parallel_tool_calls; + bool stream; + std::string grammar; + bool add_generation_prompt = true; +}; + +enum common_chat_format { + COMMON_CHAT_FORMAT_CONTENT_ONLY, + COMMON_CHAT_FORMAT_GENERIC, + COMMON_CHAT_FORMAT_MISTRAL_NEMO, + COMMON_CHAT_FORMAT_LLAMA_3_X, + COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS, + COMMON_CHAT_FORMAT_DEEPSEEK_R1, + COMMON_CHAT_FORMAT_FIREFUNCTION_V2, + COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2, + COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1, + COMMON_CHAT_FORMAT_HERMES_2_PRO, + + COMMON_CHAT_FORMAT_COUNT, // Not a format, just the # formats +}; + +struct common_chat_params { + common_chat_format format = COMMON_CHAT_FORMAT_CONTENT_ONLY; + json prompt; + std::string grammar; + bool grammar_lazy = false; + std::vector grammar_triggers; + std::vector additional_stops; +}; + +struct common_chat_params common_chat_params_init(const common_chat_template & tmpl, const struct common_chat_inputs & params); +std::string common_chat_format_name(common_chat_format format); +common_chat_msg common_chat_parse( const std::string & input, common_chat_format format); diff --git a/common/common.cpp b/common/common.cpp index 6dea8e3d2..6c81d18f9 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -12,6 +12,7 @@ #include "json.hpp" #include "json-schema-to-grammar.h" #include "llama.h" +#include "chat.hpp" #include "chat-template.hpp" #include @@ -1774,11 +1775,13 @@ std::string common_detokenize(const struct llama_vocab * vocab, const std::vecto bool common_chat_verify_template(const std::string & tmpl, bool use_jinja) { if (use_jinja) { try { - auto chat_template = minja::chat_template(tmpl, "", ""); - chat_template.apply({{ + auto chat_template = common_chat_template(tmpl, "", ""); + common_chat_inputs inputs; + inputs.messages = json::array({{ {"role", "user"}, {"content", "test"}, - }}, json(), true); + }}); + common_chat_params_init(chat_template, inputs); return true; } catch (const std::exception & e) { LOG_ERR("%s: failed to apply template: %s\n", __func__, e.what()); @@ -1800,7 +1803,10 @@ std::string common_chat_apply_template( for (const auto & msg : msgs) { messages.push_back({{"role", msg.role}, {"content", msg.content}}); } - return tmpl.apply(messages, /* tools= */ json(), add_ass); + common_chat_inputs inputs; + inputs.messages = messages; + inputs.add_generation_prompt = add_ass; + return common_chat_params_init(tmpl, inputs).prompt; } int alloc_size = 0; @@ -1855,10 +1861,10 @@ std::string common_chat_format_single( std::string common_chat_format_example(const common_chat_template & tmpl, bool use_jinja) { std::vector msgs = { - {"system", "You are a helpful assistant"}, - {"user", "Hello"}, - {"assistant", "Hi there"}, - {"user", "How are you?"}, + {"system", "You are a helpful assistant", {}}, + {"user", "Hello", {}}, + {"assistant", "Hi there", {}}, + {"user", "How are you?", {}}, }; return common_chat_apply_template(tmpl, msgs, true, use_jinja); } diff --git a/common/common.h b/common/common.h index 571260372..6c1809277 100644 --- a/common/common.h +++ b/common/common.h @@ -109,6 +109,11 @@ enum common_conversation_mode { COMMON_CONVERSATION_MODE_AUTO = 2, }; +struct common_grammar_trigger { + std::string word; + bool at_start; +}; + // sampling parameters struct common_params_sampling { uint32_t seed = LLAMA_DEFAULT_SEED; // the seed used to initialize llama_sampler @@ -154,7 +159,10 @@ struct common_params_sampling { COMMON_SAMPLER_TYPE_TEMPERATURE, }; - std::string grammar; // optional BNF-like grammar to constrain sampling + std::string grammar; // optional BNF-like grammar to constrain sampling + bool grammar_lazy = false; + std::vector grammar_trigger_words; // optional trigger words to trigger lazy grammar + std::vector grammar_trigger_tokens; // optional trigger tokens to trigger lazy grammar and print trigger special tokens. std::vector logit_bias; // logit biases to apply @@ -602,10 +610,17 @@ std::string common_detokenize( // Chat template utils // +struct common_tool_call { + std::string name; + std::string arguments; + std::string id; +}; + // same with llama_chat_message, but uses std::string struct common_chat_msg { std::string role; std::string content; + std::vector tool_calls; }; // Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 4d426b6bd..1f47e313e 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -343,7 +343,7 @@ static std::string format_literal(const std::string & literal) { class SchemaConverter { private: - friend std::string build_grammar(const std::function & cb); + friend std::string build_grammar(const std::function & cb, const common_grammar_options & options); std::function _fetch_json; bool _dotall; std::map _rules; @@ -764,10 +764,11 @@ private: public: SchemaConverter( const std::function & fetch_json, - bool dotall) + bool dotall, + bool compact_spaces) : _fetch_json(fetch_json), _dotall(dotall) { - _rules["space"] = SPACE_RULE; + _rules["space"] = compact_spaces ? "\" \"?" : SPACE_RULE; } void resolve_refs(json & schema, const std::string & url) { @@ -991,16 +992,16 @@ public: }; std::string json_schema_to_grammar(const json & schema) { - return build_grammar([&](const llama_grammar_builder & callbacks) { + return build_grammar([&](const common_grammar_builder & callbacks) { auto copy = schema; callbacks.resolve_refs(copy); callbacks.add_schema("", copy); }); } -std::string build_grammar(const std::function & cb) { - SchemaConverter converter([&](const std::string &) { return json(); }, /* dotall= */ false); - llama_grammar_builder builder { +std::string build_grammar(const std::function & cb, const common_grammar_options & options) { + SchemaConverter converter([&](const std::string &) { return json(); }, options.dotall, options.compact_spaces); + common_grammar_builder builder { /* .add_rule = */ [&](const std::string & name, const std::string & rule) { return converter._add_rule(name, rule); }, diff --git a/common/json-schema-to-grammar.h b/common/json-schema-to-grammar.h index 4f43ab3a5..ba4112cb9 100644 --- a/common/json-schema-to-grammar.h +++ b/common/json-schema-to-grammar.h @@ -7,10 +7,15 @@ std::string json_schema_to_grammar(const nlohmann::ordered_json & schema); -struct llama_grammar_builder { +struct common_grammar_builder { std::function add_rule; std::function add_schema; std::function resolve_refs; }; -std::string build_grammar(const std::function & cb); +struct common_grammar_options { + bool dotall = false; + bool compact_spaces = false; +}; + +std::string build_grammar(const std::function & cb, const common_grammar_options & options = {}); diff --git a/common/sampling.cpp b/common/sampling.cpp index 7241ac321..bc7e49fdb 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -151,9 +151,18 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, co lparams.no_perf = params.no_perf; + std::vector trigger_words; + trigger_words.reserve(params.grammar_trigger_words.size()); + for (const auto & str : params.grammar_trigger_words) { + trigger_words.push_back(str.word.c_str()); + } auto * result = new common_sampler { /* .params = */ params, - /* .grmr = */ llama_sampler_init_grammar(vocab, params.grammar.c_str(), "root"), + /* .grmr = */ params.grammar_lazy + ? llama_sampler_init_grammar_lazy(vocab, params.grammar.c_str(), "root", + trigger_words.data(), trigger_words.size(), + params.grammar_trigger_tokens.data(), params.grammar_trigger_tokens.size()) + : llama_sampler_init_grammar(vocab, params.grammar.c_str(), "root"), /* .chain = */ llama_sampler_chain_init(lparams), /* .prev = */ ring_buffer(std::max(32, params.n_prev)), /* .cur = */ {}, diff --git a/examples/gbnf-validator/gbnf-validator.cpp b/examples/gbnf-validator/gbnf-validator.cpp index 17a0e27c4..a610e6a0b 100644 --- a/examples/gbnf-validator/gbnf-validator.cpp +++ b/examples/gbnf-validator/gbnf-validator.cpp @@ -76,7 +76,7 @@ int main(int argc, char** argv) { grammar_str = buffer.str(); } - llama_grammar * grammar = llama_grammar_init_impl(nullptr, grammar_str.c_str(), "root"); + llama_grammar * grammar = llama_grammar_init_impl(nullptr, grammar_str.c_str(), "root", false, nullptr, 0, nullptr, 0); if (grammar == nullptr) { fprintf(stdout, "Failed to initialize llama_grammar\n"); return 1; diff --git a/examples/main/main.cpp b/examples/main/main.cpp index da2a03ab9..e654d3542 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -254,7 +254,7 @@ int main(int argc, char ** argv) { } } - const bool add_bos = llama_vocab_get_add_bos(vocab); + const bool add_bos = llama_vocab_get_add_bos(vocab) && !params.use_jinja; if (!llama_model_has_encoder(model)) { GGML_ASSERT(!llama_vocab_get_add_eos(vocab)); } @@ -264,9 +264,9 @@ int main(int argc, char ** argv) { std::vector embd_inp; auto chat_add_and_format = [&chat_msgs, &chat_templates](const std::string & role, const std::string & content) { - common_chat_msg new_msg{role, content}; + common_chat_msg new_msg{role, content, {}}; auto formatted = common_chat_format_single(*chat_templates.template_default, chat_msgs, new_msg, role == "user", g_params->use_jinja); - chat_msgs.push_back({role, content}); + chat_msgs.push_back({role, content, {}}); LOG_DBG("formatted: '%s'\n", formatted.c_str()); return formatted; }; @@ -503,12 +503,14 @@ int main(int argc, char ** argv) { std::vector embd; - // tokenized antiprompts - std::vector> antiprompt_ids; + // single-token antiprompts + std::vector antiprompt_token; - antiprompt_ids.reserve(params.antiprompt.size()); for (const std::string & antiprompt : params.antiprompt) { - antiprompt_ids.emplace_back(::common_tokenize(ctx, antiprompt, false, true)); + auto ids = ::common_tokenize(ctx, antiprompt, false, true); + if (ids.size() == 1) { + antiprompt_token.push_back(ids[0]); + } } if (llama_model_has_encoder(model)) { @@ -753,14 +755,11 @@ int main(int argc, char ** argv) { // check for reverse prompt using special tokens llama_token last_token = common_sampler_last(smpl); - for (std::vector ids : antiprompt_ids) { - if (ids.size() == 1 && last_token == ids[0]) { - if (params.interactive) { - is_interacting = true; - } - is_antiprompt = true; - break; + if (std::find(antiprompt_token.begin(), antiprompt_token.end(), last_token) != antiprompt_token.end()) { + if (params.interactive) { + is_interacting = true; } + is_antiprompt = true; } if (is_antiprompt) { diff --git a/examples/server/README.md b/examples/server/README.md index 44da503df..ce1ae8858 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -1117,6 +1117,82 @@ curl http://localhost:8080/v1/chat/completions \ }' ``` +... and even tool usage (needs `--jinja` flag): + + ```shell + llama-server --jinja -hfr lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF -hff Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf -fa + + # https://huggingface.co/meetkai/functionary-medium-v3.2 + llama-server --jinja -hfr bartowski/functionary-medium-v3.2-GGUF -hff functionary-medium-v3.2-IQ4_XS.gguf -fa + + # https://huggingface.co/meetkai/functionary-medium-v3.1 + llama-server --jinja -hfr meetkai/functionary-medium-v3.1-GGUF -hff functionary-medium-llama-3.1.Q4_0.gguf -fa + + curl http://localhost:8080/v1/chat/completions -d '{ + "model": "gpt-3.5-turbo", + "tools": [ + { + "type":"function", + "function":{ + "name":"get_current_weather", + "description":"Get the current weather in a given location", + "parameters":{ + "type":"object", + "properties":{ + "location":{ + "type":"string", + "description":"The city and state, e.g. San Francisco, CA" + } + }, + "required":["location"] + } + } + } + ], + "messages": [ + { + "role": "user", + "content": "What is the weather like in Istanbul?." + } + ] + }' + ``` + +
+ Show output + + ```json + { + "choices": [ + { + "finish_reason": "tool", + "index": 0, + "message": { + "content": null, + "tool_calls": [ + { + "name": "python", + "arguments": "{\"code\":\" \\nprint(\\\"Hello, World!\\\")\"}" + } + ], + "role": "assistant" + } + } + ], + "created": 1727287211, + "model": "gpt-3.5-turbo", + "object": "chat.completion", + "usage": { + "completion_tokens": 16, + "prompt_tokens": 44, + "total_tokens": 60 + }, + "id": "chatcmpl-Htbgh9feMmGM0LEH2hmQvwsCxq3c6Ni8" + } + ``` + +
+ ### POST `/v1/embeddings`: OpenAI-compatible embeddings API This endpoint requires that the model uses a pooling different than type `none`. The embeddings are normalized using the Eucledian norm. diff --git a/examples/server/server.cpp b/examples/server/server.cpp index b9aa5c81c..d1ea343dd 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -113,10 +113,11 @@ struct slot_params { struct common_params_speculative speculative; // OAI-compat fields - bool verbose = false; - oaicompat_type oaicompat = OAICOMPAT_TYPE_NONE; - std::string oaicompat_model; - std::string oaicompat_cmpl_id; + bool verbose = false; + oaicompat_type oaicompat = OAICOMPAT_TYPE_NONE; + std::string oaicompat_model; + std::string oaicompat_cmpl_id; + common_chat_format oaicompat_chat_format = COMMON_CHAT_FORMAT_CONTENT_ONLY; json to_json() const { std::vector samplers; @@ -164,6 +165,8 @@ struct slot_params { {"n_probs", sampling.n_probs}, {"min_keep", sampling.min_keep}, {"grammar", sampling.grammar}, + // {"grammar_trigger_words", sampling.grammar_trigger_words}, + {"grammar_trigger_tokens", sampling.grammar_trigger_tokens}, {"samplers", samplers}, {"speculative.n_max", speculative.n_max}, {"speculative.n_min", speculative.n_min}, @@ -325,12 +328,50 @@ struct server_task { if (data.contains("json_schema") && !data.contains("grammar")) { try { auto schema = json_value(data, "json_schema", json::object()); - params.sampling.grammar = json_schema_to_grammar(schema); + LOG_DBG("JSON schema: %s\n", schema.dump(2).c_str()); + params.sampling.grammar = json_schema_to_grammar(schema); + LOG_DBG("Converted grammar: %s\n", params.sampling.grammar.c_str()); } catch (const std::exception & e) { throw std::runtime_error(std::string("\"json_schema\": ") + e.what()); } } else { - params.sampling.grammar = json_value(data, "grammar", defaults.sampling.grammar); + params.sampling.grammar = json_value(data, "grammar", defaults.sampling.grammar); + LOG_DBG("Grammar: %s\n", params.sampling.grammar.c_str()); + params.sampling.grammar_lazy = json_value(data, "grammar_lazy", defaults.sampling.grammar_lazy); + LOG_DBG("Grammar lazy: %s\n", params.sampling.grammar_lazy ? "true" : "false"); + } + + { + auto it = data.find("chat_format"); + if (it != data.end()) { + params.oaicompat_chat_format = static_cast(it->get()); + LOG_DBG("Chat format: %s\n", common_chat_format_name(params.oaicompat_chat_format).c_str()); + } else { + params.oaicompat_chat_format = defaults.oaicompat_chat_format; + } + } + + { + const auto grammar_triggers = data.find("grammar_triggers"); + if (grammar_triggers != data.end()) { + for (const auto & t : *grammar_triggers) { + common_grammar_trigger trigger; + trigger.word = t.at("word"); + trigger.at_start = t.at("at_start"); + + auto ids = common_tokenize(vocab, trigger.word, /* add_special= */ false, /* parse_special= */ true); + if (ids.size() == 1) { + LOG_DBG("Grammar trigger token: %d (`%s`)\n", ids[0], trigger.word.c_str()); + params.sampling.grammar_trigger_tokens.push_back(ids[0]); + continue; + } + LOG_DBG("Grammar trigger word: `%s`\n", trigger.word.c_str()); + params.sampling.grammar_trigger_words.push_back(trigger); + } + } + if (params.sampling.grammar_lazy) { + GGML_ASSERT(params.sampling.grammar_trigger_tokens.size() > 0 || params.sampling.grammar_trigger_words.size() > 0); + } } { @@ -382,22 +423,12 @@ struct server_task { } { - const auto & samplers = data.find("samplers"); + const auto samplers = data.find("samplers"); if (samplers != data.end()) { if (samplers->is_array()) { - std::vector sampler_names; - for (const auto & name : *samplers) { - if (name.is_string()) { - sampler_names.emplace_back(name); - } - } - params.sampling.samplers = common_sampler_types_from_names(sampler_names, false); + params.sampling.samplers = common_sampler_types_from_names(*samplers, false); } else if (samplers->is_string()){ - std::string sampler_string; - for (const auto & name : *samplers) { - sampler_string += name; - } - params.sampling.samplers = common_sampler_types_from_chars(sampler_string); + params.sampling.samplers = common_sampler_types_from_chars(samplers->get()); } } else { params.sampling.samplers = defaults.sampling.samplers; @@ -544,7 +575,7 @@ struct completion_token_output { struct server_task_result_cmpl_final : server_task_result { int index = 0; - std::string content; + std::string content; llama_tokens tokens; bool stream; @@ -566,10 +597,11 @@ struct server_task_result_cmpl_final : server_task_result { slot_params generation_params; // OAI-compat fields - bool verbose = false; - oaicompat_type oaicompat = OAICOMPAT_TYPE_NONE; - std::string oaicompat_model; - std::string oaicompat_cmpl_id; + bool verbose = false; + oaicompat_type oaicompat = OAICOMPAT_TYPE_NONE; + std::string oaicompat_model; + std::string oaicompat_cmpl_id; + common_chat_format oaicompat_chat_format = COMMON_CHAT_FORMAT_CONTENT_ONLY; virtual int get_index() override { return index; @@ -663,18 +695,38 @@ struct server_task_result_cmpl_final : server_task_result { json to_json_oaicompat_chat() { std::string finish_reason = "length"; + common_chat_msg message; if (stop == STOP_TYPE_WORD || stop == STOP_TYPE_EOS) { - finish_reason = "stop"; + message = common_chat_parse(content, oaicompat_chat_format); + finish_reason = message.tool_calls.empty() ? "stop" : "tool_calls"; + } else { + message.content = content; } - json choice = json{ + json tool_calls; + if (!message.tool_calls.empty()) { + tool_calls = json::array(); + for (const auto & tc : message.tool_calls) { + tool_calls.push_back({ + {"type", "function"}, + {"function", { + {"name", tc.name}, + {"arguments", tc.arguments}, + }}, + {"id", tc.id.empty() ? json() : json(tc.id)}, + }); + } + } + + json choice { {"finish_reason", finish_reason}, {"index", 0}, {"message", json { - {"content", content}, - {"role", "assistant"} - } - }}; + {"content", message.content}, + {"tool_calls", tool_calls}, + {"role", "assistant"}, + }}, + }; if (!stream && probs_output.size() > 0) { choice["logprobs"] = json{ @@ -716,7 +768,7 @@ struct server_task_result_cmpl_final : server_task_result { finish_reason = "stop"; } - json choice = json{ + json choice = json { {"finish_reason", finish_reason}, {"index", 0}, {"delta", json::object()} @@ -1191,6 +1243,8 @@ struct server_slot { llama_token sampled; + common_chat_format chat_format = COMMON_CHAT_FORMAT_CONTENT_ONLY; + // stats size_t n_sent_text = 0; // number of sent text character @@ -1815,17 +1869,16 @@ struct server_context { if (use_jinja) { auto templates = common_chat_templates_from_model(model, ""); + common_chat_inputs inputs; + inputs.messages = json::array({{ + {"role", "user"}, + {"content", "test"}, + }}); GGML_ASSERT(templates.template_default); try { - templates.template_default->apply({{ - {"role", "user"}, - {"content", "test"}, - }}, json(), true); + common_chat_params_init(*templates.template_default, inputs); if (templates.template_tool_use) { - templates.template_tool_use->apply({{ - {"role", "user"}, - {"content", "test"}, - }}, json(), true); + common_chat_params_init(*templates.template_tool_use, inputs); } return true; } catch (const std::exception & e) { @@ -2275,11 +2328,11 @@ struct server_context { res->id_slot = slot.id; res->index = slot.index; - res->content = slot.generated_text; - res->tokens = slot.generated_tokens; + res->content = std::move(slot.generated_text); + res->tokens = std::move(slot.generated_tokens); res->timings = slot.get_timings(); res->prompt = common_detokenize(ctx, slot.prompt_tokens, true); - res->response_fields = slot.params.response_fields; + res->response_fields = std::move(slot.params.response_fields); res->truncated = slot.truncated; res->n_decoded = slot.n_decoded; @@ -2290,12 +2343,12 @@ struct server_context { res->stop = slot.stop; res->post_sampling_probs = slot.params.post_sampling_probs; - res->verbose = slot.params.verbose; - res->stream = slot.params.stream; - res->oaicompat = slot.params.oaicompat; - res->oaicompat_model = slot.params.oaicompat_model; - res->oaicompat_cmpl_id = slot.params.oaicompat_cmpl_id; - + res->verbose = slot.params.verbose; + res->stream = slot.params.stream; + res->oaicompat = slot.params.oaicompat; + res->oaicompat_model = slot.params.oaicompat_model; + res->oaicompat_cmpl_id = slot.params.oaicompat_cmpl_id; + res->oaicompat_chat_format = slot.params.oaicompat_chat_format; // populate res.probs_output if (slot.params.sampling.n_probs > 0) { if (!slot.params.stream && slot.stop == STOP_TYPE_WORD) { @@ -2773,6 +2826,11 @@ struct server_context { // track if given slot can be batched with slots already in the batch server_slot * slot_batched = nullptr; + auto accept_special_token = [&](server_slot & slot, llama_token token) { + const auto & trigger_tokens = slot.params.sampling.grammar_trigger_tokens; + return params_base.special || std::find(trigger_tokens.begin(), trigger_tokens.end(), token) != trigger_tokens.end(); + }; + // frist, add sampled tokens from any ongoing sequences for (auto & slot : slots) { if (slot.state != SLOT_STATE_GENERATING) { @@ -3136,7 +3194,7 @@ struct server_context { completion_token_output result; result.tok = id; - result.text_to_send = common_token_to_piece(ctx, result.tok, params_base.special); + result.text_to_send = common_token_to_piece(ctx, result.tok, accept_special_token(slot, result.tok)); result.prob = 1.0f; // TODO: set it here instead of doing inside populate_token_probs if (slot.params.sampling.n_probs > 0) { @@ -3225,7 +3283,7 @@ struct server_context { completion_token_output result; result.tok = ids[i]; - result.text_to_send = common_token_to_piece(ctx, result.tok, params_base.special); + result.text_to_send = common_token_to_piece(ctx, result.tok, accept_special_token(slot, result.tok)); result.prob = 1.0f; // set later // TODO: set result.probs @@ -3722,6 +3780,8 @@ int main(int argc, char ** argv) { { "total_slots", ctx_server.params_base.n_parallel }, { "model_path", ctx_server.params_base.model }, { "chat_template", ctx_server.chat_templates.template_default->source() }, + { "bos_token", ctx_server.chat_templates.template_default->bos_token() }, + { "eos_token", ctx_server.chat_templates.template_default->eos_token() }, { "build_info", build_info }, }; if (ctx_server.params_base.use_jinja && ctx_server.chat_templates.template_tool_use) { @@ -3763,7 +3823,9 @@ int main(int argc, char ** argv) { std::vector tasks; try { - std::vector tokenized_prompts = tokenize_input_prompts(ctx_server.vocab, data.at("prompt"), true, true); + const auto & prompt = data.at("prompt"); + LOG_DBG("Prompt: %s\n", prompt.is_string() ? prompt.get().c_str() : prompt.dump(2).c_str()); + std::vector tokenized_prompts = tokenize_input_prompts(ctx_server.vocab, prompt, true, true); tasks.reserve(tokenized_prompts.size()); for (size_t i = 0; i < tokenized_prompts.size(); i++) { server_task task = server_task(type); @@ -3779,8 +3841,8 @@ int main(int argc, char ** argv) { task.id_selected_slot = json_value(data, "id_slot", -1); // OAI-compat - task.params.oaicompat = oaicompat; - task.params.oaicompat_cmpl_id = completion_id; + task.params.oaicompat = oaicompat; + task.params.oaicompat_cmpl_id = completion_id; // oaicompat_model is already populated by params_from_json_cmpl tasks.push_back(task); @@ -3949,14 +4011,14 @@ int main(int argc, char ** argv) { }; const auto handle_chat_completions = [&ctx_server, ¶ms, &res_error, &handle_completions_impl](const httplib::Request & req, httplib::Response & res) { + LOG_DBG("request: %s\n", req.body.c_str()); if (ctx_server.params_base.embedding) { res_error(res, format_error_response("This server does not support completions. Start it without `--embeddings`", ERROR_TYPE_NOT_SUPPORTED)); return; } auto body = json::parse(req.body); - const auto & chat_template = body.contains("tools") && ctx_server.chat_templates.template_tool_use ? *ctx_server.chat_templates.template_tool_use : *ctx_server.chat_templates.template_default; - json data = oaicompat_completion_params_parse(body, chat_template, params.use_jinja); + json data = oaicompat_completion_params_parse(body, params.use_jinja, ctx_server.chat_templates); return handle_completions_impl( SERVER_TASK_TYPE_COMPLETION, @@ -3966,6 +4028,13 @@ int main(int argc, char ** argv) { OAICOMPAT_TYPE_CHAT); }; + // same with handle_chat_completions, but without inference part + const auto handle_apply_template = [&ctx_server, ¶ms, &res_ok](const httplib::Request & req, httplib::Response & res) { + auto body = json::parse(req.body); + json data = oaicompat_completion_params_parse(body, params.use_jinja, ctx_server.chat_templates); + res_ok(res, {{ "prompt", std::move(data.at("prompt")) }}); + }; + const auto handle_models = [¶ms, &ctx_server, &res_ok](const httplib::Request &, httplib::Response & res) { json models = { {"object", "list"}, @@ -4124,14 +4193,6 @@ int main(int argc, char ** argv) { res_ok(res, root); }; - const auto handle_apply_template = [&ctx_server, ¶ms, &res_ok](const httplib::Request & req, httplib::Response & res) { - auto body = json::parse(req.body); - const auto & chat_template = body.contains("tools") && ctx_server.chat_templates.template_tool_use ? *ctx_server.chat_templates.template_tool_use : *ctx_server.chat_templates.template_default; - json data = oaicompat_completion_params_parse(body, chat_template, params.use_jinja); - - res_ok(res, {{ "prompt", data.at("prompt") }}); - }; - const auto handle_embeddings = [&handle_embeddings_impl](const httplib::Request & req, httplib::Response & res) { handle_embeddings_impl(req, res, OAICOMPAT_TYPE_NONE); }; diff --git a/examples/server/tests/README.md b/examples/server/tests/README.md index 5787276ab..1de0eb30e 100644 --- a/examples/server/tests/README.md +++ b/examples/server/tests/README.md @@ -31,8 +31,9 @@ It's possible to override some scenario steps values with environment variables: | `LLAMA_SERVER_BIN_PATH` | to change the server binary path, default: `../../../build/bin/llama-server` | | `DEBUG` | to enable steps and server verbose mode `--verbose` | | `N_GPU_LAYERS` | number of model layers to offload to VRAM `-ngl --n-gpu-layers` | +| `LLAMA_CACHE` | by default server tests re-download models to the `tmp` subfolder. Set this to your cache (e.g. `$HOME/Library/Caches/llama.cpp` on Mac or `$HOME/.cache/llama.cpp` on Unix) to avoid this | -To run slow tests: +To run slow tests (will download many models, make sure to set `LLAMA_CACHE` if needed): ```shell SLOW_TESTS=1 ./tests.sh @@ -44,10 +45,16 @@ To run with stdout/stderr display in real time (verbose output, but useful for d DEBUG=1 ./tests.sh -s -v -x ``` -To run single test unit: +To run all the tests in a file: ```shell -./tests.sh unit/test_{name of test case here}.py -v -x +./tests.sh unit/test_chat_completion.py.py -v -x +``` + +To run a single test: + +```shell +./tests.sh unit/test_chat_completion.py::test_invalid_chat_completion_req ``` Hint: You can compile and run test in single command, useful for local developement: diff --git a/examples/server/tests/pytest.ini b/examples/server/tests/pytest.ini new file mode 100644 index 000000000..6df308df7 --- /dev/null +++ b/examples/server/tests/pytest.ini @@ -0,0 +1,4 @@ +[pytest] +markers = + slow: marks tests as slow (deselect with '-m "not slow"') + serial diff --git a/examples/server/tests/tests.sh b/examples/server/tests/tests.sh index 1e0777de3..33fa8cc64 100755 --- a/examples/server/tests/tests.sh +++ b/examples/server/tests/tests.sh @@ -6,9 +6,18 @@ cd $SCRIPT_DIR set -eu +if [[ "${SLOW_TESTS:-0}" == 1 ]]; then + # Slow tests for tool calls need quite a few models ahead of time to avoid timing out. + python $SCRIPT_DIR/../../../scripts/fetch_server_test_models.py +fi + if [ $# -lt 1 ] then - pytest -v -x + if [[ "${SLOW_TESTS:-0}" == 1 ]]; then + pytest -v -x + else + pytest -v -x -m "not slow" + fi else pytest "$@" fi diff --git a/examples/server/tests/unit/test_chat_completion.py b/examples/server/tests/unit/test_chat_completion.py index add3f810f..0be04bab5 100644 --- a/examples/server/tests/unit/test_chat_completion.py +++ b/examples/server/tests/unit/test_chat_completion.py @@ -2,7 +2,7 @@ import pytest from openai import OpenAI from utils import * -server = ServerPreset.tinyllama2() +server: ServerProcess @pytest.fixture(autouse=True) def create_server(): @@ -13,11 +13,12 @@ def create_server(): @pytest.mark.parametrize( "model,system_prompt,user_prompt,max_tokens,re_content,n_prompt,n_predicted,finish_reason,jinja,chat_template", [ - (None, "Book", "What is the best book", 8, "(Suddenly)+", 77, 8, "length", False, None), - (None, "Book", "What is the best book", 8, "(Suddenly)+", 77, 8, "length", True, None), - (None, "Book", "What is the best book", 8, "^ blue", 23, 8, "length", True, "This is not a chat template, it is"), + (None, "Book", "What is the best book", 8, "(Suddenly)+|\\{ \" Sarax.", 77, 8, "length", False, None), ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", False, None), - ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", True, None), + # TODO: fix testing of non-tool jinja mode + # (None, "Book", "What is the best book", 8, "(Suddenly)+|\\{ \" Sarax.", 77, 8, "length", True, None), + # (None, "Book", "What is the best book", 8, "I want to play with", 23, 8, "length", True, "This is not a chat template, it is"), + # ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", True, None), ] ) def test_chat_completion(model, system_prompt, user_prompt, max_tokens, re_content, n_prompt, n_predicted, finish_reason, jinja, chat_template): diff --git a/examples/server/tests/unit/test_tool_call.py b/examples/server/tests/unit/test_tool_call.py new file mode 100644 index 000000000..e6ed9c9be --- /dev/null +++ b/examples/server/tests/unit/test_tool_call.py @@ -0,0 +1,352 @@ +import pytest +from utils import * + +server: ServerProcess + +TIMEOUT_SERVER_START = 15*60 +TIMEOUT_HTTP_REQUEST = 60 + +@pytest.fixture(autouse=True) +def create_server(): + global server + server = ServerPreset.tinyllama2() + server.model_alias = "tinyllama-2-tool-call" + server.server_port = 8081 + + +TEST_TOOL = { + "type":"function", + "function": { + "name": "test", + "description": "", + "parameters": { + "type": "object", + "properties": { + "success": {"type": "boolean", "const": True}, + }, + "required": ["success"] + } + } +} + +PYTHON_TOOL = { + "type": "function", + "function": { + "name": "python", + "description": "Runs code in an ipython interpreter and returns the result of the execution after 60 seconds.", + "parameters": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The code to run in the ipython interpreter." + } + }, + "required": ["code"] + } + } +} + +WEATHER_TOOL = { + "type":"function", + "function":{ + "name":"get_current_weather", + "description":"Get the current weather in a given location", + "parameters":{ + "type":"object", + "properties":{ + "location":{ + "type":"string", + "description":"The city and country/state, e.g. 'San Francisco, CA', or 'Paris, France'" + } + }, + "required":["location"] + } + } +} + + +def do_test_completion_with_required_tool_tiny(template_name: str, tool: dict, argument_key: str | None): + n_predict = 512 + global server + # server = ServerPreset.stories15m_moe() + server.jinja = True + server.n_predict = n_predict + server.chat_template_file = f'../../../models/templates/{template_name}.jinja' + server.start(timeout_seconds=TIMEOUT_SERVER_START) + res = server.make_request("POST", "/chat/completions", data={ + "max_tokens": n_predict, + "messages": [ + {"role": "system", "content": "You are a coding assistant."}, + {"role": "user", "content": "Write an example"}, + ], + "tool_choice": "required", + "tools": [tool], + "parallel_tool_calls": False, + "temperature": 0.0, + "top_k": 1, + "top_p": 1.0, + }) + assert res.status_code == 200, f"Expected status code 200, got {res.status_code}" + choice = res.body["choices"][0] + tool_calls = choice["message"].get("tool_calls") + assert tool_calls and len(tool_calls) == 1, f'Expected 1 tool call in {choice["message"]}' + tool_call = tool_calls[0] + expected_function_name = "python" if tool["type"] == "code_interpreter" else tool["function"]["name"] + assert expected_function_name == tool_call["function"]["name"] + actual_arguments = tool_call["function"]["arguments"] + assert isinstance(actual_arguments, str) + if argument_key is not None: + actual_arguments = json.loads(actual_arguments) + assert argument_key in actual_arguments, f"tool arguments: {json.dumps(actual_arguments)}, expected: {argument_key}" + + +@pytest.mark.parametrize("template_name,tool,argument_key", [ + ("google-gemma-2-2b-it", TEST_TOOL, "success"), + ("meta-llama-Llama-3.3-70B-Instruct", TEST_TOOL, "success"), + ("meta-llama-Llama-3.3-70B-Instruct", PYTHON_TOOL, "code"), +]) +def test_completion_with_required_tool_tiny_fast(template_name: str, tool: dict, argument_key: str | None): + do_test_completion_with_required_tool_tiny(template_name, tool, argument_key) + + +@pytest.mark.slow +@pytest.mark.parametrize("template_name,tool,argument_key", [ + ("meta-llama-Llama-3.1-8B-Instruct", TEST_TOOL, "success"), + ("meta-llama-Llama-3.1-8B-Instruct", PYTHON_TOOL, "code"), + ("meetkai-functionary-medium-v3.1", TEST_TOOL, "success"), + ("meetkai-functionary-medium-v3.1", PYTHON_TOOL, "code"), + ("meetkai-functionary-medium-v3.2", TEST_TOOL, "success"), + ("meetkai-functionary-medium-v3.2", PYTHON_TOOL, "code"), + ("NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use", TEST_TOOL, "success"), + ("NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use", PYTHON_TOOL, "code"), + ("meta-llama-Llama-3.2-3B-Instruct", TEST_TOOL, "success"), + ("meta-llama-Llama-3.2-3B-Instruct", PYTHON_TOOL, "code"), + ("mistralai-Mistral-Nemo-Instruct-2407", TEST_TOOL, "success"), + ("mistralai-Mistral-Nemo-Instruct-2407", PYTHON_TOOL, "code"), + ("NousResearch-Hermes-3-Llama-3.1-8B-tool_use", TEST_TOOL, "success"), + ("NousResearch-Hermes-3-Llama-3.1-8B-tool_use", PYTHON_TOOL, "code"), + ("deepseek-ai-DeepSeek-R1-Distill-Llama-8B", TEST_TOOL, "success"), + ("deepseek-ai-DeepSeek-R1-Distill-Llama-8B", PYTHON_TOOL, "code"), + ("fireworks-ai-llama-3-firefunction-v2", TEST_TOOL, "success"), + ("fireworks-ai-llama-3-firefunction-v2", PYTHON_TOOL, "code"), +]) +def test_completion_with_required_tool_tiny_slow(template_name: str, tool: dict, argument_key: str | None): + do_test_completion_with_required_tool_tiny(template_name, tool, argument_key) + + +@pytest.mark.slow +@pytest.mark.parametrize("tool,argument_key,hf_repo,template_override", [ + (TEST_TOOL, "success", "bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M", None), + (PYTHON_TOOL, "code", "bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M", None), + (TEST_TOOL, "success", "bartowski/gemma-2-2b-it-GGUF:Q4_K_M", None), + (PYTHON_TOOL, "code", "bartowski/gemma-2-2b-it-GGUF:Q4_K_M", None), + (TEST_TOOL, "success", "bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M", None), + (PYTHON_TOOL, "code", "bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M", None), + (TEST_TOOL, "success", "bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M", None), + (PYTHON_TOOL, "code", "bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M", None), + (TEST_TOOL, "success", "bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-2-Pro-Llama-3-8B", "tool_use")), + (PYTHON_TOOL, "code", "bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-2-Pro-Llama-3-8B", "tool_use")), + (TEST_TOOL, "success", "bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-3-Llama-3.1-8B", "tool_use")), + (PYTHON_TOOL, "code", "bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-3-Llama-3.1-8B", "tool_use")), + (TEST_TOOL, "success", "bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M", None), + (PYTHON_TOOL, "code", "bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M", None), + (TEST_TOOL, "success", "bartowski/functionary-small-v3.2-GGUF:Q8_0", ("meetkai/functionary-medium-v3.2", None)), + (PYTHON_TOOL, "code", "bartowski/functionary-small-v3.2-GGUF:Q8_0", ("meetkai/functionary-medium-v3.2", None)), + (TEST_TOOL, "success", "bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + (PYTHON_TOOL, "code", "bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + (TEST_TOOL, "success", "bartowski/Llama-3.2-1B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + (PYTHON_TOOL, "code", "bartowski/Llama-3.2-1B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + # TODO: fix these + # (TEST_TOOL, "success", "bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M", None), + # (PYTHON_TOOL, "code", "bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M", None), +]) +def test_completion_with_required_tool_real_model(tool: dict, argument_key: str | None, hf_repo: str, template_override: Tuple[str, str | None] | None): + n_predict = 512 + server.n_slots = 1 + server.jinja = True + server.n_ctx = 8192 + server.n_predict = n_predict + server.model_hf_repo = hf_repo + server.model_hf_file = None + if template_override: + (template_hf_repo, template_variant) = template_override + server.chat_template_file = f"../../../models/templates/{template_hf_repo.replace('/', '-') + ('-' + template_variant if template_variant else '')}.jinja" + assert os.path.exists(server.chat_template_file), f"Template file {server.chat_template_file} does not exist. Run `python scripts/get_chat_template.py {template_hf_repo} {template_variant} > {server.chat_template_file}` to download the template." + server.start(timeout_seconds=TIMEOUT_SERVER_START) + res = server.make_request("POST", "/chat/completions", data={ + "max_tokens": n_predict, + "messages": [ + {"role": "system", "content": "You are a coding assistant."}, + {"role": "user", "content": "Write an example"}, + ], + "tool_choice": "required", + "tools": [tool], + "parallel_tool_calls": False, + "temperature": 0.0, + "top_k": 1, + "top_p": 1.0, + }, timeout=TIMEOUT_HTTP_REQUEST) + assert res.status_code == 200, f"Expected status code 200, got {res.status_code}" + choice = res.body["choices"][0] + tool_calls = choice["message"].get("tool_calls") + assert tool_calls and len(tool_calls) == 1, f'Expected 1 tool call in {choice["message"]}' + tool_call = tool_calls[0] + expected_function_name = "python" if tool["type"] == "code_interpreter" else tool["function"]["name"] + assert expected_function_name == tool_call["function"]["name"] + actual_arguments = tool_call["function"]["arguments"] + assert isinstance(actual_arguments, str) + if argument_key is not None: + actual_arguments = json.loads(actual_arguments) + assert argument_key in actual_arguments, f"tool arguments: {json.dumps(actual_arguments)}, expected: {argument_key}" + + +def do_test_completion_without_tool_call(template_name: str, n_predict: int, tools: list[dict], tool_choice: str | None): + global server + server.jinja = True + server.n_predict = n_predict + server.chat_template_file = f'../../../models/templates/{template_name}.jinja' + server.start(timeout_seconds=TIMEOUT_SERVER_START) + res = server.make_request("POST", "/chat/completions", data={ + "max_tokens": n_predict, + "messages": [ + {"role": "system", "content": "You are a coding assistant."}, + {"role": "user", "content": "say hello world with python"}, + ], + "tools": tools if tools else None, + "tool_choice": tool_choice, + "temperature": 0.0, + "top_k": 1, + "top_p": 1.0, + }, timeout=TIMEOUT_HTTP_REQUEST) + assert res.status_code == 200, f"Expected status code 200, got {res.status_code}" + choice = res.body["choices"][0] + assert choice["message"].get("tool_calls") is None, f'Expected no tool call in {choice["message"]}' + + +@pytest.mark.parametrize("template_name,n_predict,tools,tool_choice", [ + ("meta-llama-Llama-3.3-70B-Instruct", 128, [], None), + ("meta-llama-Llama-3.3-70B-Instruct", 128, [TEST_TOOL], None), + ("meta-llama-Llama-3.3-70B-Instruct", 128, [PYTHON_TOOL], 'none'), +]) +def test_completion_without_tool_call_fast(template_name: str, n_predict: int, tools: list[dict], tool_choice: str | None): + do_test_completion_without_tool_call(template_name, n_predict, tools, tool_choice) + + +@pytest.mark.slow +@pytest.mark.parametrize("template_name,n_predict,tools,tool_choice", [ + ("meetkai-functionary-medium-v3.2", 256, [], None), + ("meetkai-functionary-medium-v3.2", 256, [TEST_TOOL], None), + ("meetkai-functionary-medium-v3.2", 256, [PYTHON_TOOL], 'none'), + ("meetkai-functionary-medium-v3.1", 256, [], None), + ("meetkai-functionary-medium-v3.1", 256, [TEST_TOOL], None), + ("meetkai-functionary-medium-v3.1", 256, [PYTHON_TOOL], 'none'), + ("meta-llama-Llama-3.2-3B-Instruct", 256, [], None), + ("meta-llama-Llama-3.2-3B-Instruct", 256, [TEST_TOOL], None), + ("meta-llama-Llama-3.2-3B-Instruct", 256, [PYTHON_TOOL], 'none'), +]) +def test_completion_without_tool_call_slow(template_name: str, n_predict: int, tools: list[dict], tool_choice: str | None): + do_test_completion_without_tool_call(template_name, n_predict, tools, tool_choice) + + +@pytest.mark.slow +@pytest.mark.parametrize("hf_repo,template_override", [ + ("bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M", None), + ("bartowski/gemma-2-2b-it-GGUF:Q4_K_M", None), + ("bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M", None), + ("bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M", None), + ("bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-2-Pro-Llama-3-8B", "tool_use")), + ("bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-3-Llama-3.1-8B", "tool_use")), + ("bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M", None), + ("bartowski/functionary-small-v3.2-GGUF:Q8_0", ("meetkai/functionary-medium-v3.2", None)), + ("bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + # ("bartowski/Llama-3.2-1B-Instruct-GGUF:Q4_K_M", ("meta-llama/Llama-3.2-3B-Instruct", None)), + # ("bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M", None), +]) +def test_weather_tool_call(hf_repo: str, template_override: Tuple[str, str | None] | None): + global server + server.n_slots = 1 + server.jinja = True + server.n_ctx = 8192 + server.n_predict = 512 + server.model_hf_repo = hf_repo + server.model_hf_file = None + if template_override: + (template_hf_repo, template_variant) = template_override + server.chat_template_file = f"../../../models/templates/{template_hf_repo.replace('/', '-') + ('-' + template_variant if template_variant else '')}.jinja" + assert os.path.exists(server.chat_template_file), f"Template file {server.chat_template_file} does not exist. Run `python scripts/get_chat_template.py {template_hf_repo} {template_variant} > {server.chat_template_file}` to download the template." + server.start(timeout_seconds=TIMEOUT_SERVER_START) + res = server.make_request("POST", "/chat/completions", data={ + "max_tokens": 256, + "messages": [ + {"role": "user", "content": "What is the weather in Istanbul?"}, + ], + "tools": [WEATHER_TOOL], + }, timeout=TIMEOUT_HTTP_REQUEST) + assert res.status_code == 200, f"Expected status code 200, got {res.status_code}" + choice = res.body["choices"][0] + tool_calls = choice["message"].get("tool_calls") + assert tool_calls and len(tool_calls) == 1, f'Expected 1 tool call in {choice["message"]}' + tool_call = tool_calls[0] + assert tool_call["function"]["name"] == WEATHER_TOOL["function"]["name"] + actual_arguments = json.loads(tool_call["function"]["arguments"]) + assert 'location' in actual_arguments, f"location not found in {json.dumps(actual_arguments)}" + location = actual_arguments["location"] + assert isinstance(location, str), f"Expected location to be a string, got {type(location)}: {json.dumps(location)}" + assert re.match('^Istanbul(, (TR|Turkey|Türkiye))?$', location), f'Expected Istanbul for location, got {location}' + + +@pytest.mark.slow +@pytest.mark.parametrize("expected_arguments_override,hf_repo,template_override", [ + (None, "bartowski/gemma-2-2b-it-GGUF:Q4_K_M", None), + (None, "bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M", None), + (None, "bartowski/functionary-small-v3.2-GGUF:Q8_0", ("meetkai-functionary-medium-v3.2", None)), + ('{"code":"print("}', "bartowski/Meta-Llama-3.1-8B-Instruct-GGUF:Q4_K_M", None), + (None, "bartowski/Llama-3.2-1B-Instruct-GGUF:Q4_K_M", ("meta-llama-Llama-3.2-3B-Instruct", None)), + ('{"code":"print("}', "bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M", ("meta-llama-Llama-3.2-3B-Instruct", None)), + (None, "bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M", None), + (None, "bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M", ("NousResearch/Hermes-2-Pro-Llama-3-8B", "tool_use")), + (None, "bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M", ("NousResearch-Hermes-3-Llama-3.1-8B", "tool_use")), + (None, "bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M", None), + # (None, "bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M", None), +]) +def test_hello_world_tool_call(expected_arguments_override: str | None, hf_repo: str, template_override: Tuple[str, str | None] | None): + global server + server.n_slots = 1 + server.jinja = True + server.n_ctx = 8192 + server.n_predict = 128 + server.model_hf_repo = hf_repo + server.model_hf_file = None + if template_override: + (template_hf_repo, template_variant) = template_override + server.chat_template_file = f"../../../models/templates/{template_hf_repo.replace('/', '-') + ('-' + template_variant if template_variant else '')}.jinja" + assert os.path.exists(server.chat_template_file), f"Template file {server.chat_template_file} does not exist. Run `python scripts/get_chat_template.py {template_hf_repo} {template_variant} > {server.chat_template_file}` to download the template." + server.start(timeout_seconds=TIMEOUT_SERVER_START) + res = server.make_request("POST", "/chat/completions", data={ + "max_tokens": 256, + "messages": [ + {"role": "system", "content": "You are a coding assistant."}, + {"role": "user", "content": "say hello world with python"}, + ], + "tools": [PYTHON_TOOL], + # Note: without these greedy params, Functionary v3.2 writes `def hello_world():\n print("Hello, World!")\nhello_world()` which is correct but a pain to test. + "temperature": 0.0, + "top_k": 1, + "top_p": 1.0, + }, timeout=TIMEOUT_HTTP_REQUEST) + assert res.status_code == 200, f"Expected status code 200, got {res.status_code}" + choice = res.body["choices"][0] + tool_calls = choice["message"].get("tool_calls") + assert tool_calls and len(tool_calls) == 1, f'Expected 1 tool call in {choice["message"]}' + tool_call = tool_calls[0] + assert tool_call["function"]["name"] == PYTHON_TOOL["function"]["name"] + actual_arguments = tool_call["function"]["arguments"] + if expected_arguments_override is not None: + assert actual_arguments == expected_arguments_override + else: + actual_arguments = json.loads(actual_arguments) + assert 'code' in actual_arguments, f"code not found in {json.dumps(actual_arguments)}" + code = actual_arguments["code"] + assert isinstance(code, str), f"Expected code to be a string, got {type(code)}: {json.dumps(code)}" + assert re.match(r'''print\(("[Hh]ello,? [Ww]orld!?"|'[Hh]ello,? [Ww]orld!?')\)''', code), f'Expected hello world, got {code}' diff --git a/examples/server/tests/utils.py b/examples/server/tests/utils.py index 9964db2f9..ce0680662 100644 --- a/examples/server/tests/utils.py +++ b/examples/server/tests/utils.py @@ -26,7 +26,7 @@ from re import RegexFlag import wget -DEFAULT_HTTP_TIMEOUT = 10 if "LLAMA_SANITIZE" not in os.environ else 30 +DEFAULT_HTTP_TIMEOUT = 12 if "LLAMA_SANITIZE" not in os.environ else 30 class ServerResponse: @@ -41,7 +41,7 @@ class ServerProcess: server_port: int = 8080 server_host: str = "127.0.0.1" model_hf_repo: str = "ggml-org/models" - model_hf_file: str = "tinyllamas/stories260K.gguf" + model_hf_file: str | None = "tinyllamas/stories260K.gguf" model_alias: str = "tinyllama-2" temperature: float = 0.8 seed: int = 42 @@ -191,7 +191,7 @@ class ServerProcess: creationflags=flags, stdout=sys.stdout, stderr=sys.stdout, - env={**os.environ, "LLAMA_CACHE": "tmp"}, + env={**os.environ, "LLAMA_CACHE": "tmp"} if "LLAMA_CACHE" not in os.environ else None, ) server_instances.add(self) diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index c5987250c..3d2c04666 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -17,6 +17,7 @@ #define JSON_ASSERT GGML_ASSERT #include "json.hpp" #include "minja.hpp" +#include "chat.hpp" #include "chat-template.hpp" #include @@ -376,7 +377,7 @@ inline std::string format_chat(const common_chat_template & tmpl, const std::vec throw std::runtime_error("Missing 'content' (ref: https://github.com/ggerganov/llama.cpp/issues/8367)"); } - chat.push_back({role, content}); + chat.push_back({role, content, /* tool_calls= */ {}}); } const auto formatted_chat = common_chat_apply_template(tmpl, chat, true, /* use_jinja= */ false); @@ -483,14 +484,13 @@ static bool ends_with(const std::string & str, const std::string & suffix) { static size_t find_partial_stop_string(const std::string &stop, const std::string &text) { if (!text.empty() && !stop.empty()) { - const char text_last_char = text.back(); - for (int64_t char_index = stop.size() - 1; char_index >= 0; char_index--) { - if (stop[char_index] == text_last_char) { - const std::string current_partial = stop.substr(0, char_index + 1); - if (ends_with(text, current_partial)) { - return text.size() - char_index - 1; - } + auto it = std::find(stop.rbegin(), stop.rend(), text.back()); + while (it != stop.rend()) { + size_t length = std::distance(it, stop.rend()); + if (text.length() >= length && 0 == text.compare(text.length() - length, length, stop)) { + return text.length() - length; } + it = std::find(std::next(it), stop.rend(), text.back()); } } @@ -580,21 +580,30 @@ static json oaicompat_completion_params_parse(const json & body) { static json oaicompat_completion_params_parse( const json & body, /* openai api json semantics */ - const common_chat_template & tmpl, - bool use_jinja) + bool use_jinja, + const common_chat_templates & chat_templates) { json llama_params; + const auto & tmpl = body.contains("tools") && chat_templates.template_tool_use + ? *chat_templates.template_tool_use + : *chat_templates.template_default; auto tools = json_value(body, "tools", json()); - auto has_tools = tools.is_array() && !tools.empty(); + auto stream = json_value(body, "stream", false); - if (has_tools) { - if (use_jinja) { - LOG_WRN("tools param is not fully supported yet\n"); - } else { + if (tools.is_array() && !tools.empty()) { + if (stream) { + throw std::runtime_error("Cannot use tools with stream"); + } + if (!use_jinja) { throw std::runtime_error("tools param requires --jinja flag"); } } + if (!use_jinja) { + if (body.contains("tool_choice") && !body.at("tool_choice").is_null()) { + throw std::runtime_error("Unsupported param: tool_choice"); + } + } // Handle "stop" field if (body.contains("stop") && body.at("stop").is_string()) { @@ -619,7 +628,38 @@ static json oaicompat_completion_params_parse( // Apply chat template to the list of messages if (use_jinja) { - llama_params["prompt"] = tmpl.apply(body.at("messages"), tools, /* add_generation_prompt= */ true); + auto tool_choice = json_value(body, "tool_choice", std::string("auto")); + if (tool_choice != "none" && tool_choice != "auto" && tool_choice != "required") { + throw std::runtime_error("Invalid tool_choice: " + tool_choice); + } + if (tool_choice != "none" && llama_params.contains("grammar")) { + throw std::runtime_error("Cannot use custom grammar constraints with tools."); + } + common_chat_inputs inputs; + inputs.messages = body.at("messages"); + inputs.tools = tools; + inputs.tool_choice = tool_choice; + inputs.parallel_tool_calls = json_value(body, "parallel_tool_calls", false); + inputs.stream = stream; + // TODO: support mixing schema w/ tools beyond generic format. + inputs.json_schema = json_value(llama_params, "json_schema", json::object()); + auto chat_params = common_chat_params_init(tmpl, inputs); + + llama_params["chat_format"] = static_cast(chat_params.format); + llama_params["prompt"] = chat_params.prompt; + llama_params["grammar"] = chat_params.grammar; + llama_params["grammar_lazy"] = chat_params.grammar_lazy; + auto grammar_triggers = json::array(); + for (const auto & trigger : chat_params.grammar_triggers) { + grammar_triggers.push_back({ + {"word", trigger.word}, + {"at_start", trigger.at_start}, + }); + } + llama_params["grammar_triggers"] = grammar_triggers; + for (const auto & stop : chat_params.additional_stops) { + llama_params["stop"].push_back(stop); + } } else { llama_params["prompt"] = format_chat(tmpl, body.at("messages")); } @@ -638,14 +678,6 @@ static json oaicompat_completion_params_parse( throw std::runtime_error("top_logprobs requires logprobs to be set to true"); } - // Params supported by OAI but unsupported by llama.cpp - static const std::vector unsupported_params { "tool_choice" }; - for (const auto & param : unsupported_params) { - if (body.contains(param)) { - throw std::runtime_error("Unsupported param: " + param); - } - } - // Copy remaining properties to llama_params // This allows user to use llama.cpp-specific params like "mirostat", ... via OAI endpoint. // See "launch_slot_with_task()" for a complete list of params supported by llama.cpp diff --git a/include/llama.h b/include/llama.h index 3b75e7607..61907ed40 100644 --- a/include/llama.h +++ b/include/llama.h @@ -1199,6 +1199,18 @@ extern "C" { const char * grammar_str, const char * grammar_root); + /// @details Lazy grammar sampler, introduced in https://github.com/ggerganov/llama.cpp/pull/9639 + /// @param trigger_words A list of words that will trigger the grammar sampler. This may be updated to a loose regex syntax (w/ ^) in a near future. + /// @param trigger_tokens A list of tokens that will trigger the grammar sampler. + LLAMA_API struct llama_sampler * llama_sampler_init_grammar_lazy( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens); + /// NOTE: Avoid using on the full vocabulary as searching for repeated tokens can become slow. For example, apply top-k or top-p sampling first. LLAMA_API struct llama_sampler * llama_sampler_init_penalties( int32_t penalty_last_n, // last n tokens to penalize (0 = disable penalty, -1 = context size) diff --git a/models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja b/models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja new file mode 100644 index 000000000..f5baef30b --- /dev/null +++ b/models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja @@ -0,0 +1,202 @@ + +{%- macro json_to_python_type(json_spec) %} +{%- set basic_type_map = { + "string": "str", + "number": "float", + "integer": "int", + "boolean": "bool" +} %} + +{%- if basic_type_map[json_spec.type] is defined %} + {{- basic_type_map[json_spec.type] }} +{%- elif json_spec.type == "array" %} + {{- "List[" + json_to_python_type(json_spec.items) + "]"}} +{%- elif json_spec.type == "object" %} + {{- "Dict[str, " + json_to_python_type(json_spec.additionalProperties) + ']'}} +{%- elif json_spec.type is iterable %} + {{- "Union[" }} + {%- for t in json_spec.type %} + {{- json_to_python_type({"type": t}) }} + {%- if not loop.last %} + {{- "," }} + {%- endif %} + {%- endfor %} + {{- "]" }} +{%- else %} + {{- "Any" }} +{%- endif %} +{%- endmacro %} + +{%- macro old_tool_parser(tools) %} +{%- for tool in tools %} + {%- if loop.index0 != 0 %} + {{- '\n\n' }} + {%- endif %} + {{- '```python\ndef ' + tool.name + '(' }} + {%- for param_name, param_fields in tool.parameter_definitions|items %} + {%- if loop.index0 != 0 %} + {{- ', '}} + {%- endif %} + {{- param_name + ': ' }} + {%- if not param_fields.required %} + {{- 'Optional[' + param_fields.type + '] = None'}} + {%- else %} + {{- param_fields.type }} + {%- endif %} + {%- endfor %} + {{- ') -> List[Dict]:\n """'}} + {{- tool.description }} + {%- if tool.parameter_definitions|length != 0 %} + {{- '\n\n Args:\n '}} + {%- for param_name, param_fields in tool.parameter_definitions|items %} + {%- if loop.index0 != 0 %} + {{- '\n ' }} + {%- endif %} + {{- param_name + ' ('}} + {%- if not param_fields.required %} + {{- 'Optional[' + param_fields.type + ']'}} + {%- else %} + {{- param_fields.type }} + {%- endif %} + {{- '): ' + param_fields.description }} + {%- endfor %} + {%- endif %} + {{- '\n """\n pass\n```' }} +{%- endfor %} +{%- endmacro %} + +{%- macro new_tool_parser(tools) %} +{%- for tool in tools %} + {%- if loop.index0 != 0 %} + {{- '\n\n'}} + {%- endif %} + {%- if tool.function is defined %} + {%- set tool = tool.function %} + {%- endif %} + {{-'```python +def ' + tool.name + '('}} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {%- if loop.index0 != 0 %} + {{- ', '}} + {%- endif %} + {{-param_name + ": "}} + {%- if not param_name in tool.parameters.required %} + {{-'Optional[' + json_to_python_type(param_fields) + '] = None'}} + {%- else %} + {{- json_to_python_type(param_fields) }} + {%- endif %} + {%- endfor %} + {{- ') -> List[Dict]: + """'}} + {{- tool.description }} + {%- if tool.parameters.properties|length != 0 %} + {{- '\n\n Args:\n '}} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {%- if loop.index0 != 0 %} + {{- '\n ' }} + {%- endif %} + {{- param_name + ' ('}} + {%- if not param_name in tool.parameters.required %} + {{-'Optional[' + json_to_python_type(param_fields) + ']'}} + {%- else %} + {{- json_to_python_type(param_fields) }} + {%- endif %} + {{- '): ' + param_fields.description }} + {%- endfor %} + {%- endif %} + {{- '\n """\n pass\n```' }} +{%- endfor %} +{%- endmacro %} + +{{- bos_token }} +{%- if messages[0]['role'] == 'system' %} + {%- set loop_messages = messages[1:] %} + {%- set system_message = messages[0]['content'] %} +{%- else %} + {%- set loop_messages = messages %} + {%- set system_message = '## Task and Context\nYou help people answer their questions and other requests interactively. You will be asked a very wide array of requests on all kinds of topics. You will be equipped with a wide range of search engines or similar tools to help you, which you use to research your answer. You should focus on serving the user\'s needs as best you can, which will be wide-ranging.\n\n## Style Guide\nUnless the user asks for a different style of answer, you should answer in full sentences, using proper grammar and spelling.' %} +{%- endif %} +{{- '<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>' }} +{{- '# Safety Preamble' }} +{{- ' +The instructions in this section override those in the task description and style guide sections. Don\'t answer questions that are harmful or immoral.' }} +{{- ' + +# System Preamble' }} +{{- ' +## Basic Rules' }} +{{- ' +You are a powerful conversational AI trained by Cohere to help people. You are augmented by a number of tools, and your job is to use and consume the output of these tools to best help the user. You will see a conversation history between yourself and a user, ending with an utterance from the user. You will then see a specific instruction instructing you what kind of response to generate. When you answer the user\'s requests, you cite your sources in your answers, according to those instructions.' }} +{{- ' + +# User Preamble' }} +{{- ' +' + system_message }} +{{-' + +## Available Tools +Here is a list of tools that you have available to you: + +'}} +{%- set ns = namespace(new_tools=true) %} +{%- for tool in tools %} + {%- if tool.parameter_definitions is defined %} + {%- set ns.new_tools = false %} + {%- endif %} +{%- endfor %} +{%- if ns.new_tools %} + {{- new_tool_parser(tools) }} +{%- else %} + {{- old_tool_parser(tools) }} +{%- endif %} +{{- '<|END_OF_TURN_TOKEN|>'}} +{%- for message in loop_messages %} + {%- set content = message['content'] %} + {%- if message.role == 'user' %} + {{- '<|START_OF_TURN_TOKEN|><|USER_TOKEN|>' + content|trim + '<|END_OF_TURN_TOKEN|>' }} + {%- elif message.role == 'system' %} + {{- '<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>' + content|trim + '<|END_OF_TURN_TOKEN|>' }} + {%- elif message.role == 'assistant' and message.tool_calls is defined %} + {{- '<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>' }} + {%- if message.content is defined %} + {{- message.content|trim }} + {%- endif %} + {{- '\nAction:\n```json\n[\n' }} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '{\n'|indent(4, first=true) }} + {{- '"tool_name": "'|indent(8, first=true) + tool_call.name + '",\n' }} + {{- '"parameters": '|indent(8, first=true) }} + {%- if tool_call.arguments is defined and tool_call.arguments|length > 0 %} + {{- tool_call.arguments|tojson(indent=4)|indent(8) }} + {{- '\n' }} + {%- else %} + {{- '{}\n' }} + {%- endif %} + {{- '}'|indent(4, first=true) }} + {%- if not loop.last %} + {{- ',\n' }} + {%- endif %} + {%- endfor %} + {{- "\n]```\n" }} + {%- elif message.role == 'assistant' %} + {{- '<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>' + content|trim + '<|END_OF_TURN_TOKEN|>' }} + {%- elif message.role == 'tool' %} + {{- '<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>\n' }} + {{- message.content|trim }} + {{- '<|END_OF_TURN_TOKEN|>' }} + {%- endif %} +{%- endfor %} +{{-'<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>Write \'Action:\' followed by a json-formatted list of actions that you want to perform in order to produce a good response to the user\'s last input. You can use any of the supplied tools any number of times, but you should aim to execute the minimum number of necessary actions for the input. You should use the `directly-answer` tool if calling the other tools is unnecessary. The list of actions you want to call should be formatted as a list of json objects, for example: +```json +[ + { + "tool_name": title of the tool in the specification, + "parameters": a dict of parameters to input into the tool as they are defined in the specs, or {} if it takes no parameters + } +]```<|END_OF_TURN_TOKEN|>'}} +{%- if add_generation_prompt %} + {{- '<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>' }} +{%- endif %} diff --git a/models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja b/models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja new file mode 100644 index 000000000..149250bd5 --- /dev/null +++ b/models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja @@ -0,0 +1,152 @@ +{%- macro json_to_python_type(json_spec) %} +{%- set basic_type_map = { + "string": "str", + "number": "float", + "integer": "int", + "boolean": "bool" +} %} + +{%- if basic_type_map[json_spec.type] is defined %} + {{- basic_type_map[json_spec.type] }} +{%- elif json_spec.type == "array" %} + {{- "list[" + json_to_python_type(json_spec|items) + "]"}} +{%- elif json_spec.type == "object" %} + {%- if json_spec.additionalProperties is defined %} + {{- "dict[str, " + json_to_python_type(json_spec.additionalProperties) + ']'}} + {%- else %} + {{- "dict" }} + {%- endif %} +{%- elif json_spec.type is iterable %} + {{- "Union[" }} + {%- for t in json_spec.type %} + {{- json_to_python_type({"type": t}) }} + {%- if not loop.last %} + {{- "," }} + {%- endif %} + {%- endfor %} + {{- "]" }} +{%- else %} + {{- "Any" }} +{%- endif %} +{%- endmacro %} + + +{{- bos_token }} +{{- '<|im_start|>system +' }} +{{- "You are a function calling AI model. You are provided with function signatures within XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools: " }} +{%- for tool in tools %} + {%- if tool.function is defined %} + {%- set tool = tool.function %} + {%- endif %} + {{- '{"type": "function", "function": ' }} + {{- '{"name": "' + tool.name + '", ' }} + {{- '"description": "' + tool.name + '(' }} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {{- param_name + ": " + json_to_python_type(param_fields) }} + {%- if not loop.last %} + {{- ", " }} + {%- endif %} + {%- endfor %} + {{- ")" }} + {%- if tool.return is defined %} + {{- " -> " + json_to_python_type(tool.return) }} + {%- endif %} + {{- " - " + tool.description + " + +" }} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {%- if loop.first %} + {{- " Args: +" }} + {%- endif %} + {{- " " + param_name + "(" + json_to_python_type(param_fields) + "): " + param_fields.description|trim }} + {%- endfor %} + {%- if tool.return is defined and tool.return.description is defined %} + {{- " + Returns: + " + tool.return.description }} + {%- endif %} + {{- '"' }} + {{- ', "parameters": ' }} + {%- if tool.parameters.properties | length == 0 %} + {{- "{}" }} + {%- else %} + {{- tool.parameters|tojson }} + {%- endif %} + {{- "}" }} + {%- if not loop.last %} + {{- " +" }} + {%- endif %} +{%- endfor %} +{{- " " }} +{{- 'Use the following pydantic model json schema for each tool call you will make: {"properties": {"name": {"title": "Name", "type": "string"}, "arguments": {"title": "Arguments", "type": "object"}}, "required": ["name", "arguments"], "title": "FunctionCall", "type": "object"}} +' }} +{{- "For each function call return a json object with function name and arguments within XML tags as follows: +" }} +{{- " +" }} +{{- '{"name": , "arguments": } +' }} +{{- '<|im_end|> +' }} +{%- for message in messages %} + {%- if message.role == "user" or message.role == "system" or (message.role == "assistant" and message.tool_calls is not defined) %} + {{- '<|im_start|>' + message.role + ' +' + message.content + '<|im_end|>' + ' +' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- for tool_call in message.tool_calls %} + {{- ' + +' }} {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '{' }} + {{- '"name": "' }} + {{- tool_call.name }} + {{- '"' }} + {{- ', '}} + {%- if tool_call.arguments is defined %} + {{- '"arguments": ' }} + {%- if tool_call.arguments is string %} + {{- tool_call.arguments }} + {%- else %} + {{- tool_call.arguments|tojson }} + {%- endif %} + {%- endif %} + {{- '}' }} + {{- ' +' }} + {%- endfor %} + {{- '<|im_end|> +' }} + {%- elif message.role == "tool" %} + {%- if loop.previtem and loop.previtem.role != "tool" %} + {{- '<|im_start|>tool +' }} + {%- endif %} + {{- ' +' }} + {{- message.content }} + {%- if not loop.last %} + {{- ' + +' }} + {%- else %} + {{- ' +' }} + {%- endif %} + {%- if not loop.last and loop.nextitem.role != "tool" %} + {{- '<|im_end|>' }} + {%- elif loop.last %} + {{- '<|im_end|>' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant +' }} +{%- endif %} diff --git a/models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja b/models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja new file mode 100644 index 000000000..149250bd5 --- /dev/null +++ b/models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja @@ -0,0 +1,152 @@ +{%- macro json_to_python_type(json_spec) %} +{%- set basic_type_map = { + "string": "str", + "number": "float", + "integer": "int", + "boolean": "bool" +} %} + +{%- if basic_type_map[json_spec.type] is defined %} + {{- basic_type_map[json_spec.type] }} +{%- elif json_spec.type == "array" %} + {{- "list[" + json_to_python_type(json_spec|items) + "]"}} +{%- elif json_spec.type == "object" %} + {%- if json_spec.additionalProperties is defined %} + {{- "dict[str, " + json_to_python_type(json_spec.additionalProperties) + ']'}} + {%- else %} + {{- "dict" }} + {%- endif %} +{%- elif json_spec.type is iterable %} + {{- "Union[" }} + {%- for t in json_spec.type %} + {{- json_to_python_type({"type": t}) }} + {%- if not loop.last %} + {{- "," }} + {%- endif %} + {%- endfor %} + {{- "]" }} +{%- else %} + {{- "Any" }} +{%- endif %} +{%- endmacro %} + + +{{- bos_token }} +{{- '<|im_start|>system +' }} +{{- "You are a function calling AI model. You are provided with function signatures within XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools: " }} +{%- for tool in tools %} + {%- if tool.function is defined %} + {%- set tool = tool.function %} + {%- endif %} + {{- '{"type": "function", "function": ' }} + {{- '{"name": "' + tool.name + '", ' }} + {{- '"description": "' + tool.name + '(' }} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {{- param_name + ": " + json_to_python_type(param_fields) }} + {%- if not loop.last %} + {{- ", " }} + {%- endif %} + {%- endfor %} + {{- ")" }} + {%- if tool.return is defined %} + {{- " -> " + json_to_python_type(tool.return) }} + {%- endif %} + {{- " - " + tool.description + " + +" }} + {%- for param_name, param_fields in tool.parameters.properties|items %} + {%- if loop.first %} + {{- " Args: +" }} + {%- endif %} + {{- " " + param_name + "(" + json_to_python_type(param_fields) + "): " + param_fields.description|trim }} + {%- endfor %} + {%- if tool.return is defined and tool.return.description is defined %} + {{- " + Returns: + " + tool.return.description }} + {%- endif %} + {{- '"' }} + {{- ', "parameters": ' }} + {%- if tool.parameters.properties | length == 0 %} + {{- "{}" }} + {%- else %} + {{- tool.parameters|tojson }} + {%- endif %} + {{- "}" }} + {%- if not loop.last %} + {{- " +" }} + {%- endif %} +{%- endfor %} +{{- " " }} +{{- 'Use the following pydantic model json schema for each tool call you will make: {"properties": {"name": {"title": "Name", "type": "string"}, "arguments": {"title": "Arguments", "type": "object"}}, "required": ["name", "arguments"], "title": "FunctionCall", "type": "object"}} +' }} +{{- "For each function call return a json object with function name and arguments within XML tags as follows: +" }} +{{- " +" }} +{{- '{"name": , "arguments": } +' }} +{{- '<|im_end|> +' }} +{%- for message in messages %} + {%- if message.role == "user" or message.role == "system" or (message.role == "assistant" and message.tool_calls is not defined) %} + {{- '<|im_start|>' + message.role + ' +' + message.content + '<|im_end|>' + ' +' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- for tool_call in message.tool_calls %} + {{- ' + +' }} {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '{' }} + {{- '"name": "' }} + {{- tool_call.name }} + {{- '"' }} + {{- ', '}} + {%- if tool_call.arguments is defined %} + {{- '"arguments": ' }} + {%- if tool_call.arguments is string %} + {{- tool_call.arguments }} + {%- else %} + {{- tool_call.arguments|tojson }} + {%- endif %} + {%- endif %} + {{- '}' }} + {{- ' +' }} + {%- endfor %} + {{- '<|im_end|> +' }} + {%- elif message.role == "tool" %} + {%- if loop.previtem and loop.previtem.role != "tool" %} + {{- '<|im_start|>tool +' }} + {%- endif %} + {{- ' +' }} + {{- message.content }} + {%- if not loop.last %} + {{- ' + +' }} + {%- else %} + {{- ' +' }} + {%- endif %} + {%- if not loop.last and loop.nextitem.role != "tool" %} + {{- '<|im_end|>' }} + {%- elif loop.last %} + {{- '<|im_end|>' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant +' }} +{%- endif %} diff --git a/models/templates/Qwen-Qwen2.5-7B-Instruct.jinja b/models/templates/Qwen-Qwen2.5-7B-Instruct.jinja new file mode 100644 index 000000000..bdf7919a9 --- /dev/null +++ b/models/templates/Qwen-Qwen2.5-7B-Instruct.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja b/models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja new file mode 100644 index 000000000..02a1c3bce --- /dev/null +++ b/models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja @@ -0,0 +1 @@ +{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + tool['function']['arguments'] + '\n' + '```' + '<|tool▁call▁end|>'}}{%- set ns.is_first = true -%}{%- else %}{{'\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + tool['function']['arguments'] + '\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if ns.is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '' in content %}{% set content = content.split('')[-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_tool = true -%}{%- if ns.is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set ns.is_output_first = false %}{%- else %}{{'\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|>'}}{% endif %} \ No newline at end of file diff --git a/models/templates/deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja b/models/templates/deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja new file mode 100644 index 000000000..2ebfe7c1e --- /dev/null +++ b/models/templates/deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja @@ -0,0 +1,56 @@ +{% if not add_generation_prompt is defined %} +{% set add_generation_prompt = false %} +{% endif %} +{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %} +{%- for message in messages %} +{%- if message['role'] == 'system' %} +{% set ns.system_prompt = message['content'] %} +{%- endif %} +{%- endfor %} +{{bos_token}} +{{ns.system_prompt}} +{%- for message in messages %} +{%- if message['role'] == 'user' %} +{%- set ns.is_tool = false -%} +{{'<|User|>' + message['content']}} +{%- endif %} +{%- if message['role'] == 'assistant' and message['content'] is none %} +{%- set ns.is_tool = false -%} +{%- for tool in message['tool_calls']%} +{%- if not ns.is_first %} +{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + tool['function']['arguments'] + '\n' + '```' + '<|tool▁call▁end|>'}} +{%- set ns.is_first = true -%} +{%- else %} +{{'\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\n' + '```json' + '\n' + tool['function']['arguments'] + '\n' + '```' + '<|tool▁call▁end|>'}} +{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}} +{%- endif %} +{%- endfor %} +{%- endif %} +{%- if message['role'] == 'assistant' and message['content'] is not none %} +{%- if ns.is_tool %} +{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}} +{%- set ns.is_tool = false -%} +{%- else %} +{% set content = message['content'] %} +{% if '' in content %} +{% set content = content.split('')[-1] %} +{% endif %} +{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}} +{%- endif %} +{%- endif %} +{%- if message['role'] == 'tool' %} +{%- set ns.is_tool = true -%} +{%- if ns.is_output_first %} +{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}} +{%- set ns.is_output_first = false %} +{%- else %} +{{'\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}} +{%- endif %} +{%- endif %} +{%- endfor -%} +{% if ns.is_tool %} +{{'<|tool▁outputs▁end|>'}} +{% endif %} +{% if add_generation_prompt and not ns.is_tool %} +{{'<|Assistant|>'}} +{% endif %} \ No newline at end of file diff --git a/models/templates/fireworks-ai-llama-3-firefunction-v2.jinja b/models/templates/fireworks-ai-llama-3-firefunction-v2.jinja new file mode 100644 index 000000000..9b8136df7 --- /dev/null +++ b/models/templates/fireworks-ai-llama-3-firefunction-v2.jinja @@ -0,0 +1,57 @@ +{%- set loop_messages = messages -%} +{%- set message_roles = ['system', 'user', 'assistant', 'tool'] -%} +{%- set system_prompt_suffix -%} +{%- filter trim -%} +In addition to plain text responses, you can chose to call one or more of the provided functions. + +Use the following rule to decide when to call a function: + * if the response can be generated from your internal knowledge (e.g., as in the case of queries like "What is the capital of Poland?"), do so + * if you need external information that can be obtained by calling one or more of the provided functions, generate a function calls + +If you decide to call functions: + * prefix function calls with functools marker (no closing marker required) + * all function calls should be generated in a single JSON list formatted as functools[{"name": [function name], "arguments": [function arguments as JSON]}, ...] + * follow the provided JSON schema. Do not hallucinate arguments or values. Do to blindly copy values from the provided samples + * respect the argument type formatting. E.g., if the type if number and format is float, write value 7 as 7.0 + * make sure you pick the right functions that match the user intent + +Available functions as JSON spec: +{%- endfilter -%} +{%- endset -%} +{%- set system_prompt_suffix = system_prompt_suffix + "\n" + functions -%} +{%- set system_prompt_suffix = system_prompt_suffix + '\nToday is ' + datetime + '.' -%} +{%- set ns = namespace(role='', content='') -%} +{#- Basic consistency checks -#} +{%- if not loop_messages -%} + {{ raise_exception('Expected non-empty messages') }} +{%- endif -%} +{%- for message in loop_messages -%} + {%- set ns.role = message['role'] | lower -%} + {%- if ns.role not in message_roles -%} + {%- set message_roles_string = message_roles | join(', ') -%} + {{ raise_exception('Invalid role ' + message['role'] + '. Only ' + message_roles_string + ' are supported.') }} + {%- endif -%} + {%- set msg_content = message['content'] | default('', true) | trim -%} + {%- if loop.index0 == 0 -%} + {%- if ns.role == 'system' -%} + {%- set system_prompt = '<|start_header_id|>' + 'system' + '<|end_header_id|>\n\n' + message['content'] | trim + '\n' + system_prompt_suffix + '<|eot_id|>' -%} + {%- else -%} + {%- set system_prompt = '<|start_header_id|>' + 'system' + '<|end_header_id|>\n\nYou are a helpful assistant with access to functions.\n' + system_prompt_suffix + '<|eot_id|>' -%} + {%- endif -%} + {%- set ns.content = bos_token + system_prompt -%} + {{- ns.content -}} + {%- endif -%} + {%- if loop.index0 > 0 or ns.role != 'system' -%} + {%- set ns.content = '<|start_header_id|>' + ns.role + '<|end_header_id|>\n\n' + msg_content -%} + {%- if 'tool_calls' in message and message['tool_calls'] -%} + {%- set tool = namespace(calls=[]) -%} + {%- for call in message['tool_calls'] -%} + {%- set tool.calls = tool.calls + ['{"name": "' + call['function']['name'] + '", "arguments": ' + call['function']['arguments'] + '}'] -%} + {%- endfor -%} + {%- set ns.content = ns.content + ' functools[' + tool.calls | join(', ') + ']' -%} + {%- endif -%} + {%- set ns.content = ns.content + '<|eot_id|>' -%} + {{- ns.content -}} + {%- endif -%} +{%- endfor -%} +{{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} diff --git a/models/templates/google-gemma-2-2b-it.jinja b/models/templates/google-gemma-2-2b-it.jinja new file mode 100644 index 000000000..923ec253c --- /dev/null +++ b/models/templates/google-gemma-2-2b-it.jinja @@ -0,0 +1,4 @@ +{{ bos_token }}{% if messages[0]['role'] == 'system' %}{{ raise_exception('System role not supported') }}{% endif %}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '' + role + ' +' + message['content'] | trim + ' +' }}{% endfor %}{% if add_generation_prompt %}{{'model +'}}{% endif %} \ No newline at end of file diff --git a/models/templates/meetkai-functionary-medium-v3.1.jinja b/models/templates/meetkai-functionary-medium-v3.1.jinja new file mode 100644 index 000000000..29d64a215 --- /dev/null +++ b/models/templates/meetkai-functionary-medium-v3.1.jinja @@ -0,0 +1,58 @@ +{# version=v3-llama3.1 #}{%- if not tools is defined -%} + {%- set tools = none -%} +{%- endif -%} + +{%- set has_code_interpreter = tools | selectattr("type", "equalto", "code_interpreter") | list | length > 0 -%} +{%- if has_code_interpreter -%} + {%- set tools = tools | rejectattr("type", "equalto", "code_interpreter") | list -%} +{%- endif -%} + +{#- System message + builtin tools #} +{{- bos_token + "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if has_code_interpreter %} + {{- "Environment: ipython\n\n" }} +{%- else -%} + {{ "\n"}} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n\n" }} +{%- if tools %} + {{- "\nYou have access to the following functions:\n\n" }} + {%- for t in tools %} + {%- if "type" in t -%} + {{ "Use the function '"|safe + t["function"]["name"] + "' to '"|safe + t["function"]["description"] + "'\n"|safe + t["function"] | tojson() }} + {%- else -%} + {{ "Use the function '"|safe + t["name"] + "' to '"|safe + t["description"] + "'\n"|safe + t | tojson() }} + {%- endif -%} + {{- "\n\n" }} + {%- endfor %} + {{- '\nThink very carefully before calling functions.\nIf a you choose to call a function ONLY reply in the following format:\n<{start_tag}={function_name}>{parameters}{end_tag}\nwhere\n\nstart_tag => ` a JSON dict with the function argument name as key and function argument value as value.\nend_tag => ``\n\nHere is an example,\n{"example_name": "example_value"}\n\nReminder:\n- If looking for real time information use relevant functions before falling back to brave_search\n- Function calls MUST follow the specified format, start with \n- Required parameters MUST be specified\n- Only call one function at a time\n- Put the entire function call reply on one line\n\n' -}} +{%- endif %} +{{- "<|eot_id|>" -}} + +{%- for message in messages -%} + {%- if message['role'] == 'user' or message['role'] == 'system' -%} + {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' + message['content'] + '<|eot_id|>' }} + {%- elif message['role'] == 'tool' -%} + {{ '<|start_header_id|>ipython<|end_header_id|>\n\n' + message['content'] + '<|eot_id|>' }} + {%- else -%} + {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'}} + {%- if message['content'] -%} + {{ message['content'] }} + {%- endif -%} + {%- if 'tool_calls' in message and message['tool_calls'] -%} + {%- for tool_call in message['tool_calls'] -%} + {%- if tool_call["function"]["name"] == "python" -%} + {{ '<|python_tag|>' + tool_call['function']['arguments'] }} + {%- else -%} + {{ '' + tool_call['function']['arguments'] + '' }} + {%- endif -%} + {%- endfor -%} + {{ '<|eom_id|>' }} + {%- else -%} + {{ '<|eot_id|>' }} + {%- endif -%} + {%- endif -%} +{%- endfor -%} +{%- if add_generation_prompt -%} + {{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif -%} \ No newline at end of file diff --git a/models/templates/meetkai-functionary-medium-v3.2.jinja b/models/templates/meetkai-functionary-medium-v3.2.jinja new file mode 100644 index 000000000..74fd1e7af --- /dev/null +++ b/models/templates/meetkai-functionary-medium-v3.2.jinja @@ -0,0 +1,287 @@ +{# version=v3.llama3 #}{%- macro append_new_param_info(param_declaration, comment_info, examples_info, depth) -%} + {%- set offset = "" -%} + {%- if depth >= 1 -%} + {%- set offset = " " * depth -%} + {%- endif -%} + {%- if comment_info != "<|NONE|>" -%} + {{ "\n" + offset + comment_info }} + {%- if examples_info | length > 0 -%} + {# Append each example info #} + {%- for example in examples_info -%} + {{ "\n" + offset + "// " + example|string|replace("'", '"') }} + {%- endfor -%} + {%- endif -%} + {%- endif -%} + {{ "\n" + offset + param_declaration }} +{%- endmacro -%} + +{%- macro convert_data_type(param_type) -%} + {%- if param_type == "integer" or param_type == "float" -%} + {{ "number" }} + {%- else -%} + {{ param_type }} + {%- endif -%} +{%- endmacro -%} + +{%- macro get_param_type(param) -%} + {%- set param_type = "any" -%} + + {%- if "type" in param -%} + {%- set raw_param_type = param["type"] -%} + {%- if raw_param_type is iterable and raw_param_type is not string -%} + {%- set param_type = raw_param_type | join(" | ") -%} + {%- else -%} + {%- set param_type = raw_param_type -%} + {%- endif -%} + {{ convert_data_type(param_type) }} + {%- elif "oneOf" in param -%} + {%- set one_of_types = param["oneOf"]|selectattr("type", "defined")|list -%} + {%- set one_of_types = one_of_types|map(attribute="type")|unique|list -%} + {{ convert_data_type(one_of_types | join(" | ")) }} + {%- endif -%} +{%- endmacro -%} + +{%- macro get_format_param(param) -%} + {%- if "format" in param -%} + {{ param["format"] }} + {%- elif "oneOf" in param -%} + {%- set formats = [] -%} + {%- for item in param["oneOf"] -%} + {%- if "format" in item -%} + {%- if item["format"] == param["oneOf"][-1]["format"] -%} + {{ item["format"] }} + {%- else -%} + {{ item["format"] + " or "}} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {{ "<|NONE|>" }} + {%- endif -%} +{%- endmacro -%} + +{%- macro get_param_info(param) -%} + {%- set param_type = param.get("type", "any") -%} + {%- set format_param = get_format_param(param) -%} + + {%- if "description" in param or "default" in param or format_param != "<|NONE|>" or param["maximum"] or param["minimum"] or param["maxLength"] or param["minLength"] -%} + {{ "//" }} + {%- if "description" in param -%} + {%- set desc = param["description"] -%} + {%- if not desc.endswith(".") -%} + {%- set desc = desc + "." -%} + {%- endif -%} + {{ " " + desc }} + {%- endif -%} + + {%- if "default" in param -%} + {%- set default_value = param["default"] -%} + {%- if param_type == "string" -%} + {%- set default_value = '"' ~ default_value ~ '"' -%} + {%- endif -%} + {{ " Default=" ~ default_value ~ "." }} + {%- endif -%} + + {%- set format_param = get_format_param(param) -%} + {%- if format_param != "<|NONE|>" -%} + {{ " Format=" ~ format_param }} + {%- endif -%} + + {%- for field, field_name in [("maximum", "Maximum"), ("minimum", "Minimum"), ("maxLength", "Maximum length"), ("minLength", "Minimum length")] -%} + {%- if field in param -%} + {{ " " + field_name ~ "=" ~ param[field] }} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {{ "<|NONE|>"}} + {%- endif -%} +{%- endmacro -%} + +{%- macro get_enum_option_str(enum_options) -%} + {%- for v in enum_options -%} + {%- if v is string -%} + {{ '"' + v + '"' }} + {%- else -%} + {{ v }} + {%- endif -%} + {%- if enum_options|length > 0 and v != enum_options[-1] -%} + {{ " | " }} + {%- endif -%} + {%- endfor -%} +{%- endmacro -%} + +{%- macro get_array_typescript(param_name, param_dic, depth) -%} + {%- set offset = '' -%} + {%- if depth >= 1 -%} + {%- set offset = " " * depth -%} + {%- endif -%} + {%- set items_info = param_dic.get('items', {}) -%} + + {%- if items_info|length == 0 -%} + {%- if param_name -%} + {{ "\n" + offset + param_name + ": []" }} + {%- else -%} + {{ "\n" + offset + "[]" }} + {%- endif -%} + {%- else -%} + {%- set array_type = get_param_type(items_info) -%} + {%- if array_type == 'object' -%} + {%- if param_name -%} + {{ "\n" + offset + param_name + ": {" }} + {%- else -%} + {{ "\n" + offset + "{" }} + {%- endif -%} + {{ get_parameter_typescript(items_info.get('properties', {}), items_info.get('required', []), depth + 1) -}} + {{- "\n" + offset + "}[]" }} + {%- elif array_type == 'array' -%} + {%- set item_info = get_array_typescript(None, items_info, depth + 1) -%} + {%- if not param_name -%} + {{ "\n" + item_info + "[]" }} + {%- else -%} + {{ "\n" + offset + param_name + ": " + item_info|trim + "[]" }} + {%- endif -%} + {%- else -%} + {%- if 'enum' in items_info -%} + {%- set item_type = get_enum_option_str(items_info['enum']) -%} + {%- if param_name is none -%} + {{ "(" + item_type + ")[]"}} + {%- else -%} + {{ "\n" + offset + param_name + ": (" + item_type + ")[]" }} + {%- endif -%} + {%- else -%} + {%- if param_name is none -%} + {{ "\n" + array_type + "[]" }} + {%- else -%} + {{ "\n" + offset + param_name + ": " + array_type + "[]," }} + {%- endif -%} + {%- endif -%} + {%- endif -%} + {%- endif -%} +{%- endmacro -%} + +{%- macro get_parameter_typescript(properties, required_params, depth=0) -%} + {%- set res = "" -%} + {%- for param_name, param in properties.items() -%} + {%- if param is mapping -%} + {%- set comment_info = get_param_info(param) -%} + {# Param Examples #} + {%- set examples_info = [] -%} + {%- if "examples" in param -%} + {%- set examples_info = ["Example " + param_name + ":"] -%} + {%- set examples_info = examples_info + param["examples"] -%} + {%- endif -%} + + {# Param Name declaration #} + {%- set param_declaration = param_name -%} + {%- if required_params is iterable and param_name not in required_params -%} + {%- set param_declaration = param_declaration + "?" -%} + {%- endif -%} + + {%- set param_type = get_param_type(param) -%} + + {# Handle indentation based on depth #} + {%- set offset = "" -%} + {%- if depth >= 1 -%} + {%- set offset = " " * depth -%} + {%- endif -%} + + {%- if param_type == "object" -%} + {%- if comment_info != "<|NONE|>" -%} + {{ "\n" + offset + comment_info }} + {%- endif -%} + {%- if examples_info|length > 0 -%} + {%- for example in examples_info -%} + {{ "\n" + offset + "// " + example|string|replace("'", '"') }} + {%- endfor -%} + {%- endif -%} + {%- set param_declaration = param_declaration + ": {" -%} + {{ "\n" + offset + param_declaration -}} + {{- get_parameter_typescript(param.get("properties", {}), param.get("required", []), depth + 1) -}} + {{- "\n" + offset + "}," }} + {%- elif param_type == "array" -%} + {%- set item_info = param.get("items", {}) -%} + {%- if "type" not in item_info -%} + {%- set param_declaration = param_declaration + ": []," -%} + {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }} + {%- else -%} + {%- if comment_info != "<|NONE|>" -%} + {{ "\n" + offset + comment_info }} + {%- endif -%} + {%- if examples_info|length > 0 -%} + {%- for example in examples_info -%} + {{ "\n" + offset + "// " + example|string|replace("'", '"') }} + {%- endfor -%} + {%- endif -%} + {%- set array_declaration = get_array_typescript(param_declaration, param, depth) -%} + {%- if not array_declaration.endswith(",") -%} + {%- set array_declaration = array_declaration + "," -%} + {%- endif -%} + {{ array_declaration}} + {%- endif -%} + {%- else -%} + {%- if "enum" in param -%} + {%- set param_type = get_enum_option_str(param["enum"]) -%} + {%- endif -%} + {%- if "nullable" in param and param["nullable"] -%} + {%- set param_type = param_type + " | null" -%} + {%- endif -%} + {%- set param_declaration = param_declaration + ": " + param_type + "," -%} + {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }} + {%- endif -%} + {%- endif -%} + {%- endfor -%} +{%- endmacro -%} + +{%- macro generate_schema_from_functions(functions, namespace='functions') -%} + {{ "// Supported function definitions that should be called when necessary.\n" -}} + {{- "namespace " + namespace + " {\n\n" -}} + + {%- for function in functions -%} + {%- if function.get("function") -%} + {%- set function = function.get("function") -%} + {%- endif -%} + + {%- set function_name = function.get("name") -%} + {%- if function_name -%} + {%- set description = function.get('description', '') -%} + {%- set parameters = function.get('parameters', {}) -%} + {{- "// " + description + "\n" -}} + {{- "type " + function_name -}} + {%- if parameters and parameters.get("properties") -%} + {{- " = (_: {" -}} + {%- set required_params = parameters.get("required", []) -%} + {{ get_parameter_typescript(parameters.get("properties"), required_params, 0) -}} + {{- "\n}) => any;\n\n" }} + {%- else -%} + {{ " = () => any;\n\n" }} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + {{ "} // namespace " + namespace }} +{%- endmacro -%} +{%- if not tools -%} + {%- set tools = [] -%} +{%- endif -%} +{{ bos_token + '<|start_header_id|>system<|end_header_id|>\n\nYou are capable of executing available function(s) if required.\nOnly execute function(s) when absolutely necessary.\nAsk for the required input to:recipient==all\nUse JSON for function arguments.\nRespond in this format:\n>>>${recipient}\n${content}\nAvailable functions:\n' + generate_schema_from_functions(tools) + '<|eot_id|>' -}} +{%- if tools|length > 0 and tools|selectattr("type", "equalto", "code_interpreter")|list|length > 0 -%} + {{ '<|start_header_id|>system<|end_header_id|>\n\nWhen you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 60.0 seconds. The drive at \'/mnt/data\' can be used to save and persist user files.<|eot_id|>' }} +{%- endif -%} +{%- for message in messages -%} + {%- if message['role'] == 'user' or message['role'] == 'system' -%} + {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' + message['content'] + '<|eot_id|>' }} + {%- elif message['role'] == 'tool' -%} + {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n' + message['content'] + '<|eot_id|>' }} + {%- else -%} + {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'}} + {%- if message['content'] -%} + {{ '>>>all\n' + message['content'] }} + {%- endif -%} + {%- if 'tool_calls' in message and message['tool_calls'] -%} + {%- for tool_call in message['tool_calls'] -%} + {{ '>>>' + tool_call['function']['name'] + '\n' + tool_call['function']['arguments'] }} + {%- endfor -%} + {%- endif -%} + {{ '<|eot_id|>' }} + {%- endif -%} +{%- endfor -%} +{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n>>>' }}{% endif %} \ No newline at end of file diff --git a/models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja b/models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja new file mode 100644 index 000000000..33089ace1 --- /dev/null +++ b/models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja @@ -0,0 +1,109 @@ +{{- bos_token }} +{%- if custom_tools is defined %} + {%- set tools = custom_tools %} +{%- endif %} +{%- if not tools_in_user_message is defined %} + {%- set tools_in_user_message = true %} +{%- endif %} +{%- if not date_string is defined %} + {%- set date_string = "26 Jul 2024" %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} + +{#- This block extracts the system message, so we can slot it into the right place. #} +{%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} +{%- else %} + {%- set system_message = "" %} +{%- endif %} + +{#- System message + builtin tools #} +{{- "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if builtin_tools is defined or tools is not none %} + {{- "Environment: ipython\n" }} +{%- endif %} +{%- if builtin_tools is defined %} + {{- "Tools: " + builtin_tools | reject('equalto', 'code_interpreter') | join(", ") + "\n\n"}} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n" }} +{{- "Today Date: " + date_string + "\n\n" }} +{%- if tools is not none and not tools_in_user_message %} + {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} +{%- endif %} +{{- system_message }} +{{- "<|eot_id|>" }} + +{#- Custom tools are passed in a user message with some extra guidance #} +{%- if tools_in_user_message and not tools is none %} + {#- Extract the first user message so we can plug it in here #} + {%- if messages | length != 0 %} + {%- set first_user_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} + {%- else %} + {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} +{%- endif %} + {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} + {{- "Given the following functions, please respond with a JSON for a function call " }} + {{- "with its proper arguments that best answers the given prompt.\n\n" }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} + {{- first_user_message + "<|eot_id|>"}} +{%- endif %} + +{%- for message in messages %} + {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} + {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} + {%- elif 'tool_calls' in message %} + {%- if not message.tool_calls|length == 1 %} + {{- raise_exception("This model only supports single tool-calls at once!") }} + {%- endif %} + {%- set tool_call = message.tool_calls[0].function %} + {%- if builtin_tools is defined and tool_call.name in builtin_tools %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- "<|python_tag|>" + tool_call.name + ".call(" }} + {%- for arg_name, arg_val in tool_call.arguments | items %} + {{- arg_name + '="' + arg_val + '"' }} + {%- if not loop.last %} + {{- ", " }} + {%- endif %} + {%- endfor %} + {{- ")" }} + {%- else %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- '{"name": "' + tool_call.name + '", ' }} + {{- '"parameters": ' }} + {{- tool_call.arguments | tojson }} + {{- "}" }} + {%- endif %} + {%- if builtin_tools is defined %} + {#- This means we're in ipython mode #} + {{- "<|eom_id|>" }} + {%- else %} + {{- "<|eot_id|>" }} + {%- endif %} + {%- elif message.role == "tool" or message.role == "ipython" %} + {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} + {%- if message.content is mapping or message.content is iterable %} + {{- message.content | tojson }} + {%- else %} + {{- message.content }} + {%- endif %} + {{- "<|eot_id|>" }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif %} diff --git a/models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja b/models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja new file mode 100644 index 000000000..1bad6a0f6 --- /dev/null +++ b/models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja @@ -0,0 +1,93 @@ +{{- bos_token }} +{%- if custom_tools is defined %} + {%- set tools = custom_tools %} +{%- endif %} +{%- if not tools_in_user_message is defined %} + {%- set tools_in_user_message = true %} +{%- endif %} +{%- if not date_string is defined %} + {%- if strftime_now is defined %} + {%- set date_string = strftime_now("%d %b %Y") %} + {%- else %} + {%- set date_string = "26 Jul 2024" %} + {%- endif %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} + +{#- This block extracts the system message, so we can slot it into the right place. #} +{%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} +{%- else %} + {%- set system_message = "" %} +{%- endif %} + +{#- System message #} +{{- "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if tools is not none %} + {{- "Environment: ipython\n" }} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n" }} +{{- "Today Date: " + date_string + "\n\n" }} +{%- if tools is not none and not tools_in_user_message %} + {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} +{%- endif %} +{{- system_message }} +{{- "<|eot_id|>" }} + +{#- Custom tools are passed in a user message with some extra guidance #} +{%- if tools_in_user_message and not tools is none %} + {#- Extract the first user message so we can plug it in here #} + {%- if messages | length != 0 %} + {%- set first_user_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} + {%- else %} + {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} +{%- endif %} + {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} + {{- "Given the following functions, please respond with a JSON for a function call " }} + {{- "with its proper arguments that best answers the given prompt.\n\n" }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} + {{- first_user_message + "<|eot_id|>"}} +{%- endif %} + +{%- for message in messages %} + {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} + {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} + {%- elif 'tool_calls' in message %} + {%- if not message.tool_calls|length == 1 %} + {{- raise_exception("This model only supports single tool-calls at once!") }} + {%- endif %} + {%- set tool_call = message.tool_calls[0].function %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- '{"name": "' + tool_call.name + '", ' }} + {{- '"parameters": ' }} + {{- tool_call.arguments | tojson }} + {{- "}" }} + {{- "<|eot_id|>" }} + {%- elif message.role == "tool" or message.role == "ipython" %} + {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} + {%- if message.content is mapping or message.content is iterable %} + {{- message.content | tojson }} + {%- else %} + {{- message.content }} + {%- endif %} + {{- "<|eot_id|>" }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif %} diff --git a/models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja b/models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja new file mode 100644 index 000000000..33089ace1 --- /dev/null +++ b/models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja @@ -0,0 +1,109 @@ +{{- bos_token }} +{%- if custom_tools is defined %} + {%- set tools = custom_tools %} +{%- endif %} +{%- if not tools_in_user_message is defined %} + {%- set tools_in_user_message = true %} +{%- endif %} +{%- if not date_string is defined %} + {%- set date_string = "26 Jul 2024" %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} + +{#- This block extracts the system message, so we can slot it into the right place. #} +{%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} +{%- else %} + {%- set system_message = "" %} +{%- endif %} + +{#- System message + builtin tools #} +{{- "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if builtin_tools is defined or tools is not none %} + {{- "Environment: ipython\n" }} +{%- endif %} +{%- if builtin_tools is defined %} + {{- "Tools: " + builtin_tools | reject('equalto', 'code_interpreter') | join(", ") + "\n\n"}} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n" }} +{{- "Today Date: " + date_string + "\n\n" }} +{%- if tools is not none and not tools_in_user_message %} + {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} +{%- endif %} +{{- system_message }} +{{- "<|eot_id|>" }} + +{#- Custom tools are passed in a user message with some extra guidance #} +{%- if tools_in_user_message and not tools is none %} + {#- Extract the first user message so we can plug it in here #} + {%- if messages | length != 0 %} + {%- set first_user_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} + {%- else %} + {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} +{%- endif %} + {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} + {{- "Given the following functions, please respond with a JSON for a function call " }} + {{- "with its proper arguments that best answers the given prompt.\n\n" }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} + {{- first_user_message + "<|eot_id|>"}} +{%- endif %} + +{%- for message in messages %} + {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} + {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} + {%- elif 'tool_calls' in message %} + {%- if not message.tool_calls|length == 1 %} + {{- raise_exception("This model only supports single tool-calls at once!") }} + {%- endif %} + {%- set tool_call = message.tool_calls[0].function %} + {%- if builtin_tools is defined and tool_call.name in builtin_tools %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- "<|python_tag|>" + tool_call.name + ".call(" }} + {%- for arg_name, arg_val in tool_call.arguments | items %} + {{- arg_name + '="' + arg_val + '"' }} + {%- if not loop.last %} + {{- ", " }} + {%- endif %} + {%- endfor %} + {{- ")" }} + {%- else %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- '{"name": "' + tool_call.name + '", ' }} + {{- '"parameters": ' }} + {{- tool_call.arguments | tojson }} + {{- "}" }} + {%- endif %} + {%- if builtin_tools is defined %} + {#- This means we're in ipython mode #} + {{- "<|eom_id|>" }} + {%- else %} + {{- "<|eot_id|>" }} + {%- endif %} + {%- elif message.role == "tool" or message.role == "ipython" %} + {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} + {%- if message.content is mapping or message.content is iterable %} + {{- message.content | tojson }} + {%- else %} + {{- message.content }} + {%- endif %} + {{- "<|eot_id|>" }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif %} diff --git a/models/templates/microsoft-Phi-3.5-mini-instruct.jinja b/models/templates/microsoft-Phi-3.5-mini-instruct.jinja new file mode 100644 index 000000000..d1533d152 --- /dev/null +++ b/models/templates/microsoft-Phi-3.5-mini-instruct.jinja @@ -0,0 +1,8 @@ +{% for message in messages %}{% if message['role'] == 'system' and message['content'] %}{{'<|system|> +' + message['content'] + '<|end|> +'}}{% elif message['role'] == 'user' %}{{'<|user|> +' + message['content'] + '<|end|> +'}}{% elif message['role'] == 'assistant' %}{{'<|assistant|> +' + message['content'] + '<|end|> +'}}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ '<|assistant|> +' }}{% else %}{{ eos_token }}{% endif %} \ No newline at end of file diff --git a/models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja b/models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja new file mode 100644 index 000000000..9c21a3f13 --- /dev/null +++ b/models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja @@ -0,0 +1,87 @@ +{%- if messages[0]["role"] == "system" %} + {%- set system_message = messages[0]["content"] %} + {%- set loop_messages = messages[1:] %} +{%- else %} + {%- set loop_messages = messages %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} +{%- set user_messages = loop_messages | selectattr("role", "equalto", "user") | list %} + +{#- This block checks for alternating user/assistant messages, skipping tool calling messages #} +{%- set ns = namespace() %} +{%- set ns.index = 0 %} +{%- for message in loop_messages %} + {%- if not (message.role == "tool" or message.role == "tool_results" or (message.tool_calls is defined and message.tool_calls is not none)) %} + {%- if (message["role"] == "user") != (ns.index % 2 == 0) %} + {{- raise_exception("After the optional system message, conversation roles must alternate user/assistant/user/assistant/...") }} + {%- endif %} + {%- set ns.index = ns.index + 1 %} + {%- endif %} +{%- endfor %} + +{{- bos_token }} +{%- for message in loop_messages %} + {%- if message["role"] == "user" %} + {%- if tools is not none and (message == user_messages[-1]) %} + {{- "[AVAILABLE_TOOLS][" }} + {%- for tool in tools %} + {%- set tool = tool.function %} + {{- '{"type": "function", "function": {' }} + {%- for key, val in tool.items() if key != "return" %} + {%- if val is string %} + {{- '"' + key + '": "' + val + '"' }} + {%- else %} + {{- '"' + key + '": ' + val|tojson }} + {%- endif %} + {%- if not loop.last %} + {{- ", " }} + {%- endif %} + {%- endfor %} + {{- "}}" }} + {%- if not loop.last %} + {{- ", " }} + {%- else %} + {{- "]" }} + {%- endif %} + {%- endfor %} + {{- "[/AVAILABLE_TOOLS]" }} + {%- endif %} + {%- if loop.last and system_message is defined %} + {{- "[INST]" + system_message + "\n\n" + message["content"] + "[/INST]" }} + {%- else %} + {{- "[INST]" + message["content"] + "[/INST]" }} + {%- endif %} + {%- elif (message.tool_calls is defined and message.tool_calls is not none) %} + {{- "[TOOL_CALLS][" }} + {%- for tool_call in message.tool_calls %} + {%- set out = tool_call.function|tojson %} + {{- out[:-1] }} + {%- if not tool_call.id is defined or tool_call.id|length != 9 %} + {{- raise_exception("Tool call IDs should be alphanumeric strings with length 9!") }} + {%- endif %} + {{- ', "id": "' + tool_call.id + '"}' }} + {%- if not loop.last %} + {{- ", " }} + {%- else %} + {{- "]" + eos_token }} + {%- endif %} + {%- endfor %} + {%- elif message["role"] == "assistant" %} + {{- message["content"] + eos_token}} + {%- elif message["role"] == "tool_results" or message["role"] == "tool" %} + {%- if message.content is defined and message.content.content is defined %} + {%- set content = message.content.content %} + {%- else %} + {%- set content = message.content %} + {%- endif %} + {{- '[TOOL_RESULTS]{"content": ' + content|string + ", " }} + {%- if not message.tool_call_id is defined or message.tool_call_id|length != 9 %} + {{- raise_exception("Tool call IDs should be alphanumeric strings with length 9!") }} + {%- endif %} + {{- '"call_id": "' + message.tool_call_id + '"}[/TOOL_RESULTS]' }} + {%- else %} + {{- raise_exception("Only user and assistant roles are supported, with the exception of an initial optional system message!") }} + {%- endif %} +{%- endfor %} diff --git a/scripts/fetch_server_test_models.py b/scripts/fetch_server_test_models.py new file mode 100755 index 000000000..05690b138 --- /dev/null +++ b/scripts/fetch_server_test_models.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python +''' + This script fetches all the models used in the server tests. + + This is useful for slow tests that use larger models, to avoid them timing out on the model downloads. + + It is meant to be run from the root of the repository. + + Example: + python scripts/fetch_server_test_models.py + ( cd examples/server/tests && ./tests.sh -v -x -m slow ) +''' +import ast +import glob +import logging +import os +from typing import Generator +from pydantic import BaseModel +from typing import Optional +import subprocess + + +class HuggingFaceModel(BaseModel): + hf_repo: str + hf_file: Optional[str] = None + + class Config: + frozen = True + + +def collect_hf_model_test_parameters(test_file) -> Generator[HuggingFaceModel, None, None]: + try: + with open(test_file) as f: + tree = ast.parse(f.read()) + except Exception as e: + logging.error(f'collect_hf_model_test_parameters failed on {test_file}: {e}') + return + + for node in ast.walk(tree): + if isinstance(node, ast.FunctionDef): + for dec in node.decorator_list: + if isinstance(dec, ast.Call) and isinstance(dec.func, ast.Attribute) and dec.func.attr == 'parametrize': + param_names = ast.literal_eval(dec.args[0]).split(",") + if "hf_repo" not in param_names: + continue + + raw_param_values = dec.args[1] + if not isinstance(raw_param_values, ast.List): + logging.warning(f'Skipping non-list parametrize entry at {test_file}:{node.lineno}') + continue + + hf_repo_idx = param_names.index("hf_repo") + hf_file_idx = param_names.index("hf_file") if "hf_file" in param_names else None + + for t in raw_param_values.elts: + if not isinstance(t, ast.Tuple): + logging.warning(f'Skipping non-tuple parametrize entry at {test_file}:{node.lineno}') + continue + yield HuggingFaceModel( + hf_repo=ast.literal_eval(t.elts[hf_repo_idx]), + hf_file=ast.literal_eval(t.elts[hf_file_idx]) if hf_file_idx is not None else None) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') + + models = sorted(list(set([ + model + for test_file in glob.glob('examples/server/tests/unit/test_*.py') + for model in collect_hf_model_test_parameters(test_file) + ])), key=lambda m: (m.hf_repo, m.hf_file)) + + logging.info(f'Found {len(models)} models in parameterized tests:') + for m in models: + logging.info(f' - {m.hf_repo} / {m.hf_file}') + + cli_path = os.environ.get( + 'LLAMA_SERVER_BIN_PATH', + os.path.join( + os.path.dirname(__file__), + '../build/bin/Release/llama-cli.exe' if os.name == 'nt' else '../build/bin/llama-cli')) + + for m in models: + if '<' in m.hf_repo or (m.hf_file is not None and '<' in m.hf_file): + continue + if m.hf_file is not None and '-of-' in m.hf_file: + logging.warning(f'Skipping model at {m.hf_repo} / {m.hf_file} because it is a split file') + continue + logging.info(f'Using llama-cli to ensure model {m.hf_repo}/{m.hf_file} was fetched') + cmd = [ + cli_path, + '-hfr', m.hf_repo, + *([] if m.hf_file is None else ['-hff', m.hf_file]), + '-n', '1', + '-p', 'Hey', + '--no-warmup', + '--log-disable', + '-no-cnv'] + if m.hf_file != 'tinyllamas/stories260K.gguf' and 'Mistral-Nemo' not in m.hf_repo: + cmd.append('-fa') + try: + subprocess.check_call(cmd) + except subprocess.CalledProcessError: + logging.error(f'Failed to fetch model at {m.hf_repo} / {m.hf_file} with command:\n {" ".join(cmd)}') + exit(1) diff --git a/scripts/get_hf_chat_template.py b/scripts/get_chat_template.py old mode 100755 new mode 100644 similarity index 86% rename from scripts/get_hf_chat_template.py rename to scripts/get_chat_template.py index 23bb1de59..e8982d11a --- a/scripts/get_hf_chat_template.py +++ b/scripts/get_chat_template.py @@ -4,12 +4,12 @@ If a model has multiple chat templates, you can specify the variant name. Syntax: - ./scripts/get_hf_chat_template.py model_id [variant] + ./scripts/get_chat_template.py model_id [variant] Examples: - ./scripts/get_hf_chat_template.py NousResearch/Meta-Llama-3-8B-Instruct - ./scripts/get_hf_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use - ./scripts/get_hf_chat_template.py meta-llama/Llama-3.2-3B-Instruct + ./scripts/get_chat_template.py NousResearch/Meta-Llama-3-8B-Instruct + ./scripts/get_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use + ./scripts/get_chat_template.py meta-llama/Llama-3.2-3B-Instruct ''' import json @@ -17,7 +17,7 @@ import re import sys -def get_hf_chat_template(model_id, variant=None): +def get_chat_template(model_id, variant=None): try: # Use huggingface_hub library if available. # Allows access to gated models if the user has access and ran `huggingface-cli login`. @@ -69,7 +69,7 @@ def main(args): model_id = args[0] variant = None if len(args) < 2 else args[1] - template = get_hf_chat_template(model_id, variant) + template = get_chat_template(model_id, variant) sys.stdout.write(template) diff --git a/src/llama-grammar.cpp b/src/llama-grammar.cpp index bebe4e9a3..6be5cbe0e 100644 --- a/src/llama-grammar.cpp +++ b/src/llama-grammar.cpp @@ -560,7 +560,7 @@ bool llama_grammar_parser::parse(const char * src) { } } } catch (const std::exception & err) { - fprintf(stderr, "%s: error parsing grammar: %s\n", __func__, err.what()); + fprintf(stderr, "%s: error parsing grammar: %s\n\n%s\n", __func__, err.what(), src); rules.clear(); return false; } @@ -960,10 +960,28 @@ struct llama_grammar * llama_grammar_init_impl( // Important: vec_rules has to be moved here, not copied, because stacks contains // pointers to elements of vec_rules. If vec_rules were copied into llama_grammar // then the pointers would be invalidated when the local vec_rules goes out of scope. - return new llama_grammar { vocab, std::move(vec_rules), std::move(stacks), {}, }; + return new llama_grammar { + vocab, + std::move(vec_rules), + std::move(stacks), + /* .partial_utf8 = */ {}, + /* .lazy =*/ false, + /* .awaiting_trigger = */ false, + /* .trigger_buffer = */ "", + /* .trigger_tokens = */ {}, + /* .trigger_words = */ {}, + }; } -struct llama_grammar * llama_grammar_init_impl(const struct llama_vocab * vocab, const char * grammar_str, const char * grammar_root) { +struct llama_grammar * llama_grammar_init_impl( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + bool lazy, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens) { llama_grammar_parser parser; // if there is a grammar, parse it @@ -1035,10 +1053,31 @@ struct llama_grammar * llama_grammar_init_impl(const struct llama_vocab * vocab, } } while (true); + std::vector vec_trigger_tokens; + std::vector vec_trigger_words; + for (size_t i = 0; i < num_trigger_tokens; i++) { + GGML_ASSERT(trigger_tokens != nullptr); + vec_trigger_tokens.push_back(trigger_tokens[i]); + } + for (size_t i = 0; i < num_trigger_words; i++) { + GGML_ASSERT(trigger_words != nullptr); + vec_trigger_words.push_back(trigger_words[i]); + } + // Important: vec_rules has to be moved here, not copied, because stacks contains // pointers to elements of vec_rules. If vec_rules were copied into llama_grammar // then the pointers would be invalidated when the local vec_rules goes out of scope. - return new llama_grammar { vocab, std::move(vec_rules), std::move(stacks), {}, }; + return new llama_grammar { + vocab, + std::move(vec_rules), + std::move(stacks), + /* .partial_utf8 = */ {}, + /* .lazy = */ lazy, + /* .awaiting_trigger = */ lazy, + /* .trigger_buffer = */ "", + std::move(vec_trigger_tokens), + std::move(vec_trigger_words), + }; } void llama_grammar_free_impl(struct llama_grammar * grammar) { @@ -1055,6 +1094,11 @@ struct llama_grammar * llama_grammar_clone_impl(const struct llama_grammar & gra grammar.rules, grammar.stacks, grammar.partial_utf8, + grammar.lazy, + grammar.awaiting_trigger, + grammar.trigger_buffer, + grammar.trigger_tokens, + grammar.trigger_words, }; // redirect elements in stacks to point to new rules @@ -1076,6 +1120,10 @@ struct llama_grammar * llama_grammar_clone_impl(const struct llama_grammar & gra void llama_grammar_apply_impl(const struct llama_grammar & grammar, llama_token_data_array * cur_p) { GGML_ASSERT(grammar.vocab != nullptr); + if (grammar.awaiting_trigger) { + return; + } + bool allow_eog = false; for (const auto & stack : grammar.stacks) { if (stack.empty()) { @@ -1115,6 +1163,34 @@ void llama_grammar_apply_impl(const struct llama_grammar & grammar, llama_token_ void llama_grammar_accept_impl(struct llama_grammar & grammar, llama_token token) { GGML_ASSERT(grammar.vocab != nullptr); + const auto & piece = grammar.vocab->token_to_piece(token); + + if (grammar.awaiting_trigger) { + if (std::find(grammar.trigger_tokens.begin(), grammar.trigger_tokens.end(), token) != grammar.trigger_tokens.end()) { + grammar.awaiting_trigger = false; + grammar.trigger_buffer.clear(); + llama_grammar_accept_str(grammar, piece); + LLAMA_LOG_DEBUG("Grammar triggered on token %u (`%s`)", token, piece.c_str()); + return; + } else { + // TODO: consider a smarter incremental substring search algorithm (store last position to search from). + grammar.trigger_buffer += piece; + for (const auto & word : grammar.trigger_words) { + auto pos = grammar.trigger_buffer.find(word); + if (pos != std::string::npos) { + grammar.awaiting_trigger = false; + auto constrained_str = grammar.trigger_buffer.substr(pos); + grammar.trigger_buffer.clear(); + llama_grammar_accept_str(grammar, constrained_str); + LLAMA_LOG_DEBUG("Grammar triggered on word `%s`", word.c_str()); + return; + } + } + LLAMA_LOG_DEBUG("Grammar still awaiting trigger after token %d (`%s`) (buffer: `%s`)\n", token, piece.c_str(), grammar.trigger_buffer.c_str()); + return; + } + } + if (grammar.vocab->is_eog(token)) { for (const auto & stack : grammar.stacks) { if (stack.empty()) { @@ -1124,8 +1200,10 @@ void llama_grammar_accept_impl(struct llama_grammar & grammar, llama_token token GGML_ABORT("fatal error"); } - const std::string & piece = grammar.vocab->token_to_piece(token); + llama_grammar_accept_str(grammar, piece); +} +void llama_grammar_accept_str(struct llama_grammar & grammar, const std::string & piece) { // Note terminating 0 in decoded string const auto decoded = decode_utf8(piece, grammar.partial_utf8); const auto & code_points = decoded.first; diff --git a/src/llama-grammar.h b/src/llama-grammar.h index f8b40c651..252d54d4c 100644 --- a/src/llama-grammar.h +++ b/src/llama-grammar.h @@ -114,6 +114,15 @@ struct llama_grammar { // buffer for partially generated UTF-8 sequence from accepted tokens llama_partial_utf8 partial_utf8; + + // lazy grammars wait for trigger words or tokens before constraining the sampling. + // we still ahve trigger_tokens for non-lazy grammars to force printing of special trigger tokens. + // (useful e.g. for tool_choice=required) + bool lazy = false; + bool awaiting_trigger = false; // Initialized to true for lazy grammars only + std::string trigger_buffer; // Output buffered by lazy grammar. Will be cleared once trigger is found. + std::vector trigger_tokens; // Tokens that trigger a lazy grammar, or tokens to force printing of (even if special). + std::vector trigger_words; }; // @@ -127,7 +136,15 @@ struct llama_grammar * llama_grammar_init_impl( size_t n_rules, size_t start_rule_index); -struct llama_grammar * llama_grammar_init_impl(const struct llama_vocab * vocab, const char * grammar_str, const char * grammar_root); +struct llama_grammar * llama_grammar_init_impl( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + bool lazy, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens); void llama_grammar_free_impl(struct llama_grammar * grammar); @@ -141,3 +158,7 @@ void llama_grammar_apply_impl( void llama_grammar_accept_impl( struct llama_grammar & grammar, llama_token token); + +void llama_grammar_accept_str( + struct llama_grammar & grammar, + const std::string & piece); diff --git a/src/llama-sampling.cpp b/src/llama-sampling.cpp index b3a12386e..26974f539 100644 --- a/src/llama-sampling.cpp +++ b/src/llama-sampling.cpp @@ -1433,13 +1433,30 @@ static void llama_sampler_grammar_apply(struct llama_sampler * smpl, llama_token } } +// Fwd declare to break reset --> init_impl --> llama_sampler_grammar_i --> reset cycle. +static struct llama_sampler * llama_sampler_init_grammar_impl( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + bool lazy, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens); + static void llama_sampler_grammar_reset(struct llama_sampler * smpl) { auto * ctx = (llama_sampler_grammar *) smpl->ctx; if (!ctx->grammar) { return; } - auto * grammar_new = llama_grammar_init_impl(ctx->grammar->vocab, ctx->grammar_str.c_str(), ctx->grammar_root.c_str()); + std::vector trigger_words; + for (auto & word : ctx->grammar->trigger_words) { + trigger_words.push_back(word.c_str()); + } + auto * grammar_new = llama_grammar_init_impl(ctx->grammar->vocab, ctx->grammar_str.c_str(), ctx->grammar_root.c_str(), + ctx->grammar->lazy, trigger_words.data(), trigger_words.size(), + ctx->grammar->trigger_tokens.data(), ctx->grammar->trigger_tokens.size()); llama_grammar_free_impl(ctx->grammar); ctx->grammar = grammar_new; @@ -1448,7 +1465,7 @@ static void llama_sampler_grammar_reset(struct llama_sampler * smpl) { static struct llama_sampler * llama_sampler_grammar_clone(const struct llama_sampler * smpl) { const auto * ctx = (const llama_sampler_grammar *) smpl->ctx; - auto * result = llama_sampler_init_grammar(ctx->vocab, nullptr, nullptr); + auto * result = llama_sampler_init_grammar_impl(ctx->vocab, nullptr, nullptr, false, nullptr, 0, nullptr, 0); // copy the state { @@ -1484,7 +1501,15 @@ static struct llama_sampler_i llama_sampler_grammar_i = { /* .free = */ llama_sampler_grammar_free, }; -struct llama_sampler * llama_sampler_init_grammar(const struct llama_vocab * vocab, const char * grammar_str, const char * grammar_root) { +static struct llama_sampler * llama_sampler_init_grammar_impl( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + bool lazy, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens) { auto * ctx = new llama_sampler_grammar; if (grammar_str != nullptr && grammar_str[0] != '\0') { @@ -1492,7 +1517,7 @@ struct llama_sampler * llama_sampler_init_grammar(const struct llama_vocab * voc /* .vocab = */ vocab, /* .grammar_str = */ grammar_str, /* .grammar_root = */ grammar_root, - /* .grammar = */ llama_grammar_init_impl(vocab, grammar_str, grammar_root), + /* .grammar = */ llama_grammar_init_impl(vocab, grammar_str, grammar_root, lazy, trigger_words, num_trigger_words, trigger_tokens, num_trigger_tokens), }; } else { *ctx = { @@ -1509,6 +1534,24 @@ struct llama_sampler * llama_sampler_init_grammar(const struct llama_vocab * voc }; } +struct llama_sampler * llama_sampler_init_grammar( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root) { + return llama_sampler_init_grammar_impl(vocab, grammar_str, grammar_root, /* lazy= */ false, nullptr, 0, nullptr, 0); +} + +struct llama_sampler * llama_sampler_init_grammar_lazy( + const struct llama_vocab * vocab, + const char * grammar_str, + const char * grammar_root, + const char ** trigger_words, + size_t num_trigger_words, + const llama_token * trigger_tokens, + size_t num_trigger_tokens) { + return llama_sampler_init_grammar_impl(vocab, grammar_str, grammar_root, /* lazy= */ true, trigger_words, num_trigger_words, trigger_tokens, num_trigger_tokens); +} + // penalties struct llama_sampler_penalties { diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3fa43c295..40f83ff0d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -93,6 +93,7 @@ if (NOT WIN32) llama_target_and_test(test-grammar-parser.cpp) llama_target_and_test(test-grammar-integration.cpp) llama_target_and_test(test-llama-grammar.cpp) + llama_target_and_test(test-chat.cpp) # TODO: disabled on loongarch64 because the ggml-ci node lacks Python 3.8 if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64") llama_target_and_test(test-json-schema-to-grammar.cpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index 190643136..4563f9dcb 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -328,7 +328,7 @@ int main(void) { // test llama_chat_format_single for system message printf("\n\n=== llama_chat_format_single (system message) ===\n\n"); std::vector chat2; - common_chat_msg sys_msg{"system", "You are a helpful assistant"}; + common_chat_msg sys_msg{"system", "You are a helpful assistant", {}}; auto fmt_sys = [&](std::string tmpl_str) { minja::chat_template tmpl(tmpl_str, "", ""); @@ -352,10 +352,10 @@ int main(void) { // test llama_chat_format_single for user message printf("\n\n=== llama_chat_format_single (user message) ===\n\n"); - chat2.push_back({"system", "You are a helpful assistant"}); - chat2.push_back({"user", "Hello"}); - chat2.push_back({"assistant", "I am assistant"}); - common_chat_msg new_msg{"user", "How are you"}; + chat2.push_back({"system", "You are a helpful assistant", {}}); + chat2.push_back({"user", "Hello", {}}); + chat2.push_back({"assistant", "I am assistant", {}}); + common_chat_msg new_msg{"user", "How are you", {}}; auto fmt_single = [&](std::string tmpl_str) { minja::chat_template tmpl(tmpl_str, "", ""); diff --git a/tests/test-chat.cpp b/tests/test-chat.cpp new file mode 100644 index 000000000..ccc65d87a --- /dev/null +++ b/tests/test-chat.cpp @@ -0,0 +1,521 @@ +// Tests chat handling, including grammar generation and parsing for tool calling, for various templates. +// +// Also acts as a CLI to generate a Markdown summary of the formats of Jinja templates, +// e.g. given Minja (http://github.com/google/minja) checked out in parent dir: +// +// cmake -B build && cmake --build build --parallel && ./build/bin/test-chat ../minja/build/tests/*.jinja 2>/dev/null +// +#include +#include +#include +#include + +#include "chat-template.hpp" +#include "chat.hpp" +#include "llama-grammar.h" +#include "unicode.h" + +using json = nlohmann::ordered_json; + +static common_chat_msg msg_from_json(const json & message) { + common_chat_msg ret{ + "assistant", + "", + {}, + }; + if (message.contains("content") && !message.at("content").is_null()) { + ret.content = message.at("content").get(); + } + auto has_tool_calls = message.contains("tool_calls"); + if (has_tool_calls) { + for (const auto & tc : message.at("tool_calls")) { + const auto & arguments = tc.at("function").at("arguments"); + ret.tool_calls.push_back({ + tc.at("function").at("name").get(), + arguments.is_string() ? arguments.get() : arguments.dump(), + tc.contains("id") ? tc.at("id").get() : "", + }); + } + } + return ret; +} + +template static void assert_equals(const T & expected, const T & actual) { + if (expected != actual) { + std::cerr << "Expected: " << expected << std::endl; + std::cerr << "Actual: " << actual << std::endl; + std::cerr << std::flush; + throw std::runtime_error("Test failed"); + } +} + +static std::string read_file(const std::string & path) { + std::cerr << "# Reading: " << path << std::endl << std::flush; + std::ifstream fs(path, std::ios_base::binary); + if (!fs.is_open()) { + fs = std::ifstream("../" + path, std::ios_base::binary); + if (!fs.is_open()) { + throw std::runtime_error("Failed to open file: " + path); + } + } + fs.seekg(0, std::ios_base::end); + auto size = fs.tellg(); + fs.seekg(0); + std::string out; + out.resize(static_cast(size)); + fs.read(&out[0], static_cast(size)); + return out; +} + +static std::unique_ptr build_grammar(const std::string & grammar_str) { + return std::unique_ptr( + llama_grammar_init_impl(nullptr, grammar_str.c_str(), "root", false, nullptr, 0, nullptr, 0)); +} + +// TODO: extract to common helper (copied from test-grammar-integration.cpp) +static bool match_string(const std::string & input, llama_grammar * grammar) { + const auto cpts = unicode_cpts_from_utf8(input); + + auto & stacks_cur = llama_grammar_get_stacks(grammar); + + for (const auto & cpt : cpts) { + llama_grammar_accept(grammar, cpt); + + if (stacks_cur.empty()) { + // no stacks means that the grammar failed to match at this point + return false; + } + } + + for (const auto & stack : stacks_cur) { + if (stack.empty()) { + // An empty stack means that the grammar has been completed + return true; + } + } + + return false; +} + +// Dumps `{"a": 1}` as `"{\"a\": 1}"`, unlike nlohmann::json::dump which would dump it as `"{\"a\":1}"`. +static std::string dump(const json & j) { + return minja::Value(j).dump(-1, /* to_json= */ true); +} + +static void assert_msg_equals(const common_chat_msg & expected, const common_chat_msg & actual) { + assert_equals(expected.role, actual.role); + assert_equals(expected.content, actual.content); + assert_equals(expected.tool_calls.size(), actual.tool_calls.size()); + for (size_t i = 0; i < expected.tool_calls.size(); i++) { + const auto & expected_tool_call = expected.tool_calls[i]; + const auto & actual_tool_call = actual.tool_calls[i]; + assert_equals(expected_tool_call.name, actual_tool_call.name); + assert_equals(dump(json::parse(expected_tool_call.arguments)), dump(json::parse(actual_tool_call.arguments))); + assert_equals(expected_tool_call.id, actual_tool_call.id); + } +} + +const auto special_function_tool = json::parse(R"({ + "type": "function", + "function": { + "name": "special_function", + "description": "I'm special", + "parameters": { + "type": "object", + "properties": { + "arg1": { + "type": "integer", + "description": "The arg." + } + }, + "required": ["arg1"] + } + } +})"); +const auto python_tool = json::parse(R"({ + "type": "function", + "function": { + "name": "python", + "description": "an ipython interpreter", + "parameters": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Python code to execute." + } + }, + "required": ["code"] + } + } +})"); +const auto code_interpreter_tool = json::parse(R"({ + "type": "function", + "function": { + "name": "code_interpreter", + "description": "an ipython interpreter", + "parameters": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Python code to execute." + } + }, + "required": ["code"] + } + } +})"); +const json tools = { special_function_tool, python_tool }; +const json llama_3_1_tools = { special_function_tool, code_interpreter_tool }; + +struct delta_data { + std::string delta; + std::string grammar; + common_chat_format format; +}; + +static delta_data init_delta(const common_chat_template & tmpl, const std::vector & end_tokens, + const json & user_message, const json & delta_message, const json & tools, + const json & tool_choice) { + common_chat_inputs inputs; + inputs.parallel_tool_calls = true; + inputs.messages = json::array(); + inputs.messages.push_back(user_message); + inputs.tools = tools; + inputs.tool_choice = tool_choice; + auto params_prefix = common_chat_params_init(tmpl, inputs); + + inputs.messages.push_back(delta_message); + inputs.add_generation_prompt = false; + auto params_full = common_chat_params_init(tmpl, inputs); + + std::string prefix = params_prefix.prompt; + std::string full = params_full.prompt; + + // Check full starts with prefix + if (full.find(prefix) != 0) { + fprintf(stderr, "Full:\n%s\n\nPrefix:\n%s\n\n", full.c_str(), prefix.c_str()); + throw std::runtime_error("Full message does not start with prefix"); + } + + if (full == prefix) { + throw std::runtime_error("Full message is the same as the prefix"); + } + + auto delta = full.substr(prefix.size()); + + // Strip end tokens + for (const auto & end_token : end_tokens) { + // rfind to find the last occurrence + auto pos = delta.rfind(end_token); + if (pos != std::string::npos) { + delta = delta.substr(0, pos); + break; + } + } + return { delta, params_full.grammar, params_full.format }; +} + +/* + Applies the template to 1 user message w/ add_generation_prompt=true, then w/ the test message w/ add_generation_prompt=false, + gets the diff, removes any end tokens and parses the result w/ the grammar, checking that + the parsed message is the same as the test_message +*/ +static void test_template(const common_chat_template & tmpl, const std::vector & end_tokens, + const json & test_message, const json & tools = {}, const std::string & expected_delta = "", + bool skip_grammar_test = false, bool skip_parser_test = false) { + common_chat_msg expected_msg = msg_from_json(test_message); + + auto user_message = json{ + { "role", "user" }, + { "content", "Hello, world!" } + }; + + for (const auto & tool_choice : json({ "auto", "required" })) { + auto data = init_delta(tmpl, end_tokens, user_message, test_message, tools, tool_choice); + if (!expected_delta.empty()) { + assert_equals(expected_delta, data.delta); + } + + if (!skip_parser_test) { + const auto msg = common_chat_parse(data.delta, data.format); + assert_msg_equals(expected_msg, msg); + } + + if (!expected_msg.tool_calls.empty()) { + GGML_ASSERT(!data.grammar.empty()); + } + if (!data.grammar.empty()) { + auto grammar = build_grammar(data.grammar); + if (!grammar) { + throw std::runtime_error("Failed to build grammar"); + } + // TODO: exercice lazy grammars + triggers here, instead of skipping the test + if (!skip_grammar_test) { + if (!match_string(data.delta, grammar.get())) { + throw std::runtime_error("Failed to match delta against grammar:\n\n" + data.delta + + "\n\nGrammar: " + data.grammar); + } + } + } + } +} + +static void test_template_output_parsers() { + auto text_message = json{ + { "role", "assistant" }, + { "content", "Hello, world!" }, + }; + auto tool_call_message = json{ + { "role", "assistant" }, + { "content", {} }, + { "tool_calls", json{ { + { "type", "function" }, + { "function", { { "name", "special_function" }, { "arguments", "{\"arg1\": 1}" } } }, + } } } + }; + auto tool_call_message_with_id = json::parse(tool_call_message.dump()); + tool_call_message_with_id["tool_calls"][0]["id"] = "123456789"; + + auto python_tool_call_message = json{ + { "role", "assistant" }, + { "content", {} }, + { "tool_calls", json{ { + { "type", "function" }, + { "function", + { + { "name", "python" }, + { "arguments", + { + { "code", "print('hey')" }, + } }, + } }, + } } } + }; + auto code_interpreter_tool_call_message = json{ + { "role", "assistant" }, + { "content", {} }, + { "tool_calls", json{ { + { "type", "function" }, + { "function", + { + { "name", "code_interpreter" }, + { "arguments", + { + { "code", "print('hey')" }, + } }, + } }, + } } } + }; + + common_chat_inputs inputs_no_tools; + inputs_no_tools.messages = { + { { "role", "user" }, { "content", "Hey" } } + }; + + common_chat_inputs inputs_tools = inputs_no_tools; + inputs_tools.tools = json::array(); + inputs_tools.tools.push_back(special_function_tool); + + common_chat_inputs inputs_tools_builtin = inputs_no_tools; + inputs_tools_builtin.tools = json::array(); + inputs_tools_builtin.tools.push_back(python_tool); + + { + const common_chat_template tmpl(read_file("models/templates/google-gemma-2-2b-it.jinja"), "", ""); + std::vector end_tokens{ "" }; + + assert_equals(COMMON_CHAT_FORMAT_CONTENT_ONLY, common_chat_params_init(tmpl, inputs_no_tools).format); + assert_equals(COMMON_CHAT_FORMAT_GENERIC, common_chat_params_init(tmpl, inputs_tools).format); + assert_equals(COMMON_CHAT_FORMAT_GENERIC, + common_chat_params_init( + common_chat_template(read_file("models/templates/microsoft-Phi-3.5-mini-instruct.jinja"), + "", ""), + inputs_tools) + .format); + + // Generic tool calls doesn't generate / parse content-only messages symmetrically. + + assert_msg_equals(msg_from_json(text_message), + common_chat_parse("{\n" + " \"response\": \"Hello, world!\"\n" + "}", + common_chat_params_init(tmpl, inputs_tools).format)); + test_template(tmpl, end_tokens, tool_call_message_with_id, tools, + "{\n" + " \"tool_calls\": [\n" + " {\n" + " \"name\": \"special_function\",\n" + " \"arguments\": {\n" + " \"arg1\": 1\n" + " },\n" + " \"id\": \"123456789\"\n" + " }\n" + " ]\n" + "}"); + } + { + const common_chat_template tmpl(read_file("models/templates/mistralai-Mistral-Nemo-Instruct-2407.jinja"), "", + ""); + std::vector end_tokens{ "
" }; + + assert_equals(COMMON_CHAT_FORMAT_MISTRAL_NEMO, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template( + tmpl, end_tokens, tool_call_message_with_id, tools, + "[TOOL_CALLS][{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}, \"id\": \"123456789\"}]", + /* skip_grammar_test= */ true); + } + { + const common_chat_template tmpl( + read_file("models/templates/NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja"), "", ""); + std::vector end_tokens{ "<|im_end|>" }; + + assert_equals(COMMON_CHAT_FORMAT_HERMES_2_PRO, common_chat_params_init(tmpl, inputs_tools).format); + assert_equals( + COMMON_CHAT_FORMAT_HERMES_2_PRO, + common_chat_params_init( + common_chat_template(read_file("models/templates/NousResearch-Hermes-3-Llama-3.1-8B-tool_use.jinja"), + "", ""), + inputs_tools) + .format); + assert_equals( + COMMON_CHAT_FORMAT_HERMES_2_PRO, + common_chat_params_init( + common_chat_template(read_file("models/templates/Qwen-Qwen2.5-7B-Instruct.jinja"), "", ""), + inputs_tools) + .format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + "\n" + "{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}\n" + ""); + test_template(tmpl, end_tokens, python_tool_call_message, tools, + "\n" + "{\"name\": \"python\", \"arguments\": {\"code\": \"print('hey')\"}}\n" + ""); + } + { + const common_chat_template tmpl(read_file("models/templates/meta-llama-Llama-3.1-8B-Instruct.jinja"), "", + ""); + std::vector end_tokens{ "<|eom_id|>", "<|eot_id|>" }; + + assert_equals(COMMON_CHAT_FORMAT_LLAMA_3_X, common_chat_params_init(tmpl, inputs_tools).format); + assert_equals(COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS, + common_chat_params_init(tmpl, inputs_tools_builtin).format); + assert_equals(COMMON_CHAT_FORMAT_LLAMA_3_X_WITH_BUILTIN_TOOLS, + common_chat_params_init( + common_chat_template(read_file("models/templates/meta-llama-Llama-3.3-70B-Instruct.jinja"), + "", ""), + inputs_tools_builtin) + .format); + + // test_template(tmpl, end_tokens, text_message, tools, R"(?)", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, code_interpreter_tool_call_message, llama_3_1_tools, + "<|python_tag|>code_interpreter.call(code=\"print('hey')\")"); + test_template(tmpl, end_tokens, python_tool_call_message, tools, + "<|python_tag|>python.call(code=\"print('hey')\")"); + test_template(tmpl, end_tokens, tool_call_message, tools, + "{\"name\": \"special_function\", \"parameters\": {\"arg1\": 1}}"); + } + { + const common_chat_template tmpl(read_file("models/templates/meta-llama-Llama-3.2-3B-Instruct.jinja"), "", + ""); + std::vector end_tokens{ "<|eom_id|>", "<|eot_id|>" }; + + assert_equals(COMMON_CHAT_FORMAT_LLAMA_3_X, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + "{\"name\": \"special_function\", \"parameters\": {\"arg1\": 1}}"); + } + { + const common_chat_template tmpl(read_file("models/templates/meetkai-functionary-medium-v3.1.jinja"), "", + ""); + std::vector end_tokens{ "<|eom_id|>", "<|eot_id|>" }; + + assert_equals(COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1, + common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + "{\"arg1\": 1}"); + } + { + const common_chat_template tmpl(read_file("models/templates/meetkai-functionary-medium-v3.2.jinja"), "", + ""); + std::vector end_tokens{ "<|eom_id|>", "<|eot_id|>" }; + + assert_equals(COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2, common_chat_params_init(tmpl, inputs_no_tools).format); + assert_equals(COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, {}, + "all\n" + "Hello, world!", + /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + "special_function\n" + "{\"arg1\": 1}"); + } + { + const common_chat_template tmpl(read_file("models/templates/fireworks-ai-llama-3-firefunction-v2.jinja"), "", + ""); + std::vector end_tokens{ "<|eot_id|>" }; + + assert_equals(COMMON_CHAT_FORMAT_FIREFUNCTION_V2, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + " functools[{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}]"); + } + { + const common_chat_template tmpl(read_file("models/templates/deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja"), + "", ""); + std::vector end_tokens{ "<|end▁of▁sentence|>" }; + + assert_equals(COMMON_CHAT_FORMAT_DEEPSEEK_R1, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, tool_call_message, tools, + "<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>special_function\n" + "```json\n" + "{\"arg1\": 1}\n" + "```<|tool▁call▁end|>"); + } +} + +int main(int argc, char ** argv) { +#ifndef _WIN32 + if (argc > 1) { + common_chat_inputs inputs; + inputs.messages = { + { { "role", "user" }, { "content", "Hey" } } + }; + inputs.tools = json::array({ special_function_tool }); + + std::cout << "| Template | Format |\n"; + std::cout << "|----------|--------|\n"; + + for (int i = 1; i < argc; i++) { + std::string path = argv[i]; + if (path.rfind(".jinja") != path.size() - 6) { + std::cerr << "Skipping non-jinja file: " << path << std::endl; + continue; + } + common_chat_template tmpl(read_file(path), "", ""); + auto parts = string_split(path, "/"); + auto name = parts[parts.size() - 1]; + std::cout << "| " << name << " | " << common_chat_format_name(common_chat_params_init(tmpl, inputs).format) + << " |\n"; + } + } else +#endif + { + test_template_output_parsers(); + std::cout << "\n[chat] All tests passed!" << std::endl; + } + return 0; +} diff --git a/tests/test-grammar-integration.cpp b/tests/test-grammar-integration.cpp index e1bdbb925..288e08f51 100644 --- a/tests/test-grammar-integration.cpp +++ b/tests/test-grammar-integration.cpp @@ -13,7 +13,7 @@ using json = nlohmann::ordered_json; static llama_grammar * build_grammar(const std::string & grammar_str) { - return llama_grammar_init_impl(nullptr, grammar_str.c_str(), "root"); + return llama_grammar_init_impl(nullptr, grammar_str.c_str(), "root", false, nullptr, 0, nullptr, 0); } static bool test_build_grammar_fails(const std::string & grammar_str) { From 553f1e46e9e864514bbd6bf4009146db66be0541 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Thu, 30 Jan 2025 22:01:06 +0000 Subject: [PATCH 081/162] `ci`: ccache for all github worfklows (#11516) --- .github/workflows/build.yml | 136 ++++++++++++++++++++++++++++++++++-- 1 file changed, 130 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7eaf9c460..c02dd6a81 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: macOS-latest-cmake-arm64 + evict-old-files: 1d + - name: Dependencies id: depends continue-on-error: true @@ -108,6 +114,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: macOS-latest-cmake-x64 + evict-old-files: 1d + - name: Dependencies id: depends continue-on-error: true @@ -172,6 +184,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-cpu-cmake + evict-old-files: 1d + - name: Dependencies id: depends run: | @@ -249,6 +267,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-latest-cmake-sanitizer-${{ matrix.sanitizer }} + evict-old-files: 1d + - name: Dependencies id: depends run: | @@ -296,6 +320,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-latest-cmake-rpc + evict-old-files: 1d + - name: Dependencies id: depends run: | @@ -325,6 +355,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-22-cmake-vulkan + evict-old-files: 1d + - name: Dependencies id: depends run: | @@ -364,6 +400,12 @@ jobs: sudo apt-get update sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-22-cmake-hip + evict-old-files: 1d + - name: Build with native CMake HIP support id: cmake_build run: | @@ -396,6 +438,12 @@ jobs: apt-get update apt-get install -y build-essential git cmake libcurl4-openssl-dev + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-22-cmake-musa + evict-old-files: 1d + - name: Build with native CMake MUSA support id: cmake_build run: | @@ -435,6 +483,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-22-cmake-sycl + evict-old-files: 1d + - name: Build id: cmake_build run: | @@ -479,6 +533,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-22-cmake-sycl-fp16 + evict-old-files: 1d + - name: Build id: cmake_build run: | @@ -500,6 +560,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: macOS-latest-cmake-ios + evict-old-files: 1d + - name: Dependencies id: depends continue-on-error: true @@ -531,6 +597,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: macOS-latest-cmake-tvos + evict-old-files: 1d + - name: Dependencies id: depends continue-on-error: true @@ -566,6 +638,12 @@ jobs: id: checkout uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: macOS-latest-swift + evict-old-files: 1d + - name: Dependencies id: depends continue-on-error: true @@ -607,6 +685,12 @@ jobs: - name: Clone uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: windows-msys2 + evict-old-files: 1d + - name: Setup ${{ matrix.sys }} uses: msys2/setup-msys2@v2 with: @@ -675,6 +759,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: windows-latest-cmake-${{ matrix.build }} + evict-old-files: 1d + - name: Clone Kompute submodule id: clone_kompute if: ${{ matrix.build == 'kompute-x64' }} @@ -813,6 +903,8 @@ jobs: - name: Clone id: checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Install dependencies env: @@ -821,6 +913,12 @@ jobs: apt update apt install -y cmake build-essential ninja-build libgomp1 git + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ubuntu-latest-cmake-cuda + evict-old-files: 1d + - name: Build with CMake run: | cmake -S . -B build -G Ninja \ @@ -847,6 +945,12 @@ jobs: with: fetch-depth: 0 + - name: Install ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }} + evict-old-files: 1d + - name: Install Cuda Toolkit 11.7 if: ${{ matrix.cuda == '11.7' }} run: | @@ -903,11 +1007,6 @@ jobs: echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 echo "CUDA_PATH_V12_4=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 - - name: Install ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }} - - name: Install Ninja id: install_ninja run: | @@ -987,6 +1086,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: windows-latest-cmake-sycl + evict-old-files: 1d + - name: Install run: | scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL @@ -1066,9 +1171,10 @@ jobs: & 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version - name: Install ccache - uses: hendrikmuhs/ccache-action@v1.2 + uses: hendrikmuhs/ccache-action@v1.2.16 with: key: ${{ github.job }} + evict-old-files: 1d - name: Build id: cmake_build @@ -1098,6 +1204,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: windows-latest-cmake-hip-release + evict-old-files: 1d + - name: Install id: depends run: | @@ -1195,6 +1307,12 @@ jobs: - name: Clone uses: actions/checkout@v4 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: android-build + evict-old-files: 1d + - name: Set up JDK uses: actions/setup-java@v3 with: @@ -1232,6 +1350,12 @@ jobs: with: fetch-depth: 0 + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2.16 + with: + key: release + evict-old-files: 1d + - name: Determine tag name id: tag shell: bash From a2df2787b32e0846205f7151dfad88ceab592beb Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 31 Jan 2025 06:04:53 +0100 Subject: [PATCH 082/162] server : update help metrics processing/deferred (#11512) This commit updates the help text for the metrics `requests_processing` and `requests_deferred` to be more grammatically correct. Currently the returned metrics look like this: ```console \# HELP llamacpp:requests_processing Number of request processing. \# TYPE llamacpp:requests_processing gauge llamacpp:requests_processing 0 \# HELP llamacpp:requests_deferred Number of request deferred. \# TYPE llamacpp:requests_deferred gauge llamacpp:requests_deferred 0 ``` With this commit, the metrics will look like this: ```console \# HELP llamacpp:requests_processing Number of requests processing. \# TYPE llamacpp:requests_processing gauge llamacpp:requests_processing 0 \# HELP llamacpp:requests_deferred Number of requests deferred. \# TYPE llamacpp:requests_deferred gauge llamacpp:requests_deferred 0 ``` This is also consistent with the description of the metrics in the server examples [README.md](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#get-metrics-prometheus-compatible-metrics-exporter). --- examples/server/server.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index d1ea343dd..1ebcb5085 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -3633,11 +3633,11 @@ int main(int argc, char ** argv) { {"value", (uint64_t) res_metrics->kv_cache_tokens_count} },{ {"name", "requests_processing"}, - {"help", "Number of request processing."}, + {"help", "Number of requests processing."}, {"value", (uint64_t) res_metrics->n_processing_slots} },{ {"name", "requests_deferred"}, - {"help", "Number of request deferred."}, + {"help", "Number of requests deferred."}, {"value", (uint64_t) res_metrics->n_tasks_deferred} }}} }; From 1bd3047a939e561adfb3c7dd2e17c4cc7a4e4e6f Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Fri, 31 Jan 2025 00:58:55 -0500 Subject: [PATCH 083/162] common: Add missing va_end (#11529) The va_copy man page states that va_end must be called to revert whatever the copy did. For some implementaions, not calling va_end has no consequences. For others it could leak memory. --- common/log.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/common/log.cpp b/common/log.cpp index 04c7c0ed1..0b8994ae1 100644 --- a/common/log.cpp +++ b/common/log.cpp @@ -206,6 +206,7 @@ public: vsnprintf(entry.msg.data(), entry.msg.size(), ss.str().c_str(), args_copy); } #endif + va_end(args_copy); } entry.level = level; From 4a2b196d03d52da31236390e9f5694a88d43d11d Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Fri, 31 Jan 2025 08:12:40 +0000 Subject: [PATCH 084/162] server : fix --jinja when there's no tools or schema (typo was forcing JSON) (#11531) --- examples/server/tests/unit/test_chat_completion.py | 7 +++---- examples/server/utils.hpp | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/server/tests/unit/test_chat_completion.py b/examples/server/tests/unit/test_chat_completion.py index 0be04bab5..f5d8b0572 100644 --- a/examples/server/tests/unit/test_chat_completion.py +++ b/examples/server/tests/unit/test_chat_completion.py @@ -14,11 +14,10 @@ def create_server(): "model,system_prompt,user_prompt,max_tokens,re_content,n_prompt,n_predicted,finish_reason,jinja,chat_template", [ (None, "Book", "What is the best book", 8, "(Suddenly)+|\\{ \" Sarax.", 77, 8, "length", False, None), + (None, "Book", "What is the best book", 8, "(Suddenly)+|\\{ \" Sarax.", 77, 8, "length", True, None), + (None, "Book", "What is the best book", 8, "^ blue", 23, 8, "length", True, "This is not a chat template, it is"), ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", False, None), - # TODO: fix testing of non-tool jinja mode - # (None, "Book", "What is the best book", 8, "(Suddenly)+|\\{ \" Sarax.", 77, 8, "length", True, None), - # (None, "Book", "What is the best book", 8, "I want to play with", 23, 8, "length", True, "This is not a chat template, it is"), - # ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", True, None), + ("codellama70b", "You are a coding assistant.", "Write the fibonacci function in c++.", 128, "(Aside|she|felter|alonger)+", 104, 64, "length", True, None), ] ) def test_chat_completion(model, system_prompt, user_prompt, max_tokens, re_content, n_prompt, n_predicted, finish_reason, jinja, chat_template): diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index 3d2c04666..70bd6a42c 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -642,7 +642,7 @@ static json oaicompat_completion_params_parse( inputs.parallel_tool_calls = json_value(body, "parallel_tool_calls", false); inputs.stream = stream; // TODO: support mixing schema w/ tools beyond generic format. - inputs.json_schema = json_value(llama_params, "json_schema", json::object()); + inputs.json_schema = json_value(llama_params, "json_schema", json()); auto chat_params = common_chat_params_init(tmpl, inputs); llama_params["chat_format"] = static_cast(chat_params.format); From 5783575c9d99c4d9370495800663aa5397ceb0be Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Fri, 31 Jan 2025 08:24:29 +0000 Subject: [PATCH 085/162] Fix chatml fallback for unsupported builtin templates (when --jinja not enabled) (#11533) --- examples/server/server.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 1ebcb5085..e7daceef1 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1858,7 +1858,12 @@ struct server_context { llama_init_dft.context.reset(); } - chat_templates = common_chat_templates_from_model(model, params_base.chat_template); + if (params_base.chat_template.empty() && !validate_builtin_chat_template(params.use_jinja)) { + LOG_WRN("%s: The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses\n", __func__); + chat_templates = common_chat_templates_from_model(model, "chatml"); + } else { + chat_templates = common_chat_templates_from_model(model, params_base.chat_template); + } GGML_ASSERT(chat_templates.template_default.get() != nullptr); return true; @@ -4435,14 +4440,6 @@ int main(int argc, char ** argv) { LOG_INF("%s: model loaded\n", __func__); - // if a custom chat template is not supplied, we will use the one that comes with the model (if any) - if (params.chat_template.empty()) { - if (!ctx_server.validate_builtin_chat_template(params.use_jinja)) { - LOG_WRN("%s: The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses\n", __func__); - params.chat_template = "chatml"; - } - } - // print sample chat example to make it clear which template is used LOG_INF("%s: chat template, chat_template: %s, example_format: '%s'\n", __func__, ctx_server.chat_templates.template_default->source().c_str(), From b1bcd309fc8ac929cbd4a6207b3a19886bda031f Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Fri, 31 Jan 2025 13:48:31 +0000 Subject: [PATCH 086/162] fix stop regression (#11543) --- examples/server/utils.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index 70bd6a42c..94e189457 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -484,13 +484,14 @@ static bool ends_with(const std::string & str, const std::string & suffix) { static size_t find_partial_stop_string(const std::string &stop, const std::string &text) { if (!text.empty() && !stop.empty()) { - auto it = std::find(stop.rbegin(), stop.rend(), text.back()); - while (it != stop.rend()) { - size_t length = std::distance(it, stop.rend()); - if (text.length() >= length && 0 == text.compare(text.length() - length, length, stop)) { - return text.length() - length; + const char text_last_char = text.back(); + for (int64_t char_index = stop.size() - 1; char_index >= 0; char_index--) { + if (stop[char_index] == text_last_char) { + const std::string current_partial = stop.substr(0, char_index + 1); + if (ends_with(text, current_partial)) { + return text.size() - char_index - 1; + } } - it = std::find(std::next(it), stop.rend(), text.back()); } } From a83f528688324a21484a97af1d1be5e1bc8d4c8e Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Fri, 31 Jan 2025 14:15:25 +0000 Subject: [PATCH 087/162] `tool-call`: fix llama 3.x and functionary 3.2, play nice w/ pydantic_ai package, update readme (#11539) * An empty tool_call_id is better than none! * sync: minja (tool call name optional https://github.com/google/minja/pull/36) * Force-disable parallel_tool_calls if template doesn't support it * More debug logs * Llama 3.x tools: accept / trigger on more varied spaced outputs * Fix empty content for functionary v3.2 tool call * Add proper tool call docs to server README * readme: function calling *is* supported now * Apply suggestions from code review Co-authored-by: Georgi Gerganov --------- Co-authored-by: Georgi Gerganov --- common/chat-template.hpp | 4 +- common/chat.cpp | 21 +++++-- examples/server/README.md | 110 ++++++++++++++++++++++++++++++++++--- examples/server/server.cpp | 5 +- examples/server/utils.hpp | 4 ++ 5 files changed, 129 insertions(+), 15 deletions(-) diff --git a/common/chat-template.hpp b/common/chat-template.hpp index 75ba5d938..58e119a3b 100644 --- a/common/chat-template.hpp +++ b/common/chat-template.hpp @@ -283,10 +283,12 @@ class chat_template { message["role"] = "user"; auto obj = json { {"tool_response", { - {"tool", message.at("name")}, {"content", message.at("content")}, }}, }; + if (message.contains("name")) { + obj["tool_response"]["name"] = message.at("name"); + } if (message.contains("tool_call_id")) { obj["tool_response"]["tool_call_id"] = message.at("tool_call_id"); } diff --git a/common/chat.cpp b/common/chat.cpp index d9a654892..58db12af9 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -384,14 +384,19 @@ static common_chat_params common_chat_params_init_llama_3_1_tool_calls(const com tool_rules.push_back( builder.add_rule( name + "-call", - "\"{\" ( \"\\\"type\\\": \\\"function\\\", \" | space ) " + "\"{\" space " + "( \"\\\"type\\\":\" space \"\\\"function\\\",\" space )? " "\"\\\"name\\\": \\\"" + name + "\\\", \\\"parameters\\\": \" " + builder.add_schema(name + "-args", parameters) + " \"}\"")); data.grammar_triggers.push_back({"{\"name\": \"" + name + "\"", /* .at_start = */ true}); }); data.grammar_triggers.push_back({"{\"name\":", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\n \"name\":", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\n \"name\":", /* .at_start = */ true}); data.grammar_triggers.push_back({"{\"type\": \"function\"", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\n \"type\": \"function\"", /* .at_start = */ true}); + data.grammar_triggers.push_back({"{\n \"type\": \"function\"", /* .at_start = */ true}); if (!builtin_tools.empty()) { data.grammar_triggers.push_back({"<|python_tag|>", /* .at_start = */ false}); } @@ -586,9 +591,17 @@ static common_chat_msg common_chat_parse_functionary_v3_2(const std::string & in } } // TODO: tighten & simplify. - auto res = parse_json_tool_calls(std::string(it, end), std::nullopt, function_regex, close_regex); - res.content = content; - return res; + try { + auto res = parse_json_tool_calls(std::string(it, end), std::nullopt, function_regex, close_regex); + res.content = content + res.content; + return res; + } catch (const std::exception & e) { + LOG_ERR("Failed to parse functionary v3.2 input: %s\n", e.what()); + common_chat_msg res; + res.role = "assistant"; + res.content = input; + return res; + } } static common_chat_params common_chat_params_init_functionary_v3_1_llama_3_1(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { diff --git a/examples/server/README.md b/examples/server/README.md index ce1ae8858..276b43013 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -126,7 +126,7 @@ The project is under active development, and we are [looking for feedback and co | `--grammar GRAMMAR` | BNF-like grammar to constrain generations (see samples in grammars/ dir) (default: '') | | `--grammar-file FNAME` | file to read grammar from | | `-j, --json-schema SCHEMA` | JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object
For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead | -| `--jinja` | Enable experimental Jinja templating engine (needed for tool use) | +| `--jinja` | Enable experimental Jinja templating engine (required for tool use) | **Example-specific params** @@ -1069,7 +1069,7 @@ Given a ChatML-formatted json description in `messages`, it returns the predicte *Options:* -See [OpenAI Chat Completions API documentation](https://platform.openai.com/docs/api-reference/chat). While some OpenAI-specific features such as function calling aren't supported, llama.cpp `/completion`-specific features such as `mirostat` are supported. +See [OpenAI Chat Completions API documentation](https://platform.openai.com/docs/api-reference/chat). llama.cpp `/completion`-specific features such as `mirostat` are also supported. The `response_format` parameter supports both plain JSON output (e.g. `{"type": "json_object"}`) and schema-constrained JSON (e.g. `{"type": "json_object", "schema": {"type": "string", "minLength": 10, "maxLength": 100}}` or `{"type": "json_schema", "schema": {"properties": { "name": { "title": "Name", "type": "string" }, "date": { "title": "Date", "type": "string" }, "participants": { "items": {"type: "string" }, "title": "Participants", "type": "string" } } } }`), similar to other OpenAI-inspired API providers. @@ -1117,17 +1117,111 @@ curl http://localhost:8080/v1/chat/completions \ }' ``` -... and even tool usage (needs `--jinja` flag): +*Tool call support* + +[Function calling](https://platform.openai.com/docs/guides/function-calling) is supported for all models (see https://github.com/ggerganov/llama.cpp/pull/9639): + +- Requires `--jinja` flag +- Native tool call formats supported: + - Llama 3.1 / 3.3 (including builtin tools support - tool names for `wolfram_alpha`, `web_search` / `brave_search`, `code_interpreter`), Llama 3.2 + - Functionary v3.1 / v3.2 + - Hermes 2/3, Qwen 2.5 + - Mistral Nemo + - Firefunction v2 + - DeepSeek R1 (WIP / seems reluctant to call any tools?) + +
+ Show some common templates and which format handler they use + + | Template | Format | + |----------|--------| + | CohereForAI-c4ai-command-r-plus-default.jinja | generic tool calls | + | CohereForAI-c4ai-command-r-plus-rag.jinja | generic tool calls | + | CohereForAI-c4ai-command-r-plus-tool_use.jinja | generic tool calls | + | MiniMaxAI-MiniMax-Text-01.jinja | generic tool calls | + | NexaAIDev-Octopus-v2.jinja | generic tool calls | + | NousResearch-Hermes-2-Pro-Llama-3-8B-default.jinja | generic tool calls | + | NousResearch-Hermes-2-Pro-Llama-3-8B-tool_use.jinja | hermes 2 pro tool calls | + | NousResearch-Hermes-2-Pro-Mistral-7B-default.jinja | generic tool calls | + | NousResearch-Hermes-2-Pro-Mistral-7B-tool_use.jinja | hermes 2 pro tool calls | + | NousResearch-Hermes-3-Llama-3.1-70B-default.jinja | generic tool calls | + | NousResearch-Hermes-3-Llama-3.1-70B-tool_use.jinja | hermes 2 pro tool calls | + | OrionStarAI-Orion-14B-Chat.jinja | generic tool calls | + | Qwen-QwQ-32B-Preview.jinja | hermes 2 pro tool calls | + | Qwen-Qwen2-7B-Instruct.jinja | generic tool calls | + | Qwen-Qwen2-VL-7B-Instruct.jinja | generic tool calls | + | Qwen-Qwen2.5-7B-Instruct.jinja | hermes 2 pro tool calls | + | Qwen-Qwen2.5-Math-7B-Instruct.jinja | hermes 2 pro tool calls | + | TheBloke-FusionNet_34Bx2_MoE-AWQ.jinja | generic tool calls | + | abacusai-Fewshot-Metamath-OrcaVicuna-Mistral.jinja | generic tool calls | + | bofenghuang-vigogne-2-70b-chat.jinja | generic tool calls | + | databricks-dbrx-instruct.jinja | generic tool calls | + | deepseek-ai-DeepSeek-Coder-V2-Instruct.jinja | generic tool calls | + | deepseek-ai-DeepSeek-R1-Distill-Llama-8B.jinja | deepseek r1 tool calls | + | deepseek-ai-DeepSeek-R1-Distill-Qwen-32B.jinja | deepseek r1 tool calls | + | deepseek-ai-DeepSeek-R1-Distill-Qwen-7B.jinja | deepseek r1 tool calls | + | deepseek-ai-DeepSeek-V2.5.jinja | deepseek r1 tool calls | + | deepseek-ai-deepseek-coder-33b-instruct.jinja | generic tool calls | + | google-gemma-2-2b-it.jinja | generic tool calls | + | google-gemma-7b-it.jinja | generic tool calls | + | indischepartij-MiniCPM-3B-OpenHermes-2.5-v2.jinja | generic tool calls | + | mattshumer-Reflection-Llama-3.1-70B.jinja | generic tool calls | + | meetkai-functionary-medium-v3.2.jinja | functionary v3.2 tool calls | + | meta-llama-Llama-3.1-8B-Instruct.jinja | llama 3.x tool calls (w/ builtin tools) | + | meta-llama-Llama-3.2-3B-Instruct.jinja | llama 3.x tool calls | + | meta-llama-Llama-3.3-70B-Instruct.jinja | llama 3.x tool calls (w/ builtin tools) | + | meta-llama-Meta-Llama-3.1-8B-Instruct.jinja | llama 3.x tool calls (w/ builtin tools) | + | microsoft-Phi-3-medium-4k-instruct.jinja | generic tool calls | + | microsoft-Phi-3-mini-4k-instruct.jinja | generic tool calls | + | microsoft-Phi-3-small-8k-instruct.jinja | generic tool calls | + | microsoft-Phi-3.5-mini-instruct.jinja | generic tool calls | + | microsoft-Phi-3.5-vision-instruct.jinja | generic tool calls | + | mistralai-Mistral-7B-Instruct-v0.2.jinja | generic tool calls | + | mistralai-Mistral-Large-Instruct-2407.jinja | mistral nemo tool calls | + | mistralai-Mistral-Large-Instruct-2411.jinja | generic tool calls | + | mistralai-Mistral-Nemo-Instruct-2407.jinja | mistral nemo tool calls | + | mistralai-Mixtral-8x7B-Instruct-v0.1.jinja | generic tool calls | + | mlabonne-AlphaMonarch-7B.jinja | generic tool calls | + | nvidia-Llama-3.1-Nemotron-70B-Instruct-HF.jinja | llama 3.x tool calls (w/ builtin tools) | + | openchat-openchat-3.5-0106.jinja | generic tool calls | + | teknium-OpenHermes-2.5-Mistral-7B.jinja | generic tool calls | + + This table can be generated with: + + ```bash + ./build/bin/test-chat ../minja/build/tests/*.jinja 2>/dev/null + +
+ +- Generic tool call is supported when the template isn't recognized by native format handlers (you'll see `Chat format: Generic` in the logs). + - Use `--chat-template-file` to override the template when appropriate (see examples below) + - Generic support may consume more tokens and be less efficient than a model's native format. + +- Run with: ```shell - llama-server --jinja -hfr lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF -hff Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf -fa + # Native support: + llama-server --jinja -fa -hf bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M + llama-server --jinja -fa -hf bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M + llama-server --jinja -fa -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q6_K + llama-server --jinja -fa -hf bartowski/functionary-small-v3.2-GGUF:Q4_K_M + llama-server --jinja -fa -hf bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M \ + --chat-template-file <( python scripts/get_chat_template.py NousResearch/Hermes-2-Pro-Llama-3-8B ) - # https://huggingface.co/meetkai/functionary-medium-v3.2 - llama-server --jinja -hfr bartowski/functionary-medium-v3.2-GGUF -hff functionary-medium-v3.2-IQ4_XS.gguf -fa + # Native support requires the right template for these GGUFs: + llama-server --jinja -fa -hf bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M \ + --chat-template-file <( python scripts/get_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use ) + llama-server --jinja -fa -hf bartowski/firefunction-v2-GGUF -hff firefunction-v2-IQ1_M.gguf \ + --chat-template-file <( python scripts/get_chat_template.py fireworks-ai/firellama-3-firefunction-v2 ) - # https://huggingface.co/meetkai/functionary-medium-v3.1 - llama-server --jinja -hfr meetkai/functionary-medium-v3.1-GGUF -hff functionary-medium-llama-3.1.Q4_0.gguf -fa + # Generic format support + llama-server --jinja -fa -hf bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M + llama-server --jinja -fa -hf bartowski/gemma-2-2b-it-GGUF:Q4_K_M + ``` +- Test in CLI: + + ```bash curl http://localhost:8080/v1/chat/completions -d '{ "model": "gpt-3.5-turbo", "tools": [ diff --git a/examples/server/server.cpp b/examples/server/server.cpp index e7daceef1..3451e96a2 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -345,7 +345,7 @@ struct server_task { auto it = data.find("chat_format"); if (it != data.end()) { params.oaicompat_chat_format = static_cast(it->get()); - LOG_DBG("Chat format: %s\n", common_chat_format_name(params.oaicompat_chat_format).c_str()); + LOG_INF("Chat format: %s\n", common_chat_format_name(params.oaicompat_chat_format).c_str()); } else { params.oaicompat_chat_format = defaults.oaicompat_chat_format; } @@ -697,6 +697,7 @@ struct server_task_result_cmpl_final : server_task_result { std::string finish_reason = "length"; common_chat_msg message; if (stop == STOP_TYPE_WORD || stop == STOP_TYPE_EOS) { + LOG_DBG("Parsing chat message: %s\n", content.c_str()); message = common_chat_parse(content, oaicompat_chat_format); finish_reason = message.tool_calls.empty() ? "stop" : "tool_calls"; } else { @@ -713,7 +714,7 @@ struct server_task_result_cmpl_final : server_task_result { {"name", tc.name}, {"arguments", tc.arguments}, }}, - {"id", tc.id.empty() ? json() : json(tc.id)}, + {"id", tc.id}, }); } } diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index 94e189457..bfe623c4c 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -641,6 +641,10 @@ static json oaicompat_completion_params_parse( inputs.tools = tools; inputs.tool_choice = tool_choice; inputs.parallel_tool_calls = json_value(body, "parallel_tool_calls", false); + if (inputs.parallel_tool_calls && !tmpl.original_caps().supports_parallel_tool_calls) { + LOG_DBG("Disabling parallel_tool_calls because the template does not support it\n"); + inputs.parallel_tool_calls = false; + } inputs.stream = stream; // TODO: support mixing schema w/ tools beyond generic format. inputs.json_schema = json_value(llama_params, "json_schema", json()); From aa6fb1321333fae8853d0cdc26bcb5d438e650a1 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Fri, 31 Jan 2025 17:12:40 +0000 Subject: [PATCH 088/162] `ci`: use sccache on windows instead of ccache (#11545) * Use sccache on ci for windows * Detect sccache in cmake --- .github/workflows/build.yml | 6 ++++++ ggml/src/CMakeLists.txt | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c02dd6a81..022b9bd03 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -689,6 +689,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-msys2 + variant: sccache evict-old-files: 1d - name: Setup ${{ matrix.sys }} @@ -763,6 +764,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-${{ matrix.build }} + variant: sccache evict-old-files: 1d - name: Clone Kompute submodule @@ -949,6 +951,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }} + variant: sccache evict-old-files: 1d - name: Install Cuda Toolkit 11.7 @@ -1090,6 +1093,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-sycl + variant: sccache evict-old-files: 1d - name: Install @@ -1174,6 +1178,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: ${{ github.job }} + variant: sccache evict-old-files: 1d - name: Build @@ -1208,6 +1213,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-hip-release + variant: sccache evict-old-files: 1d - name: Install diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt index 566709135..0002ac18a 100644 --- a/ggml/src/CMakeLists.txt +++ b/ggml/src/CMakeLists.txt @@ -93,12 +93,18 @@ endif() if (GGML_CCACHE) find_program(GGML_CCACHE_FOUND ccache) + find_program(GGML_SCCACHE_FOUND sccache) - if (GGML_CCACHE_FOUND) + if (GGML_CCACHE_FOUND OR GGML_SCCACHE_FOUND) + if(GGML_CCACHE_FOUND) + set(GGML_CCACHE_VARIANT ccache) + else() + set(GGML_CCACHE_VARIANT sccache) + endif() # TODO: should not be set globally - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${GGML_CCACHE_VARIANT}") set(ENV{CCACHE_SLOPPINESS} time_macros) - message(STATUS "ccache found, compilation results will be cached. Disable with GGML_CCACHE=OFF.") + message(STATUS "${GGML_CCACHE_VARIANT} found, compilation results will be cached. Disable with GGML_CCACHE=OFF.") else() message(STATUS "Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF") endif () From 5bbc7362cb93265f4c853fd89800a6255cc26985 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sat, 1 Feb 2025 00:01:20 +0000 Subject: [PATCH 089/162] ci: simplify cmake build commands (#11548) --- .github/workflows/build.yml | 86 +++++++++++++------------------------ 1 file changed, 30 insertions(+), 56 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 022b9bd03..03eabbbe5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,16 +59,14 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build - cmake .. \ + cmake -B build \ -DCMAKE_BUILD_RPATH="@loader_path" \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_CURL=ON \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DGGML_RPC=ON - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) - name: Test id: cmake_test @@ -199,13 +197,11 @@ jobs: - name: Build id: cmake_build run: | - mkdir build - cd build - cmake .. \ + cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_CURL=ON \ -DGGML_RPC=ON - cmake --build . --config Release -j $(nproc) + cmake --build build --config Release -j $(nproc) - name: Test id: cmake_test @@ -283,26 +279,22 @@ jobs: id: cmake_build if: ${{ matrix.sanitizer != 'THREAD' }} run: | - mkdir build - cd build - cmake .. \ + cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} - cmake --build . --config ${{ matrix.build_type }} -j $(nproc) + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) - name: Build (no OpenMP) id: cmake_build_no_openmp if: ${{ matrix.sanitizer == 'THREAD' }} run: | - mkdir build - cd build - cmake .. \ + cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DGGML_OPENMP=OFF - cmake --build . --config ${{ matrix.build_type }} -j $(nproc) + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) - name: Test id: cmake_test @@ -335,11 +327,9 @@ jobs: - name: Build id: cmake_build run: | - mkdir build - cd build - cmake .. \ + cmake -B build \ -DGGML_RPC=ON - cmake --build . --config Release -j $(nproc) + cmake --build build --config Release -j $(nproc) - name: Test id: cmake_test @@ -372,11 +362,9 @@ jobs: - name: Build id: cmake_build run: | - mkdir build - cd build - cmake .. \ + cmake -B build \ -DGGML_VULKAN=ON - cmake --build . --config Release -j $(nproc) + cmake --build build --config Release -j $(nproc) - name: Test id: cmake_test @@ -493,13 +481,11 @@ jobs: id: cmake_build run: | source /opt/intel/oneapi/setvars.sh - mkdir build - cd build - cmake .. \ + cmake -B build \ -DGGML_SYCL=ON \ -DCMAKE_C_COMPILER=icx \ -DCMAKE_CXX_COMPILER=icpx - cmake --build . --config Release -j $(nproc) + cmake --build build --config Release -j $(nproc) ubuntu-22-cmake-sycl-fp16: runs-on: ubuntu-22.04 @@ -543,14 +529,12 @@ jobs: id: cmake_build run: | source /opt/intel/oneapi/setvars.sh - mkdir build - cd build - cmake .. \ + cmake -B build \ -DGGML_SYCL=ON \ -DCMAKE_C_COMPILER=icx \ -DCMAKE_CXX_COMPILER=icpx \ -DGGML_SYCL_F16=ON - cmake --build . --config Release -j $(nproc) + cmake --build build --config Release -j $(nproc) macOS-latest-cmake-ios: runs-on: macos-latest @@ -576,9 +560,7 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build - cmake -G Xcode .. \ + cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_EXAMPLES=OFF \ @@ -587,7 +569,7 @@ jobs: -DCMAKE_SYSTEM_NAME=iOS \ -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO macOS-latest-cmake-tvos: runs-on: macos-latest @@ -613,9 +595,7 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build - cmake -G Xcode .. \ + cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_EXAMPLES=OFF \ @@ -624,7 +604,7 @@ jobs: -DCMAKE_SYSTEM_NAME=tvOS \ -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO macOS-latest-swift: runs-on: macos-latest @@ -654,17 +634,15 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build - cmake -G Xcode .. \ + cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) - sudo cmake --install . --config Release + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) + sudo cmake --install build --config Release - name: xcodebuild for swift package id: xcodebuild @@ -806,21 +784,19 @@ jobs: run: | git clone https://github.com/KhronosGroup/OpenCL-Headers cd OpenCL-Headers - mkdir build && cd build - cmake .. ` + cmake -B build ` -DBUILD_TESTING=OFF ` -DOPENCL_HEADERS_BUILD_TESTING=OFF ` -DOPENCL_HEADERS_BUILD_CXX_TESTS=OFF ` -DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release" - cmake --build . --target install + cmake --build build --target install git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader cd OpenCL-ICD-Loader - mkdir build-arm64-release && cd build-arm64-release - cmake .. ` + cmake -B build-arm64-release ` -A arm64 ` -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" ` -DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release" - cmake --build . --target install --config release + cmake --build build-arm64-release --target install --config release - name: Build id: cmake_build @@ -1284,9 +1260,7 @@ jobs: id: cmake_build run: | sysctl -a - mkdir build - cd build - cmake -G Xcode .. \ + cmake -B build -G Xcode \ -DGGML_METAL_USE_BF16=ON \ -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_EXAMPLES=OFF \ @@ -1295,8 +1269,8 @@ jobs: -DCMAKE_SYSTEM_NAME=iOS \ -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml - cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO - sudo cmake --install . --config Release + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO + sudo cmake --install build --config Release - name: xcodebuild for swift package id: xcodebuild From ecef206ccb186a1cde8dd2523b1da3e12f593f9e Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Sat, 1 Feb 2025 11:30:54 +0100 Subject: [PATCH 090/162] Implement s3:// protocol (#11511) For those that want to pull from s3 Signed-off-by: Eric Curtin --- examples/run/run.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index 9cecae48c..cf61f4add 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -65,6 +65,13 @@ static int printe(const char * fmt, ...) { return ret; } +static std::string strftime_fmt(const char * fmt, const std::tm & tm) { + std::ostringstream oss; + oss << std::put_time(&tm, fmt); + + return oss.str(); +} + class Opt { public: int init(int argc, const char ** argv) { @@ -698,6 +705,39 @@ class LlamaData { return download(url, bn, true); } + int s3_dl(const std::string & model, const std::string & bn) { + const size_t slash_pos = model.find('/'); + if (slash_pos == std::string::npos) { + return 1; + } + + const std::string bucket = model.substr(0, slash_pos); + const std::string key = model.substr(slash_pos + 1); + const char * access_key = std::getenv("AWS_ACCESS_KEY_ID"); + const char * secret_key = std::getenv("AWS_SECRET_ACCESS_KEY"); + if (!access_key || !secret_key) { + printe("AWS credentials not found in environment\n"); + return 1; + } + + // Generate AWS Signature Version 4 headers + // (Implementation requires HMAC-SHA256 and date handling) + // Get current timestamp + const time_t now = time(nullptr); + const tm tm = *gmtime(&now); + const std::string date = strftime_fmt("%Y%m%d", tm); + const std::string datetime = strftime_fmt("%Y%m%dT%H%M%SZ", tm); + const std::vector headers = { + "Authorization: AWS4-HMAC-SHA256 Credential=" + std::string(access_key) + "/" + date + + "/us-east-1/s3/aws4_request", + "x-amz-content-sha256: UNSIGNED-PAYLOAD", "x-amz-date: " + datetime + }; + + const std::string url = "https://" + bucket + ".s3.amazonaws.com/" + key; + + return download(url, bn, true, headers); + } + std::string basename(const std::string & path) { const size_t pos = path.find_last_of("/\\"); if (pos == std::string::npos) { @@ -738,6 +778,9 @@ class LlamaData { rm_until_substring(model_, "github:"); rm_until_substring(model_, "://"); ret = github_dl(model_, bn); + } else if (string_starts_with(model_, "s3://")) { + rm_until_substring(model_, "://"); + ret = s3_dl(model_, bn); } else { // ollama:// or nothing rm_until_substring(model_, "ollama.com/library/"); rm_until_substring(model_, "://"); From cfd74c86dbaa95ed30aa6b30e14d8801eb975d63 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sat, 1 Feb 2025 12:24:51 +0000 Subject: [PATCH 091/162] `sync`: minja (https://github.com/google/minja/commit/418a2364b56dc9be4ed9a1a2b0fb16fb53a7a22e) (#11574) --- common/minja.hpp | 49 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/common/minja.hpp b/common/minja.hpp index f0e80fd7c..bcb5a0824 100644 --- a/common/minja.hpp +++ b/common/minja.hpp @@ -693,7 +693,7 @@ enum SpaceHandling { Keep, Strip, StripSpaces, StripNewline }; class TemplateToken { public: - enum class Type { Text, Expression, If, Else, Elif, EndIf, For, EndFor, Generation, EndGeneration, Set, EndSet, Comment, Macro, EndMacro, Filter, EndFilter }; + enum class Type { Text, Expression, If, Else, Elif, EndIf, For, EndFor, Generation, EndGeneration, Set, EndSet, Comment, Macro, EndMacro, Filter, EndFilter, Break, Continue }; static std::string typeToString(Type t) { switch (t) { @@ -714,6 +714,8 @@ public: case Type::EndFilter: return "endfilter"; case Type::Generation: return "generation"; case Type::EndGeneration: return "endgeneration"; + case Type::Break: return "break"; + case Type::Continue: return "continue"; } return "Unknown"; } @@ -815,6 +817,22 @@ struct CommentTemplateToken : public TemplateToken { CommentTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, const std::string& t) : TemplateToken(Type::Comment, location, pre, post), text(t) {} }; +enum class LoopControlType { Break, Continue }; + +class LoopControlException : public std::runtime_error { +public: + LoopControlType control_type; + LoopControlException(const std::string & message, LoopControlType control_type) : std::runtime_error(message), control_type(control_type) {} + LoopControlException(LoopControlType control_type) + : std::runtime_error((std::ostringstream() << (control_type == LoopControlType::Continue ? "continue" : "break") << " outside of a loop").str()), + control_type(control_type) {} +}; + +struct LoopControlTemplateToken : public TemplateToken { + LoopControlType control_type; + LoopControlTemplateToken(const Location & location, SpaceHandling pre, SpaceHandling post, LoopControlType control_type) : TemplateToken(Type::Break, location, pre, post), control_type(control_type) {} +}; + class TemplateNode { Location location_; protected: @@ -825,6 +843,12 @@ public: void render(std::ostringstream & out, const std::shared_ptr & context) const { try { do_render(out, context); + } catch (const LoopControlException & e) { + // TODO: make stack creation lazy. Only needed if it was thrown outside of a loop. + std::ostringstream err; + err << e.what(); + if (location_.source) err << error_location_suffix(*location_.source, location_.pos); + throw LoopControlException(err.str(), e.control_type); } catch (const std::exception & e) { std::ostringstream err; err << e.what(); @@ -897,6 +921,15 @@ public: } }; +class LoopControlNode : public TemplateNode { + LoopControlType control_type_; + public: + LoopControlNode(const Location & location, LoopControlType control_type) : TemplateNode(location), control_type_(control_type) {} + void do_render(std::ostringstream &, const std::shared_ptr &) const override { + throw LoopControlException(control_type_); + } +}; + class ForNode : public TemplateNode { std::vector var_names; std::shared_ptr iterable; @@ -961,7 +994,12 @@ public: loop.set("last", i == (n - 1)); loop.set("previtem", i > 0 ? filtered_items.at(i - 1) : Value()); loop.set("nextitem", i < n - 1 ? filtered_items.at(i + 1) : Value()); - body->render(out, loop_context); + try { + body->render(out, loop_context); + } catch (const LoopControlException & e) { + if (e.control_type == LoopControlType::Break) break; + if (e.control_type == LoopControlType::Continue) continue; + } } } }; @@ -2159,7 +2197,7 @@ private: static std::regex comment_tok(R"(\{#([-~]?)(.*?)([-~]?)#\})"); static std::regex expr_open_regex(R"(\{\{([-~])?)"); static std::regex block_open_regex(R"(^\{%([-~])?[\s\n\r]*)"); - static std::regex block_keyword_tok(R"((if|else|elif|endif|for|endfor|generation|endgeneration|set|endset|block|endblock|macro|endmacro|filter|endfilter)\b)"); + static std::regex block_keyword_tok(R"((if|else|elif|endif|for|endfor|generation|endgeneration|set|endset|block|endblock|macro|endmacro|filter|endfilter|break|continue)\b)"); static std::regex non_text_open_regex(R"(\{\{|\{%|\{#)"); static std::regex expr_close_regex(R"([\s\n\r]*([-~])?\}\})"); static std::regex block_close_regex(R"([\s\n\r]*([-~])?%\})"); @@ -2291,6 +2329,9 @@ private: } else if (keyword == "endfilter") { auto post_space = parseBlockClose(); tokens.push_back(std::make_unique(location, pre_space, post_space)); + } else if (keyword == "break" || keyword == "continue") { + auto post_space = parseBlockClose(); + tokens.push_back(std::make_unique(location, pre_space, post_space, keyword == "break" ? LoopControlType::Break : LoopControlType::Continue)); } else { throw std::runtime_error("Unexpected block: " + keyword); } @@ -2414,6 +2455,8 @@ private: children.emplace_back(std::make_shared(token->location, std::move(filter_token->filter), std::move(body))); } else if (dynamic_cast(token.get())) { // Ignore comments + } else if (auto ctrl_token = dynamic_cast(token.get())) { + children.emplace_back(std::make_shared(token->location, ctrl_token->control_type)); } else if (dynamic_cast(token.get()) || dynamic_cast(token.get()) || dynamic_cast(token.get()) From 53debe6f3c9cca87e9520a83ee8c14d88977afa4 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sat, 1 Feb 2025 18:22:38 +0000 Subject: [PATCH 092/162] ci: use sccache on windows HIP jobs (#11553) --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 03eabbbe5..7392f2bfe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1154,7 +1154,6 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: ${{ github.job }} - variant: sccache evict-old-files: 1d - name: Build @@ -1189,7 +1188,6 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-hip-release - variant: sccache evict-old-files: 1d - name: Install From 0cec062a638700495673f5494d200b74340538be Mon Sep 17 00:00:00 2001 From: piDack <104877312+piDack@users.noreply.github.com> Date: Sun, 2 Feb 2025 15:48:46 +0800 Subject: [PATCH 093/162] llama : add support for GLM-Edge and GLM-Edge-V series models (#10573) * add glm edge chat model * use config partial_rotary_factor as rope ratio * support for glm edge model * vision model support * remove debug info * fix format * llava.cpp trailing whitespace * remove unused AutoTokenizer * Update src/llama.cpp for not contain <|end|> or
Co-authored-by: Xuan Son Nguyen * add edge template * fix chat template * fix confict * fix confict * fix ci err * fix format err * fix template err * 9b hf chat support * format * format clip.cpp * fix format * Apply suggestions from code review * Apply suggestions from code review * Update examples/llava/clip.cpp * fix format * minor : style --------- Co-authored-by: liyuhang Co-authored-by: piDack Co-authored-by: Xuan Son Nguyen Co-authored-by: liyuhang Co-authored-by: Georgi Gerganov --- README.md | 3 +- convert_hf_to_gguf.py | 58 +--- examples/llava/README-glmedge.md | 43 +++ examples/llava/clip.cpp | 110 ++++++- examples/llava/clip.h | 2 + .../glmedge-convert-image-encoder-to-gguf.py | 280 ++++++++++++++++++ examples/llava/glmedge-surgery.py | 33 +++ examples/llava/llava.cpp | 17 ++ gguf-py/gguf/constants.py | 3 + src/llama-arch.cpp | 3 + src/llama-chat.cpp | 11 +- src/llama-chat.h | 1 + src/llama-model.cpp | 28 +- src/llama.cpp | 35 ++- tests/test-chat-template.cpp | 8 + 15 files changed, 568 insertions(+), 67 deletions(-) create mode 100644 examples/llava/README-glmedge.md create mode 100644 examples/llava/glmedge-convert-image-encoder-to-gguf.py create mode 100644 examples/llava/glmedge-surgery.py diff --git a/README.md b/README.md index d40309875..7f306d199 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Instructions for adding support for new models: [HOWTO-add-model.md](docs/develo - [x] [Bitnet b1.58 models](https://huggingface.co/1bitLLM) - [x] [Flan T5](https://huggingface.co/models?search=flan-t5) - [x] [Open Elm models](https://huggingface.co/collections/apple/openelm-instruct-models-6619ad295d7ae9f868b759ca) -- [x] [ChatGLM3-6b](https://huggingface.co/THUDM/chatglm3-6b) + [ChatGLM4-9b](https://huggingface.co/THUDM/glm-4-9b) +- [x] [ChatGLM3-6b](https://huggingface.co/THUDM/chatglm3-6b) + [ChatGLM4-9b](https://huggingface.co/THUDM/glm-4-9b) + [GLMEdge-1.5b](https://huggingface.co/THUDM/glm-edge-1.5b-chat) + [GLMEdge-4b](https://huggingface.co/THUDM/glm-edge-4b-chat) - [x] [SmolLM](https://huggingface.co/collections/HuggingFaceTB/smollm-6695016cad7167254ce15966) - [x] [EXAONE-3.0-7.8B-Instruct](https://huggingface.co/LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct) - [x] [FalconMamba Models](https://huggingface.co/collections/tiiuae/falconmamba-7b-66b9a580324dd1598b0f6d4a) @@ -117,6 +117,7 @@ Instructions for adding support for new models: [HOWTO-add-model.md](docs/develo - [x] [Mini CPM](https://huggingface.co/models?search=MiniCPM) - [x] [Moondream](https://huggingface.co/vikhyatk/moondream2) - [x] [Bunny](https://github.com/BAAI-DCAI/Bunny) +- [x] [GLM-EDGE](https://huggingface.co/models?search=glm-edge) - [x] [Qwen2-VL](https://huggingface.co/collections/Qwen/qwen2-vl-66cee7455501d7126940800d)
diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 63b54a9cf..018a2a588 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -648,7 +648,7 @@ class Model: if chkhsh == "7967bfa498ade6b757b064f31e964dddbb80f8f9a4d68d4ba7998fcf281c531a": # ref: https://huggingface.co/jinaai/jina-embeddings-v2-base-code res = "jina-v2-code" - if chkhsh == "b6e8e1518dc4305be2fe39c313ed643381c4da5db34a98f6a04c093f8afbe99b": + if chkhsh == "b6e8e1518dc4305be2fe39c313ed643381c4da5db34a98f6a04c093f8afbe99b" or chkhsh == "81d72c7348a9f0ebe86f23298d37debe0a5e71149e29bd283904c02262b27516": # ref: https://huggingface.co/THUDM/glm-4-9b-chat res = "chatglm-bpe" if chkhsh == "7fc505bd3104ca1083b150b17d088b59534ede9bde81f0dd2090967d7fe52cee": @@ -4513,7 +4513,7 @@ class JaisModel(Model): self.gguf_writer.add_max_alibi_bias(self.max_alibi_bias) -@Model.register("ChatGLMModel", "ChatGLMForConditionalGeneration") +@Model.register("GlmForCausalLM", "ChatGLMModel", "ChatGLMForConditionalGeneration") class ChatGLMModel(Model): model_arch = gguf.MODEL_ARCH.CHATGLM @@ -4619,47 +4619,15 @@ class ChatGLMModel(Model): from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained(dir_model, trust_remote_code=True) - vocab_size = hparams["padded_vocab_size"] + vocab_size = hparams.get("padded_vocab_size",hparams["vocab_size"]) assert max(tokenizer.get_vocab().values()) < vocab_size - tokpre = self.get_vocab_base_pre(tokenizer) - - merges = [] - vocab = {} - mergeable_ranks = tokenizer.mergeable_ranks - for token, rank in mergeable_ranks.items(): - vocab[ChatGLMModel.token_bytes_to_string(token)] = rank - if len(token) == 1: - continue - merged = ChatGLMModel.bpe(mergeable_ranks, token, max_rank=rank) - assert len(merged) >= 2 and len(merged) <= 7 - merges.append(' '.join(map(ChatGLMModel.token_bytes_to_string, merged))) - - # for this kind of tokenizer, added_vocab is not a subset of vocab, so they need to be combined - added_vocab = tokenizer.get_added_vocab() - reverse_vocab = {id_ : encoded_tok for encoded_tok, id_ in {**vocab, **added_vocab}.items()} - - for i in range(vocab_size): - if i not in reverse_vocab: - tokens.append(f"[PAD{i}]") - toktypes.append(gguf.TokenType.UNUSED) - elif reverse_vocab[i] in added_vocab: - tokens.append(reverse_vocab[i]) - if tokenizer.added_tokens_decoder[i].special: - toktypes.append(gguf.TokenType.CONTROL) - else: - toktypes.append(gguf.TokenType.USER_DEFINED) - else: - tokens.append(reverse_vocab[i]) - toktypes.append(gguf.TokenType.NORMAL) - + tokens, toktypes, tokpre = self.get_vocab_base() self.gguf_writer.add_tokenizer_model("gpt2") self.gguf_writer.add_tokenizer_pre(tokpre) self.gguf_writer.add_token_list(tokens) self.gguf_writer.add_token_types(toktypes) - - special_vocab = gguf.SpecialVocab(dir_model, load_merges=False) - special_vocab.merges = merges + special_vocab = gguf.SpecialVocab(self.dir_model, load_merges=True) # only add special tokens when they were not already loaded from config.json special_vocab._set_special_token("eos", tokenizer.get_added_vocab()["<|endoftext|>"]) special_vocab._set_special_token("eot", tokenizer.get_added_vocab()["<|user|>"]) @@ -4670,16 +4638,20 @@ class ChatGLMModel(Model): def set_gguf_parameters(self): n_embed = self.hparams.get("hidden_size", self.hparams.get("n_embed")) n_head = self.hparams.get("n_head", self.hparams.get("num_attention_heads")) - n_head_kv = self.hparams.get("multi_query_group_num", n_head) + n_head_kv = self.hparams.get("multi_query_group_num", self.hparams.get("num_key_value_heads", n_head)) self.gguf_writer.add_context_length(self.hparams.get("seq_length", n_embed)) self.gguf_writer.add_embedding_length(n_embed) - self.gguf_writer.add_feed_forward_length(self.hparams.get("ffn_hidden_size", 4 * n_embed)) - self.gguf_writer.add_block_count(self.hparams["num_layers"]) + self.gguf_writer.add_feed_forward_length(self.hparams.get("ffn_hidden_size", self.hparams.get("intermediate_size", 4 * n_embed))) + self.gguf_writer.add_block_count(self.hparams.get("num_layers", self.hparams["num_hidden_layers"])) self.gguf_writer.add_head_count(n_head) self.gguf_writer.add_head_count_kv(n_head_kv) - self.gguf_writer.add_layer_norm_rms_eps(self.hparams["layernorm_epsilon"]) + self.gguf_writer.add_layer_norm_rms_eps(self.hparams.get("layernorm_epsilon",1e-5)) self.gguf_writer.add_file_type(self.ftype) - self.gguf_writer.add_rope_dimension_count(64) + if "attention_dim" in self.hparams: + rope_dim = self.hparams["attention_dim"] + else: + rope_dim = self.hparams["hidden_size"] // self.hparams["num_attention_heads"] + self.gguf_writer.add_rope_dimension_count(int(rope_dim * self.hparams.get("partial_rotary_factor", 0.5))) self.gguf_writer.add_add_bos_token(False) rope_freq = 10000 if "rope_ratio" in self.hparams: @@ -4689,7 +4661,7 @@ class ChatGLMModel(Model): def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: del bid # unused - if name.endswith(".rotary_pos_emb.inv_freq"): + if name.endswith(".rotary_pos_emb.inv_freq") or name.startswith("model.vision."): return [] name = name.removeprefix("transformer.") diff --git a/examples/llava/README-glmedge.md b/examples/llava/README-glmedge.md new file mode 100644 index 000000000..603d01474 --- /dev/null +++ b/examples/llava/README-glmedge.md @@ -0,0 +1,43 @@ +# GLMV-EDGE + +Currently this implementation supports [glm-edge-v-2b](https://huggingface.co/THUDM/glm-edge-v-2b) and [glm-edge-v-5b](https://huggingface.co/THUDM/glm-edge-v-5b). + +## Usage +Build with cmake or run `make llama-llava-cli` to build it. + +After building, run: `./llama-llava-cli` to see the usage. For example: + +```sh +./llama-llava-cli -m model_path/ggml-model-f16.gguf --mmproj model_path/mmproj-model-f16.gguf --image img_path/image.jpg -p "<|system|>\n system prompt <|user|>\n prompt <|assistant|>\n" +``` + +**note**: A lower temperature like 0.1 is recommended for better quality. add `--temp 0.1` to the command to do so. +**note**: For GPU offloading ensure to use the `-ngl` flag just like usual + +## GGUF conversion + +1. Clone a GLMV-EDGE model ([2B](https://huggingface.co/THUDM/glm-edge-v-2b) or [5B](https://huggingface.co/THUDM/glm-edge-v-5b)). For example: + +```sh +git clone https://huggingface.co/THUDM/glm-edge-v-5b or https://huggingface.co/THUDM/glm-edge-v-2b +``` + +2. Use `glmedge-surgery.py` to split the GLMV-EDGE model to LLM and multimodel projector constituents: + +```sh +python ./examples/llava/glmedge-surgery.py -m ../model_path +``` + +4. Use `glmedge-convert-image-encoder-to-gguf.py` to convert the GLMV-EDGE image encoder to GGUF: + +```sh +python ./examples/llava/glmedge-convert-image-encoder-to-gguf.py -m ../model_path --llava-projector ../model_path/glm.projector --output-dir ../model_path +``` + +5. Use `examples/convert_hf_to_gguf.py` to convert the LLM part of GLMV-EDGE to GGUF: + +```sh +python convert_hf_to_gguf.py ../model_path +``` + +Now both the LLM part and the image encoder are in the `model_path` directory. diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 24073c5a9..7367d44cb 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -102,6 +102,7 @@ static std::string format(const char * fmt, ...) { #define KEY_HAS_VIS_ENC "clip.has_vision_encoder" #define KEY_HAS_LLAVA_PROJ "clip.has_llava_projector" #define KEY_HAS_MINICPMV_PROJ "clip.has_minicpmv_projector" +#define KEY_HAS_GLM_PROJ "clip.has_glm_projector" #define KEY_MINICPMV_VERSION "clip.minicpmv_version" #define KEY_HAS_QWEN2VL_MERGER "clip.has_qwen2vl_merger" #define KEY_USE_GELU "clip.use_gelu" @@ -160,6 +161,15 @@ static std::string format(const char * fmt, ...) { #define TN_MINICPMV_ATTN "resampler.attn.%s.%s" #define TN_MINICPMV_LN "resampler.ln_%s.%s" +#define TN_GLM_ADAPER_CONV "adapter.conv.%s" +#define TN_GLM_ADAPTER_LINEAR "adapter.linear.linear.%s" +#define TN_GLM_ADAPTER_NORM_1 "adapter.linear.norm1.%s" +#define TN_GLM_ADAPTER_D_H_2_4H "adapter.linear.dense_h_to_4h.%s" +#define TN_GLM_ADAPTER_GATE "adapter.linear.gate.%s" +#define TN_GLM_ADAPTER_D_4H_2_H "adapter.linear.dense_4h_to_h.%s" +#define TN_GLM_BOI_W "adapter.boi" +#define TN_GLM_EOI_W "adapter.eoi" + enum projector_type { PROJECTOR_TYPE_MLP, @@ -167,6 +177,7 @@ enum projector_type { PROJECTOR_TYPE_LDP, PROJECTOR_TYPE_LDPV2, PROJECTOR_TYPE_RESAMPLER, + PROJECTOR_TYPE_GLM_EDGE, PROJECTOR_TYPE_MERGER, PROJECTOR_TYPE_UNKNOWN, }; @@ -176,6 +187,7 @@ static std::map PROJECTOR_TYPE_NAMES = { { PROJECTOR_TYPE_LDP, "ldp" }, { PROJECTOR_TYPE_LDPV2, "ldpv2"}, { PROJECTOR_TYPE_RESAMPLER, "resampler"}, + { PROJECTOR_TYPE_GLM_EDGE, "adapter"}, { PROJECTOR_TYPE_MERGER, "qwen2vl_merger"}, }; @@ -500,6 +512,12 @@ struct clip_vision_model { struct ggml_tensor * mm_4_w = NULL; struct ggml_tensor * mm_4_b = NULL; + //GLMV-Edge projection + struct ggml_tensor * mm_model_adapter_conv_w; + struct ggml_tensor * mm_model_adapter_conv_b; + struct ggml_tensor * boi_w; + struct ggml_tensor * eoi_w; + // MobileVLM projection struct ggml_tensor * mm_model_mlp_1_w; struct ggml_tensor * mm_model_mlp_1_b; @@ -560,6 +578,7 @@ struct clip_ctx { bool has_vision_encoder = false; bool has_llava_projector = false; bool has_minicpmv_projector = false; + bool has_glm_projector = false; bool has_qwen2vl_merger = false; int minicpmv_version = 2; @@ -638,7 +657,7 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 const int batch_size = imgs->size; - if (ctx->has_llava_projector || ctx->has_minicpmv_projector) { + if (ctx->has_llava_projector || ctx->has_minicpmv_projector || ctx->has_glm_projector) { GGML_ASSERT(batch_size == 1); } @@ -734,8 +753,7 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 } // loop over layers - if (ctx->has_minicpmv_projector || ctx->has_qwen2vl_merger) { - // TODO: figure out why we doing thing in this way ??? + if (ctx->has_minicpmv_projector || ctx->has_glm_projector || ctx->has_qwen2vl_merger) { n_layer += 1; } for (int il = 0; il < n_layer - 1; il++) { @@ -1095,7 +1113,33 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 GGML_ASSERT(false); } } - else if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { + // glm projector + else if (ctx->has_glm_projector) { + if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { + size_t gridsz = (size_t)sqrt(embeddings->ne[1]); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings,1,0,2,3)); + embeddings = ggml_reshape_3d(ctx0, embeddings, gridsz, gridsz, embeddings->ne[1]); + embeddings = ggml_conv_2d(ctx0, model.mm_model_adapter_conv_w, embeddings, 2, 2, 0, 0, 1, 1); + embeddings = ggml_reshape_3d(ctx0, embeddings,embeddings->ne[0]*embeddings->ne[1] , embeddings->ne[2], batch_size); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings, 1, 0, 2, 3)); + embeddings = ggml_add(ctx0, embeddings, model.mm_model_adapter_conv_b); + //GLU + { + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_q_w), model.mm_model_ln_q_b); + embeddings = ggml_gelu_inplace(ctx0, embeddings); + struct ggml_tensor * x = embeddings; + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, embeddings); + x = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w,x); + embeddings = ggml_silu_inplace(ctx0, embeddings); + embeddings = ggml_mul(ctx0, embeddings,x); + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); + } + } else { + GGML_ABORT("fatel error"); + } + } else if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size * 4, num_positions / 4, batch_size); embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); @@ -1284,6 +1328,11 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) { new_clip->minicpmv_version = gguf_get_val_i32(ctx, idx); } + idx = gguf_find_key(ctx, KEY_HAS_GLM_PROJ); + if (idx != -1) { + new_clip->has_glm_projector = gguf_get_val_bool(ctx, idx); + } + idx = gguf_find_key(ctx, KEY_HAS_QWEN2VL_MERGER); if (idx != -1) { new_clip->has_qwen2vl_merger = gguf_get_val_bool(ctx, idx); @@ -1308,6 +1357,7 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) { LOG_INF("%s: vision_encoder: %d\n", __func__, new_clip->has_vision_encoder); LOG_INF("%s: llava_projector: %d\n", __func__, new_clip->has_llava_projector); LOG_INF("%s: minicpmv_projector: %d\n", __func__, new_clip->has_minicpmv_projector); + LOG_INF("%s: glm_projector: %d\n", __func__, new_clip->has_glm_projector); LOG_INF("%s: model size: %.2f MB\n", __func__, model_size / 1024.0 / 1024.0); LOG_INF("%s: metadata size: %.2f MB\n", __func__, ggml_get_mem_size(meta) / 1024.0 / 1024.0); } @@ -1575,6 +1625,18 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) { vision_model.mm_model_ln_post_w = get_tensor(new_clip->ctx_data, format(TN_MINICPMV_LN, "post", "weight")); vision_model.mm_model_ln_post_b = get_tensor(new_clip->ctx_data, format(TN_MINICPMV_LN, "post", "bias")); } + else if (new_clip->proj_type == PROJECTOR_TYPE_GLM_EDGE) { + vision_model.mm_model_adapter_conv_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPER_CONV, "weight")); + vision_model.mm_model_adapter_conv_b = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPER_CONV, "bias")); + vision_model.mm_model_mlp_0_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_LINEAR,"weight")); + vision_model.mm_model_ln_q_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_NORM_1,"weight")); + vision_model.mm_model_ln_q_b = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_NORM_1,"bias")); + vision_model.mm_model_mlp_1_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_D_H_2_4H,"weight")); + vision_model.mm_model_mlp_2_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_GATE,"weight")); + vision_model.mm_model_mlp_3_w = get_tensor(new_clip->ctx_data, format(TN_GLM_ADAPTER_D_4H_2_H,"weight")); + vision_model.boi_w = get_tensor(new_clip->ctx_data, TN_GLM_BOI_W); + vision_model.eoi_w = get_tensor(new_clip->ctx_data, TN_GLM_EOI_W); + } else if (new_clip->proj_type == PROJECTOR_TYPE_MERGER) { vision_model.mm_0_w = get_tensor(new_clip->ctx_data, format(TN_LLAVA_PROJ, 0, "weight")); vision_model.mm_0_b = get_tensor(new_clip->ctx_data, format(TN_LLAVA_PROJ, 0, "bias")); @@ -2115,6 +2177,20 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, cli return true; } + if (ctx->has_glm_projector) { + res_imgs->size = 1; + res_imgs->data = new clip_image_f32[res_imgs->size]; + clip_image_u8 resized_image; + int32_t sz=ctx->vision_model.hparams.image_size; + bicubic_resize(*img, resized_image,sz,sz); + clip_image_f32 * res = clip_image_f32_init(); + //clip_image_save_to_bmp(resized_image, "resized.bmp"); + normalize_image_u8_to_f32(&resized_image, res, ctx->image_mean, ctx->image_std); + res_imgs->data[0] = *res; + clip_image_f32_free(res); + return true; + } + bool pad_to_square = true; if (!ctx->has_vision_encoder) { LOG_ERR("This gguf file seems to have no vision encoder\n"); @@ -2300,7 +2376,8 @@ void clip_free(clip_ctx * ctx) { } size_t clip_embd_nbytes(const struct clip_ctx * ctx) { - return clip_n_patches(ctx) * clip_n_mmproj_embd(ctx) * sizeof(float); + int extra_tokens = ctx->has_glm_projector ? 2 : 0; + return (clip_n_patches(ctx) + extra_tokens) * clip_n_mmproj_embd(ctx) * sizeof(float); } size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_h, int img_w) { @@ -2342,7 +2419,7 @@ int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * i int n_patches = (params.image_size / params.patch_size) * (params.image_size / params.patch_size); - if (ctx->proj_type == PROJECTOR_TYPE_LDP || ctx->proj_type == PROJECTOR_TYPE_LDPV2) { + if (ctx->proj_type == PROJECTOR_TYPE_LDP || ctx->proj_type == PROJECTOR_TYPE_LDPV2 || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { n_patches /= 4; } else if (ctx->proj_type == PROJECTOR_TYPE_RESAMPLER) { if (ctx->minicpmv_version == 2) { @@ -2475,6 +2552,12 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima if (ctx->has_minicpmv_projector) { GGML_ASSERT(batch_size == 1); } + if (ctx->has_glm_projector) { + GGML_ASSERT(batch_size == 1); + ggml_tensor * boi = ctx->vision_model.boi_w; + ggml_backend_tensor_get(boi,vec,0,ggml_nbytes(boi)); + vec = (float*)(vec+ggml_nelements(boi)); //offset for boi + } // build the inference graph ggml_cgraph * gf = clip_image_build_graph(ctx, imgs, ctx->load_image_size, true); @@ -2627,7 +2710,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima ggml_backend_tensor_set(positions, positions_data, 0, ggml_nbytes(positions)); free(positions_data); - { + if (!ctx->has_glm_projector) { struct ggml_tensor * patches = ggml_graph_get_tensor(gf, "patches"); int* patches_data = (int*)malloc(ggml_nbytes(patches)); for (int i = 0; i < num_patches; i++) { @@ -2651,6 +2734,13 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima // copy the embeddings to the location passed by the user ggml_backend_tensor_get(embeddings, vec, 0, ggml_nbytes(embeddings)); + if (ctx->has_glm_projector) { + //eoi + ggml_tensor * eoi = ctx->vision_model.eoi_w; + int offset = ggml_nelements(embeddings); + ggml_backend_tensor_get(eoi, vec+offset, 0, ggml_nbytes(eoi)); + } + return true; } @@ -2812,6 +2902,9 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { return 3584; } } + if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE){ + return ctx->vision_model.mm_model_mlp_3_w->ne[1]; + } if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { return ctx->vision_model.mm_1_b->ne[0]; } @@ -2827,6 +2920,9 @@ int clip_is_minicpmv(const struct clip_ctx * ctx) { return 0; } +bool clip_is_glm(const struct clip_ctx * ctx) { + return ctx->has_glm_projector; +} bool clip_is_qwen2vl(const struct clip_ctx * ctx) { return ctx->has_qwen2vl_merger; } diff --git a/examples/llava/clip.h b/examples/llava/clip.h index 1603edd26..841b4f6f9 100644 --- a/examples/llava/clip.h +++ b/examples/llava/clip.h @@ -93,6 +93,8 @@ CLIP_API bool clip_is_qwen2vl(const struct clip_ctx * ctx); CLIP_API bool clip_encode_float_image (struct clip_ctx * ctx, int n_threads, float * img, int h, int w, float * vec); +CLIP_API bool clip_is_glm(const struct clip_ctx * ctx); + #ifdef __cplusplus } #endif diff --git a/examples/llava/glmedge-convert-image-encoder-to-gguf.py b/examples/llava/glmedge-convert-image-encoder-to-gguf.py new file mode 100644 index 000000000..848ef1cf3 --- /dev/null +++ b/examples/llava/glmedge-convert-image-encoder-to-gguf.py @@ -0,0 +1,280 @@ +import argparse +import os +import json +import re + +import torch +import numpy as np +from gguf import * + +TEXT = "clip.text" +VISION = "clip.vision" +from transformers import SiglipVisionModel, SiglipVisionConfig + +def k(raw_key: str, arch: str) -> str: + return raw_key.format(arch=arch) + + +def should_skip_tensor(name: str, has_text: bool, has_vision: bool, has_llava: bool) -> bool: + if name in ( + "logit_scale", + "text_model.embeddings.position_ids", + "vision_model.embeddings.position_ids", + ): + return True + + if name in ( + "vision_model.head.probe", + "vision_model.head.attention.in_proj_weight", + "vision_model.head.attention.in_proj_bias", + "vision_model.head.attention.out_proj.weight", + "vision_model.head.attention.out_proj.bias", + "vision_model.head.layernorm.weight", + "vision_model.head.layernorm.bias", + "vision_model.head.mlp.fc1.weight", + "vision_model.head.mlp.fc1.bias", + "vision_model.head.mlp.fc2.weight", + "vision_model.head.mlp.fc2.bias" + ): + return True + + if name.startswith("v") and not has_vision: + return True + + if name.startswith("t") and not has_text: + return True + + return False + + +def get_tensor_name(name: str) -> str: + if "projection" in name: + return name + if "mm_projector" in name: + name = name.replace("model.mm_projector", "mm") + name = re.sub(r'mm\.mlp\.mlp', 'mm.model.mlp', name, count=1) + name = re.sub(r'mm\.peg\.peg', 'mm.model.peg', name, count=1) + return name + + return name.replace("text_model", "t").replace("vision_model", "v").replace("encoder.layers", "blk").replace("embeddings.", "").replace("_proj", "").replace("self_attn.", "attn_").replace("layer_norm", "ln").replace("layernorm", "ln").replace("mlp.fc1", "ffn_down").replace("mlp.fc2", "ffn_up").replace("embedding", "embd").replace("final", "post").replace("layrnorm", "ln") + + +def bytes_to_unicode(): + """ + Returns list of utf-8 byte and a corresponding list of unicode strings. + The reversible bpe codes work on unicode strings. + This means you need a large # of unicode characters in your vocab if you want to avoid UNKs. + When you're at something like a 10B token dataset you end up needing around 5K for decent coverage. + This is a significant percentage of your normal, say, 32K bpe vocab. + To avoid that, we want lookup tables between utf-8 bytes and unicode strings. + And avoids mapping to whitespace/control characters the bpe code barfs on. + """ + bs = ( + list(range(ord("!"), ord("~") + 1)) + + list(range(ord("¡"), ord("¬") + 1)) + + list(range(ord("®"), ord("ÿ") + 1)) + ) + cs = bs[:] + n = 0 + for b in range(2**8): + if b not in bs: + bs.append(b) + cs.append(2**8 + n) + n += 1 + cs = [chr(n) for n in cs] + return dict(zip(bs, cs)) + + +ap = argparse.ArgumentParser() +ap.add_argument("-m", "--model-dir", help="Path to model directory cloned from HF Hub", required=True) +ap.add_argument("--use-f32", action="store_true", default=False, help="Use f32 instead of f16") +ap.add_argument("--text-only", action="store_true", required=False, + help="Save a text-only model. It can't be used to encode images") +ap.add_argument("--vision-only", action="store_true", required=False, + help="Save a vision-only model. It can't be used to encode texts") +ap.add_argument("--clip-model-is-vision", action="store_true", required=False, + help="The clip model is a pure vision model (ShareGPT4V vision extract for example)") +ap.add_argument("--clip-model-is-openclip", action="store_true", required=False, + help="The clip model is from openclip (for ViT-SO400M type))") +ap.add_argument("--llava-projector", help="Path to llava.projector file. If specified, save an image encoder for LLaVA models.") +ap.add_argument("--projector-type", help="Type of projector. Possible values: mlp, ldp, ldpv2", choices=["mlp", "ldp", "ldpv2","adapter"], default="adapter") +ap.add_argument("-o", "--output-dir", help="Directory to save GGUF files. Default is the original model directory", default=None) +# Example --image_mean 0.48145466 0.4578275 0.40821073 --image_std 0.26862954 0.26130258 0.27577711 +# Example --image_mean 0.5 0.5 0.5 --image_std 0.5 0.5 0.5 +default_image_mean = [0.5, 0.5, 0.5] +default_image_std = [0.5, 0.5, 0.5] +ap.add_argument('--image-mean', type=float, nargs='+', help='Mean of the images for normalization (overrides processor) ', default=None) +ap.add_argument('--image-std', type=float, nargs='+', help='Standard deviation of the images for normalization (overrides processor)', default=None) + +# with proper +args = ap.parse_args() + + +if args.text_only and args.vision_only: + print("--text-only and --image-only arguments cannot be specified at the same time.") + exit(1) + +if args.use_f32: + print("WARNING: Weights for the convolution op is always saved in f16, as the convolution op in GGML does not support 32-bit kernel weights yet.") + +# output in the same directory as the model if output_dir is None +dir_model = args.model_dir + +if args.clip_model_is_vision or not os.path.exists(dir_model + "/vocab.json") or args.clip_model_is_openclip: + vocab = None + tokens = None +else: + with open(dir_model + "/vocab.json", "r", encoding="utf-8") as f: + vocab = json.load(f) + tokens = [key for key in vocab] + +with open(dir_model + "/config.json", "r", encoding="utf-8") as f: + config = json.load(f) + if args.clip_model_is_vision: + v_hparams = config + t_hparams = None + else: + v_hparams = config["vision_config"] + t_hparams = None + +# possible data types +# ftype == 0 -> float32 +# ftype == 1 -> float16 +# +# map from ftype to string +ftype_str = ["f32", "f16"] + +ftype = 1 +if args.use_f32: + ftype = 0 + +vision_config = SiglipVisionConfig(**v_hparams) +model = SiglipVisionModel(vision_config) +model.load_state_dict(torch.load(os.path.join(dir_model, "glm.clip"))) + +fname_middle = None +has_text_encoder = False +has_vision_encoder = True +has_glm_projector = True +if args.text_only: + fname_middle = "text-" + has_vision_encoder = False +elif args.llava_projector is not None: + fname_middle = "mmproj-" + has_text_encoder = False + has_glm_projector = True +elif args.vision_only: + fname_middle = "vision-" + has_text_encoder = False +else: + fname_middle = "" + +output_dir = args.output_dir if args.output_dir is not None else dir_model +os.makedirs(output_dir, exist_ok=True) +output_prefix = os.path.basename(output_dir).replace("ggml_", "") +fname_out = os.path.join(output_dir, f"{fname_middle}model-{ftype_str[ftype]}.gguf") +fout = GGUFWriter(path=fname_out, arch="clip") + +fout.add_bool("clip.has_text_encoder", has_text_encoder) +fout.add_bool("clip.has_vision_encoder", has_vision_encoder) +fout.add_bool("clip.has_glm_projector", has_glm_projector) +fout.add_file_type(ftype) +model_name = config["_name_or_path"] if "_name_or_path" in config else os.path.basename(dir_model) +fout.add_name(model_name) +if has_glm_projector: + fout.add_description("image encoder for glm4v") + fout.add_string("clip.projector_type", "adapter") +else: + fout.add_description("two-tower CLIP model") + +if has_text_encoder: + assert t_hparams is not None + assert tokens is not None + # text_model hparams + fout.add_uint32(k(KEY_CONTEXT_LENGTH, TEXT), t_hparams["max_position_embeddings"]) + fout.add_uint32(k(KEY_EMBEDDING_LENGTH, TEXT), t_hparams["hidden_size"]) + fout.add_uint32(k(KEY_FEED_FORWARD_LENGTH, TEXT), t_hparams["intermediate_size"]) + fout.add_uint32("clip.text.projection_dim", t_hparams.get("projection_dim", config["projection_dim"])) + fout.add_uint32(k(KEY_ATTENTION_HEAD_COUNT, TEXT), t_hparams["num_attention_heads"]) + fout.add_float32(k(KEY_ATTENTION_LAYERNORM_EPS, TEXT), t_hparams["layer_norm_eps"]) + fout.add_uint32(k(KEY_BLOCK_COUNT, TEXT), t_hparams["num_hidden_layers"]) + fout.add_token_list(tokens) + +if has_vision_encoder: + # vision_model hparams + fout.add_uint32("clip.vision.image_size", v_hparams["image_size"]) + fout.add_uint32("clip.vision.patch_size", v_hparams["patch_size"]) + fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), v_hparams["hidden_size"]) + fout.add_uint32(k(KEY_FEED_FORWARD_LENGTH, VISION), v_hparams["intermediate_size"]) + fout.add_uint32("clip.vision.projection_dim", 0) + fout.add_uint32(k(KEY_ATTENTION_HEAD_COUNT, VISION), v_hparams["num_attention_heads"]) + fout.add_float32(k(KEY_ATTENTION_LAYERNORM_EPS, VISION), 1e-6) + fout.add_uint32(k(KEY_BLOCK_COUNT, VISION), v_hparams["num_hidden_layers"]) + + image_mean = args.image_mean if args.image_mean is not None else default_image_mean + image_std = args.image_std if args.image_std is not None else default_image_std + fout.add_array("clip.vision.image_mean", image_mean) + fout.add_array("clip.vision.image_std", image_std) + +fout.add_bool("clip.use_gelu", True) + + +if has_glm_projector: + # model.vision_model.encoder.layers.pop(-1) # pyright: ignore[reportAttributeAccessIssue] + projector = torch.load(args.llava_projector) + for name, data in projector.items(): + name = get_tensor_name(name) + # pw and dw conv ndim==4 + if data.ndim == 2 or data.ndim == 4: + data = data.squeeze().numpy().astype(np.float16) + else: + data = data.squeeze().numpy().astype(np.float32) + if name.startswith("vision."): + name=name.replace("vision.","") + fout.add_tensor(name, data) + print(f"Projector {name} - {data.dtype} - shape = {data.shape}") + # print(f"Projector {name} tensors added\n") + +state_dict = model.state_dict() # pyright: ignore[reportAttributeAccessIssue] +for name, data in state_dict.items(): + if should_skip_tensor(name, has_text_encoder, has_vision_encoder, has_glm_projector): + # we don't need this + print(f"skipping parameter: {name}") + continue + + name = get_tensor_name(name) + data = data.squeeze().numpy() + + n_dims = len(data.shape) + + # ftype == 0 -> float32, ftype == 1 -> float16 + ftype_cur = 0 + if n_dims == 4: + print(f"tensor {name} is always saved in f16") + data = data.astype(np.float16) + ftype_cur = 1 + elif ftype == 1: + if name[-7:] == ".weight" and n_dims == 2: + # print(" Converting to float16") + data = data.astype(np.float16) + ftype_cur = 1 + else: + # print(" Converting to float32") + data = data.astype(np.float32) + ftype_cur = 0 + else: + if data.dtype != np.float32: + # print(" Converting to float32") + data = data.astype(np.float32) + ftype_cur = 0 + print(f"siglip {name} - {data.dtype} - shape = {data.shape}") + # print(f"{name} - {ftype_str[ftype_cur]} - shape = {data.shape}") + fout.add_tensor(name, data) + + +fout.write_header_to_file() +fout.write_kv_data_to_file() +fout.write_tensors_to_file() +fout.close() + +print("Done. Output file: " + fname_out) diff --git a/examples/llava/glmedge-surgery.py b/examples/llava/glmedge-surgery.py new file mode 100644 index 000000000..16bb915d0 --- /dev/null +++ b/examples/llava/glmedge-surgery.py @@ -0,0 +1,33 @@ +import argparse +import os +import torch +from transformers import AutoModel + +ap = argparse.ArgumentParser() +ap.add_argument("-m", "--model", help="Path to GLM model") +args = ap.parse_args() + +# find the model part that includes the the multimodal projector weights +model = AutoModel.from_pretrained(args.model, trust_remote_code=True, local_files_only=True) +checkpoint = model.state_dict() + +# get a list of mm tensor names +mm_tensors = [k for k, v in checkpoint.items() if k.startswith("vision.adapter.")] + +# store these tensors in a new dictionary and torch.save them +projector = {name: checkpoint[name].float() for name in mm_tensors} +torch.save(projector, f"{args.model}/glm.projector") + +clip_tensors = [k for k, v in checkpoint.items() if k.startswith("vision.vit.model.vision_model.")] +if len(clip_tensors) > 0: + clip = {name.replace("vision.vit.model.", ""): checkpoint[name].float() for name in clip_tensors} + torch.save(clip, f"{args.model}/glm.clip") + + # added tokens should be removed to be able to convert Mistral models + if os.path.exists(f"{args.model}/added_tokens.json"): + with open(f"{args.model}/added_tokens.json", "w") as f: + f.write("{}\n") + +print("Done!") +print(f"Now you can convert {args.model} to a regular LLaMA GGUF file.") +print(f"Also, use {args.model}glm.projector to prepare a glm-encoder.gguf file.") diff --git a/examples/llava/llava.cpp b/examples/llava/llava.cpp index 2cac7933d..300714045 100644 --- a/examples/llava/llava.cpp +++ b/examples/llava/llava.cpp @@ -311,6 +311,20 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli img_res_v.size = 0; img_res_v.data = nullptr; } + else if (clip_is_glm(ctx_clip)){ + struct clip_image_size * load_image_size = clip_image_size_init(); + load_image_size->width = img_res_v.data[0].nx; + load_image_size->height = img_res_v.data[0].ny; + clip_add_load_image_size(ctx_clip, load_image_size); + + bool encoded = clip_image_encode(ctx_clip, n_threads, &img_res_v.data[0], image_embd); + int pos = int(load_image_size->width/clip_patch_size(ctx_clip)/2); + *n_img_pos = (pos * pos + 2); + if (!encoded){ + LOG_ERR("Unable to encode image \n"); + return false; + } + } else if (strcmp(mm_patch_merge_type, "spatial_unpad") != 0) { // flat / default llava-1.5 type embedding *n_img_pos = clip_n_patches(ctx_clip); @@ -395,6 +409,9 @@ bool llava_image_embed_make_with_clip_img(clip_ctx * ctx_clip, int n_threads, co if (clip_is_minicpmv(ctx_clip)) { num_max_patches = 10; } + if (clip_is_glm(ctx_clip)) { + num_max_patches = 1; + } float * image_embd; if (clip_is_qwen2vl(ctx_clip)) { // qwen2vl don't split image into chunks, so `num_max_patches` is not needed. diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 8fe84df21..ecac5b4bb 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -1357,6 +1357,9 @@ MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { MODEL_TENSOR.OUTPUT, MODEL_TENSOR.ATTN_NORM, MODEL_TENSOR.ATTN_QKV, + MODEL_TENSOR.ATTN_Q, + MODEL_TENSOR.ATTN_K, + MODEL_TENSOR.ATTN_V, MODEL_TENSOR.ATTN_OUT, MODEL_TENSOR.FFN_NORM, MODEL_TENSOR.FFN_DOWN, diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index a7260f495..97a1e7e5e 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -1024,6 +1024,9 @@ static const std::map> LLM_TENSOR_N { LLM_TENSOR_OUTPUT, "output" }, { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" }, { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" }, + { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" }, + { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" }, + { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" }, { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" }, { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" }, { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" }, diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index 5c19bab24..028a64794 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -51,6 +51,7 @@ static const std::map LLM_CHAT_TEMPLATES = { { "llama3", LLM_CHAT_TEMPLATE_LLAMA_3 }, { "chatglm3", LLM_CHAT_TEMPLATE_CHATGML_3 }, { "chatglm4", LLM_CHAT_TEMPLATE_CHATGML_4 }, + { "glmedge", LLM_CHAT_TEMPLATE_GLMEDGE }, { "minicpm", LLM_CHAT_TEMPLATE_MINICPM }, { "exaone3", LLM_CHAT_TEMPLATE_EXAONE_3 }, { "rwkv-world", LLM_CHAT_TEMPLATE_RWKV_WORLD }, @@ -115,7 +116,7 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|end|>")) { return LLM_CHAT_TEMPLATE_PHI_3; } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|user|>")) { - return LLM_CHAT_TEMPLATE_FALCON_3; + return tmpl_contains("") ? LLM_CHAT_TEMPLATE_FALCON_3 : LLM_CHAT_TEMPLATE_GLMEDGE; } else if (tmpl_contains("<|user|>") && tmpl_contains("<|endoftext|>")) { return LLM_CHAT_TEMPLATE_ZEPHYR; } else if (tmpl_contains("bos_token + message['role']")) { @@ -440,6 +441,14 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>"; } + } else if (tmpl == LLM_CHAT_TEMPLATE_GLMEDGE) { + for (auto message : chat) { + std::string role(message->role); + ss << "<|" << role << "|>" << "\n" << message->content; + } + if (add_ass) { + ss << "<|assistant|>"; + } } else if (tmpl == LLM_CHAT_TEMPLATE_MINICPM) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF for (auto message : chat) { diff --git a/src/llama-chat.h b/src/llama-chat.h index 3a4d07ce3..2f6a0e3e2 100644 --- a/src/llama-chat.h +++ b/src/llama-chat.h @@ -31,6 +31,7 @@ enum llm_chat_template { LLM_CHAT_TEMPLATE_LLAMA_3, LLM_CHAT_TEMPLATE_CHATGML_3, LLM_CHAT_TEMPLATE_CHATGML_4, + LLM_CHAT_TEMPLATE_GLMEDGE, LLM_CHAT_TEMPLATE_MINICPM, LLM_CHAT_TEMPLATE_EXAONE_3, LLM_CHAT_TEMPLATE_RWKV_WORLD, diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 18bd0b071..0487c978b 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -1093,8 +1093,20 @@ void llama_model::load_hparams(llama_model_loader & ml) { { ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); switch (hparams.n_layer) { - case 28: type = LLM_TYPE_6B; break; - case 40: type = LLM_TYPE_9B; break; + case 28: { + if (hparams.n_head(0) == 16) { + type = LLM_TYPE_1_5B; + } else { + type = LLM_TYPE_6B; + } + } break; + case 40: { + if (hparams.n_head(0) == 24) { + type = LLM_TYPE_4B; + } else { + type = LLM_TYPE_9B; + } + } break; default: type = LLM_TYPE_UNKNOWN; } } break; @@ -3068,9 +3080,17 @@ bool llama_model::load_tensors(llama_model_loader & ml) { auto & layer = layers[i]; layer.attn_norm = create_tensor(tn(LLM_TENSOR_ATTN_NORM, "weight", i), {n_embd}, 0); + layer.wqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "weight", i), {n_embd, n_embd + 2*n_embd_gqa}, llama_model_loader::TENSOR_NOT_REQUIRED); + layer.bqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "bias", i), {n_embd + 2*n_embd_gqa}, llama_model_loader::TENSOR_NOT_REQUIRED); - layer.wqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "weight", i), {n_embd, n_embd + 2*n_embd_gqa}, 0); - layer.bqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "bias", i), {n_embd + 2*n_embd_gqa}, 0); + if (layer.wqkv == nullptr) { + layer.wq = create_tensor(tn(LLM_TENSOR_ATTN_Q, "weight", i), {n_embd, n_embd_head_k * n_head}, 0); + layer.wk = create_tensor(tn(LLM_TENSOR_ATTN_K, "weight", i), {n_embd, n_embd_k_gqa}, 0); + layer.wv = create_tensor(tn(LLM_TENSOR_ATTN_V, "weight", i), {n_embd, n_embd_v_gqa}, 0); + layer.bq = create_tensor(tn(LLM_TENSOR_ATTN_Q, "bias", i), {n_embd}, llama_model_loader::TENSOR_NOT_REQUIRED); + layer.bk = create_tensor(tn(LLM_TENSOR_ATTN_K, "bias", i), {n_embd_gqa}, llama_model_loader::TENSOR_NOT_REQUIRED); + layer.bv = create_tensor(tn(LLM_TENSOR_ATTN_V, "bias", i), {n_embd_gqa}, llama_model_loader::TENSOR_NOT_REQUIRED); + } layer.wo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "weight", i), {n_embd, n_embd}, 0); diff --git a/src/llama.cpp b/src/llama.cpp index 192b20a27..5760017e0 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -7215,17 +7215,30 @@ struct llm_build_context { struct ggml_tensor * Qcur = nullptr; struct ggml_tensor * Kcur = nullptr; struct ggml_tensor * Vcur = nullptr; - - cur = llm_build_lora_mm(lctx, ctx0, model.layers[il].wqkv, cur); - cb(cur, "wqkv", il); - - cur = ggml_add(ctx0, cur, model.layers[il].bqkv); - cb(cur, "bqkv", il); - - Qcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd, n_tokens, cur->nb[1], 0*sizeof(float)*(n_embd))); - Kcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd))); - Vcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd + n_embd_gqa))); - + if (model.type == LLM_TYPE_1_5B || model.type == LLM_TYPE_4B || model.type == LLM_TYPE_9B) { + Qcur = llm_build_lora_mm(lctx, ctx0, model.layers[il].wq, cur); + if (model.layers[il].bq) { + Qcur = ggml_add(ctx0, Qcur, model.layers[il].bq); + } + Kcur = llm_build_lora_mm(lctx, ctx0, model.layers[il].wk, cur); + if (model.layers[il].bk) { + Kcur = ggml_add(ctx0, Kcur, model.layers[il].bk); + } + Vcur = llm_build_lora_mm(lctx, ctx0, model.layers[il].wv, cur); + if (model.layers[il].bv) { + Vcur = ggml_add(ctx0, Vcur, model.layers[il].bv); + } + } else { + cur = llm_build_lora_mm(lctx, ctx0, model.layers[il].wqkv, cur); + cb(cur, "wqkv", il); + if (model.layers[il].bqkv) { + cur = ggml_add(ctx0, cur, model.layers[il].bqkv); + cb(cur, "bqkv", il); + } + Qcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd, n_tokens, cur->nb[1], 0*sizeof(float)*(n_embd))); + Kcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd))); + Vcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd + n_embd_gqa))); + } cb(Qcur, "Qcur", il); cb(Kcur, "Kcur", il); cb(Vcur, "Vcur", il); diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index 4563f9dcb..e0314ae1d 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -175,6 +175,14 @@ int main(void) { /* .bos_token= */ "", /* .eos_token= */ "", }, + { + /* .name= */ "GLMEdge", + /* .template_str= */ "{% for item in messages %}{% if item['role'] == 'system' %}<|system|>\n{{ item['content'] }}{% elif item['role'] == 'user' %}<|user|>\n{{ item['content'] }}{% elif item['role'] == 'assistant' %}<|assistant|>\n{{ item['content'] }}{% endif %}{% endfor %}<|assistant|>", + /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .expected_output_jinja= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .bos_token= */ "", + /* .eos_token= */ "", + }, { /* .name= */ "MiniCPM-3B-OpenHermes-2.5-v2-GGUF", /* .template_str= */ u8"{% for message in messages %}{% if message['role'] == 'user' %}{{'<用户>' + message['content'].strip() + ''}}{% else %}{{message['content'].strip()}}{% endif %}{% endfor %}", From ff227703d6d6e1888bdc7af6138514092ffcdb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Moskal?= Date: Sat, 1 Feb 2025 23:55:32 -0800 Subject: [PATCH 094/162] sampling : support for llguidance grammars (#10224) * initial porting of previous LLG patch * update for new APIs * build: integrate llguidance as an external project * use '%llguidance' as marker to enable llg lark syntax * add some docs * clarify docs * code style fixes * remove llguidance.h from .gitignore * fix tests when llg is enabled * pass vocab not model to llama_sampler_init_llg() * copy test-grammar-integration.cpp to test-llguidance.cpp * clang fmt * fix ref-count bug * build and run test * gbnf -> lark syntax * conditionally include llguidance test based on LLAMA_LLGUIDANCE flag * rename llguidance test file to test-grammar-llguidance.cpp * add gh action for llg test * align tests with LLG grammar syntax and JSON Schema spec * llama_tokenizer() in fact requires valid utf8 * update llg * format file * add $LLGUIDANCE_LOG_LEVEL support * fix whitespace * fix warning * include for INFINITY * add final newline * fail llama_sampler_init_llg() at runtime * Link gbnf_to_lark.py script; fix links; refer to llg docs for lexemes * simplify #includes * improve doc string for LLAMA_LLGUIDANCE * typo in merge * bump llguidance to 0.6.12 --- .github/workflows/build.yml | 30 + CMakeLists.txt | 1 + common/CMakeLists.txt | 28 + common/json-schema-to-grammar.cpp | 9 +- common/json-schema-to-grammar.h | 3 +- common/llguidance.cpp | 270 ++++++ common/sampling.cpp | 22 +- common/sampling.h | 3 + docs/llguidance.md | 51 ++ tests/CMakeLists.txt | 3 + tests/test-grammar-integration.cpp | 2 +- tests/test-grammar-llguidance.cpp | 1140 +++++++++++++++++++++++++ tests/test-json-schema-to-grammar.cpp | 2 +- 13 files changed, 1555 insertions(+), 9 deletions(-) create mode 100644 common/llguidance.cpp create mode 100644 docs/llguidance.md create mode 100644 tests/test-grammar-llguidance.cpp diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7392f2bfe..8f9c82f87 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -302,6 +302,36 @@ jobs: cd build ctest -L main --verbose --timeout 900 + ubuntu-latest-llguidance: + runs-on: ubuntu-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get install build-essential + + - name: Build + id: cmake_build + run: | + mkdir build + cd build + cmake .. \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_LLGUIDANCE=ON + cmake --build . --config Release -j $(nproc) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L main --verbose --timeout 900 + ubuntu-latest-cmake-rpc: runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c62d1788..74b48d24d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,6 +80,7 @@ option(LLAMA_BUILD_SERVER "llama: build server example" ${LLAMA_STANDALONE}) # 3rd party libs option(LLAMA_CURL "llama: use libcurl to download model from an URL" OFF) +option(LLAMA_LLGUIDANCE "llama-common: include LLGuidance library for structured output in common utils" OFF) # Required for relocatable CMake package include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info.cmake) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 72f0915c1..e61015d2a 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -65,6 +65,7 @@ add_library(${TARGET} STATIC console.h json-schema-to-grammar.cpp json.hpp + llguidance.cpp log.cpp log.h minja.hpp @@ -91,6 +92,33 @@ if (LLAMA_CURL) set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} ${CURL_LIBRARY}) endif () +if (LLAMA_LLGUIDANCE) + include(ExternalProject) + set(LLGUIDANCE_SRC ${CMAKE_BINARY_DIR}/llguidance/source) + set(LLGUIDANCE_PATH ${LLGUIDANCE_SRC}/target/release) + ExternalProject_Add(llguidance_ext + GIT_REPOSITORY https://github.com/guidance-ai/llguidance + # v0.6.12: + GIT_TAG ced1c9023d47ec194fa977932d35ce65c2ebfc09 + PREFIX ${CMAKE_BINARY_DIR}/llguidance + SOURCE_DIR ${LLGUIDANCE_SRC} + BUILD_IN_SOURCE TRUE + CONFIGURE_COMMAND "" + BUILD_COMMAND cargo build --release + INSTALL_COMMAND "" + BUILD_BYPRODUCTS ${LLGUIDANCE_PATH}/libllguidance.a ${LLGUIDANCE_PATH}/llguidance.h + UPDATE_COMMAND "" + ) + target_compile_definitions(${TARGET} PUBLIC LLAMA_USE_LLGUIDANCE) + + add_library(llguidance STATIC IMPORTED) + set_target_properties(llguidance PROPERTIES IMPORTED_LOCATION ${LLGUIDANCE_PATH}/libllguidance.a) + add_dependencies(llguidance llguidance_ext) + + target_include_directories(${TARGET} PRIVATE ${LLGUIDANCE_PATH}) + set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} llguidance) +endif () + target_include_directories(${TARGET} PUBLIC .) target_compile_features (${TARGET} PUBLIC cxx_std_17) target_link_libraries (${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads) diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 1f47e313e..3ebcc3d9f 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -991,7 +991,14 @@ public: } }; -std::string json_schema_to_grammar(const json & schema) { +std::string json_schema_to_grammar(const json & schema, bool force_gbnf) { +#ifdef LLAMA_USE_LLGUIDANCE + if (!force_gbnf) { + return "%llguidance {}\nstart: %json " + schema.dump(); + } +#else + (void)force_gbnf; +#endif // LLAMA_USE_LLGUIDANCE return build_grammar([&](const common_grammar_builder & callbacks) { auto copy = schema; callbacks.resolve_refs(copy); diff --git a/common/json-schema-to-grammar.h b/common/json-schema-to-grammar.h index ba4112cb9..62a3b0a44 100644 --- a/common/json-schema-to-grammar.h +++ b/common/json-schema-to-grammar.h @@ -5,7 +5,8 @@ #define JSON_ASSERT GGML_ASSERT #include "json.hpp" -std::string json_schema_to_grammar(const nlohmann::ordered_json & schema); +std::string json_schema_to_grammar(const nlohmann::ordered_json & schema, + bool force_gbnf = false); struct common_grammar_builder { std::function add_rule; diff --git a/common/llguidance.cpp b/common/llguidance.cpp new file mode 100644 index 000000000..7aa8ddd80 --- /dev/null +++ b/common/llguidance.cpp @@ -0,0 +1,270 @@ +#include "sampling.h" +#include "log.h" + +#ifdef LLAMA_USE_LLGUIDANCE + +# include "llguidance.h" +# include + +struct llama_sampler_llg { + const llama_vocab * vocab; + std::string grammar_kind; + std::string grammar_data; + LlgTokenizer * tokenizer; + LlgConstraint * grammar; + LlgMaskResult llg_res; + bool has_llg_res; +}; + +static LlgConstraint * llama_sampler_llg_new(LlgTokenizer * tokenizer, const char * grammar_kind, + const char * grammar_data) { + LlgConstraintInit cinit; + llg_constraint_init_set_defaults(&cinit, tokenizer); + const char * log_level = getenv("LLGUIDANCE_LOG_LEVEL"); + if (log_level && *log_level) { + cinit.log_stderr_level = atoi(log_level); + } + auto c = llg_new_constraint_any(&cinit, grammar_kind, grammar_data); + if (llg_get_error(c)) { + LOG_ERR("llg error: %s\n", llg_get_error(c)); + llg_free_constraint(c); + return nullptr; + } + return c; +} + +static const char * llama_sampler_llg_name(const llama_sampler * /*smpl*/) { + return "llguidance"; +} + +static void llama_sampler_llg_accept_impl(llama_sampler * smpl, llama_token token) { + auto * ctx = (llama_sampler_llg *) smpl->ctx; + if (ctx->grammar) { + LlgCommitResult res; + llg_commit_token(ctx->grammar, token, &res); + ctx->has_llg_res = false; + } +} + +static void llama_sampler_llg_apply(llama_sampler * smpl, llama_token_data_array * cur_p) { + auto * ctx = (llama_sampler_llg *) smpl->ctx; + if (ctx->grammar) { + if (!ctx->has_llg_res) { + if (llg_compute_mask(ctx->grammar, &ctx->llg_res) == 0) { + ctx->has_llg_res = true; + } else { + LOG_ERR("llg error: %s\n", llg_get_error(ctx->grammar)); + llg_free_constraint(ctx->grammar); + ctx->grammar = nullptr; + } + } + if (ctx->has_llg_res) { + if (ctx->llg_res.is_stop) { + for (size_t i = 0; i < cur_p->size; ++i) { + if (!llama_vocab_is_eog(ctx->vocab, cur_p->data[i].id)) { + cur_p->data[i].logit = -INFINITY; + } + } + } else { + const uint32_t * mask = ctx->llg_res.sample_mask; + for (size_t i = 0; i < cur_p->size; ++i) { + auto token = cur_p->data[i].id; + if ((mask[token / 32] & (1 << (token % 32))) == 0) { + cur_p->data[i].logit = -INFINITY; + } + } + } + } + } +} + +static void llama_sampler_llg_reset(llama_sampler * smpl) { + auto * ctx = (llama_sampler_llg *) smpl->ctx; + if (!ctx->grammar) { + return; + } + + auto * grammar_new = llama_sampler_llg_new(ctx->tokenizer, ctx->grammar_kind.c_str(), ctx->grammar_data.c_str()); + llg_free_constraint(ctx->grammar); + ctx->grammar = grammar_new; + ctx->has_llg_res = false; +} + +static llama_sampler * llama_sampler_llg_clone(const llama_sampler * smpl) { + const auto * ctx = (const llama_sampler_llg *) smpl->ctx; + + auto * result = llama_sampler_init_llg(ctx->vocab, nullptr, nullptr); + + // copy the state + { + auto * result_ctx = (llama_sampler_llg *) result->ctx; + + if (ctx->grammar) { + result_ctx->grammar_kind = ctx->grammar_kind; + result_ctx->grammar_data = ctx->grammar_data; + result_ctx->grammar = llg_clone_constraint(ctx->grammar); + result_ctx->tokenizer = llg_clone_tokenizer(ctx->tokenizer); + } + } + + return result; +} + +static void llama_sampler_llg_free(llama_sampler * smpl) { + const auto * ctx = (llama_sampler_llg *) smpl->ctx; + + if (ctx->grammar) { + llg_free_constraint(ctx->grammar); + llg_free_tokenizer(ctx->tokenizer); + } + + delete ctx; +} + +static llama_sampler_i llama_sampler_llg_i = { + /* .name = */ llama_sampler_llg_name, + /* .accept = */ llama_sampler_llg_accept_impl, + /* .apply = */ llama_sampler_llg_apply, + /* .reset = */ llama_sampler_llg_reset, + /* .clone = */ llama_sampler_llg_clone, + /* .free = */ llama_sampler_llg_free, +}; + +static size_t llama_sampler_llg_tokenize_fn(const void * user_data, const uint8_t * bytes, size_t bytes_len, + uint32_t * output_tokens, size_t output_tokens_len) { + const llama_vocab * vocab = (const llama_vocab *) user_data; + int r = 0; + try { + r = llama_tokenize(vocab, (const char *) bytes, bytes_len, (int32_t *) output_tokens, output_tokens_len, false, + true); + } catch (const std::exception & e) { + GGML_ABORT("llama_tokenize failed: %s\n", e.what()); + } + if (r < 0) { + return -r; + } + return r; +} + +static LlgTokenizer * llama_sampler_llg_new_tokenizer(const llama_vocab * vocab) { + // TODO store the tokenizer in the vocab somehow + static const llama_vocab * vocab_cache; + static LlgTokenizer * tokenizer_cache; + + if (vocab_cache == vocab) { + return llg_clone_tokenizer(tokenizer_cache); + } + + auto tok_eos = llama_vocab_eot(vocab); + if (tok_eos == LLAMA_TOKEN_NULL) { + tok_eos = llama_vocab_eos(vocab); + } + + size_t vocab_size = llama_vocab_n_tokens(vocab); + + auto token_lens = new uint32_t[vocab_size]; + // we typically have ~7 bytes per token; let's go on the safe side here + auto token_bytes_size = vocab_size * 16 + 1024 * 1024; + auto token_bytes = new uint8_t[token_bytes_size]; + + size_t offset = 0; + for (size_t i = 0; i < vocab_size; i++) { + size_t max_token = 1024; + if (token_bytes_size - offset < max_token) { + GGML_ABORT("token_bytes buffer too small\n"); + } + + llama_token token = i; + auto dp = (char *) token_bytes + offset; + auto size = llama_detokenize(vocab, &token, 1, dp, max_token, false, false); + if (size < 0) { + GGML_ABORT("llama_detokenize failed\n"); + } + if (size == 0) { + size = llama_detokenize(vocab, &token, 1, dp + 1, max_token - 1, false, true); + if (size < 0) { + GGML_ABORT("llama_detokenize failed\n"); + } + if (size != 0) { + *dp = '\xff'; // special token prefix marker + size += 1; + } + } + + token_lens[i] = size; + offset += size; + } + + LlgTokenizerInit tinit = { + /* .vocab_size = */ (uint32_t) vocab_size, + /* .tok_eos = */ (uint32_t) tok_eos, + /* .token_lens = */ token_lens, + /* .token_bytes = */ token_bytes, + /* .tokenizer_json = */ nullptr, + /* .tokenize_assumes_string = */ true, + /* .tokenize_fn = */ llama_sampler_llg_tokenize_fn, + /* .use_approximate_greedy_tokenize_fn = */ false, + /* .tokenize_user_data = */ vocab, + }; + + char error_buffer[1024]; + LlgTokenizer * tokenizer = llg_new_tokenizer(&tinit, error_buffer, sizeof(error_buffer)); + + delete[] token_bytes; + delete[] token_lens; + + if (tokenizer == nullptr) { + LOG_ERR("llg tokenizer error: %s\n", error_buffer); + return tokenizer; + } + + if (tokenizer_cache) { + llg_free_tokenizer(tokenizer_cache); + } + vocab_cache = vocab; + tokenizer_cache = tokenizer; + + return llg_clone_tokenizer(tokenizer_cache); +} + +llama_sampler * llama_sampler_init_llg(const llama_vocab * vocab, const char * grammar_kind, + const char * grammar_data) { + auto * ctx = new llama_sampler_llg; + + if (grammar_kind != nullptr && grammar_kind[0] != '\0') { + auto tokenizer = llama_sampler_llg_new_tokenizer(vocab); + *ctx = { + /* .vocab = */ vocab, + /* .grammar_kind = */ grammar_kind, + /* .grammar_data = */ grammar_data, + /* .tokenizer = */ tokenizer, + /* .grammar = */ llama_sampler_llg_new(tokenizer, grammar_kind, grammar_data), + /* .llg_res = */ {}, + /* .has_llg_res = */ false, + }; + } else { + *ctx = { + /* .vocab = */ vocab, + /* .grammar_kind = */ {}, + /* .grammar_data = */ {}, + /* .tokenizer = */ nullptr, + /* .grammar = */ nullptr, + /* .llg_res = */ {}, + /* .has_llg_res = */ false, + }; + } + + return new llama_sampler{ + /* .iface = */ &llama_sampler_llg_i, + /* .ctx = */ ctx, + }; +} + +#else + +llama_sampler * llama_sampler_init_llg(const llama_vocab *, const char *, const char *) { + LOG_WRN("llguidance (cmake -DLLAMA_LLGUIDANCE=ON) is not enabled"); + return nullptr; +} + +#endif // LLAMA_USE_LLGUIDANCE diff --git a/common/sampling.cpp b/common/sampling.cpp index bc7e49fdb..e4b21ca10 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -156,13 +156,25 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, co for (const auto & str : params.grammar_trigger_words) { trigger_words.push_back(str.word.c_str()); } + + struct llama_sampler * grmr; + if (params.grammar.compare(0, 11, "%llguidance") == 0) { +#ifdef LLAMA_USE_LLGUIDANCE + grmr = llama_sampler_init_llg(vocab, "lark", params.grammar.c_str()); +#else + GGML_ABORT("llguidance (cmake -DLLAMA_LLGUIDANCE=ON) is not enabled"); +#endif // LLAMA_USE_LLGUIDANCE + } else { + grmr = params.grammar_lazy + ? llama_sampler_init_grammar_lazy(vocab, params.grammar.c_str(), "root", + trigger_words.data(), trigger_words.size(), + params.grammar_trigger_tokens.data(), params.grammar_trigger_tokens.size()) + : llama_sampler_init_grammar(vocab, params.grammar.c_str(), "root"); + } + auto * result = new common_sampler { /* .params = */ params, - /* .grmr = */ params.grammar_lazy - ? llama_sampler_init_grammar_lazy(vocab, params.grammar.c_str(), "root", - trigger_words.data(), trigger_words.size(), - params.grammar_trigger_tokens.data(), params.grammar_trigger_tokens.size()) - : llama_sampler_init_grammar(vocab, params.grammar.c_str(), "root"), + /* .grmr = */ grmr, /* .chain = */ llama_sampler_chain_init(lparams), /* .prev = */ ring_buffer(std::max(32, params.n_prev)), /* .cur = */ {}, diff --git a/common/sampling.h b/common/sampling.h index 348911b18..2064421db 100644 --- a/common/sampling.h +++ b/common/sampling.h @@ -102,3 +102,6 @@ std::string common_sampler_type_to_str(enum common_sampler_type cnstr); std::vector common_sampler_types_from_names(const std::vector & names, bool allow_alt_names); std::vector common_sampler_types_from_chars(const std::string & chars); + +llama_sampler * llama_sampler_init_llg(const llama_vocab * vocab, + const char * grammar_kind, const char * grammar_data); diff --git a/docs/llguidance.md b/docs/llguidance.md new file mode 100644 index 000000000..792d20704 --- /dev/null +++ b/docs/llguidance.md @@ -0,0 +1,51 @@ +# LLGuidance Support in llama.cpp + +[LLGuidance](https://github.com/guidance-ai/llguidance) is a library for constrained decoding (also called constrained sampling or structured outputs) for Large Language Models (LLMs). Initially developed as the backend for the [Guidance](https://github.com/guidance-ai/guidance) library, it can also be used independently. + +LLGuidance supports JSON Schemas and arbitrary context-free grammars (CFGs) written in a [variant](https://github.com/guidance-ai/llguidance/blob/main/docs/syntax.md) of Lark syntax. It is [very fast](https://github.com/guidance-ai/jsonschemabench/tree/main/maskbench) and has [excellent](https://github.com/guidance-ai/llguidance/blob/main/docs/json_schema.md) JSON Schema coverage but requires the Rust compiler, which complicates the llama.cpp build process. + +## Building + +To enable LLGuidance support, build llama.cpp with the `LLAMA_LLGUIDANCE` option: + +```sh +cmake -B build -DLLAMA_LLGUIDANCE=ON +make -C build -j +``` + +This requires the Rust compiler and the `cargo` tool to be [installed](https://www.rust-lang.org/tools/install). + +## Interface + +There are no new command-line arguments or modifications to `common_params`. When enabled, grammars starting with `%llguidance` are passed to LLGuidance instead of the [current](../grammars/README.md) llama.cpp grammars. Additionally, JSON Schema requests (e.g., using the `-j` argument in `llama-cli`) are also passed to LLGuidance. + +For your existing GBNF grammars, you can use [gbnf_to_lark.py script](https://github.com/guidance-ai/llguidance/blob/main/scripts/gbnf_to_lark.py) to convert them to LLGuidance Lark-like format. + +## Performance + +Computing a "token mask" (i.e., the set of allowed tokens) for a llama3 tokenizer with 128k tokens takes, on average, 50μs of single-core CPU time for the [JSON Schema Bench](https://github.com/guidance-ai/jsonschemabench). The p99 time is 0.5ms, and the p100 time is 20ms. These results are due to the lexer/parser split and several [optimizations](https://github.com/guidance-ai/llguidance/blob/main/docs/optimizations.md). + +## JSON Schema + +LLGuidance adheres closely to the JSON Schema specification. For example: + +- `additionalProperties` defaults to `true`, unlike current grammars, though you can set `"additionalProperties": false` if needed. +- any whitespace is allowed. +- The definition order in the `"properties": {}` object is maintained, regardless of whether properties are required (current grammars always puts required properties first). + +Unsupported schemas result in an error message—no keywords are silently ignored. + +## Why Not Reuse GBNF Format? + +GBNF lacks the concept of a lexer. + +Most programming languages, including JSON, use a two-step process: a lexer (built with regular expressions) converts a byte stream into lexemes, which are then processed by a CFG parser. This approach is faster because lexers are cheaper to evaluate, and there is ~10x fewer lexemes than bytes. +LLM tokens often align with lexemes, so the parser is engaged in under 0.5% of tokens, with the lexer handling the rest. + +However, the user has to provide the distinction between lexemes and CFG symbols. In [Lark](https://github.com/lark-parser/lark), lexeme names are uppercase, while CFG symbols are lowercase. +The [gbnf_to_lark.py script](https://github.com/guidance-ai/llguidance/blob/main/scripts/gbnf_to_lark.py) can often take care of this automatically. +See [LLGuidance syntax docs](https://github.com/guidance-ai/llguidance/blob/main/docs/syntax.md#terminals-vs-rules) for more details. + +## Error Handling + +Errors are currently printed to `stderr`, and generation continues. Improved error handling may be added in the future. diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 40f83ff0d..7a158d602 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -86,6 +86,9 @@ llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen2 ARGS ${CMAKE llama_test(test-tokenizer-0 NAME test-tokenizer-0-refact ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-refact.gguf) llama_test(test-tokenizer-0 NAME test-tokenizer-0-starcoder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-starcoder.gguf) +if (LLAMA_LLGUIDANCE) + llama_target_and_test(test-grammar-llguidance.cpp ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-bpe.gguf) +endif () if (NOT WIN32) # these tests are disabled on Windows because they use internal functions not exported with LLAMA_API diff --git a/tests/test-grammar-integration.cpp b/tests/test-grammar-integration.cpp index 288e08f51..890608648 100644 --- a/tests/test-grammar-integration.cpp +++ b/tests/test-grammar-integration.cpp @@ -129,7 +129,7 @@ static void test_grammar(const std::string & test_desc, const std::string & gram test(test_desc + ". Grammar: " + grammar_str, grammar_str, passing_strings, failing_strings); } static void test_schema(const std::string & test_desc, const std::string & schema_str, const std::vector & passing_strings, const std::vector & failing_strings) { - test(test_desc + ". Schema: " + schema_str, json_schema_to_grammar(json::parse(schema_str)), passing_strings, failing_strings); + test(test_desc + ". Schema: " + schema_str, json_schema_to_grammar(json::parse(schema_str), true), passing_strings, failing_strings); } static void test_simple_grammar() { diff --git a/tests/test-grammar-llguidance.cpp b/tests/test-grammar-llguidance.cpp new file mode 100644 index 000000000..8b696006b --- /dev/null +++ b/tests/test-grammar-llguidance.cpp @@ -0,0 +1,1140 @@ +#ifdef NDEBUG +# undef NDEBUG +#endif + +#include "unicode.h" +#include "sampling.h" + +#include +#include +#include + +static const llama_vocab * vocab; + +static bool match_string(const std::string & input, llama_sampler * grammar) { + llama_sampler_reset(grammar); + auto tokens = common_tokenize(vocab, input, false, false); + + auto n_vocab = llama_vocab_n_tokens(vocab); + + std::vector cur; + cur.reserve(n_vocab); + for (llama_token token_id = 0; token_id < (llama_token) n_vocab; token_id++) { + cur.emplace_back(llama_token_data{ token_id, 0.0f, 0.0f }); + } + auto tok_arr = llama_token_data_array{ cur.data(), cur.size(), -1, false }; + + for (const auto token : tokens) { + for (llama_token token_id = 0; token_id < (llama_token) n_vocab; token_id++) { + cur[token_id].logit = 0.0f; + } + llama_sampler_apply(grammar, &tok_arr); + if (cur[token].logit < 0.0f) { + return false; + } + llama_sampler_accept(grammar, token); + } + + // do we allow EOS at the end? if so the grammar is accepting + + auto tok_eos = llama_vocab_eot(vocab); + if (tok_eos == LLAMA_TOKEN_NULL) { + tok_eos = llama_vocab_eos(vocab); + } + + cur[tok_eos].logit = 0.0f; + llama_sampler_apply(grammar, &tok_arr); + + return cur[tok_eos].logit >= 0.0f; +} + +static void test(const std::string & test_desc, const std::string & grammar_str, + const std::vector & passing_strings, const std::vector & failing_strings) { + fprintf(stderr, "⚫ Testing %s\n%s\n", test_desc.c_str(), grammar_str.c_str()); + fflush(stderr); + + auto * grammar = llama_sampler_init_llg(vocab, "lark", grammar_str.c_str()); + + fprintf(stderr, " 🔵 Valid strings:\n"); + + // Passing strings + for (const auto & test_string : passing_strings) { + fprintf(stderr, " \"%s\" ", test_string.c_str()); + fflush(stderr); + + bool matched = match_string(test_string, grammar); + + if (!matched) { + fprintf(stderr, "❌ (failed to match)\n"); + + // DEBUG: Write strings to files so that we can analyze more easily with gbnf-validator program to see exactly where things failed. + // DEBUG: Write the grammar_str to test-grammar-integration.grammar.gbnf + FILE * grammar_file = fopen("test-grammar-integration.grammar.gbnf", "w"); + if (grammar_file) { + fprintf(grammar_file, "%s", grammar_str.c_str()); + fclose(grammar_file); + } + + // DEBUG: Write the test string to test-grammar-integration.string.txt + FILE * string_file = fopen("test-grammar-integration.string.txt", "w"); + if (string_file) { + fprintf(string_file, "%s", test_string.c_str()); + fclose(string_file); + } + + fprintf(stderr, + "\n NOTE: Debug grammar file generated. To analyze this failure in detail, run the following " + "command: ./llama-gbnf-validator test-grammar-integration.grammar.gbnf " + "test-grammar-integration.string.txt\n\n"); + } else { + fprintf(stdout, "✅︎\n"); + } + + assert(matched); + } + + fprintf(stderr, " 🟠 Invalid strings:\n"); + + // Failing strings + for (const auto & test_string : failing_strings) { + fprintf(stderr, " \"%s\" ", test_string.c_str()); + fflush(stderr); + + bool matched = match_string(test_string, grammar); + + if (matched) { + fprintf(stderr, "❌ (incorrectly matched)\n"); + } else { + fprintf(stdout, "✅︎\n"); + } + assert(!matched); + } + + llama_sampler_free(grammar); +} + +static void test_grammar(const std::string & test_desc, const std::string & grammar_str, + const std::vector & passing_strings, + const std::vector & failing_strings) { + test(test_desc + ". Grammar: " + grammar_str, grammar_str, passing_strings, failing_strings); +} + +static void test_schema(const std::string & test_desc, const std::string & schema_str, + const std::vector & passing_strings, + const std::vector & failing_strings) { + test(test_desc + ". Schema: " + schema_str, "%llguidance {}\nstart: %json " + schema_str, passing_strings, + failing_strings); +} + +static void test_simple_grammar() { + test_schema("min 0", + R"""({ + "type": "integer", + "minimum": 0 + })""", + // Passing strings + { + "0", + "10", + "12", + "10000", + }, + // Failing strings + { + "-1", + "-10", + "-10000", + "-100000000000000000000000000000000", + // "100000000000000000000000000000000", + "00", + "01", + "-0", + }); + test_schema("min 2", + // Schema + R"""({ + "type": "integer", + "minimum": 2 + })""", + // Passing strings + { + "2", + "3", + "4", + "10", + "20", + "1234567890000000", + }, + // Failing strings + { + "0", "1", "-1", "-100", "0", "1", "01", "02", + // "12345678900000000", + }); + test_schema("min 456", + R"""({ + "type": "integer", + "minimum": 456 + })""", + // Passing strings + { + "456", + "4560", + "457", + "460", + "500", + }, + // Failing strings + { + "455", + "356", + "50", + "050", + "-1", + "-456", + }); + test_schema("min -123", + R"""({ + "type": "integer", + "minimum": -123 + })""", + // Passing strings + { + "-123", + "-122", + "-11", + "-1", + "0", + "1", + "123", + "1234", + "2345", + }, + // Failing strings + { + "-1234", + "-124", + }); + + test_schema("max 9999", + // Schema + R"""({ + "type": "integer", + "maximum": 9999 + })""", + // Passing strings + { + "-99999", + "0", + "9999", + }, + // Failing strings + { + "10000", + "99991", + }); + test_schema("max -9999", + // Schema + R"""({ + "type": "integer", + "maximum": -9999 + })""", + // Passing strings + { + "-10000", + "-9999", + }, + // Failing strings + { + "-9998", + "0", + "9999", + }); + test_schema("min 5 max 30", + // Schema + R"""({ + "type": "integer", + "minimum": 5, + "maximum": 30 + })""", + // Passing strings + { + "5", + "10", + "30", + }, + // Failing strings + { + "05", + "4", + "-1", + "31", + "123", + "0123", + }); + test_schema("min -1 max 1", + R"""({ + "type": "integer", + "minimum": -1, + "maximum": 1 + })""", + // Passing strings + { + "-1", + "0", + "1", + }, + // Failing strings + { + "-11", + "-10", + "-2", + "2", + "10", + "11", + }); + test_schema("min -123 max 42", + R"""({ + "type": "integer", + "minimum": -123, + "maximum": 42 + })""", + // Passing strings + { + "-123", + "-122", + "-13", + "-11", + "-2", + "-1", + "0", + "1", + "5", + "10", + "39", + "40", + "42", + }, + // Failing strings + { + "-0123", + "-124", + "-1123", + "-200", + "43", + "123", + "0123", + }); + test_schema("exclusive min / max", + // Schema + R"""({ + "type": "integer", + "exclusiveMinimum": 0, + "exclusiveMaximum": 10000 + })""", + // Passing strings + { + "1", + "9999", + }, + // Failing strings + { + "0", + "01", + "10000", + "99999", + }); + + // Test case for a simple grammar + test_grammar("simple grammar", + R"""( + start: expr + expr: term ("+" term)* + term: number + number: /[0-9]+/ )""", + // Passing strings + { + "42", + "1+2+3+4+5", + "123+456", + }, + // Failing strings + { + "+", + "/ 3", + "1+2+3+4+5+", + "12a45", + }); +} + +static void test_complex_grammar() { + // Test case for a more complex grammar, with both failure strings and success strings + test_grammar("medium complexity grammar", + // Grammar + R"""( + start: expression + expression: term ws (("+"|"-") ws term)* + term: factor ws (("*"|"/") ws factor)* + factor: number | variable | "(" expression ")" | function-call + number: /[0-9]+/ + variable: /[a-zA-Z_][a-zA-Z0-9_]*/ + function-call: variable ws "(" (expression ("," ws expression)*)? ")" + ws: /[ \t\n\r]?/ )""", + // Passing strings + { "42", + "1*2*3*4*5", + "x", + "x+10", + "x1+y2", + "(a+b)*(c-d)", + "func()", + "func(x,y+2)", + "a*(b+c)-d/e", + "f(g(x),h(y,z))", + "x + 10", + "x1 + y2", + "(a + b) * (c - d)", + "func()", + "func(x, y + 2)", + "a * (b + c) - d / e", + "f(g(x), h(y, z))", + "123+456", + "123*456*789-123/456+789*123", + "123+456*789-123/456+789*123-456/789+123*456-789/123+456*789-123/456+789*123-456" }, + // Failing strings + { + "+", + "/ 3x", + "x + + y", + "a * / b", + "func(,)", + "func(x y)", + "(a + b", + "x + y)", + "a + b * (c - d", + "42 +", + "x +", + "x + 10 +", + "(a + b) * (c - d", + "func(", + "func(x, y + 2", + "a * (b + c) - d /", + "f(g(x), h(y, z)", + "123+456*789-123/456+789*123-456/789+123*456-789/123+456*789-123/456+789*123-456/", + }); +} + +static void test_special_chars() { + // A collection of tests to exercise special characters such as "." + test_grammar("special characters", + // Grammar + R"""( + start: /.../ "abc" /.../ + )""", + // Passing strings + { "abcabcabc", "aaaabcccc", + // NOTE: Also ensures that multi-byte characters still count as a single character + "🔵🟠✅abc❌🟠🔵" }, + // Failing strings + { "aaabcccc", "aaaaabcccc", "aaaabccc", "aaaabccccc", "🔵🟠✅❌abc❌✅🟠🔵", "🔵🟠abc🟠🔵" }); +} + +static void test_quantifiers() { + // A collection of tests to exercise * + and ? quantifiers + + test_grammar( + "* quantifier", + // Grammar + R"""(start: "a"*)""", + // Passing strings + { "", "a", "aaaaa", "aaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, + // Failing strings + { "b", "ab", "aab", "ba", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab" }); + test_grammar( + "+ quantifier", + // Grammar + R"""(start: "a"+)""", + // Passing strings + { "a", "aaaaa", "aaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, + // Failing strings + { "", "b", "ab", "aab", "ba", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab" }); + test_grammar("? quantifier", + // Grammar + R"""(start: "a"?)""", + // Passing strings + { "", "a" }, + // Failing strings + { + "b", + "ab", + "aa", + "ba", + }); + test_grammar("mixed quantifiers", + // Grammar + R"""( + start: cons+ vowel* cons? (vowel cons)* + vowel: /[aeiouy]/ + cons: /[bcdfghjklmnpqrstvwxyz]/ + )""", + // Passing strings + { + "yes", + "no", + "noyes", + "crwth", + "four", + "bryyyy", + }, + // Failing strings + { + "yess", + "yesno", + "forty", + "catyyy", + }); + test_grammar("simple exact repetition", + // Grammar + R"""( + start: /[ab]{4}/ + )""", + // Passing strings + { + "aaaa", + "bbbb", + "abab", + }, + // Failing strings + { + "a", + "b", + "aaaaa", + }); + test_grammar("simple min repetition", + // Grammar + R"""( + start: /[ab]{4,}/ + )""", + // Passing strings + { + "aaaa", + "aaaaab", + "bbbb", + "ababab", + }, + // Failing strings + { + "", + "aba", + }); + test_grammar("simple max repetition", + // Grammar + R"""( + start: /[ab]{0,4}/ + )""", + // Passing strings + { + "", + "a", + "aa", + "aaa", + "aaab", + }, + // Failing strings + { + "aaaaa", + }); + // test_grammar("min / max repetition", + // // Grammar + // R"""( + // start: ("0x" /[A-F0-9]{2}/ " "?){3,5} + // )""", + // // Passing strings + // { + // "0xFF 0x12 0xAB", + // "0xFF 0x12 0xAB 0x00 0x00", + // }, + // // Failing strings + // { + // "", + // "0xFF", + // "0xFF 0x12", + // "0xFF 0x12 0xAB 0x00 0x00 0x00", + // }); +} + +static void test_json_schema() { + // Note that this is similar to the regular grammar tests, + // but we convert each json schema to a grammar before parsing. + // Otherwise, this test structure is the same. + + test_schema("empty schema (object)", + // Schema + R"""( + {"type":"object"} + )""", + // Passing strings + { + R"""({})""", + R"""({"foo": "bar"})""", + }, + // Failing strings + { + "", + "[]", + "null", + R"""("")""", + "true", + }); + + test_schema( + "exotic formats (list)", + // Schema + R"""({ + "items": [ + { "format": "date" }, + { "format": "uuid" }, + { "format": "time" }, + { "format": "date-time" } + ] + })""", + // Passing strings + { + // "{}", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + // "[]", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + R"""(["2012-04-23", "12345678-1234-1234-1234-1234567890ab", "18:25:43.511Z", "2012-04-23T18:25:43.511Z"])""", + //R"""(["2012-04-23","12345678-1234-1234-1234-1234567890ab"])""", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + //R"""({"foo": "bar"})""", // NOTE: This string passes for this schema on https://www.jsonschemavalidator.net/ -- should it? + }, + // Failing strings + { + R"""(["foo", "bar"])""", + R"""(["12345678-1234-1234-1234-1234567890ab"])""", + }); + + test_schema("string", + // Schema + R"""({ + "type": "string" + })""", + // Passing strings + { + R"""("foo")""", + R"""("bar")""", + R"""("")""", + }, + // Failing strings + { + R"""({})""", + R"""("foo": "bar")""", + }); + + test_schema("string w/ min length 1", + // Schema + R"""({ + "type": "string", + "minLength": 1 + })""", + // Passing strings + { + R"""("foo")""", + R"""("bar")""", + }, + // Failing strings + { + R"""("")""", + R"""({})""", + R"""("foo": "bar")""", + }); + + test_schema("string w/ min length 3", + // Schema + R"""({ + "type": "string", + "minLength": 3 + })""", + // Passing strings + { + R"""("foo")""", + R"""("bar")""", + R"""("foobar")""", + }, + // Failing strings + { + R"""("")""", + R"""("f")""", + R"""("fo")""", + }); + + test_schema("string w/ max length", + // Schema + R"""({ + "type": "string", + "maxLength": 3 + })""", + // Passing strings + { + R"""("foo")""", + R"""("bar")""", + R"""("")""", + R"""("f")""", + R"""("fo")""", + }, + // Failing strings + { + R"""("foobar")""", + }); + + test_schema("string w/ min & max length", + // Schema + R"""({ + "type": "string", + "minLength": 1, + "maxLength": 4 + })""", + // Passing strings + { + R"""("foo")""", + R"""("bar")""", + R"""("f")""", + R"""("barf")""", + }, + // Failing strings + { + R"""("")""", + R"""("barfo")""", + R"""("foobar")""", + }); + + test_schema("boolean", + // Schema + R"""({ + "type": "boolean" + })""", + // Passing strings + { + "true", + "false", + }, + // Failing strings + { + R"""("")""", + R"""("true")""", + R"""(True)""", + R"""(FALSE)""", + }); + + test_schema("integer", + // Schema + R"""({ + "type": "integer" + })""", + // Passing strings + { + R"""(0)""", + R"""(12345)""", + R"""(1234567890123456)""", + }, + // Failing strings + { + R"""()""", + R"""(01)""", + R"""(007)""", + R"""(12345678901234567 )""", + }); + + test_schema("string const", + // Schema + R"""({ + "const": "foo" + })""", + // Passing strings + { + R"""("foo")""", + }, + // Failing strings + { + R"""(foo)""", + R"""("bar")""", + }); + + test_schema("non-string const", + // Schema + R"""({ + "const": true + })""", + // Passing strings + { + R"""(true)""", + }, + // Failing strings + { + R"""()""", + R"""(foo)""", + R"""("true")""", + }); + + test_schema("non-string const", + // Schema + R"""({ + "enum": ["red", "amber", "green", null, 42, ["foo"]] + })""", + // Passing strings + { + R"""("red")""", + R"""(null)""", + R"""(42)""", + R"""(["foo"])""", + }, + // Failing strings + { + R"""()""", + R"""(420)""", + R"""(true)""", + R"""(foo)""", + }); + + test_schema("simple pattern", + // Schema + R"""({ + "pattern": "^[a-zA-Z0-9_-]*$" + })""", + // Passing strings + { + R"""("")""", + R"""("He_llo-12")""", + }, + // Failing strings + { + R"""("!")""", + R"""("Hello World")""", + }); + + test_schema("pattern with escapes", + // Schema + R"""({ + "pattern": "^a\\^\\$\\.\\[\\]\\(\\)\\|\\{\\}\\*\\+\\?b$" + })""", + // Passing strings + { + R"""("a^$.[]()|{}*+?b")""", + }, + // Failing strings + { + R"""("ab")""", + }); + + test_schema("", + // Schema + R"""( + { + "type": ["array", "null"], + "items": { "type": "string" } + } + )""", + // Passing strings + { + "null", + "[]", + "[\"123\"]", + "[\"foo\", \"bar\"]", + }, + // Failing strings + { + "", + "[123]", + "\"foo\"", + "[\"foo\", 42]", + }); + + test_schema("min+max items", + // Schema + R"""({ + "items": { + "type": ["number", "integer"] + }, + "minItems": 3, + "maxItems": 5 + })""", + // Passing strings + { + R"""([1, 2, 3])""", + R"""([1, 2, 3, 4])""", + R"""([1, 2, 3, 4, 5])""", + // this is in fact correct; keyword do not apply if the type is wrong + R"""(1)""", + }, + // Failing strings + { + R"""([1, 2])""", + R"""([1, 2, 3, 4, 5, 6])""", + }); + + // Properties (from: https://json-schema.org/understanding-json-schema/reference/object#properties) + test_schema("object properties", + // Schema + R"""({ + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + }, + "additionalProperties": false + })""", + // Passing strings + { + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // "By default, leaving out properties is valid" + R"""({ "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + // "By extension, even an empty object is valid" + R"""({})""", + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", + }, + // Failing strings + { + // Change datatype from number to string + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Reorder properties + R"""({ "street_name": "Pennsylvania", "number": 1600 })""", + // Reorder properties + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Additional properties set to false + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue", "direction":"NW"})""", + + }); + + test_schema("additional properties can't override other properties", + R"""({ + "properties": { + "a": {"type": "integer"}, + "b": {"type": "integer"} + }, + "additionalProperties": true + })""", + // Passing strings + { + R"""({"a": 42})""", + R"""({"c": ""})""", + R"""({"a": 42, "c": ""})""", + R"""({"a_": ""})""", + }, + // Failing strings + { + R"""()""", + R"""({"a": ""})""", + R"""({"a": "", "b": ""})""", + }); + + // Properties (from: https://json-schema.org/understanding-json-schema/reference/object#properties) + test_schema("object properties, additionalProperties: true", + // Schema + R"""({ + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + }, + "additionalProperties": true + })""", + // Passing strings + { + // "By extension, even an empty object is valid" + R"""({})""", + R"""({"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"})""", + // "By default, leaving out properties is valid" + R"""({ "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + // "By default, providing additional properties is valid" + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue", "direction":"NW"})""", + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", + }, + // Failing strings + { + // Change datatype from number to string + R"""({ "number": "1600", "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Reorder properties + R"""({ "street_name": "Pennsylvania", "number": 1600, "street_type":"Avenue"})""", + }); + + // Additional properties: false + test_schema( + "required + optional props each in original order", + // Schema + R"""({ + "type": "object", + "properties": { + "number": { "type": "number" }, + "street_name": { "type": "string" }, + "street_type": { "enum": ["Street", "Avenue", "Boulevard"] } + }, + "additionalProperties": false + })""", + // Passing strings + { + R"""({ "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_type":"Avenue"})""", + R"""({ "number": 1600, "street_name": "Pennsylvania" })""", + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type":"Avenue"})""", + // Spaces are permitted around enum values + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue" })""", + }, + // Failing strings + { + // Reorder properties + R"""({ "street_type": "Avenue", "number": 1600 })""", + // Add "direction" + R"""({ "number": 1600, "street_name": "Pennsylvania", "street_type": "Avenue", "direction": "NW" })""", + }); + + test_schema("required + optional props each in original order", + // Schema + R"""({ + "properties": { + "b": {"type": "string"}, + "a": {"type": "string"}, + "d": {"type": "string"}, + "c": {"type": "string"} + }, + "required": ["a", "b"], + "additionalProperties": false + })""", + // Passing strings + { + R"""({"b": "foo", "a": "bar"})""", + R"""({"b":"foo","a":"bar","d":"qux"})""", + R"""({"b":"foo", "a":"bar", "d":"qux", "c":"baz"})""", + }, + // Failing strings + { + R"""({"a": "foo", "b": "bar"})""", + R"""({"b": "bar"})""", + R"""({"a": "foo", "c": "baz"})""", + R"""({"a":"foo", "b":"bar", "c":"baz", "d":"qux"})""", + }); + + // NOTE: Example from https://json-schema.org/learn/getting-started-step-by-step#define-required-properties + test_schema( + "required props", + // Schema + R"""({ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://example.com/product.schema.json", + "title": "Product", + "description": "A product from Acme's catalog", + "type": "object", + "properties": { + "productId": { + "description": "The unique identifier for a product", + "type": "integer" + }, + "productName": { + "description": "Name of the product", + "type": "string" + }, + "price": { + "description": "The price of the product", + "type": "number", + "exclusiveMinimum": 0 + }, + "tags": { + "description": "Tags for the product", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "DISABLED_uniqueItems": true + }, + "dimensions": { + "type": "object", + "properties": { + "length": { + "type": "number" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + } + }, + "required": [ "length", "width", "height" ] + } + }, + "required": [ "productId", "productName", "price" ] + })""", + // Passing strings + { + R"""({"productId": 1, "productName": "A green door", "price": 12.50})""", + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green"]})""", + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green"], "dimensions": {"length": 785, "width": 250.5, "height": -0.359}})""", + }, + // Failing strings + { + R"""({})""", // Missing all required properties + R"""({"productName": "A green door", "price": 12.50, "productId": 1})""", // Out of order properties + // `exclusiveMinimum` is OK for llg + R"""({"productId": 1, "productName": "A green door", "price": -12.50})""", + R"""({"productId": 1, "productName": "A green door"})""", // Missing required property (price) + R"""({"productName": "A green door", "price": 12.50})""", // Missing required property (productId) + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": []})""", // tags is empty, but minItems is 1 + R"""({"productId": 1, "productName": "A green door", "price": 12.50, "dimensions": {"length": 785, "width": 250.5, "height": -0.359}, "tags": ["home", "green"]})""", // Tags and dimensions are out of order + // TODO: The following line should fail, but currently it passes. `uniqueItems` is not supported, as it would likely be too difficult to implement. + // R"""({"productId": 1, "productName": "A green door", "price": 12.50, "tags": ["home", "green", "home"]})""", + }); +} + +int main(int argc, const char ** argv) { + fprintf(stdout, "Running llguidance integration tests...\n"); + + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + + const char * vocab_file = argv[1]; + + fprintf(stderr, "reading vocab from: '%s'\n", vocab_file); + + llama_model * model; + llama_context * ctx; + + llama_backend_init(); + + // load the vocab + { + auto mparams = llama_model_default_params(); + + mparams.vocab_only = true; + + model = llama_model_load_from_file(vocab_file, mparams); + + if (model == NULL) { + fprintf(stderr, "%s: error: failed to load vocab '%s'\n", __func__, vocab_file); + return 1; + } + + // needed? + auto cparams = llama_context_default_params(); + + ctx = llama_init_from_model(model, cparams); + + if (ctx == NULL) { + fprintf(stderr, "%s: error: failed to load vocab '%s'\n", __func__, vocab_file); + llama_model_free(model); + return 1; + } + } + + vocab = llama_model_get_vocab(model); + + test_simple_grammar(); + test_complex_grammar(); + test_special_chars(); + test_quantifiers(); + test_json_schema(); + fprintf(stdout, "All tests passed.\n"); + return 0; +} diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index 9d2db91f5..f38994c92 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -1246,7 +1246,7 @@ int main() { test_all("C++", [](const TestCase & tc) { try { - tc.verify(json_schema_to_grammar(nlohmann::ordered_json::parse(tc.schema))); + tc.verify(json_schema_to_grammar(nlohmann::ordered_json::parse(tc.schema), true)); tc.verify_status(SUCCESS); } catch (const std::runtime_error & ex) { fprintf(stderr, "Error: %s\n", ex.what()); From 69804487e0b10f2c5c06316f0ac0eb6ada68433f Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sun, 2 Feb 2025 09:10:15 +0000 Subject: [PATCH 095/162] Fix exotic ci env that lacks ostringstream::str (#11581) --- common/minja.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/minja.hpp b/common/minja.hpp index bcb5a0824..e77eb69d5 100644 --- a/common/minja.hpp +++ b/common/minja.hpp @@ -824,7 +824,7 @@ public: LoopControlType control_type; LoopControlException(const std::string & message, LoopControlType control_type) : std::runtime_error(message), control_type(control_type) {} LoopControlException(LoopControlType control_type) - : std::runtime_error((std::ostringstream() << (control_type == LoopControlType::Continue ? "continue" : "break") << " outside of a loop").str()), + : std::runtime_error((control_type == LoopControlType::Continue ? "continue" : "break") + std::string(" outside of a loop")), control_type(control_type) {} }; From bfcce4d693617ec843d0b2510f6ee16e6bc6720d Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sun, 2 Feb 2025 09:25:38 +0000 Subject: [PATCH 096/162] `tool-call`: support Command R7B (+ return tool_plan "thoughts" in API) (#11585) * `tool-call`: support Command R7B (w/ tool_plan return) * `tool-call`: cleaner preservation of tokens + warn when likely bad chat template override * `tool-call`: test cleanup / handle lazy grammar triggers --- common/chat.cpp | 86 +++++++++- common/chat.hpp | 2 + common/common.h | 3 + examples/server/README.md | 22 ++- examples/server/server.cpp | 52 ++++-- examples/server/utils.hpp | 1 + ...AI-c4ai-command-r7b-12-2024-tool_use.jinja | 156 ++++++++++++++++++ tests/test-chat.cpp | 154 +++++++++++++---- 8 files changed, 420 insertions(+), 56 deletions(-) create mode 100644 models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja diff --git a/common/chat.cpp b/common/chat.cpp index 58db12af9..f87583d85 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -16,6 +16,7 @@ std::string common_chat_format_name(common_chat_format format) { case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2: return "Functionary v3.2"; case COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1: return "Functionary v3.1 Llama 3.1"; case COMMON_CHAT_FORMAT_HERMES_2_PRO: return "Hermes 2 Pro"; + case COMMON_CHAT_FORMAT_COMMAND_R7B: return "Command R7B"; default: throw std::runtime_error("Unknown chat format"); } @@ -317,6 +318,79 @@ static common_chat_msg common_chat_parse_mistral_nemo(const std::string & input) return parse_prefixed_json_tool_call_array(input, "[TOOL_CALLS]"); } +static common_chat_params common_chat_params_init_command_r7b(const common_chat_template & tmpl, const struct common_chat_inputs & inputs) { + common_chat_params data; + data.grammar_lazy = inputs.tool_choice != "required"; + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + auto schemas = json::array(); + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool["function"]; + schemas.push_back({ + {"type", "object"}, + {"properties", { + {"tool_call_id", { + {"type", "string"}, + // Command-R's template expects an integer string. + {"pattern", "^[0-9]{1,10}$"}, + }}, + {"tool_name", { + {"type", "string"}, + {"const", function["name"]}, + }}, + {"parameters", function["parameters"]}, + }}, + {"required", json::array({"tool_call_id", "tool_name", "parameters"})}, + }); + }); + auto schema = json { + {"type", "array"}, + {"items", schemas.size() == 1 ? schemas[0] : json {{"anyOf", schemas}}}, + {"minItems", 1}, + }; + if (!inputs.parallel_tool_calls) { + schema["maxItems"] = 1; + } + builder.add_rule("root", "\"<|START_ACTION|>\" " + builder.add_schema("tool_calls", schema) + " \"<|END_ACTION|>\""); + }, grammar_options); + data.grammar_triggers.push_back({"<|START_ACTION|>", /* .at_start = */ false}); + data.preserved_tokens = { + "<|START_RESPONSE|>", + "<|END_RESPONSE|>", + "<|START_THINKING|>", + "<|END_THINKING|>", + "<|END_ACTION|>", + }; + data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); + data.format = COMMON_CHAT_FORMAT_COMMAND_R7B; + return data; +} +static common_chat_msg common_chat_parse_command_r7b(const std::string & input) { + static std::regex response_regex("<\\|START_RESPONSE\\|>(.*?)<\\|END_RESPONSE\\|>"); + static std::regex thought_action_regex("<\\|START_THINKING\\|>([\\s\\S\\n\\r]*?)<\\|END_THINKING\\|><\\|START_ACTION\\|>([\\s\\S\\n\\r]*?)<\\|END_ACTION\\|>"); + std::smatch match; + + common_chat_msg result; + result.role = "assistant"; + if (std::regex_match(input, match, response_regex)) { + result.content = match[1].str(); + } else if (std::regex_match(input, match, thought_action_regex)) { + result.tool_plan = match[1].str(); + auto actions_str = match[2].str(); + auto actions = json::parse(actions_str); + for (const auto & action : actions) { + result.tool_calls.push_back({ + /* .name = */ action["tool_name"], + /* .arguments = */ action["parameters"].dump(), + /* .id = */ action["tool_call_id"], + }); + } + } else { + LOG_ERR("Failed to parse command_r output"); + result.content = input; + } + return result; +} + static void expect_tool_parameters(const std::string & name, const json & parameters, const std::vector & expected_properties) { if (!parameters.is_object() || !parameters.contains("type") || parameters["type"] != "object" || !parameters.contains("properties") || !parameters.contains("required")) { throw std::runtime_error("Parameters of tool " + name + " must be an object w/ required properties"); @@ -462,6 +536,10 @@ static common_chat_params common_chat_params_init_deepseek_r1(const common_chat_ "\"<|tool▁call▁begin|>function<|tool▁sep|>" + name + "\\n```json\\n\" " + args_rule + " \"```<|tool▁call▁end|>\"")); }); data.grammar_triggers.push_back({"<|tool▁calls▁begin|>", /* .at_start = */ false}); + data.preserved_tokens = { + "<|tool▁sep|>", + "<|tool▁call▁end|>", + }; builder.add_rule("root", "\"<|tool▁calls▁begin|>\" (" + string_join(tool_rules, " | ") + ")" + (inputs.parallel_tool_calls ? "*" : "") + " space"); }, grammar_options); data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); @@ -704,8 +782,7 @@ static common_chat_params common_chat_params_init_hermes_2_pro(const common_chat auto tool_call = "\"\" space " + builder.add_rule("tool_call", string_join(tool_rules, " | ")) + " \"\" space"; builder.add_rule("root", inputs.parallel_tool_calls ? "(" + tool_call + ")+" : tool_call); data.grammar_triggers.push_back({"", /* .at_start = */ false}); - // Not really a trigger but need to print this special token to get a successful parse. - data.grammar_triggers.push_back({"", /* .at_start = */ false}); + data.preserved_tokens = { "" }; }, grammar_options); data.prompt = tmpl.apply(inputs.messages, inputs.tools.empty() ? json() : inputs.tools, inputs.add_generation_prompt); @@ -822,6 +899,9 @@ common_chat_params common_chat_params_init(const common_chat_template & tmpl, co if (src.find("[TOOL_CALLS]") != std::string::npos) { return common_chat_params_init_mistral_nemo(tmpl, inputs); } + if (src.find("<|END_THINKING|><|START_ACTION|>") != std::string::npos) { + return common_chat_params_init_command_r7b(tmpl, inputs); + } return common_chat_params_init_generic(tmpl, inputs); } @@ -855,6 +935,8 @@ common_chat_msg common_chat_parse(const std::string & input, common_chat_format return common_chat_parse_hermes_2_pro(input); case COMMON_CHAT_FORMAT_FIREFUNCTION_V2: return common_chat_parse_firefunction_v2(input); + case COMMON_CHAT_FORMAT_COMMAND_R7B: + return common_chat_parse_command_r7b(input); default: throw std::runtime_error("Unsupported format: " + common_chat_format_name(format)); } diff --git a/common/chat.hpp b/common/chat.hpp index ca165aa13..33e64a430 100644 --- a/common/chat.hpp +++ b/common/chat.hpp @@ -32,6 +32,7 @@ enum common_chat_format { COMMON_CHAT_FORMAT_FUNCTIONARY_V3_2, COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1, COMMON_CHAT_FORMAT_HERMES_2_PRO, + COMMON_CHAT_FORMAT_COMMAND_R7B, COMMON_CHAT_FORMAT_COUNT, // Not a format, just the # formats }; @@ -42,6 +43,7 @@ struct common_chat_params { std::string grammar; bool grammar_lazy = false; std::vector grammar_triggers; + std::vector preserved_tokens; std::vector additional_stops; }; diff --git a/common/common.h b/common/common.h index 6c1809277..b208d0c7e 100644 --- a/common/common.h +++ b/common/common.h @@ -4,6 +4,7 @@ #include "llama-cpp.h" +#include #include #include #include @@ -163,6 +164,7 @@ struct common_params_sampling { bool grammar_lazy = false; std::vector grammar_trigger_words; // optional trigger words to trigger lazy grammar std::vector grammar_trigger_tokens; // optional trigger tokens to trigger lazy grammar and print trigger special tokens. + std::set preserved_tokens; std::vector logit_bias; // logit biases to apply @@ -621,6 +623,7 @@ struct common_chat_msg { std::string role; std::string content; std::vector tool_calls; + std::string tool_plan = ""; }; // Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid diff --git a/examples/server/README.md b/examples/server/README.md index 276b43013..e9d0374ad 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -1128,6 +1128,7 @@ curl http://localhost:8080/v1/chat/completions \ - Hermes 2/3, Qwen 2.5 - Mistral Nemo - Firefunction v2 + - Command R7B - DeepSeek R1 (WIP / seems reluctant to call any tools?) From 902368a06b915b860236cfc97ff885b2aceae256 Mon Sep 17 00:00:00 2001 From: Charles Duffy Date: Wed, 5 Feb 2025 19:52:31 -0600 Subject: [PATCH 127/162] metal : avoid breaking build when metal API predates TARGET_OS_VISION (#11690) Avoids breakage in nix flake build introduced by b0569130c5e9c671152c913d82803b7c2f014ff9 --- ggml/src/ggml-metal/ggml-metal.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ggml/src/ggml-metal/ggml-metal.m b/ggml/src/ggml-metal/ggml-metal.m index c63dbad20..944d90af3 100644 --- a/ggml/src/ggml-metal/ggml-metal.m +++ b/ggml/src/ggml-metal/ggml-metal.m @@ -19,6 +19,10 @@ // max number of MTLCommandBuffer used to submit a graph for processing #define GGML_METAL_MAX_COMMAND_BUFFERS 8 +#ifndef TARGET_OS_VISION +#define TARGET_OS_VISION 0 +#endif + // create residency sets only on macOS >= 15.0 #if TARGET_OS_OSX && __MAC_OS_X_VERSION_MAX_ALLOWED >= 150000 || \ TARGET_OS_IOS && __IPHONE_OS_VERSION_MAX_ALLOWED >= 180000 || \ From 1b598b30581bad59e5af86c94362f9a30f261fac Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 6 Feb 2025 00:02:18 -0600 Subject: [PATCH 128/162] vulkan: use smaller combined allocations to avoid fragmentation (#11551) --- ggml/src/ggml-alloc.c | 14 +------------- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ggml/src/ggml-alloc.c b/ggml/src/ggml-alloc.c index 9a3bf9f29..7244a9cbb 100644 --- a/ggml/src/ggml-alloc.c +++ b/ggml/src/ggml-alloc.c @@ -989,19 +989,7 @@ ggml_backend_buffer_t ggml_backend_alloc_ctx_tensors_from_buft(struct ggml_conte this_size = GGML_PAD(ggml_backend_buft_get_alloc_size(buft, t), alignment); } - if (this_size > max_size) { - GGML_LOG_ERROR("%s: tensor %s is too large to fit in a %s buffer (tensor size: %zu, max buffer size: %zu)\n", - __func__, t->name, - ggml_backend_buft_name(buft), - this_size, max_size); - for (size_t i = 0; i < n_buffers; i++) { - ggml_backend_buffer_free(buffers[i]); - } - free(buffers); - return NULL; - } - - if ((cur_buf_size + this_size) > max_size) { + if (cur_buf_size > 0 && (cur_buf_size + this_size) > max_size) { // allocate tensors in the current buffer if (!alloc_tensor_range(ctx, first, t, buft, cur_buf_size, &buffers, &n_buffers)) { return NULL; diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 48ac489a6..2e1bcf691 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -156,6 +156,7 @@ struct vk_device_struct { vk::PhysicalDeviceProperties properties; std::string name; uint64_t max_memory_allocation_size; + uint64_t suballocation_block_size; bool fp16; bool pipeline_robustness; vk::Device device; @@ -2269,6 +2270,7 @@ static vk_device ggml_vk_get_device(size_t idx) { device->physical_device.getProperties2(&props2); device->properties = props2.properties; + device->vendor_id = device->properties.vendorID; const char* GGML_VK_FORCE_MAX_ALLOCATION_SIZE = getenv("GGML_VK_FORCE_MAX_ALLOCATION_SIZE"); @@ -2280,7 +2282,20 @@ static vk_device ggml_vk_get_device(size_t idx) { device->max_memory_allocation_size = props3.maxMemoryAllocationSize; } - device->vendor_id = device->properties.vendorID; + const char* GGML_VK_SUBALLOCATION_BLOCK_SIZE = getenv("GGML_VK_SUBALLOCATION_BLOCK_SIZE"); + + if (GGML_VK_SUBALLOCATION_BLOCK_SIZE != nullptr) { + device->suballocation_block_size = std::stoul(GGML_VK_SUBALLOCATION_BLOCK_SIZE); +#if defined(_WIN32) + } else if (device->vendor_id == VK_VENDOR_ID_NVIDIA) { + // Limit batching of allocations to 1GB by default to avoid fragmentation issues + device->suballocation_block_size = 1024*1024*1024; +#endif + } else { + device->suballocation_block_size = device->max_memory_allocation_size; + } + device->suballocation_block_size = std::min(device->suballocation_block_size, device->max_memory_allocation_size); + device->subgroup_size = subgroup_props.subgroupSize; device->uma = device->properties.deviceType == vk::PhysicalDeviceType::eIntegratedGpu; if (sm_builtins) { @@ -7561,7 +7576,7 @@ static size_t ggml_backend_vk_buffer_type_get_alignment(ggml_backend_buffer_type static size_t ggml_backend_vk_buffer_type_get_max_size(ggml_backend_buffer_type_t buft) { ggml_backend_vk_buffer_type_context * ctx = (ggml_backend_vk_buffer_type_context *) buft->context; - return ctx->device->max_memory_allocation_size; + return ctx->device->suballocation_block_size; } static size_t ggml_backend_vk_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { From 8a7e3bf17aa5a8412854787746c92a28623a8925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20O?= Date: Thu, 6 Feb 2025 07:09:59 +0100 Subject: [PATCH 129/162] vulkan: initial support for IQ4_XS quantization (#11501) --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 25 ++++++++++++ .../vulkan-shaders/copy_from_quant.comp | 2 +- .../vulkan-shaders/copy_to_quant.comp | 2 +- .../vulkan-shaders/dequant_funcs.comp | 38 ++++++++++++++++++- .../vulkan-shaders/dequant_funcs_cm2.comp | 23 +++++++++++ .../vulkan-shaders/dequant_iq4_xs.comp | 34 +++++++++++++++++ .../vulkan-shaders/flash_attn_cm2.comp | 2 +- .../vulkan-shaders/get_rows_quant.comp | 2 +- .../vulkan-shaders/mul_mat_vec.comp | 2 +- .../ggml-vulkan/vulkan-shaders/mul_mm.comp | 21 +++++++++- .../vulkan-shaders/mul_mm_cm2.comp | 2 +- .../src/ggml-vulkan/vulkan-shaders/types.comp | 28 +++++++++++--- .../vulkan-shaders/vulkan-shaders-gen.cpp | 1 + 13 files changed, 169 insertions(+), 13 deletions(-) create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 2e1bcf691..1c99ebe2e 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -1622,6 +1622,7 @@ static void ggml_vk_load_shaders(vk_device& device) { //CREATE_FA(GGML_TYPE_IQ2_S, iq2_s) //CREATE_FA(GGML_TYPE_IQ3_XXS, iq3_xxs) //CREATE_FA(GGML_TYPE_IQ3_S, iq3_s) + //CREATE_FA(GGML_TYPE_IQ4_XS, iq4_xs) CREATE_FA(GGML_TYPE_IQ4_NL, iq4_nl) #undef CREATE_FA @@ -1655,6 +1656,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) + CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ4_XS].f16acc, matmul_iq4_xs_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM2(pipeline_matmul_id_f16, matmul_id_f16, wg_denoms, warptile, vk_mat_mat_id_push_constants, 4) @@ -1673,6 +1675,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f16acc, matmul_id_iq4_xs_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) #undef CREATE_MM #undef CREATE_MM2 @@ -1726,6 +1729,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_XS].f16acc, matmul_iq4_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } else { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); @@ -1744,6 +1748,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_XS].f16acc, matmul_iq4_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); } @@ -1770,6 +1775,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f16acc, matmul_id_iq4_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } else { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); @@ -1788,6 +1794,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f16acc, matmul_id_iq4_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } } @@ -1837,6 +1844,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f16acc, matmul_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f16acc, matmul_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f16acc, matmul_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_XS].f16acc, matmul_iq4_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. @@ -1861,6 +1869,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f16acc, matmul_id_iq2_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f16acc, matmul_id_iq3_xxs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f16acc, matmul_id_iq3_s_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f16acc, matmul_id_iq4_xs_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f16acc, matmul_id_iq4_nl_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } #undef CREATE_MM2 @@ -1902,6 +1911,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ2_S].f32acc, matmul_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_XXS].f32acc, matmul_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ3_S].f32acc, matmul_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); + CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_XS].f32acc, matmul_iq4_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(pipeline_dequant_mul_mat_mat[GGML_TYPE_IQ4_NL].f32acc, matmul_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); // If there's not enough shared memory for row_ids and the result tile, don't create these pipelines. @@ -1926,6 +1936,7 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ2_S].f32acc, matmul_id_iq2_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_XXS].f32acc, matmul_id_iq3_xxs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f32acc, matmul_id_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f32acc, matmul_id_iq4_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f32acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); } #undef CREATE_MM @@ -1962,6 +1973,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ2_S][i], "mul_mat_vec_iq2_s_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq2_s_f32_f32_len, mul_mat_vec_iq2_s_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ3_XXS][i], "mul_mat_vec_iq3_xxs_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq3_xxs_f32_f32_len, mul_mat_vec_iq3_xxs_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ3_S][i], "mul_mat_vec_iq3_s_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq3_s_f32_f32_len, mul_mat_vec_iq3_s_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ4_XS][i], "mul_mat_vec_iq4_xs_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq4_xs_f32_f32_len, mul_mat_vec_iq4_xs_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f32_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f32_f32_len, mul_mat_vec_iq4_nl_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ][i], "mul_mat_vec_f32_f16_f32_"+std::to_string(i+1), mul_mat_vec_f32_f16_f32_len, mul_mat_vec_f32_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); @@ -1981,6 +1993,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ2_S][i], "mul_mat_vec_iq2_s_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq2_s_f16_f32_len, mul_mat_vec_iq2_s_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ3_XXS][i], "mul_mat_vec_iq3_xxs_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq3_xxs_f16_f32_len, mul_mat_vec_iq3_xxs_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ3_S][i], "mul_mat_vec_iq3_s_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq3_s_f16_f32_len, mul_mat_vec_iq3_s_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ4_XS][i], "mul_mat_vec_iq4_xs_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq4_xs_f16_f32_len, mul_mat_vec_iq4_xs_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_IQ4_NL][i], "mul_mat_vec_iq4_nl_f16_f32_"+std::to_string(i+1), mul_mat_vec_iq4_nl_f16_f32_len, mul_mat_vec_iq4_nl_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq, i+1}, 1, true); } @@ -2001,6 +2014,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ2_S], "mul_mat_vec_id_iq2_s_f32", mul_mat_vec_id_iq2_s_f32_len, mul_mat_vec_id_iq2_s_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ3_XXS], "mul_mat_vec_id_iq3_xxs_f32", mul_mat_vec_id_iq3_xxs_f32_len, mul_mat_vec_id_iq3_xxs_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ3_S], "mul_mat_vec_id_iq3_s_f32", mul_mat_vec_id_iq3_s_f32_len, mul_mat_vec_id_iq3_s_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ4_XS], "mul_mat_vec_id_iq4_xs_f32", mul_mat_vec_id_iq4_xs_f32_len, mul_mat_vec_id_iq4_xs_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {rm_kq, 1, 1}, {subgroup_size_16, rm_kq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_IQ4_NL], "mul_mat_vec_id_iq4_nl_f32", mul_mat_vec_id_iq4_nl_f32_len, mul_mat_vec_id_iq4_nl_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {subgroup_size_16, 2*rm_stdq}, 1, true); // dequant shaders @@ -2020,6 +2034,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ2_S], "dequant_iq2_s", dequant_iq2_s_len, dequant_iq2_s_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ3_XXS], "dequant_iq3_xxs", dequant_iq3_xxs_len, dequant_iq3_xxs_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ3_S], "dequant_iq3_s", dequant_iq3_s_len, dequant_iq3_s_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ4_XS], "dequant_iq4_xs", dequant_iq4_xs_len, dequant_iq4_xs_data, "main", 2, 5 * sizeof(uint32_t), {256 * 32, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant[GGML_TYPE_IQ4_NL], "dequant_iq4_nl", dequant_iq4_nl_len, dequant_iq4_nl_data, "main", 2, 5 * sizeof(uint32_t), {256 * 16, 1, 1}, {}, 1); // get_rows @@ -2035,6 +2050,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ2_S], "get_rows_iq2_s", get_rows_iq2_s_len, get_rows_iq2_s_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ3_XXS], "get_rows_iq3_xxs", get_rows_iq3_xxs_len, get_rows_iq3_xxs_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ3_S], "get_rows_iq3_s", get_rows_iq3_s_len, get_rows_iq3_s_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ4_XS], "get_rows_iq4_xs", get_rows_iq4_xs_len, get_rows_iq4_xs_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl", get_rows_iq4_nl_len, get_rows_iq4_nl_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F32 ], "get_rows_f32_f32", get_rows_f32_f32_len, get_rows_f32_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); @@ -2049,6 +2065,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ2_S], "get_rows_iq2_s_f32", get_rows_iq2_s_f32_len, get_rows_iq2_s_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ3_XXS], "get_rows_iq3_xxs_f32", get_rows_iq3_xxs_f32_len, get_rows_iq3_xxs_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ3_S], "get_rows_iq3_s_f32", get_rows_iq3_s_f32_len, get_rows_iq3_s_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ4_XS], "get_rows_iq4_xs_f32", get_rows_iq4_xs_f32_len, get_rows_iq4_xs_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_IQ4_NL], "get_rows_iq4_nl_f32", get_rows_iq4_nl_f32_len, get_rows_iq4_nl_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_matmul_split_k_reduce, "split_k_reduce", split_k_reduce_len, split_k_reduce_data, "main", 2, 2 * sizeof(uint32_t), {256 * 4, 1, 1}, {}, 1); @@ -2995,6 +3012,7 @@ static vk_pipeline ggml_vk_get_to_fp16(ggml_backend_vk_context * ctx, ggml_type case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -3048,6 +3066,7 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_pipeline(ggml_backend_vk_conte case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -3084,6 +3103,7 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec(ggml_backend_vk_context * case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -3132,6 +3152,7 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_id_pipeline(ggml_backend_vk_co case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -3163,6 +3184,7 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec_id(ggml_backend_vk_context case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -8037,6 +8059,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -8110,6 +8133,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm //case GGML_TYPE_IQ2_S: //case GGML_TYPE_IQ3_XXS: //case GGML_TYPE_IQ3_S: + //case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: break; default: @@ -8132,6 +8156,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_TYPE_IQ2_S: case GGML_TYPE_IQ3_XXS: case GGML_TYPE_IQ3_S: + case GGML_TYPE_IQ4_XS: case GGML_TYPE_IQ4_NL: return true; default: diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp index aeae5400d..9c9fe9626 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp @@ -12,7 +12,7 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; #endif void main() { -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); if (gl_LocalInvocationIndex.x != 0) { return; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp index d4b068e61..660811086 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp @@ -217,7 +217,7 @@ void quantize(uint dst_idx, uint src_idx) #endif void main() { -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); if (gl_LocalInvocationIndex.x != 0) { return; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp index ee6877531..ecfdbfaa8 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp @@ -304,6 +304,42 @@ vec4 dequantize4(uint ib, uint iqs, uint a_offset) { } #endif +#if defined(DATA_A_IQ4_XS) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint iq = 16 * ib32 + (iqs % 16); + + const uint sl = (data_a[a_offset + ib].scales_l[ib32/2] >> (4 * (ib32 & 1))) & 0xF; + const uint sh = (data_a[a_offset + ib].scales_h >> (2 * ib32)) & 3; + const uint qshift = (iqs & 16) >> 2; + u8vec2 qs = u8vec2(data_a[a_offset + ib].qs[iq], data_a[a_offset + ib].qs[iq + 1]); + qs = (qs >> qshift) & uint8_t(0xF); + + const float dl = float(int(sl | (sh << 4)) - 32); + return dl * vec2(kvalues_iq4nl[qs.x], kvalues_iq4nl[qs.y]); +} +vec4 dequantize4(uint ib, uint iqs, uint a_offset) { + const uint ib32 = iqs / 32; + const uint iq = 16 * ib32 + (iqs % 16); + + const uint sl = (data_a[a_offset + ib].scales_l[ib32/2] >> (4 * (ib32 & 1))) & 0xF; + const uint sh = (data_a[a_offset + ib].scales_h >> (2 * ib32)) & 3; + const uint qshift = (iqs & 16) >> 2; + u8vec4 qs = u8vec4( + data_a[a_offset + ib].qs[iq + 0], + data_a[a_offset + ib].qs[iq + 1], + data_a[a_offset + ib].qs[iq + 2], + data_a[a_offset + ib].qs[iq + 3] + ); + qs = (qs >> qshift) & uint8_t(0xF); + + const float dl = float(int(sl | (sh << 4)) - 32); + return dl * vec4( + kvalues_iq4nl[qs.x], kvalues_iq4nl[qs.y], + kvalues_iq4nl[qs.z], kvalues_iq4nl[qs.w]); +} +#endif + #if defined(DATA_A_IQ4_NL) vec2 dequantize(uint ib, uint iqs, uint a_offset) { const uint vui = uint(data_a[a_offset + ib].qs[iqs]); @@ -321,7 +357,7 @@ vec2 get_dm(uint ib, uint a_offset) { } #endif -#if defined(DATA_A_Q4_0) || defined(DATA_A_Q5_0) || defined(DATA_A_Q8_0) || defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_Q4_0) || defined(DATA_A_Q5_0) || defined(DATA_A_Q8_0) || defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) vec2 get_dm(uint ib, uint a_offset) { return vec2(float(data_a[a_offset + ib].d), 0); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp index 974efd3f9..78c3bddf2 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp @@ -454,6 +454,27 @@ float16_t dequantFuncIQ3_S(const in decodeBufIQ3_S bl, const in uint blockCoords } #endif +#if defined(DATA_A_IQ4_XS) +layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ4_XS { + block_iq4_xs block; +}; + +float16_t dequantFuncIQ4_XS(const in decodeBufIQ4_XS bl, const in uint blockCoords[2], const in uint coordInBlock[2]) +{ + const float16_t d = bl.block.d; + const uint idx = coordInBlock[1]; + + const uint ib32 = (idx & 0xE0) >> 5; // 0..7 + + const uint sl = (bl.block.scales_l[ib32/2] >> (4 * (ib32 & 1))) & 0xF; + const uint sh = ((bl.block.scales_h) >> (2 * ib32)) & 3; + const uint qshift = (idx & 16) >> 2; + const uint q = (bl.block.qs[16 * ib32 + (idx % 16)] >> qshift) & 0xF; + + float16_t ret = d * float16_t(int(sl | (sh << 4)) - 32) * float16_t(kvalues_iq4nl[q]); + return ret; +} +#endif #if defined(DATA_A_IQ4_NL) layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ4_NL { @@ -504,6 +525,8 @@ float16_t dequantFuncIQ4_NL(const in decodeBufIQ4_NL bl, const in uint blockCoor #define dequantFuncA dequantFuncIQ3_XXS #elif defined(DATA_A_IQ3_S) #define dequantFuncA dequantFuncIQ3_S +#elif defined(DATA_A_IQ4_XS) +#define dequantFuncA dequantFuncIQ4_XS #elif defined(DATA_A_IQ4_NL) #define dequantFuncA dequantFuncIQ4_NL #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp new file mode 100644 index 000000000..f930852a4 --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp @@ -0,0 +1,34 @@ +#version 450 + +#include "dequant_head.comp" + +layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in; + +layout (binding = 0) readonly buffer A {block_iq4_xs data_a[];}; +layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; + +void main() { + // Each thread handles 1 subblock (1 scale and 32 quantized values) + const uint ib = gl_WorkGroupID.x * 32 + gl_LocalInvocationID.x / 8; + + init_iq_shmem(gl_WorkGroupSize); + + if (ib >= p.nel / 256) { + return; + } + + const uint ib32 = gl_LocalInvocationID.x % 8; + + const float d = float(data_a[ib].d); + // Scales are 6 bits + const uint scale = ((data_a[ib].scales_l[ib32/2] >> (4 * (ib32 & 1))) & 0xF) + | (((data_a[ib].scales_h >> (2 * ib32)) & 3) << 4); + const float dl = d * (int(scale) - 32); + + const uint b_idx = 256 * ib + 32 * ib32; + const uint q_idx = 16 * ib32; + [[unroll]] for (uint l = 0; l < 16; ++l) { + data_b[b_idx + l + 0] = D_TYPE(dl * kvalues_iq4nl[data_a[ib].qs[q_idx + l] & 0xF]); + data_b[b_idx + l + 16] = D_TYPE(dl * kvalues_iq4nl[data_a[ib].qs[q_idx + l] >> 4]); + } +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp index 043a53023..ba88ce79a 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp @@ -104,7 +104,7 @@ ACC_TYPE Max(const in uint32_t row, const in uint32_t col, const in ACC_TYPE ele #endif void main() { -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp index 09dc43d8d..c16a2a9f6 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp @@ -12,7 +12,7 @@ void main() { const uint i11 = (gl_GlobalInvocationID.z)/p.ne12; const uint i12 = (gl_GlobalInvocationID.z)%p.ne12; -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp index 48156e7ba..d7e99727d 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp @@ -133,7 +133,7 @@ void compute_outputs(const uint32_t first_row, const uint32_t num_rows) { void main() { const uint first_row = NUM_ROWS * (gl_WorkGroupID.x + gl_NumWorkGroups.x * gl_WorkGroupID.z); -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp index d0559aac8..33b2234e7 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp @@ -95,7 +95,7 @@ shared ACC_TYPE coopmat_stage[TM * TN * NUM_WARPS]; #endif void main() { -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); #endif @@ -547,6 +547,25 @@ void main() { const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> (16 * (idx % 2)); const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); + buf_a[buf_idx ] = FLOAT_TYPE(v.x); + buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); +#elif defined(DATA_A_IQ4_XS) + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + + const uint ib = idx / 128; // 2 values per idx + const uint ib32 = (idx % 128) / 16; // 0..7 + const uint iq = 16 * ib32 + 2 * (idx % 8); + + const uint sl = (data_a[ib].scales_l[ib32/2] >> (4 * (ib32 & 1))) & 0xF; + const uint sh = ((data_a[ib].scales_h) >> (2 * ib32)) & 3; + const uint qshift = (idx & 8) >> 1; + u8vec2 qs = u8vec2(data_a[ib].qs[iq], data_a[ib].qs[iq + 1]); + qs = (qs >> qshift) & uint8_t(0xF); + + const float d = float(data_a[ib].d); + const vec2 v = d * float(int(sl | (sh << 4)) - 32) * vec2(kvalues_iq4nl[qs.x], kvalues_iq4nl[qs.y]); + buf_a[buf_idx ] = FLOAT_TYPE(v.x); buf_a[buf_idx + 1] = FLOAT_TYPE(v.y); #elif defined(DATA_A_IQ4_NL) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp index 27c5d68b3..7e29bbfec 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp @@ -106,7 +106,7 @@ D_TYPE perElemOpD(const in uint32_t r, const in uint32_t c, const in D_TYPE elem #endif void main() { -#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_NL) +#if defined(DATA_A_IQ2_XXS) || defined(DATA_A_IQ2_XS) || defined(DATA_A_IQ2_S) || defined(DATA_A_IQ3_XXS) || defined(DATA_A_IQ3_S) || defined(DATA_A_IQ4_XS) || defined(DATA_A_IQ4_NL) init_iq_shmem(gl_WorkGroupSize); #endif diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp index 9e56a3530..db643a54c 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp @@ -1026,6 +1026,23 @@ void init_iq_shmem(uvec3 wgsize) #define A_TYPE_PACKED16 block_iq3_s_packed16 #endif +#define QUANT_K_IQ4_XS 256 +#define QUANT_R_IQ4_XS 1 + +struct block_iq4_xs +{ + float16_t d; + uint16_t scales_h; + uint8_t scales_l[QUANT_K_IQ4_XS/64]; + uint8_t qs[QUANT_K_IQ4_XS/2]; +}; + +#if defined(DATA_A_IQ4_XS) +#define QUANT_K QUANT_K_IQ4_XS +#define QUANT_R QUANT_R_IQ4_XS +#define A_TYPE block_iq4_xs +#endif + #define QUANT_K_IQ4_NL 32 #define QUANT_R_IQ4_NL 2 @@ -1042,7 +1059,13 @@ struct block_iq4_nl_packed16 }; #if defined(DATA_A_IQ4_NL) +#define QUANT_K QUANT_K_IQ4_NL +#define QUANT_R QUANT_R_IQ4_NL +#define A_TYPE block_iq4_nl +#define A_TYPE_PACKED16 block_iq4_nl_packed16 +#endif +#if defined(DATA_A_IQ4_NL) || defined(DATA_A_IQ4_XS) const int8_t kvalues_iq4nl_const[16] = { int8_t(-127), int8_t(-104), int8_t(-83), int8_t(-65), int8_t(-49), int8_t(-35), int8_t(-22), int8_t(-10), int8_t(1), int8_t(13), int8_t(25), int8_t(38), int8_t(53), int8_t(69), int8_t(89), int8_t(113) @@ -1058,11 +1081,6 @@ void init_iq_shmem(uvec3 wgsize) } barrier(); } - -#define QUANT_K QUANT_K_IQ4_NL -#define QUANT_R QUANT_R_IQ4_NL -#define A_TYPE block_iq4_nl -#define A_TYPE_PACKED16 block_iq4_nl_packed16 #endif #endif // !defined(GGML_TYPES_COMP) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index 93ddbfadc..77e7e1148 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -60,6 +60,7 @@ const std::vector type_names = { "iq2_s", "iq3_xxs", "iq3_s", + "iq4_xs", "iq4_nl" }; From 2c6c8df56d8a3edd657b9a295e95d469a37f0044 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 6 Feb 2025 00:15:30 -0600 Subject: [PATCH 130/162] vulkan: optimize coopmat2 iq2/iq3 callbacks (#11521) * vulkan: optimize coopmat2 iq2/iq3 callbacks * build: trigger CI on GLSL compute shader changes --- .github/workflows/build.yml | 4 +- .../vulkan-shaders/dequant_funcs_cm2.comp | 79 +++++++++---------- 2 files changed, 40 insertions(+), 43 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f9c82f87..6841ba589 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,10 +10,10 @@ on: push: branches: - master - paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal'] + paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp'] pull_request: types: [opened, synchronize, reopened] - paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal'] + paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal', '**/*.comp'] concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp index 78c3bddf2..0eba37420 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp @@ -323,15 +323,16 @@ float16_t dequantFuncIQ2_XXS(const in decodeBufIQ2_XXS bl, const in uint blockCo const uint8_t qs = bl.block.qs[iqs]; const uint signscale = pack32(u16vec2(bl16.block.qs[4*ib32+2], bl16.block.qs[4*ib32+3])); - const float16_t dscale = bl.block.d * 0.25hf * (0.5hf + float16_t(signscale >> 28)); + const float dscale = float(bl.block.d) * 0.25 * (0.5 + float(signscale >> 28)); uint sign = bitfieldExtract(signscale, 7 * int(ib8), 7); sign |= bitCount(sign) << 7; - const uint8_t g = unpack8(iq2xxs_grid[qs][(idx & 4) >> 2])[idx & 3]; + uint g2 = iq2xxs_grid[qs][(idx & 4) >> 2]; + g2 >>= (idx & 2) * 8; + const vec2 g = vec2(unpack8(g2)); - float16_t ret = dscale * float16_t(g) * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); - - return ret; + vec2 ret = dscale * g * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); + return float16_t(ret[idx & 1]); } #endif @@ -350,14 +351,16 @@ float16_t dequantFuncIQ2_XS(const in decodeBufIQ2_XS bl, const in uint blockCoor const uint iqs = (idx & 0xF8) >> 3; // 0..63 const uint16_t qs = bl.block.qs[iqs]; - const float16_t dscale = bl.block.d * 0.25hf * (0.5hf + float16_t((bl.block.scales[is] >> sshift) & 0xF)); + const float dscale = float(bl.block.d) * 0.25 * (0.5 + float((bl.block.scales[is] >> sshift) & 0xF)); uint sign = uint(qs >> 9); sign |= bitCount(sign) << 7; - const uint8_t g = unpack8(iq2xs_grid[qs & 0x1FF][(idx & 4) >> 2])[idx & 3]; + uint g2 = iq2xs_grid[qs & 0x1FF][(idx & 4) >> 2]; + g2 >>= (idx & 2) * 8; + const vec2 g = vec2(unpack8(g2)); - float16_t ret = dscale * float16_t(g) * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); - return ret; + vec2 ret = dscale * g * ((sign & (1 << (idx & 7))) != 0 ? -1.0hf : 1.0hf); + return float16_t(ret[idx & 1]); } #endif @@ -369,24 +372,23 @@ layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ2 float16_t dequantFuncIQ2_S(const in decodeBufIQ2_S bl, const in uint blockCoords[2], const in uint coordInBlock[2]) { uint idx = coordInBlock[1]; - uint lsb = idx & 1; - idx /= 2; - const uint ib8 = (idx % 128) / 4; // 0..31 - const uint ib32 = ib8 / 4; // 0..7 + const uint ib32 = (idx & 0xE0) >> 5; // 0..7 + const uint ib8 = (idx & 0xF8) >> 3; // 0..31 + const uint qhshift = 2 * (ib8 % 4); - const uint scale = (bl.block.scales[ib32] >> (2 * (ib8 & 2))) & 0xf; + const uint scale = (bl.block.scales[ib32] >> ((idx & 0x10) >> 2)) & 0xf; const uint qs = bl.block.qs[ib8]; const uint qh = bl.block.qh[ib32]; - const uint qhshift = 2 * (ib8 % 4); - const uint sign = bl.block.qs[QUANT_K / 8 + ib8] >> (2 * (idx % 4)); + const uint sign = bl.block.qs[QUANT_K / 8 + ib8] >> (idx & 0x6); const float d = float(bl.block.d); const float db = d * 0.25 * (0.5 + scale); - const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); - const uint16_t grid = unpack16(iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(idx & 2) >> 1])[idx & 1]; - const vec2 v = db * vec2(sign01) * vec2(unpack8(grid)); - return float16_t(v[lsb]); + const ivec2 sign01 = 1 - (2 & ivec2(sign << 1, sign)); + uint g2 = iq2s_grid[qs | ((qh << (8 - qhshift)) & 0x300)][(idx & 4) >> 2]; + g2 >>= (idx & 2) * 8; + const vec2 v = db * vec2(sign01) * vec2(unpack8(g2)); + return float16_t(v[idx & 1]); } #endif @@ -401,28 +403,25 @@ layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ3 float16_t dequantFuncIQ3_XXS(const in decodeBufIQ3_XXS bl, const in uint blockCoords[2], const in uint coordInBlock[2]) { + decodeBufIQ3_XXS_packed16 bl16 = decodeBufIQ3_XXS_packed16(bl); uint idx = coordInBlock[1]; - uint lsb = idx & 1; - idx /= 2; - const uint iqs = (idx % 128) / 2; // 0..63 - const uint is = QUANT_K / 4 + 4 * (iqs / 8); // 8 values + const uint iqs = (idx & 0xFC) >> 2; // 0..63 + const uint is = QUANT_K / 4 + ((idx & 0xE0) >> 3);// 8 values const float d = float(bl.block.d); const uint qs = bl.block.qs[iqs]; - const uint signs = pack32(u8vec4( - bl.block.qs[is+0], - bl.block.qs[is+1], - bl.block.qs[is+2], - bl.block.qs[is+3] + const uint signs = pack32(u16vec2( + bl16.block.qs[is/2+0], + bl16.block.qs[is/2+1] )); const float db = d * 0.5 * (0.5 + (signs >> 28)); const uint32_t sign7 = bitfieldExtract(signs, 7 * (int(iqs / 2) % 4), 7); - const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (2 * (idx % 4)); - const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(int8_t(sign << 1), int8_t(sign)))); - const uint grid = iq3xxs_grid[qs] >> (16 * (idx & 1)); + const uint sign = (sign7 | (bitCount(sign7) << 7)) >> (idx & 0x6); + const ivec2 sign01 = ivec2(1 - (2 & ivec2(sign << 1, sign))); + const uint grid = iq3xxs_grid[qs] >> (16 * ((idx & 2) >> 1)); const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); - return float16_t(v[lsb]); + return float16_t(v[idx & 1]); } #endif @@ -434,23 +433,21 @@ layout(buffer_reference, std430, buffer_reference_align = 2) buffer decodeBufIQ3 float16_t dequantFuncIQ3_S(const in decodeBufIQ3_S bl, const in uint blockCoords[2], const in uint coordInBlock[2]) { uint idx = coordInBlock[1]; - uint lsb = idx & 1; - idx /= 2; - const uint iqs = (idx % 128) / 2; // 0..63 - const uint iqh = iqs / 8; + const uint iqs = (idx & 0xFC) >> 2; // 0..63 + const uint iqh = (idx & 0xE0) >> 5; const float d = float(bl.block.d); const uint qs = bl.block.qs[iqs]; const uint qh = bl.block.qh[iqh]; - const int8_t sign = int8_t(bl.block.signs[iqs / 2] >> (2 * (idx % 4))); + const int8_t sign = int8_t(bl.block.signs[iqs / 2] >> (idx & 0x6)); const uint scale = bl.block.scales[iqs / 16]; - const i8vec2 sign01 = i8vec2(1 - (2 & i8vec2(sign << 1, sign))); + const ivec2 sign01 = ivec2(1 - (2 & ivec2(sign << 1, sign))); const float db = d * (1 + 2 * ((scale >> (4 * (iqh & 1))) & 0xf)); - const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> (16 * (idx % 2)); + const uint32_t grid = iq3s_grid[qs | ((qh << (8 - (iqs % 8))) & 256)] >> ((idx & 2) << 3); const vec2 v = db * vec2(sign01) * vec2(unpack8(grid).xy); - return float16_t(v[lsb]); + return float16_t(v[idx & 1]); } #endif From 8d4d2be143a3919c3d194b9bf7a221e50abed893 Mon Sep 17 00:00:00 2001 From: junchao-zhao <68935141+junchao-loongson@users.noreply.github.com> Date: Thu, 6 Feb 2025 17:20:00 +0800 Subject: [PATCH 131/162] ggml : fix LoongArch compile error with 128-bit SIMD (#11701) --- ggml/src/ggml-cpu/ggml-cpu-quants.c | 169 +++++++++++++++------------- 1 file changed, 91 insertions(+), 78 deletions(-) diff --git a/ggml/src/ggml-cpu/ggml-cpu-quants.c b/ggml/src/ggml-cpu/ggml-cpu-quants.c index 88303ff0e..72ec58cee 100644 --- a/ggml/src/ggml-cpu/ggml-cpu-quants.c +++ b/ggml/src/ggml-cpu/ggml-cpu-quants.c @@ -297,6 +297,90 @@ static const uint64_t table_b2b_0[1 << 8] = { B8(00, 10) }; // ( b) << 4 static const uint64_t table_b2b_1[1 << 8] = { B8(10, 00) }; // (!b) << 4 #endif +#if defined(__loongarch_sx) + +static __m128i lsx_packs_w(__m128i a, __m128i b) { + __m128i tmp, tmp1; + tmp = __lsx_vsat_w(a, 15); + tmp1 = __lsx_vsat_w(b, 15); + return __lsx_vpickev_h(tmp1, tmp); +} + +static __m128i lsx_packs_h(__m128i a, __m128i b) { + __m128i tmp, tmp1; + tmp = __lsx_vsat_h(a, 7); + tmp1 = __lsx_vsat_h(b, 7); + return __lsx_vpickev_b(tmp1, tmp); +} + +static __m128i lsx_packus_h(__m128i a, __m128i b) { + __m128i tmp, tmp1; + tmp = __lsx_vsat_hu(a, 7); + tmp1 = __lsx_vsat_hu(b, 7); + return __lsx_vpickev_b(tmp1, tmp); +} + +static __m128i lsx_maddubs_h(__m128i a, __m128i b) { + __m128i tmp1, tmp2; + tmp1 = __lsx_vmulwev_h_b(a, b); + tmp2 = __lsx_vmulwod_h_b(a, b); + return __lsx_vsadd_h(tmp1, tmp2); +} + +static __m128i lsx_madd_h(__m128i a, __m128i b) { + __m128i tmp1, tmp2; + tmp1 = __lsx_vmulwev_w_h(a, b); + tmp2 = __lsx_vmulwod_w_h(a, b); + return __lsx_vadd_w(tmp1, tmp2); +} + +static __m128i lsx_set_w(int32_t a, int32_t b, int32_t c, int32_t d) { + v4i32 __ret = {d, c, b, a}; + return (__m128i)__ret; +} + +static __m128i lsx_shuffle_b(__m128i a, __m128i b) { + __m128i mask_f, zero, tmp0, tmp2, mask; + int f = 0x8f; + mask_f = __lsx_vreplgr2vr_b(f); + zero = __lsx_vldi(0); + tmp0 = __lsx_vand_v(b, mask_f); // get mask with low 4 bit and sign bits + tmp0 = __lsx_vori_b(tmp0, 0x10); // make each mask or with 0x10 prepare for positive + mask = __lsx_vsle_b(zero, tmp0); // if mask >= 0, set mask + tmp2 = __lsx_vand_v(tmp0, mask); // maskout the in2 < ones + return __lsx_vshuf_b(a, zero, tmp2); +} + +static __m128i lsx_hadd_h(__m128i a, __m128i b) { + __m128i tmp1 = __lsx_vpickev_h(b, a); + __m128i tmp2 = __lsx_vpickod_h(b, a); + return __lsx_vadd_h(tmp1, tmp2); +} + +static __m128i lsx_hadd_w(__m128i a, __m128i b) { + __m128i tmp1 = __lsx_vpickev_w(b, a); + __m128i tmp2 = __lsx_vpickod_w(b, a); + return __lsx_vadd_w(tmp1, tmp2); +} + +static __m128 lsx_hadd_s(__m128 a, __m128 b) { + __m128 tmp1 = (__m128)__lsx_vpickev_w((__m128i)b, (__m128i)a); + __m128 tmp2 = (__m128)__lsx_vpickod_w((__m128i)b, (__m128i)a); + + return __lsx_vfadd_s(tmp1, tmp2); +} + +static inline float hsum_float_4x4(const __m128 a, const __m128 b, const __m128 c, const __m128 d) { + __m128 res_0 =lsx_hadd_s(a, b); + __m128 res_1 =lsx_hadd_s(c, d); + __m128 res =lsx_hadd_s(res_0, res_1); + res =lsx_hadd_s(res, res); + res =lsx_hadd_s(res, res); + + return ((v4f32)res)[0]; +} +#endif + #if defined(__loongarch_asx) #ifdef __clang__ @@ -395,11 +479,6 @@ static __m256i lasx_set_w(int e7, int e6, int e5, int e4, int e3, int e2, int e1 return (__m256i)__ret; } -static __m128i lsx_set_w(int32_t a, int32_t b, int32_t c, int32_t d) { - v4i32 __ret = {d, c, b, a}; - return (__m128i)__ret; -} - static __m256i lasx_set_d(int64_t a, int64_t b, int64_t c, int64_t d) { v4i64 __ret = {d, c, b, a}; return (__m256i)__ret; @@ -409,18 +488,6 @@ static __m256i lasx_insertf128( __m128i x, __m128i y) { return lasx_set_q(x, y); } -static __m128i lsx_shuffle_b(__m128i a, __m128i b) { - __m128i mask_f, zero, tmp0, tmp2, mask; - int f = 0x8f; - mask_f = __lsx_vreplgr2vr_b(f); - zero = __lsx_vldi(0); - tmp0 = __lsx_vand_v(b, mask_f); // get mask with low 4 bit and sign bits - tmp0 = __lsx_vori_b(tmp0, 0x10); // make each mask or with 0x10 prepare for positive - mask = __lsx_vsle_b(zero, tmp0); // if mask >= 0, set mask - tmp2 = __lsx_vand_v(tmp0, mask); // maskout the in2 < ones - return __lsx_vshuf_b(a, zero, tmp2); -} - static __m256i lasx_shuffle_b(__m256i a, __m256i b) { __m256i mask_f, zero, tmp0, tmp2, mask; int f = 0x8f; @@ -482,25 +549,6 @@ static __m128 lasx_extractf128( __m256 a, int pos) { return ret; } -static __m128i lsx_hadd_h(__m128i a, __m128i b) { - __m128i tmp1 = __lsx_vpickev_h(b, a); - __m128i tmp2 = __lsx_vpickod_h(b, a); - return __lsx_vadd_h(tmp1, tmp2); -} - -static __m128i lsx_hadd_w(__m128i a, __m128i b) { - __m128i tmp1 = __lsx_vpickev_w(b, a); - __m128i tmp2 = __lsx_vpickod_w(b, a); - return __lsx_vadd_w(tmp1, tmp2); -} - -static __m128 lsx_hadd_s(__m128 a, __m128 b) { - __m128 tmp1 = (__m128)__lsx_vpickev_w((__m128i)b, (__m128i)a); - __m128 tmp2 = (__m128)__lsx_vpickod_w((__m128i)b, (__m128i)a); - - return __lsx_vfadd_s(tmp1, tmp2); -} - static __m256i lasx_maddubs_h(__m256i a, __m256i b) { __m256i tmp1, tmp2; tmp1 = __lasx_xvmulwev_h_b(a, b); @@ -529,42 +577,6 @@ static __m256i lasx_packs_h(__m256i a, __m256i b) { return __lasx_xvpickev_b(tmp1, tmp); } -static __m128i lsx_packs_w(__m128i a, __m128i b) { - __m128i tmp, tmp1; - tmp = __lsx_vsat_w(a, 15); - tmp1 = __lsx_vsat_w(b, 15); - return __lsx_vpickev_h(tmp1, tmp); -} - -static __m128i lsx_packs_h(__m128i a, __m128i b) { - __m128i tmp, tmp1; - tmp = __lsx_vsat_h(a, 7); - tmp1 = __lsx_vsat_h(b, 7); - return __lsx_vpickev_b(tmp1, tmp); -} - -static __m128i lsx_packus_h(__m128i a, __m128i b) { - __m128i tmp, tmp1; - tmp = __lsx_vsat_hu(a, 7); - tmp1 = __lsx_vsat_hu(b, 7); - return __lsx_vpickev_b(tmp1, tmp); -} - - -static __m128i lsx_maddubs_h(__m128i a, __m128i b) { - __m128i tmp1, tmp2; - tmp1 = __lsx_vmulwev_h_b(a, b); - tmp2 = __lsx_vmulwod_h_b(a, b); - return __lsx_vsadd_h(tmp1, tmp2); -} - -static __m128i lsx_madd_h(__m128i a, __m128i b) { - __m128i tmp1, tmp2; - tmp1 = __lsx_vmulwev_w_h(a, b); - tmp2 = __lsx_vmulwod_w_h(a, b); - return __lsx_vadd_w(tmp1, tmp2); -} - // multiply int8_t, add results pairwise twice static inline __m128i mul_sum_i8_pairs(const __m128i x, const __m128i y) { // Get absolute values of x vectors @@ -2232,21 +2244,22 @@ void ggml_vec_dot_q4_0_q8_0(int n, float * restrict s, size_t bs, const void * r } sumf = hsum_float_8(acc); + #elif defined(__loongarch_sx) // set constants const __m128i low_mask = __lsx_vreplgr2vr_b(0xF); const __m128i off = __lsx_vreplgr2vr_b(8); // Initialize accumulator with zeros - __m128 acc_0 = __lsx_vldi(0); - __m128 acc_1 = __lsx_vldi(0); - __m128 acc_2 = __lsx_vldi(0); - __m128 acc_3 = __lsx_vldi(0); + __m128 acc_0 = (__m128)__lsx_vldi(0); + __m128 acc_1 = (__m128)__lsx_vldi(0); + __m128 acc_2 = (__m128)__lsx_vldi(0); + __m128 acc_3 = (__m128)__lsx_vldi(0); for (; ib + 1 < nb; ib += 2) { // Compute combined scale for the block 0 and 1 - const __m128 d_0_1 = __lsx_vreplgr2vr_w( GGML_FP16_TO_FP32(x[ib].d) * GGML_FP16_TO_FP32(y[ib].d) ); + const __m128 d_0_1 = (__m128)__lsx_vreplgr2vr_w( GGML_FP16_TO_FP32(x[ib].d) * GGML_FP16_TO_FP32(y[ib].d) ); const __m128i tmp_0_1 = __lsx_vld((const __m128i *)x[ib].qs, 0); @@ -2264,7 +2277,7 @@ void ggml_vec_dot_q4_0_q8_0(int n, float * restrict s, size_t bs, const void * r //_mm_prefetch(&y[ib] + 2 * sizeof(block_q8_0), _MM_HINT_T0); // Compute combined scale for the block 2 and 3 - const __m128 d_2_3 = __lsx_vreplgr2vr_w( GGML_FP16_TO_FP32(x[ib + 1].d) * GGML_FP16_TO_FP32(y[ib + 1].d) ); + const __m128 d_2_3 = (__m128)__lsx_vreplgr2vr_w( GGML_FP16_TO_FP32(x[ib + 1].d) * GGML_FP16_TO_FP32(y[ib + 1].d) ); const __m128i tmp_2_3 = __lsx_vld((const __m128i *)x[ib + 1].qs, 0); From c0d4843225eed38903ea71ef302a02fa0b27f048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Gallou=C3=ABt?= Date: Thu, 6 Feb 2025 12:08:13 +0100 Subject: [PATCH 132/162] build : fix llama.pc (#11658) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Adrien Gallouët --- CMakeLists.txt | 2 +- cmake/llama.pc.in | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 74b48d24d..7b2a1845e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,4 +233,4 @@ configure_file(cmake/llama.pc.in @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/llama.pc" - DESTINATION lib/pkgconfig) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/cmake/llama.pc.in b/cmake/llama.pc.in index 0b2b6bcfa..6fb58b5f6 100644 --- a/cmake/llama.pc.in +++ b/cmake/llama.pc.in @@ -1,10 +1,10 @@ prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: llama Description: Port of Facebook's LLaMA model in C/C++ -Version: @PROJECT_VERSION@ -Libs: -L${libdir} -lggml -lggml-base -lllama +Version: @LLAMA_INSTALL_VERSION@ +Libs: -L${libdir} -lggml -lggml-base -lllama Cflags: -I${includedir} From 9dd7a0390feffcc1f4b17eb7692a6e43030d85af Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 6 Feb 2025 13:41:37 +0200 Subject: [PATCH 133/162] llama : add log about loading model tensors (#11699) --- src/llama-model.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 0487c978b..e30db66e9 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -1275,6 +1275,8 @@ bool llama_model::load_tensors(llama_model_loader & ml) { const bool use_mmap_buffer = true; + LLAMA_LOG_INFO("%s: loading model tensors, this can take a while... (mmap = %s)\n", __func__, use_mmap_buffer ? "true" : "false"); + // build a list of buffer types for the CPU and GPU devices pimpl->cpu_buft_list = make_cpu_buft_list(devices); for (auto * dev : devices) { From 194b2e69f8da3a22395c74fd9acd6d5835437b96 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Thu, 6 Feb 2025 17:12:35 +0530 Subject: [PATCH 134/162] SYCL: Adjust support condition for norm operators (#11674) SYCL does not support non contiguous tensors for norm operations --- ggml/src/ggml-sycl/ggml-sycl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index 2984ed82e..aab34a752 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -4537,14 +4537,17 @@ static bool ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, const g case GGML_OP_VIEW: case GGML_OP_PERMUTE: case GGML_OP_TRANSPOSE: - case GGML_OP_NORM: case GGML_OP_ADD: case GGML_OP_ADD1: case GGML_OP_LOG: case GGML_OP_SUB: case GGML_OP_MUL: case GGML_OP_DIV: + return true; + case GGML_OP_NORM: case GGML_OP_RMS_NORM: + case GGML_OP_GROUP_NORM: + return ggml_is_contiguous(op->src[0]); case GGML_OP_SCALE: case GGML_OP_SQR: case GGML_OP_SQRT: @@ -4576,7 +4579,6 @@ static bool ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, const g case GGML_OP_SUM_ROWS: case GGML_OP_ARGSORT: case GGML_OP_ACC: - case GGML_OP_GROUP_NORM: case GGML_OP_UPSCALE: case GGML_OP_PAD: case GGML_OP_LEAKY_RELU: From 9ab42dc722ad19a12af80f38a06474d498f96da3 Mon Sep 17 00:00:00 2001 From: Tei Home Date: Thu, 6 Feb 2025 20:16:15 +0800 Subject: [PATCH 135/162] docs: update fedora cuda guide for 12.8 release (#11393) * docs: update fedora cuda guide for 12.8 release * docs: build cuda update --- docs/build.md | 61 ++++++++++++++--- docs/cuda-fedora.md | 159 ++++++++++++++++---------------------------- 2 files changed, 109 insertions(+), 111 deletions(-) diff --git a/docs/build.md b/docs/build.md index dd6495028..afb7a0402 100644 --- a/docs/build.md +++ b/docs/build.md @@ -125,21 +125,66 @@ For detailed info, please refer to [llama.cpp for SYCL](./backend/SYCL.md). ## CUDA -This provides GPU acceleration using an NVIDIA GPU. Make sure to have the CUDA toolkit installed. You can download it from your Linux distro's package manager (e.g. `apt install nvidia-cuda-toolkit`) or from the [NVIDIA developer site](https://developer.nvidia.com/cuda-downloads). +This provides GPU acceleration using an NVIDIA GPU. Make sure to have the [CUDA toolkit](https://developer.nvidia.com/cuda-toolkit) installed. -If you are using Fedora (using Fedora Workstation, or an 'Atomic' variant such as Silverblue), or would like to set up CUDA in a toolbox, please consider our [Fedora CUDA guide](./cuda-fedora.md). Unfortunately, the process is not as simple as one might expect. +#### Download directly from NVIDIA +You may find the official downloads here: [NVIDIA developer site](https://developer.nvidia.com/cuda-downloads). -- Using `CMake`: - ```bash - cmake -B build -DGGML_CUDA=ON - cmake --build build --config Release - ``` +#### Compile and run inside a Fedora Toolbox Container +We also have a [guide](./cuda-fedora.md) for setting up CUDA toolkit in a Fedora [toolbox container](https://containertoolbx.org/). -The environment variable [`CUDA_VISIBLE_DEVICES`](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars) can be used to specify which GPU(s) will be used. +**Recommended for:** + +- ***Particularly*** *convenient* for users of [Atomic Desktops for Fedora](https://fedoraproject.org/atomic-desktops/); such as: [Silverblue](https://fedoraproject.org/atomic-desktops/silverblue/) and [Kinoite](https://fedoraproject.org/atomic-desktops/kinoite/). +- Toolbox is installed by default: [Fedora Workstation](https://fedoraproject.org/workstation/) or [Fedora KDE Plasma Desktop](https://fedoraproject.org/spins/kde). +- *Optionally* toolbox packages are available: [Arch Linux](https://archlinux.org/), [Red Hat Enterprise Linux >= 8.5](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux), or [Ubuntu](https://ubuntu.com/download) + + +### Compilation +```bash +cmake -B build -DGGML_CUDA=ON +cmake --build build --config Release +``` + +### Override Compute Capability Specifications + +If `nvcc` cannot detect your gpu, you may get compile-warnings such as: + ```text +nvcc warning : Cannot find valid GPU for '-arch=native', default arch is used +``` + +To override the `native` GPU detection: + +#### 1. Take note of the `Compute Capability` of your NVIDIA devices: ["CUDA: Your GPU Compute > Capability"](https://developer.nvidia.com/cuda-gpus). + +```text +GeForce RTX 4090 8.9 +GeForce RTX 3080 Ti 8.6 +GeForce RTX 3070 8.6 +``` + +#### 2. Manually list each varying `Compute Capability` in the `CMAKE_CUDA_ARCHITECTURES` list. + +```bash +cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="86;89" +``` + +### Runtime CUDA environmental variables + +You may set the [cuda environmental variables](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars) at runtime. + +```bash +# Use `CUDA_VISIBLE_DEVICES` to hide the first compute device. +CUDA_VISIBLE_DEVICES="-0" ./build/bin/llama-server --model /srv/models/llama.gguf +``` + +### Unified Memory The environment variable `GGML_CUDA_ENABLE_UNIFIED_MEMORY=1` can be used to enable unified memory in Linux. This allows swapping to system RAM instead of crashing when the GPU VRAM is exhausted. In Windows this setting is available in the NVIDIA control panel as `System Memory Fallback`. +### Performance Tuning + The following compilation options are also available to tweak performance: | Option | Legal values | Default | Description | diff --git a/docs/cuda-fedora.md b/docs/cuda-fedora.md index b993386c8..9c88b7694 100644 --- a/docs/cuda-fedora.md +++ b/docs/cuda-fedora.md @@ -1,17 +1,16 @@ # Setting Up CUDA on Fedora In this guide we setup [Nvidia CUDA](https://docs.nvidia.com/cuda/) in a toolbox container. This guide is applicable for: + - [Fedora Workstation](https://fedoraproject.org/workstation/) - [Atomic Desktops for Fedora](https://fedoraproject.org/atomic-desktops/) - [Fedora Spins](https://fedoraproject.org/spins) -- [Other Distributions](https://containertoolbx.org/distros/), including `Red Hat Enterprise Linux >= 8.`, `Arch Linux`, and `Ubuntu`. - +- [Other Distributions](https://containertoolbx.org/distros/), including `Red Hat Enterprise Linux >= 8.5`, `Arch Linux`, and `Ubuntu`. ## Table of Contents - [Prerequisites](#prerequisites) -- [Monitoring NVIDIA CUDA Repositories](#monitoring-nvidia-cuda-repositories) -- [Using the Fedora 39 CUDA Repository](#using-the-fedora-39-cuda-repository) +- [Using the Fedora 41 CUDA Repository](#using-the-fedora-41-cuda-repository) - [Creating a Fedora Toolbox Environment](#creating-a-fedora-toolbox-environment) - [Installing Essential Development Tools](#installing-essential-development-tools) - [Adding the CUDA Repository](#adding-the-cuda-repository) @@ -29,44 +28,33 @@ In this guide we setup [Nvidia CUDA](https://docs.nvidia.com/cuda/) in a toolbox ## Prerequisites - **Toolbox Installed on the Host System** `Fedora Silverblue` and `Fedora Workstation` both have toolbox by default, other distributions may need to install the [toolbox package](https://containertoolbx.org/install/). -- **NVIDIA Drivers and Graphics Card installed on Host System (optional)** To run CUDA program, such as `llama.cpp`, the host should be setup to access your NVIDIA hardware. Fedora Hosts can use the [RPM Fusion Repository](https://rpmfusion.org/Howto/NVIDIA). +- **NVIDIA Drivers and Graphics Card installed on Host System (recommended)** To run CUDA program, such as `llama.cpp`, the host should be setup to access your NVIDIA hardware. Fedora Hosts can use the [RPM Fusion Repository](https://rpmfusion.org/Howto/NVIDIA). - **Internet connectivity** to download packages. -### Monitoring NVIDIA CUDA Repositories +### Using the Fedora 41 CUDA Repository -Before proceeding, it is advisable to check if NVIDIA has updated their CUDA repositories for your Fedora version. NVIDIA's repositories can be found at: +The latest release is 41. -- [Fedora 40 CUDA Repository](https://developer.download.nvidia.com/compute/cuda/repos/fedora40/x86_64/) - [Fedora 41 CUDA Repository](https://developer.download.nvidia.com/compute/cuda/repos/fedora41/x86_64/) -As of the latest update, these repositories do not contain the `cuda` meta-package or are missing essential components. - -### Using the Fedora 39 CUDA Repository - -Since the newer repositories are incomplete, we'll use the Fedora 39 repository: - -- [Fedora 39 CUDA Repository](https://developer.download.nvidia.com/compute/cuda/repos/fedora39/x86_64/) - -**Note:** Fedora 39 is no longer maintained, so we recommend using a toolbox environment to prevent system conflicts. +**Note:** We recommend using a toolbox environment to prevent system conflicts. ## Creating a Fedora Toolbox Environment -This guide focuses on Fedora hosts, but with small adjustments, it can work for other hosts. Using a Fedora 39 toolbox allows us to install the necessary packages without affecting the host system. +This guide focuses on Fedora hosts, but with small adjustments, it can work for other hosts. Using the Fedora Toolbox allows us to install the necessary packages without affecting the host system. **Note:** Toolbox is available for other systems, and even without Toolbox, it is possible to use Podman or Docker. -We do not recommend installing on the host system, as Fedora 39 is out-of-maintenance, and instead you should upgrade to a maintained version of Fedora for your host. - -1. **Create a Fedora 39 Toolbox:** +1. **Create a Fedora 41 Toolbox:** ```bash - toolbox create --image registry.fedoraproject.org/fedora-toolbox:39 --container fedora-toolbox-39-cuda + toolbox create --image registry.fedoraproject.org/fedora-toolbox:41 --container fedora-toolbox-41-cuda ``` 2. **Enter the Toolbox:** ```bash - toolbox enter --container fedora-toolbox-39-cuda + toolbox enter --container fedora-toolbox-41-cuda ``` Inside the toolbox, you have root privileges and can install packages without affecting the host system. @@ -85,7 +73,7 @@ We do not recommend installing on the host system, as Fedora 39 is out-of-mainte sudo dnf install vim-default-editor --allowerasing ``` - The `--allowerasing` flag resolves any package conflicts. + The `--allowerasing` flag will allow the removal of the conflicting `nano-default-editor` package. 3. **Install Development Tools and Libraries:** @@ -100,7 +88,7 @@ We do not recommend installing on the host system, as Fedora 39 is out-of-mainte Add the NVIDIA CUDA repository to your DNF configuration: ```bash -sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora39/x86_64/cuda-fedora39.repo +sudo dnf config-manager addrepo --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora41/x86_64/cuda-fedora41.repo ``` After adding the repository, synchronize the package manager again: @@ -109,106 +97,62 @@ After adding the repository, synchronize the package manager again: sudo dnf distro-sync ``` -## Installing `nvidia-driver-libs` +## Installing `nvidia-driver-libs` and `nvidia-driver-cuda-libs` -Attempt to install `nvidia-driver-libs`: +We need to detect if the host is supplying the [NVIDIA driver libraries into the toolbox](https://github.com/containers/toolbox/blob/main/src/pkg/nvidia/nvidia.go). ```bash -sudo dnf install nvidia-driver-libs +ls -la /usr/lib64/libcuda.so.1 ``` **Explanation:** -- `nvidia-driver-libs` contains necessary NVIDIA driver libraries required by CUDA. -- This step might fail due to conflicts with existing NVIDIA drivers on the host system. +- `nvidia-driver-libs` and `nvidia-driver-cuda-libs` contains necessary NVIDIA driver libraries required by CUDA, + on hosts with NVIDIA drivers installed the Fedora Container will supply the host libraries. -## Manually Resolving Package Conflicts +### Install Nvidia Driver Libraries on Guest (if `libcuda.so.1` was NOT found). + +```bash +sudo dnf install nvidia-driver-libs nvidia-driver-cuda-libs +``` + +### Manually Updating the RPM database for host-supplied NVIDIA drivers (if `libcuda.so.1` was found). If the installation fails due to conflicts, we'll manually download and install the required packages, excluding conflicting files. -### 1. Download the `nvidia-driver-libs` RPM +#### 1. Download `nvidia-driver-libs` and `nvidia-driver-cuda-libs` RPM's (with dependencies) ```bash -sudo dnf download --arch x86_64 nvidia-driver-libs +sudo dnf download --destdir=/tmp/nvidia-driver-libs --resolve --arch x86_64 nvidia-driver-libs nvidia-driver-cuda-libs ``` -You should see a file similar to: - -``` -nvidia-driver-libs-560.35.05-1.fc39.x86_64.rpm -``` - -### 2. Attempt to Install the RPM +#### 2. Update the RPM database to assume the installation of these packages. ```bash -sudo dnf install nvidia-driver-libs-560.35.05-1.fc39.x86_64.rpm -``` - -**Expected Error:** - -Installation may fail with errors pointing to conflicts with `egl-gbm` and `egl-wayland`. - -**Note: It is important to carefully read the error messages to identify the exact paths that need to be excluded.** - -### 3. Download Dependencies - -```bash -sudo dnf download --arch x86_64 egl-gbm egl-wayland -``` - -### 4. Install `egl-gbm` with Excluded Paths - -Exclude conflicting files during installation: - -```bash -sudo rpm --install --verbose --hash \ - --excludepath=/usr/lib64/libnvidia-egl-gbm.so.1.1.2 \ - --excludepath=/usr/share/egl/egl_external_platform.d/15_nvidia_gbm.json \ - egl-gbm-1.1.2^20240919gitb24587d-3.fc39.x86_64.rpm -``` - -**Explanation:** - -- The `--excludepath` option skips installing files that conflict with existing files. -- Adjust the paths based on the error messages you receive. - -### 5. Install `egl-wayland` with Excluded Paths - -```bash -sudo rpm --install --verbose --hash \ - --excludepath=/usr/share/egl/egl_external_platform.d/10_nvidia_wayland.json \ - egl-wayland-1.1.17^20241118giteeb29e1-5.fc39.x86_64.rpm -``` - -### 6. Install `nvidia-driver-libs` with Excluded Paths - -```bash -sudo rpm --install --verbose --hash \ - --excludepath=/usr/share/glvnd/egl_vendor.d/10_nvidia.json \ - --excludepath=/usr/share/nvidia/nvoptix.bin \ - nvidia-driver-libs-560.35.05-1.fc39.x86_64.rpm +sudo rpm --install --verbose --hash --justdb /tmp/nvidia-driver-libs/* ``` **Note:** -- Replace the paths with the ones causing conflicts in your installation if they differ. -- The `--verbose` and `--hash` options provide detailed output during installation. +- The `--justdb` option only updates the RPM database, without touching the filesystem. -## Finalizing the Installation of `nvidia-driver-libs` +#### Finalizing the Installation of `nvidia-driver-libs` and `nvidia-driver-cuda-libs` After manually installing the dependencies, run: ```bash -sudo dnf install nvidia-driver-libs +sudo dnf install nvidia-driver-libs nvidia-driver-cuda-libs ``` You should receive a message indicating the package is already installed: ``` -Package nvidia-driver-libs-3:560.35.05-1.fc39.x86_64 is already installed. -Dependencies resolved. +Updating and loading repositories: +Repositories loaded. +Package "nvidia-driver-libs-3:570.86.10-1.fc41.x86_64" is already installed. +Package "nvidia-driver-cuda-libs-3:570.86.10-1.fc41.x86_64" is already installed. + Nothing to do. -Complete! ``` ## Installing the CUDA Meta-Package @@ -233,7 +177,7 @@ To use CUDA, add its binary directory to your system's `PATH`. **Explanation:** - - We add to `/etc/profile.d/` as the `/etc/` folder is unique to this particular container, and is not shared with other containers or the host system. + - We add to `/etc/profile.d/` as the `/etc/` folder is unique to this particular container, and is not shared with other containers or the host system. - The backslash `\` before `$PATH` ensures the variable is correctly written into the script. 2. **Make the Script Executable:** @@ -262,26 +206,33 @@ You should see output similar to: ``` nvcc: NVIDIA (R) Cuda compiler driver -Copyright (c) 2005-2024 NVIDIA Corporation -Built on Tue_Oct_29_23:50:19_PDT_2024 -Cuda compilation tools, release 12.6, V12.6.85 -Build cuda_12.6.r12.6/compiler.35059454_0 +Copyright (c) 2005-2025 NVIDIA Corporation +Built on Wed_Jan_15_19:20:09_PST_2025 +Cuda compilation tools, release 12.8, V12.8.61 +Build cuda_12.8.r12.8/compiler.35404655_0 ``` This output confirms that the CUDA compiler is accessible and indicates the installed version. ## Conclusion -You have successfully set up CUDA on Fedora within a toolbox environment using the Fedora 39 CUDA repository. By manually resolving package conflicts and configuring the environment, you can develop CUDA applications without affecting your host system. +You have successfully set up CUDA on Fedora within a toolbox environment using the Fedora 41 CUDA repository. By manually updating the RPM db and configuring the environment, you can develop CUDA applications without affecting your host system. ## Troubleshooting - **Installation Failures:** - - If you encounter errors during installation, carefully read the error messages. They often indicate conflicting files or missing dependencies. - - Use the `--excludepath` option with `rpm` to exclude conflicting files during manual installations. -- **Driver Conflicts:** - - Since the host system may already have NVIDIA drivers installed, conflicts can arise. Using the toolbox environment helps isolate these issues. + - If you encounter errors during installation, carefully read the error messages. They often indicate conflicting files or missing dependencies. + - You may use the `--excludepath` option with `rpm` to exclude conflicting files during manual RPM installations. + +- **Rebooting the Container:** + + - Sometimes there may be a bug in the NVIDIA driver host passthrough (such as missing a shared library). Rebooting the container may solve this issue: + + ```bash + # on the host system + podman container restart --all + ``` - **Environment Variables Not Set:** - If `nvcc` is not found after installation, ensure that `/usr/local/cuda/bin` is in your `PATH`. @@ -291,10 +242,12 @@ You have successfully set up CUDA on Fedora within a toolbox environment using t ## Additional Notes - **Updating CUDA in the Future:** + - Keep an eye on the official NVIDIA repositories for updates to your Fedora version. - When an updated repository becomes available, adjust your `dnf` configuration accordingly. - **Building `llama.cpp`:** + - With CUDA installed, you can follow these [build instructions for `llama.cpp`](https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md) to compile it with CUDA support. - Ensure that any CUDA-specific build flags or paths are correctly set in your build configuration. From 2fb3c32a1634488a5265d1304ab37628eeb5480d Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Thu, 6 Feb 2025 17:32:29 +0100 Subject: [PATCH 136/162] server : (webui) migrate project to ReactJS with typescript (#11688) * init version * fix auto scroll * bring back copy btn * bring back thought process * add lint and format check on CI * remove lang from html tag * allow multiple generations at the same time * lint and format combined * fix unused var * improve MarkdownDisplay * fix more latex * fix code block cannot be selected while generating --- .github/workflows/server.yml | 25 +- examples/server/public/index.html.gz | Bin 1207128 -> 1219985 bytes examples/server/webui/.gitignore | 24 + examples/server/webui/.prettierignore | 10 + examples/server/webui/eslint.config.js | 26 + examples/server/webui/index.html | 353 +- examples/server/webui/package-lock.json | 6655 ++++++++++++----- examples/server/webui/package.json | 48 +- .../webui/public/demo-conversation.json | 2 +- examples/server/webui/src/App.tsx | 36 + examples/server/webui/src/Config.ts | 89 + .../webui/src/components/ChatMessage.tsx | 229 + .../webui/src/components/ChatScreen.tsx | 123 + .../server/webui/src/components/Header.tsx | 182 + .../webui/src/components/MarkdownDisplay.tsx | 254 + .../webui/src/components/SettingDialog.tsx | 306 + .../server/webui/src/components/Sidebar.tsx | 95 + examples/server/webui/src/highlight-config.js | 60 - .../webui/src/{styles.scss => index.scss} | 25 +- examples/server/webui/src/katex-gpt.js | 66 - examples/server/webui/src/main.js | 704 -- examples/server/webui/src/main.tsx | 10 + .../server/webui/src/utils/app.context.tsx | 304 + examples/server/webui/src/utils/misc.ts | 87 + examples/server/webui/src/utils/storage.ts | 138 + examples/server/webui/src/utils/types.ts | 25 + examples/server/webui/src/vite-env.d.ts | 1 + examples/server/webui/tsconfig.app.json | 26 + examples/server/webui/tsconfig.json | 7 + examples/server/webui/tsconfig.node.json | 24 + .../webui/{vite.config.js => vite.config.ts} | 49 +- 31 files changed, 7100 insertions(+), 2883 deletions(-) create mode 100644 examples/server/webui/.gitignore create mode 100644 examples/server/webui/.prettierignore create mode 100644 examples/server/webui/eslint.config.js create mode 100644 examples/server/webui/src/App.tsx create mode 100644 examples/server/webui/src/Config.ts create mode 100644 examples/server/webui/src/components/ChatMessage.tsx create mode 100644 examples/server/webui/src/components/ChatScreen.tsx create mode 100644 examples/server/webui/src/components/Header.tsx create mode 100644 examples/server/webui/src/components/MarkdownDisplay.tsx create mode 100644 examples/server/webui/src/components/SettingDialog.tsx create mode 100644 examples/server/webui/src/components/Sidebar.tsx delete mode 100644 examples/server/webui/src/highlight-config.js rename examples/server/webui/src/{styles.scss => index.scss} (83%) delete mode 100644 examples/server/webui/src/katex-gpt.js delete mode 100644 examples/server/webui/src/main.js create mode 100644 examples/server/webui/src/main.tsx create mode 100644 examples/server/webui/src/utils/app.context.tsx create mode 100644 examples/server/webui/src/utils/misc.ts create mode 100644 examples/server/webui/src/utils/storage.ts create mode 100644 examples/server/webui/src/utils/types.ts create mode 100644 examples/server/webui/src/vite-env.d.ts create mode 100644 examples/server/webui/tsconfig.app.json create mode 100644 examples/server/webui/tsconfig.json create mode 100644 examples/server/webui/tsconfig.node.json rename examples/server/webui/{vite.config.js => vite.config.ts} (58%) diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 0cbc3d640..3a29107d0 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -81,13 +81,36 @@ jobs: with: node-version: '22.11.0' + - name: WebUI - Install dependencies + id: webui_lint + run: | + cd examples/server/webui + npm ci + + - name: WebUI - Check code format + id: webui_format + run: | + git config --global --add safe.directory $(realpath .) + cd examples/server/webui + git status + + npm run format + git status + modified_files="$(git status -s)" + echo "Modified files: ${modified_files}" + if [ -n "${modified_files}" ]; then + echo "Files do not follow coding style. To fix: npm run format" + echo "${modified_files}" + exit 1 + fi + - name: Verify bundled index.html id: verify_server_index_html run: | git config --global --add safe.directory $(realpath .) cd examples/server/webui git status - npm ci + npm run build git status modified_files="$(git status -s)" diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index e876776e82eeba329b1e808cd46684e32aca94f5..646988ad8e494e1bcccfd2fba6f549796aebd983 100644 GIT binary patch delta 1219129 zcmV(&K;ggG)=81ON`D`V2mk;800062+`ZdY+sd{m`aZwHXs3CrCS}LQ5Q07b<2;?W{eAlrcI&;Wq>^ls%(>RXKI_F+-S55ny|&gG zjlb1uXOkeQ1xbz9k{}v~qUHyos133p9MxjKmQF;?mvNMeXn)lFTdlU2V&*K3r#uaY zJPaRdV-X3-Q!%Oy99v9#ZDq2cvYtM&d3QiUtN~Er^0N;9(;f@=&lgtxfs2V46)$gsQ}DOSdwN!&o+w z;Y3V@Q?wBV<4IZ@ad}(xFb&dBy#3$*-~al5YhlQzyni{I&1wx8P`dS8C8~_cPzJNK z2GhZuX*|k8s9MHJ63bv5L~rl7tbLs^!QMWm6B*yv&K_psy_B(Z1zB_<`F6-$K~owL z_BL%!c;X5&pMRaX&JK@YIi2;0V9sZ0k<+~$;II)k5ypJv5F$mI$*Akc(pBw*aJ2KLzGgx`oQhBk(^zhY zq5D6fwJRw?R;lXxe-aY7A?ZfqzIK?U9D08=NQAr-(hb?$$D)lG+6YPDyKxiuA!E*P z5`Tmv7=S~Hj0t3nVQs|dV>}WGNt!7ie}u!qm~*iA@pq?QPhjj2F88Qj58Q+-NHbQw zaLuUbW8Rpz)}l!^NTm?oT5CbNX5MR&8=9$)+2f+CCaM-TgD4ea8Ke*Ox*HcEW~C4s zHW5fkA&=uQ7^=MGC|1n_rSKdc;W>l>Wq*li45b)}2;fKJ^x~!!WKIwb!)zoRZ>c1Y z;^<)-XUk>cX^=WzB@#|fL!Ezz#*2IwU_~DT-wm5$X7&nvv$a;&Ob*Oc*B9w<;)czM z6h4i~VnJMMGEXyCkVid*qFxuxn;VfF;&RpNM}se7m^NoJPGi^(aKex7qhlG*gnvvQ z%%O5d!sl6-I;1C>`r8u=fHLog>`{EfE$%%o7F58J(bGySPhlaS|NZZOtNp$9A7L;Q zQ6g$5f)7)Ok?;Y%7-iV&<}`?!Uy{GoF#k?Gdyois-65&<`A`hv_?Fi8qG7YfqfsqL zlN$H^APjga;A+ESc!wr&CWoRnjDJT0u1MYTsFp<|xX31=cDQ$DqHBJfL3MbIK@|sk zJMTZ9zE>BczTIRTr}~nN<%7D7i-ur3LkFJ2-267P*5QSV%lVsG%o4!`Ia!g6x8*lzeYmP~vApMUbR&iD5IS1bzbu)-dN_nmRwPfwG%OL{^cVgJIC&JxzA z7|;vIE>%zpKVhfpJHu{Db~2yeEp{x(5hQq=cjDYlE1Y9jm-U ztY!TOYyYumh*^ymxqlA-^NSB#e3uq%w+AlV_kb$9K76S~_BlH*K@ z%6?gEAt?O9wx#3`%^<;l`i%YLlA_<)<1mv_L@6G=1^tsf-iil6Fr@I|@8%{Eq4`2U z4Je0&aR@UV(1T+^KMB~r2LiVn-B*f$#R~^}ay}pxcQxG3SDn)9AS%dN9_U=$Lb% z#-~o-1vEC;^Z{qt%Nbh@7Z-GUDL8U^0n5U{l1Q_eR z#A^GnYP#mWIuoY)ep7u|wSToP66-3+Ay|J+T`n*~rhjS1m?&x(3aA1Wp%}+&w7{5G(Jsb5RKi=OJX6b`T$WpJ8Dn|f|*vju=4?_jz+={A~AC2 za}_g)<9|@_$bpUCS4RuC_`YCkZP?Q0jwTS(Qkyxs4*=yo5ae;l6X7J-Bgex)lmYSS zcq;!u3Vz$g1U*hqmo8RC)lw5!zLu(z3)tTK!XRt=g7pC^d=d~z`|KFI@ARCevz|dD zZ4vKS&@b*ML3-{9a~!I#t9so%VZ{=1L7ivy=YI}acb)@+CfrW~=gx78Wu2z^QccqZ zA>JpESN0W}z>~vLEPS%=u6+`)Li72)sMq)Ln=z&$dyeD58mbU^q9f~l0uXDKB@?Kh zP@MjK!CLfK*u(XX#k%7;^o!dk#DJ4?!CKvOvDMe`sCzEf*U967VEwCeaoyD*=UBjG z9e)S_1>JqI&H@a<=z|n?&cZ;eAZ38687wPEZ8Qs;?Xw_N0JKjiw!a43tlx~px6~!1 zIf^6EB?p2Xh~^y+GeOHeSYIb}RUdMQskW%zHyY`Qd zBG;icShR)XU6OT&G;4c)?IF%;Q^BJYup23myy3NB9EO@X7yC5>ylE{<1mHIuZUAJ; z2tERwCg1JF(VpaYqdJXv7!3m5Rre*kx`xBiGUX8*91Gad_NG24DA7x`awqfv0Ds2% zI$02UY_+~EC5*8~+kne{^G1p!3)Ai;yL4gSrV|mlHdHK?Y|ZDDiU8i^ zF>RVx$WF+D{=4;Tl@W#zpji^@>j`4pQ><|^%~eVE51z&{gJ9B7|CrjkcV z0OQbc1Hm2@(xtNQ2FZ-4!-m$~%bOi6cK4d;6u7BX!+c$kVn<9!m&0AEtm6VE0eU{~V)wCJA8 zCZEm12Zbl+7z|lZSlA&@W1fv}tNoPk+@;#q*B69dE@&Dfx>PE=vP^NuUVkpge13Jk zpm7wI3kJTs2KYmnkWsT>2Hu2HHSujGhA?$_s)r)D6NOMfK^M&@P^a5E#C_zuGz$cK z2ZDXg8ekEGjy0XnLJVb66xk0U>J(W8hw(_T0K=LzXCnyR+?>AOIeC9}v-k1r{mIAe zgVUScqnnRMXE&ct-`^aa+<#mgeY!c{J2<#`_x`58ck+Ih4FnYA!<22q$1sc|!%t<^ zrL_Rgiixs|YTEB?B5G#IYtt-AYXgx(VLeZ@Hpo&0mouIKE67>zuRAbr8kXIsv8 zkLN-Y9YIRE26ZsRN02Jw<6NvHKJ0qW#p35k{U=2%92jEZI42hNg*qCFo4=#!-4!Rh z&x!^TdZX9xPrxO-et$W<0TJm0?lTVpaODiTFppCiYTEknOZGzUR6aGN`!<;etjgBBBdc6@P{}{f4wd{ zf2pFwr#6430?1b?cp^sGP{?1K9G$r`C##{sQc>U92Y*$b@e_p<*VQWa5DnjdONESh zc$&uY7uR&DSY-gKPWls76H&v(s!llq=l*izOv`H!7<8GMmrcFEiGr zr^BWerZEsB5i4TxW0_jxOY*HDvnUOw;=iAK?N4jwZnS*u&s@GH;_jb?d<|xHr68>k zv;9<(_J1=*bjZZNff6^D$SWHEs|@VK9nuk#k-!^=;l3On-fAu zRXh|EMhXobRgu{{hEWQ0o56aGh}OFp(HY>GaTU*mSa*6gyJn-S*);()aagYpms!TD zI#y1hBZ6hEK3H{Cuk2J^*+WGB?s4YsH0n1sn15ebu!-|sVv|H7ZhlF=u|$6)_=TtR z+}dj&UlgbG98T#uoYMEjDZRl{T0~$CzcDCB|4>`;SpsWxQ<0M&09HUhR$|YFKa`$> zk`jpX<$u2u{<}5nXV$F$4zvC{%z6%nLAH@|{@r~#&}`^!wr_Zn`-;0c02ZGIyRO^X z+JEk@w()njzuqQ|Hh&Pe`yh4!;`Ugqw}DLEzd8_V^lw98E^iZZ zAhs^+bqMbxd%x%6eC)$~9EfYSP5bOX5Kl#ag6Lx%eOzLvTGedpNv%{;nN~d+1B){l zR@OF&Wx5xQ#J9#k6ahoSz(lor+unXN7(s?$v?wIbGa>z0PC+4!Ez6#*)Mgalmw))r z*m}&YEL~9`>X3UGJ&2(emn@LQjTIzpm#2abS)!7DUWd-u7%mW`jDYbvfgd;uQw8wv zS%==SwKlzlpHukRF_M@>q-ViY#94`*-YcRNDf-dmABKX+N=_s^>2W{~Vfvn)Lp(db{!t%=?h87=*( zT{xrWbPWWH+zIIpgcg-`@%#=1-hxPvX?|4z+04d=jfr$(Fcn*D9}}s)TiHOsRS`&3 z-Ggj2bw_ky4v&&z>DDb^^F;#?Tx94eUAqO{zQ`RB-9vKA)>?E=xX)BwkAEx2QLmo~ z_Y1W<+Ss>SdZtgE+EewqYVxBS2|^*tk?u5a&0TY+ zl@Y%kfFkRDy}mXSE+IKsp5}AgwRAiu;;!w5x3P+2H0B+28`cte!=7zh+ZaK;<;8wHGf#dzT+S=VJ-Jz zX}QaMheMZxZnQaTri4fmJ{CI@9z`Mq_@eq8C@qz8GMxw(2vn)t=<1JlGmfSz7vqAK z+nhk2B-ORJ_5jKmcR3kn8s}v<>>NY5HN#~-);@XMFCXVcsaPDPL6nL2-^4Jh65_Y>`Q3c(79fw5%A(3t zU-GFqDKQoH$z$v7{(Rovc(JwL1MQ_a6iuOo4dp^cy{tBifq%Ha1EdzD4C%cPQLTl@ zbbI3ktwFIM8rOU%Sp!3iq&5l06U3Q$1et37ELoC~fttKvt*!muAx|ewKa6APwngXp zKJi|ZMl%+MXgsz--3qMXzFMvy$RssW58B-;3L)^a%S9!2;XZlPiWK)+f1<7QCpOey z$J212qjfNh+JEpsu=|C%ChpllAeb;1v&9R&XWNTX2WA|&eXG{Jlue4SnMl%O9@rwK zYNjkY57J4#HH&fK(bGfQe`09(x2gVKc;)f!vyL^qeS35R@uT4xGH%6@paVdd^@X?u zbaiJnZL>ZtMy_toM%z-Q zscm?dY~zKkT~mAEU9xuTRp-@a`}Ic0PT7PMv02#$m+Xb;m<#QaZLeQ~$T}E#v-Ndq zj=whm;f=Mqy?vTri{3UZ-{syV%`qyk(O%H)xBZ@LQ3!0CrtXC96AGJ~nG1Ix@9_z+ zDo%T@jepa4rvORtLf&rl2>}wvs_qi8w0%OC;SQnu<;9)ESva}?dlfbmcFMivvz1U# zpPzd}%2-?Z$>Z~c?7Ot*77O=mNC-U};y%5wNbDVp#J&I$`vT~Sj|F4n3>h0Af0_L_ zil_hmm=d3@8Qa!u$Im(2@gVAcUSd1K#M%ZfvVWi{ICCaxI!nCg&vDMaB+XckpO4~U z@*Jx8c}r_SX#xw>Y~x`?2TPbYi1 zeBUhutXa-Ya}I+j@B=Y2GIQua?SDAya^30H?t&x$12ewv!2PDo5VJ6>X+#OssX?;{ z;(wz!YD`UKBXL&~(On<`r;1W6j0Lg&1Xr7nM#wGaVQnJ9nV*HVdoH6O8YfLhNuCjP zI~6GnON#8VD=8s{YNZDw$b{hD%3%{6cqx~9E zc3K$dzwiH*by}@<{C&;0%LpZ_-RflDd-grm&yZ zTAn*oA9Ss4ZM-|!cr>Fvf{HAs^fF_DXSjZA?aF1&wT5d>{3spQ1mzTtr%Sbzf~(P` z^~{96 z7-$Y_oW$rOCLj4nmlGBJvKl>~x8L$bKAOU2%XE{D>44s7V~NTvGH7vQK7WV5j{4hF z))G8TWiZH6fku=5ipXTfhk}h&3g|0+N`yK3ETg$?286K^sp4?kaP^&VFme7aKAjw} zfic;b#&_cVbe29SWmR^AuxtnRxns0wY9lb}mT{JZ52qsCiy|REoE;w2Y}FJK*qMmo zEo$(YTtKl%kt93HH2VE0K!1GZT*2%-`NP9VVQ6_m`Vb1InasiY0R}Yo-IPJt{k-zJIZj}p*q~qmgLSgy>f;jPZF3qhpKOkg`2b= zO9!oJbWA#X|1}Hl9E#r!fr0DmmAzBo-V}Gm7scWq(Tk^U5|?9!Bt&kT}$l z@jd({!FRQ`B=)!?HqpmwVwQVFK% zCh!pIjGBN^fqOL_H*Hy6r zfe0}%=_DB5M(AAvI8cpP0!cdKQJjcIyEcn)EgRwvNUvJnCtTtvttAsav%8w4@l5v% zKg~jb&41Ia0JZ3BJSn4Ef9sg3*ZyPr(8@ z45mR|!0HhM(eX+RR0bP78cu*rgl`~X6(XR*#R!pRFHdF>Rg55u0w7@&bEvI&eRDVODwpVykL4)eLg1PNRuOFKYu~0}lz893Uq|hmKJY)iA2d#pTW5Wwhh!CY zQN3fa8IKRs4DK==l0zAXCS-jkllWeLqGKBK{qPGH*e`bw5h(BZ^ZWbz=6wgb8SOW3 z-hVvDwj3M4f18FLKqrUdXULG1o{6^nt;tYI{!q>%|Ji<{G=+&HH%+KZ#sZ4t1BytFuRT-}6M8s^T+bZy%>wb%_ zwaB6*63=NoSc);*sj7W((u4I-!hUybNPo~V5-y;T;ra9Vn!Ay+UdVjTuUgkYWX4Xt zZoZEkh;QR}gz@V8Bif7Jy3mU;^&yZcT9Nwm`B+n(y?d9dBpsHTGTJsYn9GSL!83ss zLmg*5Bg7k539_EN8keZCYnInMHk5n^Xl}>xGSB5~T&DJ@UyZ>HNPpZvcg$4nG=F1b zMPtI>X1xyO)>>fQ30+m{v|@-EAw;pazWiG%i}cwK6)C^}$Y05yKi0C0 z#7`ZTq~gaOOTPZtW64nb&}9i1KlNFXi61*H34WA*6QZXjkU2l;+GI~W?c3yRRT^C3 zNMbpJ?mzAPWFTzhw#uB5OWsc;+kdau<<xVRxD{DZmQk6o0yKCizfw zpNQAvL7@yVzzA}|EYVGQkW|l+GK(+ZXTcB#T0EX54t-2S>OEP}B3D>B5k63cwiHlD z6@EF$BlK@6+U4}>+RXfCHS<3EyjadC>D4vx)=`fI>f(wsY88fpQpH-sv5Kr(Zc`3M zl*fR0rC#@Q#k|jID==mZ|9=Z%%9!ayjm-SxZ~q{4!2IRN8#Xr9Yi)YO26>>{-eNZ( z4`oO7`uOSwE}X&D(RG&`H5#b;Y~|?QG#d1%(ST*P@?xKF));Hg=ST2IMlmR-=-jmR z_GmsY<%iC{W3X2tI!A4s8c%C*M>`Zh3+qnV90dt5E#Mxh*WWd@Lw~Zwb+&R3WN-1F ze8=7u721ikR0$#U-Qs={gu*QbNR-%ivB+hJaE9npyFb&14miubQtk7(Yy!^ZIS%Oo z0Pq~A;Iw{1z@!iXI%GBg!wQ_8opo))B+dFhU0@zM{3hLf^vb#HvptOCJg z)%GxRKcBBCYR-@;Xe1C)ufU(CYer4pQDgdU;*ZtMu3}S>N1F>-B}92bVN$G zmr4kh5^${+Y$_7)u<_igWUvHW7s&q%vH@=DESe zxp!c8BAL$}u=diu-xD5`H71qNi6+`l+L{JX*yTjS?Z;eG8}+sF9lS4WdJR2LtvKTw zMtI}w@ZrQPzJEEYF8}paYqyF*|N64EUz>jHiV2D>#Hh0A?E}xvL6_`_)8;s|(s}n+ z*Hbn3>WQBy>*V*pxJ2(>a4lsKU|%kqgOQ+XA&n^z38nIo9dj*f3Qd ziPiKmHHdt@JDuegU9LyIG zg|C99Pn^&SH08_Cl&?M)=k|4HK$#Zx=2F~}H=|`gM};q?d`p)79Obb;xMG5I>3|j& zcr%JeNT!l{y}}v*|1|-q(mVA!N_myAVi13GlnB(3d=$ivB?O;ZO<}XWT)^RJnHS9r z%`g_J#eYxO70PpREL~|km$R^BPN)yIYx0Vt@yeQ9=1JrTWTxy5ObA+IB|n3CN>WZS z3=b?q2MjY9;JzA_2UZC~=>84h#g4OnLkC4B zdV_fX584$G07q;!YZie8p^syseGe@6!^g%esegG778LlN(6 z^ncDWN%{(m4s}h&$@sm_)rP%j6M-uI)ixhpzq^66UG(2=|_s>HFKed znOjSN>l02N%R+zMFIsY0q2uoCfUeEUdOg`h#m1SCXqnyAe%N)53u{3yD_yc%(YT7^ zc;$HN7k$@m>hf@rRX5hn*tu}ITDd&8>VJ4fXr-s@vD{V9r#eE7JEK}w9b!|35A6c{ z<&g>o_9|WVN?oxQCr;H&@M3U)uPI$2V7e9(VO~}+iuD}o8uV5#Mon1 z6$-#T-ii*pj?nTaDV!% z{7!ul7%F$ct5Doz=nZhlnlVbe<&5@z0W#PwfHPxfAcW>~ZnU$i`zZInCo2hTZLONu z);f$7yId(mJvAQKHa{MLVaF8fxaNX+wwc>{9Ybnvp*piV#v-nW!PPfD#W`M^tB!_3|Q&RtwGH^pwskUt~;Szkf8tje*mpUQ}?b+{MiO7*H(Ll36o5$Y<8&YsFTc z&jIE((cpVmgI2JHlUf#_S?#5M|6~fha&~*mSF6c1W8If!Kem>Ffh_6B0iqSpASF?U zA9N9Oc2=u9-pY)A>KN2|ufQQ_b~U~RJwwcyu~s+RlD6{im@RLoXMi1L*MIp92H!@D zWR0;g49AXRV?xKscT@3tq^Bksq(aEdQ+;rp^>g87gmQK9tG-LS?>OA6@pTSjGV+Mw zq^Ogs_QosQ%fZ5$VO^`7T1{v^cR?#_d`3-PllzKP+dD1YI;IEaTl?CX-fyb7%tOdfxj-(4oJWL|VZ7M@&KLU|31)LnMfg5a0k*^VHI|^lDqL+XI-Dk zBi|*3|7Wu9Y(2+x%GsZy>7z{{z@e_R1H@o?7T?D}UMH#6%;N-A)5)*D_#E z3+Qd&N2y@|jY>!^n<3Y+pmYyxjWaE-Cyy$u(HC>UEJ}x&aoj_fDSPBmFhwnqZo5L^$0qMdCUQAi zk(}$m^x$$kbz7vY^SUmZNj6Z-N4HJrWeU1hm+6%RfAiLn+|Cj5f_Gdt|FAs1Yd)a^ z)O}XuSbwwdc&4>OzInn$tEhG=9qN`c7IAb zU#&dLNv*6Iz*ac&U8m7-fa%$yW40Z+8Rb{mHT3}*f(t2(IdVcX<_wdhk3nJ-a*B%S zn0SCnv$1m2@VjK&?&DNM8K{xt0zYznyg)4u|9_=E((niGs^KY_U~DiQ;~y|$;p0|3 zj76kR0iI@f&<_4*TyosXx$`iZ0+$STJ~m;m;~yo^8u;$-@=9JKDs2$WHNCJuL!2uJ zWV`cT4&D94PpjC^mK`8zhAZqdh+0E8yV~{ zZ+}?FR(!?hr8kI;^X}U>eX+xEgEex;-+A3ZQpgo5!dV9&;Zu6h-vHUc$dX#Pj?;SE z!=-Qov z9|HA%AuB!oEOVajyAasZ)+HA(c}zNxTcmuH?1%5HML}mD+X7L!h9VWDf!5>;l>27Z6f|#D6hS zj?Va2n8kjU+9uXA^{b%!u1&RkhGua#Z_<*|)plyJ!){VyBgLe9lN!G!a>Nkn;d8q~U4R>n=1*C3;jTdb1;JD$|~MMN2QMSEvghO59A*#;fvV%m-8#Z|K(#^5VAzK@n;R%Shn?^eXD%=&3o4X@1h z9?TXT&-K}wpL1LYDlq6h>a#T$Nw`6lrZL>`vXB$%fMUg%5a8Hw;W-2(DrmZ&`gU4J}KX1o&) z%Fk@s*Nu8JhEQ$w%}1m6VBrChYIum(b-+~Eq0a<;Ch}a`Q1j`GTAYJDwZzA1*)WwJ z(RXTdf7VP#>)ACRGqf6>G5Dt)(p5@(%3VZ8KN|(SL})A5I8u|C2%_NiH#~PITC8^$ zKxkhBj}IAp)CD{n+k`SLD1RdtmVxzMxT^c*`p;9{w+~s#kwyOcQnsp&z<2M$)jlxj zw-nRiPtDYc?3UV8{+lZJ%A3~!u!H&Bg%P)4#Gh@*aw#na5X~5ZRoUbr+F7Q8XbM*| z+X-j+HxlNO@$M+b!o2B+e4NxbTW?+?E@^VY*~m*N1wC0jl>v%0cz=^+URlXtH#WDF z&eHA_tSV464!(;KGN!tgskXj8^8rw4aZ;-VL2R;ChK#^>Gs-iol^+J7?ibD-GUh9j z{`$2o@jc`=k1g+*7Vj!E^GkJmF}4a##QMz9hyF^X-Yge6HNYfD$hzG^z^|tp^g2zg z%7G2KWdTKgyCVZ;F@I!1&0iGpSpu-eKrK&IKY;e1tiC$> zH-Hu3@blG!8K~xa(=xM^axh-${AfdE1vX)v3q$vN(&LsYXI#QkER;1Bx+eAf$-*tAIxkpDSF!%f$Fz$yv7RmaoT694n59oUrlM16Czl<$ z(Rbyth2JCEFMp-jZo24EY9~eUJ^d}SW1jGJM(;yA*OH4nD!84#$|)T^DP<{pyQ5=a zCt5!8=(|#i?RJmKRNY}oTA>@hrg}}2G)G^Ov#8M11_D^23I37 z!pw94rGsc}!Z$3dn?bzjYI}{AYUzmG)c-l|9-;GSpA7={hGduuDB{+t2(67u|WoV%s7+Gif+XNdLM(2 z4BnQRWhwd{LI3}?VLW@N4YL%UfJ{YAb!#|5XCm5c2&8f~RHm$H1xw36MzK84;#F6k z@}(6-xwK@MC2^KIo}PC5S!y-XG&k~qa40yiZ?~6os{{lXP0*`mL}+2dx*>XorIhhOs?Y zvd00?YhrX1d7O^oDJJ3*i5W!*aQcv>V%i6y$MdOGgEyc`fCNe$Jcxu$ysPo`g4(Kq zAiv?niuw(pBB7Fau73tGRs(b9BS5OwOUG-4(y$TejfsBqR|9%r*;rhy^NnIU^6kT` z+s9lwf}Mu$H$jUc)OdZg_K#6X#N68}b6fkzJf(xVe_xrqw1EucD_>o6ag9&pD$3Hur02e<(ix&CVY$~iiX1f8TM9#Wan z+6=u;JG%v~kBb$Qw>4tgeBK*7^T^1LU%J zBY!L2{`e5P-vr{5Li@AXE+uYb;`M}KLq>a*h$I89ct=*W%6aO^QM zjdz##2@Uvs?n0ki^at!g_i1+8?;FJC?0-b8y?ABB9p~4=P3VpRUg9fUw}DYde!L0Y z+W_}U@qn;$f}LkV>{=sVx4~6*-StaDLqo61(BPtqrE9Ikje@tO1-MaAwKVTH3U-#J zo0n!Auzx$$(2pX!hdzrUR3iF$=eqi>vb+N2?#!E?!Qm*P|%kxyTOW z>`U{Bhu`Vf7%dFU@?30G{XY3%1G&fT2X0FtmK&}4DQnZ;bD3Qs&G%C_rsYC5`u+Jo z*XHKG)23AfK;hTeG<{Jdl;lEw3*&wITTC-T5q~B03j?V04cN-Y-!Zr%iDw{G=3}mI zhdie)NjY$E8ttv~LIDkwOmG*B%Pjr@K&&zLXOQp7_aPA61G~d?kZ*xXcOhY{Wm{u5 zSQNO-imobXnb&|&A=3il-{K0p`=UINI-N?k!vO$Gyq60x2w5e`)2cUShCnC^cXC$T z$$t{=WNuZH%SLRmuD(n3HU6(%w@Z>%{*#N=Y8SqVLz80`*&(8l6;eJ|O*o#}#LNoP27^l1 z!+hU?hg}`glvxo%`m6|MGn=BZvT8ch5PvX0u;t%bJ_lf&U#4+NQ)dyG<(Rx;SZYN9 zng}$c%fG>)t+v7!0*%&HK+%ROV3ERhOfjtmS*#=OK(D#nZYiMDWr8>=#pZ-;zT9Op zcsaW0f)$y~!2Pj~9|$n37=)Q26}g`ZX@yk=dx5P)c+5fhekgSmcZdF-@MKa-oPWhL zJVvFVmI8V(C3z5T&C;GNlg{E>kSSer~PuV9Dk#jQ%3Pnd2Xa%s@KP%uQV6G#0CO?i4pCWl(Wwn z7@L`APJKFN+LAViYVU*I`#>9bzYlCf4m!xaesv2)#|(VNNqA;>d?l|@-Lb2f*I7eJ z*nQUS`sfpjUu6wnWgRs9>#h%(^X{>+en0`3bbhbh@QqEs#dMEtb(UN4uzv%3h}zT& zH1HvehCDqj*;i3Y(yC0L+8w-7+8qK$Qyi1pEfYsO8(ZLP0Ao8nY4fzt zX8B`-P|+#&NPl^8AfISKKG7jG?G&3YH-bb)e2a>Z&k`}hH~3m~mWXVWuLjf-b)c5C zL#VWBfp-rEF_)uVp7K?LEoCqRE|=1J)TKz6h5%cX9YVR)B1{8zXb)$JcL)tT?D2gv z^qlv}kk5oePr>STz@_KZ9C{%9)N{6_jPK#op`T_t_=jha-ha$>6blptT_uBci7`=&w0m(x7xe;8_zl81BbRZJZA@9?RIFp<2g#5pSE9m&M6#h zhqhm-_J3s@I<)=TbGAc>ed9UDNNCZGmIn{3C8{SIuZl_QY~XZtI*@k^76r7kslL@T zbY4J5Pa+Hf=E|zq_vZuGU23T;(c~#mf%+@pY ztbggyf)}^qp>%FhaBwRgOy|PR6^6lmH2fRcOL@~S`N}I`YtAMBR2UIws*zf~e?4W4 zju3xGBg()l^GbCf*^lb8MO-#>da>>wlmeI0rEY2f zMf70R4QY`3CoqPkX}~!EtU&krr{$g+dVfA{sO)|c3@86u7yji&7KDxvC=WY?`kmr# z%H@3?8eyjsuSM098E}_Co0&xH3Rnjb_|G`DB7+d|7x)KkCA|l%u0?gFVC9GS)Ugbv zTs|Q1-$mf>cL<$Wds%U65^M;rzq357m=>cVV#R8&+!ZSpd_m|8XJOJIbZT8q_J6wq zzi^|Dv65+r&lKy}q^`(gPpT-Lf=IZ6~+pKH$XC zYN_^oK3|Jk^}1ejxY2;a1$?j188h54oD-_8L8{i?n)z*;LRKaKy~6RP21j6?uYeVN zX=sJ6=5z*7PEi?hb9*l9^?&x3`Z7}2d|Dw=+3w>6n}k)Du*tGm>HtnavA^vT3wq!~ zZ`5rGIKpkLU!hRzvU(Mek=S96Xz~uu41l9;{(<0zZ^r~0Si7SG<7_{MH*Ml*NAcbXEmSm=7+Kuc zE;F~tL5&DPi}yf!sEy1O8^p_KsI65Kk1w>tyF&$J=}B1O# zxHePTMyKMr9YCR^P#iLKwDf;qa?}y(`QYdFyh?4iWd(v3bK*$Nr3LoUiZIY>|6hIf zL+?o4uYUO@oxDcsXnR3;{iVe;ApGh#bq3p_XCYfGXlcEZ7IgW8&m?ef*H&IX^ZA>t z)%Q{{KfeM0_7Ip8hao~^qv+zqkwGoYs($eaERtR?tCBB%j>MN9on?Q9w_dMb#O_H* z%(7iwcc1w#rzfC~h3*>&-A>)p4m=HFsd;pAZD!@ZO9>ErF7%onh74+889fZ)b)=tk zU3&@3FRXeUYO(abI>n<2Y)O8m?atK&TLkbXG@D6{(bDIs?md*6TDfhtp6yEJlJR?G z*H(%icB<~vlork!I>CQwKS#>vIlNXZl~5T-DYf&*(rh_xx{f|Wig$VPSnse?9L%FI z@9S8peV1NiUVarw4WsPQ$4=#}sw<|rzqVr{37-Az2(5XiK@u9ImaZMGapr?kbm0oq zH#$CJmR9Bf_4G;t_h4I~btdWJ@+M4@hBDi;NzXaFYB?iU?z(unb zl4*K?v(KP*!)pP^%cCJ~^CtNH+3QO_HBi5+o=MUY4C9VRzvO(bIFE)i(1hpr3O_yC z<}%anD>4G;WvQf6X;Er7*dLk0_QJNm7zl6u`$&Xw(Vu@i>@Ns)d)fHFH&q)YK2Sul7GZJi%FKDjeY?*!8fJ_S_{*HM`46rGz5tS%9?-= zE&P9!rtvI~IE!ZsrA?YkRdJTeuV3g$*XXTsTWwV`bbTkybB|V2;AazBtfrmCGf)+e zXNq1sQjCx0)LpMB@6pn!jmki;iFpFQG1^85-^pduRCk?*6?0^BOO zeie-QRT#E>?n&j4Qy+Ykngitd)@h>l3CdGckmg6o^NZs|ts`XORS0BgVZDA7x_cqT z`Pd8b*zd<~*aC7>^$E#MzaTfcMQ-XGW)d~I3CmU?H@QV_`XH4zDkI-{NuB(2Y~z1o zkBi(x$5rL^nrqM^ExmM`FBj(O9bpdx=jS7gX%<;U4@5{e)x4XE0YqI_vmtdM2McWF#t zk`_qA^wz-u5*NqZik8}kA4bwldEx(&N6~s6lP~>J#Ry6Zq5|st!)KSV>(~$_k znIuT63v)`)u*9GD+H@18bn5F{pwbUOK@q=>?sVE|VcwOu6QyYwzPs~n{-bDcdr9im9xIvA&b+% z{lkY~1#q7R?tVGm2G6H~D<-8>1Bg!px6rYt6_1Z9*>J)jwU4UOR(y1RF%7lk zPgF~F@)@zjm{_V}@}7_72~+n%vbWqpt8TSR>5}Qde^vbonv{PVQ1%A@W(#=Z?uO>Z z8uDnSZz%Xr^$lgNkKwOe9}4b|iYs7hUjb@5R)KCC<_>e1`$K43fLT2Ww&8~Xm-cw+ zK?m>YQ<1ukxs~zaHJ2OSVkH12Z%;oh>bW&uQYc4%kWV!>CfYppPxnSYe)NA!eWCva9YHULcY*d>DA|5c z@z`pyus^1yM~1HMTG!~-K4*C8NV6Y_alx|g+}tQtXs4S2&Z{WnaN=?*=>|T4odJKt z^=&e3)GBYn7P`Oo=WLVEaN=fEQXd3Jhz`fhQ8ot3KQ5e-b>u-w9*yFu{UAx_CDE7r zhPCAn!u)@|$g4l%Yj|+#j~JfLqQUY@2pM_A2gjHDR3`2MTWK>wG#* zR(gM3uOC_5K+9}bx3EbR=rJB$yEkQ9;dkuDbjW?Ddh`y9)$1;#J<%WfPIcy8r8DoU zoiT&IVK=%5h{&TGJ>3oLDd+AHp*NK&3w&315F31 z`4e1%pjSTwi&q=Gf=bt^V55%hVkftzJrP={?a))fL~AJ%YG*+%G`n2R^dke#rOev$ z7iEUZID;{^Q69jL?S)sG=~k^N%SOFV+g6q=m`?>e@~a+_p0rZ__w7Gd+c=*Jwr_vK z&0jR?wMK3m`JM_kv)8-!hp&t&_w~P+K%S_SC&jpNX`dKFQrMHF?rFQxQ^D>^1y-7X zYX!1X!Gg}e>*(oUx3T`$OlB>^>{G#ZeI+vx1tLkmq-^a71fM9dR1-tb*^%gl#xF-N z6zfj@i~*{Vg`#_e$KT+LAJ}Jl(fxl=0H+J~0Ri`eU>D^lA})*%=6e01aQ)$4um?fU zi|~VBJHq`y&k23V--tO9ikbaAbU)AsK`#g)gnmgi?Eb($7~s{~IuZq|9KaJITy7}n zi7?7oi2yKG;*W>IVvrw+g?4fcH`Xgc9)g08qusRcL>%*o1s2 z>UF@9vZ!8nPXzi(x9o=I^UOBDLU|i^PXw9IPsG(9^4h{#eb+q|^LdDlYeK;iQAlbM z(MyD@%UKQ1(P95%UqiIQk%1g&}j!D$JY@ zdMzC4Ru^K$`auVd;Lzx*%lw#gw#3up-avo;hfM56Au~8ax->5pBJz~ z#aQn|s56mvi|TcCiz9zw`4iEB?rE_<&N+wpI!f8DfrFUIa(5RZgKG13+_!t#IE{K>KM3}*gTr^r-6Hk+X{9?QJr}EW>wR`BRy}{v4yR^Uu$>N~fxAKl zcfpGPGa=;hnGf@}tM_59M)g6|>mMLfD1hv)swKJ~u&<>TU0~wHxfimq#kBl= z$swh>^Faz<#xj4G9MhDs!W^4J`91xN^K4CWceM``I8Ys85rri>fTvcXYDg;d2CyN*lEK8*{`!wHcm%=FN;jua3Jv1W#!J@me zNv$SpW(Jfxv{eX0tB_UYwB(|D2`2#5@w2izKE(3*{1Sh|D@yh*adR#8rCvV(4$oJC z1`ot@-v=xa;P~U0e0G3IM2ismL4bC_XL>0>so;Z!DqX6JW6yUl!Hwn9n9`+WzCEToSP=z4Z$B5EP4doG zMFu4oJ3oIIMPiTQ^McUC>fnMSl;^~LNBnzOewg#oa34WqNLS@?T4Fr_hRhP0?Rp4j{&Gfe}=Ef*>D z2IeWt#|~e9*YJZfWD6JXE&*S-M1;J{3%JfE-5Y-ZQw1f4MB9At4*C~dc3mY!1DxmhR>{Jq1T|0Vy5de6u7 z7`}hAR;$&T|CROo{oUu|f@zC>(e+++EvquEUE7nMV%<=s*7Uk0N~B zp^mL#DiZ6_LCz9%%7~4up^|-8dEjSrYCl<4op$-p1EVWa2Ow$~fi8ZK+H- zDR(I|fd}7vE9{=LNmGg>4(|l=#7Q%q2uN?LNAf;($if?2t}#EM26Hh1Zpn!cieP_i zaQx6JNn9w%Kt^%?^q8%)kJdQ$`|03F9>hU5FP5Np!?Cho#21O5KXY=vbPIgD+Et7R z{RnQajYnX=(NJgw%08Ys3Nks*dimFyGoSnG>)niv7YZt7q>FV}CR#yZMxnM1s;`zT z5~>0c^YC0-X^wXaem2K(spG2bM$vyKr1Q+Y8;yNZUp=Q>4o6=y6I{02P}m>p*Gh30 z#93lyyl`*a>dLORhbql>{ult-C2G%-*t0C}S!R0ns5{jvbjNr;-@3E)I$vL3tmw?r z!(4s+EYpvrUvyV8=SE#T_+HdAXT8tqahS(~C^1p7e-wFhKh7%Uu9c^t^hAFbc-G0I zjXXuCd?->r@MshY6Qr-N~OT%;A3x|CPt#EcBs#y>&YF?G`0=N3V{2Gasv^k*Eb z%?pWfP?UJoNTX-J+H{5woweRR1BcPMrT`nXuAcF0s{YhP`iwUkR$p$lEczK=UpM*k z@`cWUHhVh@KzG%T*vG&<3kW^LFJOR#oSg+lhd)$ak;0czHFXNd8lQiXTFW0;JPYzy zMoJi%5BR3u;Cm77y6{l@jr|l&d2%a82x7GxAFz}%bv{|}aH*I!)OcLb0iK9K4XsPY zR|C)(9poCLzJ9CIek}T5=^cMM|8l3$n8UK!i7GAthE`sjQmStO>nUnLqs~(IFe3CU zb^XXz3Yb_Jnje{kUSogkEU3P|_!3@UyoCyY6u5;7@qy@Emb;|oQd&i{{#fd*#tD27 z2-@Q=y)K+X1rRw_GP;FB@-Zx!Pml*cR%*f3F|=OOeehI+UT2geJD^^=xr@NZg?3t< z>+Y0}DJ!o$0ci2mS_=7pxO?~Rrjc!5^#AiINCwwO+9|T+I0=72rrHA&dIg$bNT5l` z$Fh1=BIp z*9&qzi{ayiB+%)&TkyqLQq0Z{q*}^+IICLxzdT6vS77apW+lev> zc|^|dpBT+qm?XS%?r`YZKEv^7vw$AcUjxHmbIvDa*PoR9TYT~4$v@*uF~XO6wwmsD z^~(64oC@!8nnHHB~bmhy7ar6DO`97|g$1;CG#F6}ajCr+h3P(uJNAwt;6yBcD za^Zi0->p>O7_!=%hp*ng`uOT_laa(G7*Z*Q4N_(!_RJ(j&8-HFhsZpAmy2k%Oyuu@ z5MdcKM^B8Kkqtcqtdw-7+6yVuV1PMHl(UFitZX|3=oQvjOeCs_PBH?`rTu#hJv*B6 zXzYK*B>3D%*QX7M(ya4v#wJM{GW8%*fMi6Q*LmnCaU$qv+MTeu#|QN)D?ZadZpT+) zI%Z&$%qFuR;bOcJc2y^VIKMU7!o!#?iZqpkKde}hE{Yq-vlg2Cd@F_vr+r|pob@Y2 zGA6ug?Bg96N3Q~+f&!e)tF+bjWkS!w&a!_?4#?9$a^}YiCFmSYg_NVjeLN`Tio>G# zDOUs41|}zlMPNtuOTzbf3SN`4mR>&cGSEe!D2|9m) zqwI+kMIwbay6|zM%9Z)-5raAA=)E{f<16LKn9QzjHe0O?Q0$39X6fQa^C3?M)NwSe zPh&Fjd}fa+65qJ%OCrc(vBBxwqSG$+MG12{$AzLa9QrU_gZMT1l*Qk~@h>~f!RN4^dxq#QuoTNk(ch)K6Kt%4FYm7e?^RS0shd&{cmUFTeW~ z_-@H-L1to5!s`=}=#+~zb31`I?J#q^wH*ny_X#}ZNe^#^0KuR%sF5;|ZU1}?-bO5}f@%gvsg)<-|aixGsxl#gyVw`|0m?LTJYskg}WjN*?GO)wCRr(=T(>lNG4JidY05%R{*kpuJpnH`BWDe5`rpAAFRJ=bj3XUb+B zU9!)V%{mtw;)pt~SGwkn!ZN%GcNwjT6D?ri8&^uTY@?1X6ZOH{pH+WYE2-uP#!HdO z&lqQjx7d*%s-Fn0xaMP@&6jfVCG~*+ITlU)EGpmu`>fs;WP`k$Kv8yX-j?s2v!dsn zQ!gNPuDPjmelFW~{`?4rS`O_FH2&NV?K||h%u>ycsB+%>Oi_HuCv{pVQlU>s}SNCz++Da~ciJK}%&&^u?JkyV1yOgT1k7^x5ncrXn1eWEZWAChiD=N8j_2#x){ zSEiyMf|QloNQSdklzDWPwb6o1o(R*f%|nL=UUv5y}U{N5Z-uQdZI_7q3VBa!Nrn+yRR|=dGL_Q z*@eqB&ixylpWAor!sF|?7(WaaJ3?JIzUPWUR5R7A&SsV|YC>##mpsEgyQDn_EY!CC=BncFlUp9ckT>a_rLU zP70romGpHEYe#=9J|;<6!`eCb*|}LcLLwKpWK+(CRQG47TYfY2);1ff6n2j1ZB}?k{&Jb5-jPqnC?;QGB1NV3xvE5x+H6gkq;=|`#;=DXA~--Z z)aP^(&+SP(uTP@h|3a`8RBv;03%}@8t7q`sox$_YbAb0b(I$beAV1 zk58SU|I9yQ7|yv$?mK{$0)sCq?>d$1;n%+Sdi-zFwG*Jea+AvO#lD}1; zYtPHWDmZ_uRUmiJQOa*pdkg77JOV#zGHr)?+HO)YZ{Uf%Zn(5_dU|9(sP5&M#IaG0LRw3@^#?o0aoT&c0Yq@c(CmI{XDmoI70n@st)6zahC zg!oglS13U&I4;?5DLcRTl3uE9mM?V5-*1FD`Idk3$yCaftD@EVmbO~?qJfQxu})y; z5-(q{BXk!$QqOybDbE+-k!}lzGH{RK7hu%Ui}BpSKCWc7$BS00gl|B#hiLTB&6L{N z+Q@uMITB0VPs_Uy8u~45YUsC=HWbRhJ#8a$nu4)*-%_55me!jwnex*VJ_T=(#!QF; zx@dp3CQ~!2`oXtUFWQIhT?`8@X55PACoEV2b2+$Y537^X+0MA{a7FV(8>2> ze^ncP!lgEx4@m9^@c@cPjCqc9yB7!<@SGo}LRf?2RL-nhw(T2h-x2tVuiY~&U+{BO zHF!SVKN~qT@SuNHd+Gi7!F%cb_@2G=e%v&*@5gj%p$yzJ zdr5ZkZ|tJ=SVf7tZbyH~u;~yKi^B z+Ou}otGzpS*B=YAyYAtITCH;x((pT6oBm+LoGZ5Z?C&yGQk|(qMdXT8e$+imEth|u zqf|3g_*=`BObC>!kkGh3^>0y2p@$U4KKG7NR&P0BUqACBt@P9xhmX>Kv-Bx~Meb{% zXqb{8UA~^SRMewLfk;>^Z^20FFRaXzDyhqrzKsxeE?2De$$z5&{FxKR1{52LPm>Gc zNG=8%+6j{(SHV$=u|{&bcU!HsvN3VbU53Hr28fqmjC2-CTkS zMo8v~2g?@Nw$tfwEF8+TNl|~;#g&VeK47;eqBRf#F+~UxyQrJ;peQU|IUQ#huy+9< z?fYn*xt0EcVZoFs4$Flx11>Kz0JK2!4)v!LCZHll&HY5C)7k z8=Na~^M8){XJIqs#`1y-w2IyI$+)O0?G#bPXsD{^e7+u6OGwKaZ5g5xhZVyGMVE){fdlnR3jjZ6LXY z<4`&PI2#9DB;~t27MrHhClXXlrkt5=sj7u-nF-wSb+yxNX}(|#Yj(g?Y%deDdEk-k zxmUGz+s}4)b_4X1@zp5CVz+`vp7vD2&Bm%F&zOA7EB19F8bPd9Bin78HllX8(UXa1 zR@n;U<zd!E3tVc7AFPX?N)ThW_Rq^+})vx+LD>OB{RJx znN8p-6;K4O49@=6{t~sp=5bi4b?d%Hd7V+|9#Z!H6cm40_<82F8I5@EHVHfmMA!5_ zg~)O}_3l%#Vg!)ZfSvI^wz@0+h*hP16B2$FM&iL4i+CSjD^qLDmP83yBFYI}vje!{ zwixmlV05SaOqte3^DG>w@75~deII%GME4Pzb(I4Cn_3y&h(oe7e#ZNvPXnH);Iv5! z$b_)e0i%D(>;mL1v(^NK)JY1FaBkPINn{V5%B>UNt{GUnW>DWXgQi{MDzxnvS`UCsRHlBLvBF%@A?)u&xJ$+OPUQ3R0Q6Zf2HQu-98gY3(`Oo zR+4`>gWoUj2-|p zc`PR>F>TVdijz0+yIH*C5tBSPUfEu{h_a`nzebkVTC5k0zLN4AjkW_P!`Ohn#uW55 z7ND%u#l$XKPv6B%XmwqWqhg7{S{9G6GW1UOu~ z9Rh$ZWG1z<7x}i?rI+TIR5cTdLd=?1kbv^*;IdK1Q#9A zukipsbX_{`yNBa)4j#N|!Tt=^yY{jx2%35;&yP3qZ=o!K7?k#H0{{PW0zifxPCx`k z1}#AAiFVp_xxWu|!p3^4MH^n*q+Y%lbe4;lI~ff{3<%(SqG9}d4Q@~@oOMKYYYC*31X(pGT2j6@XtaQytPJ8C^wAAr+;Fn#m{f%l1P7`sx@jK_uej? ziGg^U5dND=1tbIP2pyhUh_J{v#(zUJ@GY@;cCE05ddp=}TrLMz0cx*pQz+Y_(gBJc z0VM4WC`eVHOR+`^+lFa)gFSJ_@s0B(GNx}9M2s8zmNR(yj8>A(#FU5SJmk$FL4@K^-ZE=6WMsfKn&LzHIc(!f* zW+{DSeo!HnW!!nIM~jAqmofD;n`%HA%N z6243sh!17DI^$cS=E5$&_U-cfiwcre&e1pP}T@jk^CjrNuSxv zRlc#3(KS?vDu{m&Re%tcC>hH1EWwT?O;T0iD=nLAl>l){?9B_O>8#qml5E5!$=Lqi zwKvVzSZ;PDOPbhNvz4m4wkzU#0C1cNFJX~dkPN`y$>0FweC~I1DD?12O{{4&+GR4+ ziQhQ6iKLMi3CqZ+zJ#zZVkfl}$!~#B;8^E8hGd=`IHG^dnXOz{w$Y?%w>D?88$fOZ zfjwgip>jalu@^K-cM9yf5) zuWwAc1CdL5kl~Rj%3}?$o6#q1`m*i||&!;G?N|K8$uXuf2pyO-GyKKiP^J_zyU8l^a zk=7S9$qBxJZ-Nxq5O+?!zy@MabNH1mAI|5nKVR*ZOh2<{Dm zCiFeDA(0Yord_Y>M$wu3y+g+*TXeGptOl@1?fz2rs&JPTXipI%^k+b__I9mbkhmC* z)dGF;V$Y`-M-{WnW@J77@j$}(xnqC3g&dA$!k|h@V3`uYDo66#Xj5U!(YUbRkz@G` z+0rUs!{Jw)cw-Sq1VJ-jO+CN+vye&Ba-aPsxVVhEP5jo>V3z+&t%d%Q2IoW)O{*Rw6x=Z9e8^cr00`ON8jBJed#CTpBbI-9>+Y$Z{p z8KmL23z4Bs5(~UT)~_T*-zFT?k%4xwQ;M2uty_}KaKxCHUAZNZ^+pYX#tZ0g`~Tpg zD*0`Z##h<_vS3x2zEnoz(G-7w%7@~YWXQyi*Vl7Q()&FXNTllav`h=crKg48#y7KS zVch~mI(eyBR`n~BS7M)t>%%mua^ViDZe(duC>K$2&t&dZAE_`S!|ALlhN{r%&2;$c zr+~#f1-4SP{0c7sw>_Dp(YSn<{y0hD*c?yNBHU=N*m>v9F*7*Fgl~WNvqt#v>~IgN zOIEDth>NP_h`k>*jyV0^Lr?vi(u3vG2@cks{k8dO?3PszGDS_ZzxGwdZRwR@mlPX_ zN>vSKJG=8_UeT51j+8v}tokdH^RV(_Ka82HmLRH6fcE_N$!bM|s1~nS)-0-hZV=V7 zx~Qi15=GyxORL~^t?_?lYtpG0MbV(QBWE9e3+nr@0qVP91BhzLZgo-$7W}OU000o< z;L^19ciQy=m^9W@J-dk22-p;Wd}q~63z}ETTTsK}uu0%CsX3GeVh71e z+Kl~)5(|%~+vBTrx)^8Uw0K{n+4yIdfVEWsHHoN_6(B((f}{bJ^le1Qt%}8bGu+&Y zw>D2Uw*VFTpOdXE7CZ;Hg?Ni^9&K(_)+;`P+u^2y|Nf)1wPh+P+~QlC;ig_)u4ZO+ z_hE2$_hE1}T1$V_xLi?i{LH>25$>z5aC3BwwwdwyHnT<=PN_O>A;QcWX z#P=`kXQM*bR#V_qYlghSzju3!23!P}OjOt?o*^M`*u*bK&0F`yNUqI4Mt9HLm;dk0 z+~Wt%+~a@K%xNQXuSW92zdfsu|KFTdF zBEgw|l>ByF9?z;NAQjfnVnimifuT#k_XR?@sR<1}43Yfv$n^(v$a0i~^6 z3d0F6#^`_R(M^;`D!8Akyfc{~gYFO=Bz3SfgPm#vZIJnd)hW#T&-wR5viz4aAnz8wgOQs(~mA zo6U1Rq7F$cvLNUU4!$ySY?q^11z6(ObI8xOkiLJl)K_9n885@?0W4TS`GGs0!Sx%L z@2eseeqid=-o{{p1F&4e6}U`=)Sc?gK~LXkvz&h%qfM4%BXCSL2@Moi%8_2ei^5Al zLBUU^UhMZKaY*poGrP)?0kk#Gq#n122@!HXgscfMBIm^-^;3<_5Ti=K9o26sjK~|I zD#e`O*FS=KL=8>XhOzm) zVls(a?X(bpoZw82;f`IE@r*9zJJ)coimHFLoHVXwQw*1F;`?ix1fS2-#bH{Ezsq~S z7PD&{F-F=#O`q~eOn~aFsh7;-y4q=_I+i`BW?+%)uTFwU>844?^Rf{FHs8Lx;Bx83 zDgz(8;~jfEno4*+yT6TYHERocg6PYZtzEadnhh!3VE|Yq4vqWfiFD#{eAUoA6ZU^1 z^+Xg@Q3j+NWBn%NIK)_sYKwnLy-fIiSa||7g^XLt>lB4r!9&#dw-O zDi^@UKl;zDWcxZT%Q#QB{_}spFMJ?*HYr3GtQ7ob%*1OsyBgHlyxEoXm|bUQ^|K&&#+iXK*X=RB)cQknZf=V<$!#$S)) zxpe}|dm&)A>Nb4PM`Zi8FWjwF@`vO;T%(-ReiDxO^jZdPL#o<_cho$b_YHH-vjWp5`y(;m8i)zO^1< zb3b(C{*`U-W{41s9#YcR4?Tam0K++_f|q`SnKyt19>t|sfnhbrzJvV4vpuRI6jD_z zvkNlIe`zrX!AQEQT4?qnCPl*6+sB{4v6q6g2}Y6kLSeksdFTilhfH;;YzgJ6#- z1co-QP#3MNCmy$-0(iLCt8E-x6hw~4XjyAx0#jw*Zu?BawZC!U+6Rc84t8t;>hN_+ zUCKmW2_4t`71R>SC(jRmk1>=93pt6L3TqfeI#p1uYyPQ7Gc^If#kibU#z`m!%5@co zXaRzWvN4$U9JB@(-9dki=T5NKQS;N{|CO_`Kt9O9;0YjLRjc(A?4RnLC2up?do)za z-qY+edVW=*x_3W zZ9w*cp(RW%-f%Esl^3xLGkGCazWBDp`Mx!w(%?}}B*r|U=Q6fp!a&Z#l0FtcUb1P9V zQf5urL7X%JXL=^%b-H#P-P!P5ht~=0e2#7yOGp-3?$G;q;wDL3@LX_vvEc>8!F_bcLo}b zGe7jsn&y$6i3vQDyl|QFYQ5UxDm96>8}$a!L$nOttCYNOpLVHH-wWMcIGn!(*htJjtwS~V*MlqX&-->jR@wm?-pe80~64E^_NSNu5!72 zG46Sd<0Vu*ut*?esi9V%c?14pyj-4(RW)E4o20A{^VIY19l!O8n&^H-%^fA}K16q_ zXQGFyXQI2*Go-rv)F`p5M)5=M@4w8P?Z|79VZ84%wMW6TyOfw3dY|$$mhr*A)(X(f zOXq(Gn_fuZv^w2jXFOIAsWAn8?G3{3pf^D-b70zj2HVLpbOx8C}(zPV#bPdTlMUqpm*k|4ur8$3Rg65p0tPfVCw%_y0`v{L1{D%x;z2sWb zQ=icq?a`JpY%P008y`Z0>{{25qNeJ|Mka4PV5!nq+X3+0Yp6%l@ByBXBPz982%Y4} z6`+m(3l01?d&AV!q)X3uGT7->0rpQOo zI&~IUDQ%^+YqHu3#jj3m8xY@yFC^paUlP$tGOPPEAcqUh6o8b)8rCoypt5(cMd*TUMzpt6CgKk&Z64JrAsZj zZ{Mob+G^EjB=Xmj>8O!RCnA?Iu~f(b*CQy5ycjo0!3Ys-Q)0cy#Mt1-Lw;iM5=`B` zU{ka0tGv{T>5LCp!cE@uXTC3{5{zy#8imf|3Nc!}s72|6E_U|z#l>EGM?MO6WFZJS5m&pxGg<7Q z{Y;euAQW-g*?GDzOA3RwD1fFdS=Ihddsmj;+u7YYI8YzM9KGs$Xb+H|L?x7b<)CwL zupg**_Mbj|y3>{~bvk={ySp9v*8bCWaB#2>Bhj&jVy}O*fABPT*4}|J+CSLs?CtLD zI}o8c4^}zPfl!uJiMc3bI)upY1!0cIdeCaYA6&|Uc}2Hl{fp-UMLx%n)(riOA!J5T z_4&~A-EG}=wzWp0p@^A1&)UPa4bDfFPX+jf3760lXc~{zu7|^faNAN?t(4oQm(G`z^u*QkB8M0QCT6RPGLj+po~m-3U-wYsb%c)@mA!Gffhc^0aVWYo_=*>F%D?03G zq;Y?dUZ@fOwQ%uY$qiEh@ii)3>{q=|(HC4|zh*7ohIR;PFtd0%zlrY<9hRqqM10@O zW(6*;O&s(}v&ItMtTO3hIB_W=dmd4O33N6vk>JCjM39Q-ghR~r2Nao-#3wheu*zaQ zef9=u0)zqpu#8WL_hzE@hHAdR6m9%SH@AP+5zp`KkMUy4RWe8;TrqvcA+j+C5o{%z z8b~?CY3*W`r;AZqY=){w0z(4PT*TS$96U|aXxv*I#gR1m-demp75s@ym<&d!-Oy4M zaacFJ5h^0HKKAe#v}zpC#>e6 z!vVdT#ixWH0anf8;z9@p5NP177WxO!$GhPmFtH8w?0t4!L8wjubk~iPUNCnpdD0*E zE972dnVk~McWr_Z4nYhY-Kytshq=#3TPQa!f<|6(!XEK0799)Rfix0Be z1Ggq1D{+y=P}kX5efMl!`>r|#b;!zW`f@UcG%XE=+)O>Kg|W=0L%hEz{ndwsh`&Vh zRJW2D0cVAG1~J1qIxuG7m_GOcc=+?QSloEvp_4b>yg0j*0fXbrJL8zN^JbEN%HV|o zhXPoA1l14xfm=%i>bDB9#csh-|025No14{rf|GjJ zd&zR?!AzmDD8VePLcMn;$gppJ1~pTNQW*?}$T=hNZD4pp1&!D=z~H|z0Fdbox#tFQ zxZUxFY6XpvBfZfu)XQbR)#^9hZ6=n~v1E~3l&9Ku~Wi||Ab7Z@zW zFjYP}B?>x*U0FBNJ;2!R^|zyFw78zA@fz?!Z{XbPt7u}-q4yC%%$}QnzVCPYagBMpJJ{se^mJIvCX>xp>)pcJEX5DdXC%VT z-B*L$uqYv~S5+Gjxq9IEMbjitx{d?rnQyyItX3> z%56dBii1^C3o=*u%QQ*_NWIvIh9-$?t6iaOd>|Iw`Lq%3jc5||J<05AQG!)qv=UAT zv9G$OEoVePtW?6Na+womj%CYrb}R8Hv+o%J9wE}zsNj}|&;Lt*pC(^i_aPmDMBf8U zIjT(t&}S0Dw0D<6NbwI}rEjwlTeR+1{@n{@N;j3K3I9HoT3e-S4y|NPyNctSLyR*s zJZW1!pz=;pdOmYYYNpk8AAvMXknQMrihr`H&mcFBv0%PbUJ;N>OS<&94{N0*b8T7f z)sj;d`x2zGo*@f=;aW5Q_P9LMQctV3;SuYP@4Dx(8zPBc4ZWMfSNd2`8K*|6Y%N6U33p+(QP)3LvD-1EJsy`Uv?JD@`%JW0 zOjWDpMF4K2H*zo1mwY2Y-tSMaotkrN~z}8jC(*P4wD>z z0$*}GNfM!k0KJ4uFB6TiJ-A3N(UdF&(cT=O@A}}x_?PtoT3DVgunt*CUC<{x8MAYm zj*ED-%}u}68j4Cn@{&Gd@R^YQlLtxv$vx74a=*$c@q4<1$(`DOP?tMIgttC8W3E4U z3OskfJ#?eJ{@f|>+-Y8|nJ|cKX!)~$OcyT}i(;Hqi`3i1hj@5?PCZ%H_nX(ZA%bKz zqtRU;eI!zEb_~nJE(6UEGZpLqJ8e*_7bp4<o?oW=LcS^_#2$ zqyi!lImSt6NFKy*-ck7~X<)S;fpyL1wW_ePc`aY^2Ora)n8_KDsN`7CdC1mHzOYe# z1cRB+>ZZ#3y!2~90CiI)&L0GSi62dgl&$<5H>`LAKN)$#7HpR9vxB|;0HYJM5iH@j zG6xZ^wkyf z1HBd1+@bhjB2FIr<#^Dd_hBy%ZM(c~3AoUyEDJGut*ep5A@$aVc$nCK3_*#6!BI9I zTq23*D$x^BD{?QLN_5zC$~%4tet_sBO+=7J@q=i0d}Z-h;aV`(N(p4(7~W32_1*wA zWl=j&)x8Wn$1R|t^wS3`>4d3VZn377W_tsW*M)_>7LXHh;s?i+@4kX9=NLq^3RD2GC)0S-iuD%IfDp44$r65B^eeL+)UN6tZ6i_36Vqtz>WQWFu;9!Z^lDJEDm-F17fk+9If zaVyeGCx)Am&*B3Fu#D>B{ml=F3T|NqR zN#(~IX;#&mOUSe+Zdi`Nu^KmR32b%~9w5%B9pqC{|6S=>+N)q~g%vtn`Jq=kcIqxe zBjL;59D~B{J560%Dx9M}U?J-O#c$J=HBq8THt}rj*Xrry; zY4@Ulb$i0TyVg3k-hc&Xjj-Vrl1Wi*=0)oX+j6M((K_b%t|-%D4f`3_UVYna_ zCvU-z0C;UBQ&5t{|$9Q@*`=OIf0^2Ux|ag0hzEdFnQh0@;b>N1z`iiD zs#}9BgRn3Rtphy=7Rl5v@f6cE8VQ#r`ch`itBBLaqjV)e7Qh$iNt^ZIzcU`N5+XoA z(+!}1E?9nnI^}NHcwwG`A_cSo%cYE6x=QuOHaPEKWP7xg`wYt^%VoB%T%Si<8I+@< zc?Z<@TU_2mDPQWcede8}@PL>aG+R4?C(!s)8B!rQZ#?k}87r}X2|x^ss@2-s0_UI{ z9n+Ni}$*T0oiuKvHp-@;?^zo;X}STNPyifu>T5G?n`7 zkA>g;?B+*k#KJjRkxq2bQ~sQ<6{Wl9bSJcX=hU*wH#bA;`LkB*eEUk0CTZ4!ThuOB zE8u9~q}o!RZ%Q6_bh?hpu>*-i1lhiSNs(^HI$oOHq`q*mFg#>I0;JSBQpIsOi3k~3 zsydKKGCe83nKL{I*a^uS``g6zH6k*BkoA?=+{?Dzl;W9_`4wm>?CAc;(m#3SO<6 zl4kcHPj*OhUz4_cpEsv!jqiw3`VQeRzK-7)5`-(|7Ydd-e4!`^7=8 zBFx727!%Nmg9phAB!wjmo#@DaN)fzT)wH}nRlt=MGh_fv<|H(;TxiGrash_h+4c2!@#{EA zi%-*Q7uFNSzcuB&VgVstGEuiO?^?&f^>n%X0vWMlU)fB>ybPx-=Sk63UDkbM!zrk% z3!bx~v3q$*0sc!v85Bj*Tv=@o*`d9z`~5jyKMEUcUh{yK zzRQHH1l{a;r99}etu57z>LR<;5^ll^Kv81@9(5(tGcdxiBz^;n_zkCgKvtlj>eOxJ zQO7CMw3F>OcK^Z~s{tPTc7oFi~rj`V_@Lc#-$U?6n+h7R;88|$0! z667z%%0I(@m7g;JX6r^nhEDV za%W9K%AKU|MLk}vMj7w>#w zWf3&DDSPc5lPRIqLNcdfg&jG+p(A&`tpm?HJ53pX3^9KhOd^Dw-q`_EdF~><2j#GG z6^_}Q5`{%1fs6epOxQrC24np?RjSh>rj{p?anQ#}=Q6YlinDjKh{1yv?o8ur?Ep7h zV5U*_X6g-Cq+S0dv)dC-lX_Z6*(wzwRxGR06%&`9<#qOJC27xjw7Uo&S{sUM2F zYdto9rwgl`ampO32Zvq`sQXtbY$ru^Y;VQc6uZ&vr1+u!Q2E=*R06r}KD$l4XS;Vi z<22$zp`#}f1mZL`9*H@lB>~SHToMruoIb#4gu0tzLk&sIOEGLJq@BnwF2l`D_^7|i zMHtV6H|72s5`io6Ugy0X$Yy5ki+XY(ShTr+(S`qowsjiYM)!PmM<5yQmUrOy;CdpzRx?7c`JU%2 zdB6j9x7uF4Z?&Z}XVY|F=7JoQ6wV1K(0KOK)?Y)8bke|`;BL4VZm_0<=Dgt~kn z-qxReF(oYo|Nc9P=}KvM^dRm#g9xKX+fNAfS#NVQbUSnR_tfX)_cl1+*+Ijp{Lxu1 zuhK@SaCm?!e=KgJ*{B<8B?&vJx@#fYSmsh`NWDrMRk&BFtHY&tOdU8@S8#fl%1Kvz zUCJSi&s{CAE-v5IAUHOTQo~_?SEu7`$Gl~|M1)5Ct%YA9Jb<*)+7S{!8WLzCHIEK9 zQ8L%5xH4r2d6cdQ*iVDxrMS4vk{y*(fT5I`X3<+MPjTZc(`dh)jzaK3&3qTtjF5z( zYcUD(v=%M_*;+wzAZtN&D{{kkTM667O4xT7d*5FbrkSg_1rVJkb99S;KiLhQJ*D{v zHMjsCY^Tr?VoRG-b*LC@J1oFD=EO)I1G6Q85(Hka*x|6_GL_LRU&AfD!lkegX}BID zYWDfSxJ<5j|9aXT@K>c2D6Xea+pCgC3|I!pv$Jugj`5tfJ%VQUwG(SZ+8i~*Hh-LZ zIfgdL14Rqy5gaFdKg0rmVy7qiJI9dK^K|Yd;AX9n!n@EM_NwFqHl zPay*(1>cun&EczwABtDa6yopOnoEJ$eaDvn0Mu<%IYtWsd(tiTAU6Y0NuQS99&BA7!P3{r()~ggOq;(SM*$~GOrEc0&oeZ`$7Yzkg??f`H z%C}iDu_c{pGwMe@f#7$gk`b;!caScZe=k0*Z(`FxRzQaxua2Y8-!6+GCSER!A;({? zjA@BgbXa!68c1S)+{hn@4RhxD(7D`tY6se3Fd zw-R;!y55k=dG>y{6WFS1{!o849YStPam-9=&L|V9fr^DUgz|tC{w5N&M8kCw^uGo# zm8!u@#gMOe45@{yXjXcuzafcJ~mPXwtHOYN6`1^mdsZ?7kf93J&x8 zsb<~S(v&jL*L0G6w~?wkt$;istCh*}tzV|=LlsV(ChuvIcF&6ue#N;N6Q<^_X&%_q zth2V<4w|NU&@|0Z&1{b!$BWVSFda`=R65Dk569&kT9+0q9yTUkj|=B^AIiU+O|x;% zMhhOWSZe!!e_Kdda>@ht4gUKO^LJw}@L3AK&LwJS7W06;LzK@U57?Q!{aRKtgPU(+ z-u_3x;<32*5gnMzq4+hBcVFV&*Yej3sPW4L5Oid@;}RTIPf9S)XpKKWUn+0vMQgtY zI-Kyh+(2*3<1#!hQLSUP$l=)XZIP;)(V_*C7Djk~^{%F^Cs)((pB<8jMYA#|r3|_| zDfy=vWb`~K5xXK=pxHlIF1>;azu@ikyFl?MO#1Zpe)s}$#o=J_A@00Q?DB;{h8t(z zUhw>j(i&Prp{e4*9$0F|h)kaO%-iswC%y<$i>JN}9*n^ZDxbAl-n()MfNK~(xZ7&I zh4-(2roPV(CDuYE?9roz=&POd$tf370x!np< zOTPeHx9uy}pP=`x`(SA-) zV=g?jJ;WU1!y$s<`f3e}iK+PcL^L{o@Y!1lNP?Ra72T{-Y{|YapXyLoRLF}46UlZ1 z2ORaydtQ#iq=uQP1}3tBiEdz`8km>{KDdS2TAPih<8qWjvduX2R5KufTqg*2I=ef&zKjTn`D_SF;R!~-wS(t>5>sI+ zx`4AK>XTz=Cw*aF-pYJ|y9@^xIBJfkxmvch@-3Y_V0$sXPG{BPD4t${MK18JW6L8# zbVf_Ct2I5`b$SRvh&#Ih_KyHrgTf1sE(rI7WFAl2-QaoFRcet=`^oDCqG|E=^XCz` zL4d6@`X$FD8iDSO|5vgSNsl0ZYczyULJ~Evy%YSB_1Zf@xO)Isy9Yto4)7BGgzaad zz_Xno?4+GvvR)_cgu5NQ3xC4)v;E*dW_w=t54iH7-gfXDpsXJ{O4&W5wAZjenx&G? z&NEPRDSvgcbRCMydDU}BacKM84u|yAJewE{PPGy50)6x(aUzK{!JBY@P|8UD4Y508 z{(1_WSw-BLuZF@+n&i4f$M4rlv)g+;O2zJ(FJEQVQrSGp^d!o63+)pDYF)~rLUs? zxl&@G3ca;mQ=l8hfa)8635~_P($q6H3UHxViyJlQv8zCjss3CxDd@&V0*GC`xE2|x zJIqSGYUT&Gyu{LvTl~K!Lk54|mCU6%OXLO!S!(hBiqS6>k61)xL8{OVp2uA^rGg-! zi(UKq^Qv21RF}Xjz(+E|OuRt(6k_<+@ejZ!bj2c)R8?kNBgxi($TlO+W^%1}Rn{JH z00Aevqcre%G<9V>8Zd~g5=T?!`wGy1{plIkPtOWZ&!&?`?_TTRYC2Wjqbz2G`Y@-j zB#D(pFC<&j#-*;l4H9fNp2m~O&FyHxE2jAQW)_~z(~qV)v9S)5}BA}TwG$EbNcU$|-iwrH>tDcg_<0T-T( zBm^A%XECZ6iIN0&02OixjV#`TyzPVTbzp;kVm{i%_Z)8x5en@jEorzJ zgf9axb0VM}OSn?{!Awy@7_1Els`zce3(S|JCr}y%r~DfbT1)pZ8S-}}M-9a5DOak8 zDz$Dk&kr1AIkiiC$*_l;j`F5Q_~0`U_f(gvZA zEIlbWIHS{lv-ksSkhq9e`YoQVs@O{TLr&piDR@bzX;?mL6QN9TO=OCa+++ zoy$&}zq0Lbc>G$qVN|okh%2}4RSt?7G!Mf-7gPRb!QV>l(6Bi8KoiuFm_gZHT;;>7yNO4o|- zI)^|BffF*37k=p0iGy6LNyOz#ce};hi||A|HA?)`)XE1toqMM#iy-qnoN%Y9hMh{m z0r-r6VQzp^Fgu=gb!4x@!JXK4hJo>RI<>2XA^#rT!v>8kv{_Msu9FPNV1<;2zol# zEw&4|s3);PG*Y=LKl2YG4^S#&zZ=2TXWw=VZ-)ck$D&7EIJ&ZPp4e*n4KJ}#)#PqD z0!I2UEymyFvih}{UE_Gu9kg7YyIb$vQr5o&=GuXP9E>$t*cgn_i~rn*IFW~R`X=Rn zZ=kOO-RqmwnhIrTmI@e6l2@<66GQ504pRtLKTLu6AQk`-Kz>_rb0`s~EJ2^NTE~!S z&>-O|E4b0}DE2S1Xtc(0O3IKBdRW%Co&a-OF7a@7XZJuK zqfT)LjFKbU*JEl7Wd^+K)IMt|n{^|AvJ=kn*AMiR4veVh7S zH}=+!utlYokd&dK@HgO4ozu{K>@^Ll>FU$nvCI}kw$pw-PxlX`dA-;ZAx+eOS}3VH z6nhFwyXqR&ia{sQl4YK^B&O075+%YN;11Q>83 z5c_bH>KfX6&z=P`@rI+jfhWsl;@>8Ycv@c}UFi(B=)zLz3iGWbnY%TAJ{O^hDxbXq zdrRT7la4nJd<0&)F$CV zodGXO;6#Z&2PeMX*;cy;3$GgXzD%~ZLQh#s3qQn5P!l)`6sQS^soAjd82^xZFG`Fs zvzAG9zZPTvmjdj&1x$>rQ_v=fxGQjUUyp4gcN2~1w0+-LtYBJy#M(Pf&2Fx_cqHH* z2y&-(YCKN00#+v=v7;XcmZ&V8p@MGz`9Mu{Uujv-_~4>1k`f-L{H*r%62bVX}S{b7$+$OP3^7&DbigVn5XKtXo2Jd{#fvVZhhBW zN>7QD|Dj@^O-(CkQG%N5q)uR4E$x{XsSYL3pGZNS)dmw`oWVaZ&Es%I`(&koC(hbS#F*R%1H=z(+FxL_THVSy>0)iPAkHv{+O0bV0lN~Khz}#Yi^-Rd$Lc!f!k}sdIdqC?Yo&cm zJyayrpv+9JKy7^dAROg{$iy4A$wrmEJ;Xp{9Y?RZVO6AUz^R%%;UrGv!^G@H@3{vG z*BQvxg&4pB2JOuV8;*l^JXY6*7{J&Xz?gwz9tIG9A|zB#S8%QHEkF-9ZB@Py*@e8ktK?5PCmo-SJcq4MqZ8&f5La!Uwh3W{j?9X}kPd9C<*tG$?lT4cb$GyVDMy?#M6*Q4}nOg#QY*AUmPKlDAd3Urtr%xvS+$c%lW#wMED9KJM@bIbtSMcCqY@TyC4l;W z0r7_$0UKk|k`Pij)ZUi?z$C&~{gz*rH$)iV3BnQQ@^c0MQCc}Ya+Yt~@e*K${Uh+i zsG)D*IT^@}fF%+g3%eKKlqap$PyEi;sVbU_ccnXl&tmP+m)XG}B)8bQxrRhp+tGMB zUa*YkUbY?0;~Pk}g^1A*P?CWH1RIop?|~Ju;NJ@`!yH?hD~b7U){3ZVTH~0P^E*pG zk>c(myJ5`7qzJS_V%__sv=jZ-3HDhAL2MerIab(2BsnWqlh+5w4X(+0d5HbbefC=* zu!Y42u#vU@Zk^@4R%a(nL)6a!@}O4ty0YB?XkFX{xee(oa-OKqv(u4S6r&P<*QBto z$!zrQi^5$p((fjATt9O6xAI|_G5RpvXtN<4*mrZS6`>9AO1?y8)p}3aQ2TQ&&uv{8VJ{&b^9RU>a^`S zN3Ec)k&2@%(kZ(RaC`J3k&fGhli`EJN{imv@!3qUT}<{MBEzJ@pERC-yWL<5U0#;C zQZj=B***w7D~*$z!lt$zwXH@?+3zu($&d`V-Q4!SOjwFKVbLjaVpxH2XT6 zIJygCr?g<%=f&82(q>ibN#(OXKG>1L#EEO0H!*%^{A{}%#YKA6)!}~1e?>zY^!mb0 zr5}3osub|&O#bD4pXv8_f3?y!TJX}KDTFLsFjdB9F9JP|42AlCfqp0@%sv;NHZ~^R z`M{63hHaAZvx3mb@vXgaAX6~uZ$|49NPx~YGMyQ4k{^bdpl)wqcP0|Oh>V&`G~3d| zHYnkYmLcLvH*zvYVUSAXs3#L1nba(LUiGSsOcxXRQlxLL5+12@BDc5lngc_p!pIdR zbIGKs#z-7R;pOOmJOqD;WU-!N?lw?NB!>3Ke0f_I@!7aeDBJpwi|3MpVd)ydbaRjW zU1F`cbtUIW`K2K83!vud@i`kI1DE?syg(7b5iSbTKs^T|`()eEqvm`1kAmc zS`PX0`wBXP28fZqP zgQ#@Axr)QcAR;XIqJK?qB&3$lDr@Z&^cSnd3M&+H0?FJ>6P}Xk07Me=t3rfqXQ{cB zs+CZ=eiN0mE__{BD~d#(ymhXPR)PM78|@YSLas6HY5n`G5CZGEhTXWY;n?h|j2T5bHDbTI z6JA_OnjD*4hLxpFy|rZPuyBB+B!zvcD#Rv^ujgU}Fu*7*w(T1$Itw>@hA0pwMe+rI z*2fg*VtGmlmO>e)Bnu-wY$&^-T1d|MTBL_~nfgyzHAoRoHw=CduA$~*CGMNhOa24# z7Q|gU{t6yFX{%?`MLf+XDdjm|PD44y?V|Ncz5P`mm``gfQULVJp+r=@vbcGt}3t;aFXJnnVrRKaC z_$vCWAfEKG%PMV(%tnZR^bwoW%#87`^EX06H2d%rd~Ym^#nf4*sBm<(Cid>KI9Bd-nkC%&#ZO)mK=}@07x|; z5e%o@3V-=LZ#dd1sUlLdB$39zM8$NBc_?~a0fQcNgG-# zK(^&4gY8k&goS%@vJ%`&;SA6v*9ejf(YMdzUKPgVlZgylm7iw#VJ(FDt(JU1-q&fV#ByPQwP!_=!-fL3hbCiF2wAWPHBpF~q5R5Jz5dy3x7q0jsa_2zRAOZA$`Q{@$-Jamuc`~1kr;8_Q{2y&n$D|{Ob0R5KEG8VRFjT*k)dMXP zotU-R zhOuPQj`Bmq7YPnRjS9ZFdNr|#LW7T+aB;JeISL%t`*Bs&DVKl`0F`(At~}tpuM^Pg zFWb^fQp8h#XmkP#XhGtn*`f9Jj7R`1bX^s&S5B@{bSnIbUOlW0Bee1v9;t1AwPOEV z)F`B4EIW!+ipo2?JME`WcMklfoSy0<=o+d@BFyU0dUv&AHxKwCBJKeW+E@d0RMre!GH)oR6F#5JcvB|q4?Q^uJ$ z6Hb}{@q*c5lv0?ajfpo%5Jkm{E={c1^(!mUVpk>Y`&OmJjmQr^D_%?{p7`hme1vaq zy*VAc+ZNi&adzWvZf?c?*8jY`z>mvMU;a;M7vdXGcmsthaS>mtRaAhJWi~6WF(3>s z)S8-qf|D>t1LqDq@(e_*7X|o|K{hU2Z>x1#WC}Y^nMTEhVH4K*Sb1B<+|QJHKk zF{EEvt=QL;XG3l`GRG`2CG8qQ!ds>trux_>wwmaMH zO(uA`w0Iv6zs7m`F1}8~O>s_M&8|0B?CT!CB~^TwY@1)Yx(}0WdD&Ruhsk!sZCz9# za?(-~qZ5=R#rP^cn$5nR8V|?X?L+jZeIGAIYYLpCu+HiQh+~g+Yh8u-(5=dS&&T;<+C*ETGwIuv@<`u^MNr-tgQ!87y za6U}7*F0J-lf7Ca%3o*D>LM*ic0ZeM&SnceOtOSEN_na}F8U@I?{qku4#$(U_}yN` zPr!fTN!IRk4zh#bAb7G9?Cb`+JNuh|D{@Rn(aEb9FF!_yuYUhH7`#1={`q#$fAKat z8Vr7mqUW2HJi9-Y{O+PiK0cLjdX7tA9-s(99GNtp5Ic9O$#xpmWIIw#2HpILfN4(PdJvevb*Yz= zPMRyzD3o^WCdmqmT7}P^X*A7^Hp}?tCd>Kbxpvv!FiHs{FfEGlaB(aE=TN0t@r?kK z9j^YBX4(YT2lqL=Q`gPXw?IjMQ!jxCkI2`yZN9dGpTfNjxz_kEaIK)d{egJQFqE*( z4hP4mdUbh^b&=9E&8h~P(h{z#gOu{Q=&GC-rEO^NeD4`FUQi!<1s|ZD46Gy|z-|9A z8&ADWw&^p2b8r9wHHO0nqJ%z~YsnHTMDHh6IXbWjR(XORO4(V9h$5~>`gHmjr#G>2u53dW{o4$zaB(wYa|;(4Yxwqk3` zuXuJ*T(TVGtUO&vY7Pm1Z@p?eDsiA-Q{HD5QEJfp%3V|}zYOm!C*W$(Ihweryf4*e ztf{^J?lNnuWhV7l+Kc7IqG_jZplYPH+Wfm^=ALJZTdD=J89%K@A!*7>o*R~2QoA# za%ev2p?O?(Kg=b6#6-$r=(_p|Wg1fQgFP-SVw}=n?6LUlV2{Js*kZ4;7x@26{Qni+div^ra_jLw*kVmdRpvh)|AS5W zKmNCOv3=RQh@brVf2e!c^|p~DLG*t=1q7>AfSrU0-U$`NBa>2Bbz7<`%jKRPT4RAg zl7s~UGysaGNj$;%bA8SGuh;UDJzAO0+e3)Om{!sK1WLt-Tgk2849`u^~3_fiL&a)*kr{z>dB3 zXn52G)4APlc^1%Axv}e@EM@ht?KQK%`emxAwn}b)5S?7x5ZRK)uVocSa>X;KNIuvj ztT(u|M)=kF2Yq`3BXocTD(YU>O#OvfMABj{9^0?SA?+Prog(-v-zrB88k`FpbDSrNege-?*k}4nVp(ff1DM_iWpJ6*6vm5)v z3zKVqWp94G%}?8d6gUc&o;+aSMb;jyyE}K{VdT+^RC{C*^^R;CGOxkEeX$Xbyy+J& z9)El|)VL=aM_KdZ`NNrhxRYA#OWnLMv;DT`qHWQj_D}|f2ZM$j7}$^BU;munv&h;| zBc(~It;JOXa0hfVyEpCyKcoP&ulR}LhmTHw;Cq&Gyj^GadJcxSe36b)*5L4K4L&+S zrM*XJk3sDEg=(uWhS=bPSc4mc4rAebx|kJipX@%lSuG|M3}WFToY6S1_rx%wC66ct zbt>Z!pTcl%UfAlHa_xMoUCcm2m%qcIc+tY~LpFkt%{wprV!y1;Ucaok=y!zA*e!p5 zh21Wlbj~{UMWu(|G74RMRa1u_!GK zqP1%A&O{rpqO~eZR2S6qSBt%B*Q{8sIrnGty?Q@E;X$wbCt!qsxDO}%MRw1ZI&l{C z)=%l)a)=kD}tsGiP_wW7H?UxJnO*uv{&tw^Qlw^)6Q0ZE8Rfh zcdU#U=-$eR7qBt{Pe}n8v^5?b=`Q`Vs^%463sjrN}ud^3!eo7kVt zQ$=%iQ~VHKKohTi9$wzuUK$Henfd|cZppsfsC7N@WI=Y1r9| zL?;VRQ&l33A|Cl#k!vo}H1;Q}lxpfcrc+gCEqS)QC}7b)x4i=7pQ-wpYtI?+ z=vf{o)aqoOpBeXs`b>Qx&`2aJ1bp?mx8w}k_yIoD@Rn{^6xk=3bOf=6Tz6SojBA|9g)X@CWUle zGP#qCsxY5i?1Wyl(Da<*2vmf{l%vjjoc|;#siKZWKX|_}(Wgl@XK& z9}#X)?dMZ#h#;b$zo46UT?SCLQN*!Gkoupe8cKnJ_cOHAq;@r*h5)nKdjBq=Jt?yCnuh^ zb?{5eB?2Q_w>feo9t~2*y2+#fU_hV0gSFO%!E<~cbzM&kznSr7~lgD7NFkw9X{XA;_XlEj~d+6O(0PENjgB}{oG9`luWefjIF zi{a(BFUD7wq5>s+CCK-TwJwkKK^wBuc_ZI_QS8rrJo^9`>R|7cRlO*$g;ncN!e&Fb z^M<)J;o80yf1}qYzIB)iu36B0h;%vk-}C* z`Tg}P@IzOi1`x8>**(*`{r>uuc1>>d4CZ!gZ)Y@BoQf@un}KRt5#32KdbNNgdPV|2 zNofcx1hGB$t~~WZT)0XU1{=k30pt=T3MuyWNEOxse~s0A5dz2>fc77+_&bd*$U-Nc zJtQcM3%KFl;Y!Rll}J!AEO5IPkfAPK{{H%v^+1@s6#Ys9ww+e_l|eX(a?XBrD3!JVWkcpTgH(rrOhW ze4X51Op+*ArNH07-zbw&kGJKIGF1s_lIARwsO4uWFjzprA_HnD7op;a7ID;ayNgwl zD%iiW_R~4CRc^GH_#yRJ4G2mZ1d5*~3RAzc&lBTbC*>j8)oCFC@AG}-6vo_keQoSl ze?Gm_$r31_D0H1v^YpVwiq2B}=1rZ~*)m3qRyo2AxyPO0gJbi8MVLE}rD-RI@@qiB z%97y$oSgh#na0tgvh?#zh3Wp))QYi?lq|^{tvVU(TU8F3d*YHC( zSa~!-8cx>(Y@>)Pf=2;1md)DV9*;wy zzx_KqC4n6pH1s(94^*8*c350f?*?#BvF7~!=9FMCj)S>x!ABNaN+d~P{$f2!)h ze2(wLqPc9jk+xenOU<*-JzS?jWQ`-@-ANzn1Xn8mKqs#FhVCC)-i&&xTAs|%wPAUv zkwkH-0mG-;=c$3)43@0y*MR?9<8Q3DZ7ns5eaCKn``kB5I7KJnH&oJDJj|=Mefl5P z_}#jOTC?BVc9R^p?FRX&ZJXp{f7>?em!+ypC8Y&G%i zFt4db5r;JKp(_W4n`&;ngIV(P72sv%Qup9e3r zt2UELNBZFRwiU7U{i$tzZ0msJ^MSo>%N(Ub3n)o*D=nJK3TmbfZnE)4f75&t==M1T zzD>u$oj#yr@omk#tEJ<#c(SCFh=1qTqJ3mCzC=2per8h=fZ{Y_%pky?I8ZKJXFvMI zE#?Zbhd*}j$lQj@#?Lz?OFLpxh(T(ld;*ccmF$9D*h|iVT4i)uxuCrA1x0A+0Y|gc z$r^AnOaPT6i<6W2$qB@}fAYu0NbXn-hLBE9v_H}-m^&;1CoW3#0M~4C>OUY0kfu9} zL?=m(A>rAAlro%Jf@>nenydh>2>$b>lThogZLL}b%I|cJQ>}HTSKb}rdY_zVk^RJ{ zg1AT|>1@ORa9;=ke7nsSidNR<$Yje=&vcFv{X6?_ZH);n2(2z1e;`Sn1a@jHkn3Wk z)zLmx71_bKen%2JDzK<#=$BJ#7FatY_kFwtf&kZ2|R+GizT}>{tb^cSdu}UUz7`S9Jt#Z zQR$9)u7Vm=DmZg4`)i5{Sts;vDWP$np52Aeg-Nfdvo_^Gm{F~v&KJqM-&*ixn{ z6Y4rE2nsT%%DemL@9q^4{5UQM*pX~;g0-_rlxY+M(OPkoe|Pt%@9u@nn@`SA-b4!U zSF!Kqf^QJ_f#HF&WE74&cfuLvqVjzFY4nBB8TUdEG`=H&t^SAlLaurG{M~bYXBVaa z@$U5bDeg^CHh%Zcc>dx)jz z_<2HSD8ysxA3sr+aWruz!A9{`C}VJxiQ_3t8oR(#AS3OEGetYzrkM`ZwtRd)`nk+I zWw)lle~eTZD9B1fnSe{nuk<~X8rrFR+*N&0kOr3cNkB5n1+-xfQ~t?`&$gM#_yi#m zvJ1Qz|GzQxgIsw@j}!_~fS*g01JofMka?r**P?rJg%BvrGQ~Owt$%N8Az|Wf)&uPT zcZpr39W9Ur-Tz*q{!$rqUhvZ{(f)@ZQE)2(e{kBcLx!Oaa(>M`ISGwrwA6Gffb}v| zEP&&Oj=@F6L0CYjRa(NKTgWTe2=0eY2r$XH9mP?80C4?5!l!jIdE`TmoU~JU-{vKl18w6hI+0zp;ut>Fal=M($e96#-e~Btyt3+jI zK_!8%e`7<>ctg+14Z%5*n_&%OBkboBO^5*$4d|S(qnxELMu7!D>mlP=loON#BwX<3 z+98Vv4b3d1eL&3UgHpDnQZ|G_c5Nr}u}0Ig^|*e=kMEhjHj=qNO(Cgp%{I@Ze}S## zd&FLx+x0;@Ufkh{WlYb%wY7k_Ab1D0u(%78GNvU=lQ6dZGkCPR|)D7z{pD7d-VoGpcMQ{ z{#wLYux)h`MFDjnQG@C^siXQK&ngtp?6LamFSl=0qW=0j{(bRg_>)T1(dDblH<#+& z8PDdc#WUv35qIpd`j^W$sDO=UQiTqyFc0kCxXy(~UtxBxXY;`D{A3w8f14Zhas^!y z(%iAiqS>#W`0)MesSj_NVF!He&-T9F`pKI-(vly}fOXZ+{8_m*&^;E_cw?RYq0qH* z?JV^(zf=DHilQT8!oGAmPfWt8e0H&R{FHt3F@EBkk8$~%8|TrVImIwtxF)HJJ(JR92GNH&JD@z>`P0@GR#Gf81OG6r!{vBoRn2 zd|4@3PEF-D*p6eSCr#LfP{YSJ? zk~wk|V2q~lm8P1`$Tjrkg;p-7Q}71W3349mISql{iHrV#t-zR~3U`L~3>j#Ubg6C~ zVn*NH?eN7bXA`Ybf8LQyp4_Z7Mybm{PAiZwj0<9T@X*n8E9z)cBk)v$(wkzce+*I; zS{}(f&`ANksRX^@A?Ou{*x#R!WL*|yHoyvr>?yu9MRf77=i=t4cwHlqmX!5fi)&^so#PoBCFilo*Zi2$$cmBA46Sz&x68oOk%%e16p{K^=Q zSUBj=jFj?We|I>b3z#?nh&s_wZkC<0JYAzX*3ehr8ea+=Yce z2U~!+dkAmHPe_{{=)@;!vDaiwNdQH6(&W8PNx2XqPa+@SS;2F{c3q#zrx_1t^2cwT z;;;sUVJ9p4(y2`jte$HpO1y^2i!p$Ozso=_EI)x|PXjy-ZTzUvvC_Z!JPk;J# zPaw_FH3tCklC`+oY1*|t z%Ar6ndj?(0EDGp#?*9(AFc0woOA1pFH@t!oe_51w_k45n7w7Npl_)OlFIy{;SJB_y zlX7EXNK7U^p))@$OccN}7Z2zZABDUU>!))kRn|_zb`1oT8&vX_trrxKbMi~3_;!L( zvl9TjC5Y-*(mU9Pe4#)A;3Ue-f25%}?(go!;NRVYyk`kg%tw2~!c{%m>ocZDd92vc zf85#+uyadx2Z{Y#mKe`HA>1w6gg<<-5|>7fa?MP^v@;M&LA-;)Y6b6afM#wOtHd;cKuJt?=!A+&7t3^`DobZZjoeLc z*3pJ1CqtCijqLNXE_R!d5fSRay;mL?<(k@(Vs=Raqip*&s1|4vRw*u?(Ubbze^Kcw z;s|f~PxOX@#zQ?a9d8DdD_-dm-E=dkQckzg9_6&ntvU1Dtn>+umAD?|4-#73J30y2H^LufBdii@&En5 z$mKru4G=u86Xx=MM_D6v2wGd^_kV-iDdgJPoS}7=O9jne69uQ6zyw(XaJaEfv#EOcyLTw$ptyO{yBYP;sY6Un{Cszf#VZ3+Euq+CgMh%Z#o-n8S?Ui@rUNqN8o)QCO5ofUUG>I%M3v;_u0%WIZ_-ycNHAJ@gjhw4H>1 z3PoiJqoKuNxdG!n@@+}_n)8{W?$4er+VH)7)N)|yDPRgIe@dsYE9aMCp8Sg1#qXoA z8d@x5b4he+=j3ydbV#yvJvliF4e*R-5mLNE6!?B4a@ccbf9FoYu(r&+i7}wfun0sd z95EqU8d{KQbNhUruM*nEm0F3$#oIf*2&e!|q<3!D$^9@l4uM8d-=4a2JR?X!gPxjS zYf;F{ejX*@P$CCJi==>P;Aax#W^8qWu80di1h-mdj^Vw46bZ~E7?Km)Ox+pkvUh>^ zqo{x8LG)8*e}5i~J&b;;iHWhuR`iMsCwDvXVqSj10Y^vCy{D66VVHCa(gx5N#KqQ< zVfDmXWOhi_wy4UgoSYmjfnWG#9p>S5q{dE8G?1<=<4RJ1ZtO~lbz^&bxNXtl;zDaqO6XhY z^1NJ;cU#iqg!K)8WgECnzZLUw8$Te+BGTCS*`d#0xw*YN|kA&TVrHMY*L^ zf#4#Eb$W_X6Zji9TAb4G6e6>nvZCa4>AMepIIB54vVv^Hvw2G5FI}iFQ!OPp%#ypt z<5Qo$Uw!S<$rtntU-|UdD?Y_$NGJ@MX);bL_nD+Wc$sQpjy?!mY2ckuhF%ENg-8hn ze|tRbgyJZx(Eqriit2mneeNt__@3l6+bKx0V^7Ov_CI@aumj+(QM&IR(yU#1zBM z1qn!$>7WavsEa|fkp=j&7eUUr)K>a3i2T66371ROCFO#SjTwH$+f0AQ_ zT@?POQ4YgSBB=?YX`%h#IGmL91)wRxpeDg4cUD`+&XTd=d0%0!R7%bb8KB>Hv_com z!WI;40K3u)fb%Ru3-@?vie``CJ{sAfYSQ#yMt@!9`9=Pa<=xybks{3NchrD~< zx9FJlxhG=uvkaz+L>^g?HSzEA&TeAuQONK4E-7LOLHU$`PKvvf3I}nfe-IO@7jRC^ zKvBoFCWT>mE)B1^n2Pp^k}x~k9Bi1vEtiFF;HsT5MT)d0Rf6K9)Gt4EKZgC_C z``|H?(tX1(1m;{0a~e~?Pan=9|E?6k${ zZ}C>(@|=Rt-xM@Gj?gMi2DKo05xR#lE-^1-kAw%G5T)#q9A;heT8Ceg3U8HHuapy+ znlC0Q6_T>ZT~sNR0*X3Zt@;98>vy|@tsHTs;Gt1)^u=zK*Me&(Hm>@DFhzni4tONM zP8X~0eBNYdRXBrae_Z*4{lxhq+_xb?-v%UcRx4Yb(Nrbw%2u61@_qWLwqCDm;5buT z#Q{@ld6E^|o7ERhfKz9Nc9Z!@Eilm=nU29`K$gotC_BY~PV~;e%-0K4znpTv72@T zB1Y)?eL{mN#$Lltal3xv%BZ}pUpg#0@=r;gp)cNS!S44eiWk6CYI)qEiYfvZMkjTh z`~U)fhHp;xI`di<*rRD(d8T-!28U%-N8p+bHU$ z?cY7KF91rbP+YLqly_)x!5%U&Q;VsnhlVx=a3|&FLY?qvTkl1(2;gpVjn@}m8h&!S ze{>*?38@C`V*P3?1lO-|wD1$kn8-|a=KNf88sc2jk!ewkCB~nDmqzedvQ|sZK>%O3 zv3pCOa2~?<{%4vLuk#pL42-(@0%O;(r~A9pn0mI7^=9H%B!dF>c=BoWf{Q)>OLe8$hf)DU2Rf&^Wtdg2phbok~RevE2 zm5CI&6_h$)8a6vNbx{zSXOqHuLg;X0+n!{(sA)^Ne;te> zR2FV7%jUu0-pASlgR-&uT)pE>=FhpJ0UcwUB%x`d4$|C_m5njMe|I|<|J7OW7^Hpn zs^WAOXUs3a7qH@$VdZGK+cAaQE9A5|x;a9PVx=?wst&J2GgaOWj1@7wy?u-{jRe1d4!eSZkrKE)FO9At8GFB z-k{hJ!YQ}gDpQ3)O$vXEwd6yXhpW!SI%RmYihxOFlKiT}k9Eiov|k+Pu(C;hDaMo% z*khj~QuF=cNqt~e>|FjlI}U%6b0&gi1cmX5x1oB`{Ql#B)jf1&)p2axR+H` z9}A<(r&Mc5%%Er+lW<;Fa=ev@1lH7?O*$$*)q*vUzvK|VSxd-UlVP!i`xZtWXTz2#!z zYw(}bu6d@CIH4|Be|hVfo{=HqiJ~|Pf0?i|r`-|=@=cR@6nK`=&h#S5P_Duo8WF3m z<%K#6j5>tPccU;wpUVss24JIoXj;A)bwblO{(?p;{tjoD5wl(weX|5e0d- z3J7TAk=stNFCX$JQzr@hUDzHBFrp54u7{}#fdSWKn?YzmfA}GGG>kNtJnCX!!$|YU zgI?aUf7=1y-Wjzh1}o1>ir+A^0aFpbqAmK(6bkc%P!bwKjRNt64wV;59)HgU z<8K`z29UdhfAXPN6^CJQ9c&j)=uc^qS}C)(V7b50pARs?{t+DCmEHAZKw_8Jktr(V zEP#>DX{aUk`8L|^0wzVpFCq|`G0iav@8I4l;(Ha#DQ1JZ=E61+U8IT`1mzh-d{~JNFbwJHTI}-Ya{iN zYf?{6e^^b38GFlDjZwNrLQ@S$3z)x3a@JvJpQATVsYj$zhxWNtR+ua5WPDrfjp*eL zRj$C0c_bwiw9I5t+1i&KZB7E6jOQe{16#GfceJ^5WWH=?zr;~J+UI-b??BtB1PQ&z zLyRT=iGjTz`8k1TiQnEHBfSNGTWx90q66^{e~{9A0P~VBH*6TjL#E4w`9C@koV5^V zq<~~|UFtZmyO8ukn6iNyKR19$;SObiVPoD zmEi#~&s&j06I1D^c@mByR9MM+L$ci9JX_V=8YmF`%+IGNCS8<_+M39&5Eh9PfH%`Q ze=C*O-KUp?h%gWe$6OO$1gXz*D~#N%$g|J4zcKI8B7O>je4=@1{*zR$hEga7s2CVL zLcFV!aX{R=eG~5Y9rDCl<)e%W>%xjnL?mV;8Hr>}{o~CbrR2bZjF2K-+CLt#z@5^)Z}&<2xEk=#)pB|MSi zjW}poQ62(5;r1OaNu79x_M2&B&7n1*FK*p93WC=(p(%*IOF?U_1)QsO26-b(F-{&1 z_?X{{Lot_Sc;1Y~>YeM5Rzch;2P)p4oM=OPPTUzws){TmwFSdiWdbqt0QqQFf1;#g z{5t*#NR}W$rW*w>=6Wu`nCrx)U^Vlx2#WQfpMB(fC4?iR{P)R;%avV&x$V*yAH~)A z(O^;cfv8}Ikn6vSC~W9_elBbd6Y#O*dA-o?Wj*)ZIgiRFq8p->HS_Iq0Su_8)I>ba z6=wZq!4Hd8F!UPt~_&0wcZkV z^N)`9hzUEz*pZH^iL;|xN4F;@p~OfH)HGgEm0Oz^T+Zm^(H(8ADu6ql*9 z(ID)%%d#Nc*bi0D+-iZge~_GUi-5}nlFa50Bl{5uwE{zzpK_EjI9Mu$8$?Hi-A;pS zC}maF$Q}(wmE3{|5jXZtB}6D0F;q4J3^O9P5ZOW`G5uiQh*&WP{6~Aeh^v7KHH<5bQu+2j;ddd#FwHs-T>swf8F}Y1tv+cj)|ZA zN<;L&{YBvndnUwf-tDYeHwIUcAi2aC$q@bf@jvOajh z5KgJo5i7nEH1}+nfNP1p&YMgtahFwLM}SEoM|2>14Eby$GAfk-=v%VikA-f2R-j$Y9}BF^7-AwBjj^ z$+4|{D62s}e8Ffz-|dpK2kirdt>HlP2JaxUE$tCs_2cqpRrlt5*Ix3f`R$;^5UfA2 zRJ{A4*zwz9$Nhn4UE?P1Uz#^3C-e)KW~QJ0R*h8%y%uD^UpxPuPB8P?H#))KFv~eh zHV~zRlM`vae^nvhD*w>_1jYVE)vZeM_*IH)LtHrGu`6|6jr12~WtJxAhL#NEUw5=6 zNp*d@JPg?jJ1pErLP+oB!7-ahAQNy|S8Otie||DLNYFguk~yl2K{A2XR@@gO-Pm;! zZcq+;|Ni~)mZyDu@gm*m+57kR1%v>ysJN@lXXu*3f8bLs#iTnxR)jWq=p0@$=9l7Q zx($w>1S?t~!rVT^E$mY~W}h<8>=Dq*De5YN+#?0;Q`l}U!4Eb+>APLH(eyLn!GbTe zB?*b(e0RHuY!5BBv0u1994xtJ;|>fqf!!{_;!9y=WAORxb}pF)kdbc_x>jK1zcX%r zwC`v0f8R6691jZZ8;8q)2fdShf5O94szPXBlnXMwkoZal51XfA%oQ;_4?vv1@7o4O z@EFbw@ZSaZdY3U>uBCb{IT$j6WgOhue(vAKoI-0RL`(#V1hB(yry6QG7$`(K0sL_$ zdyz*X!DhmLh>U5B;k}jQmYS#wh=`fY1%albe=#|;-s7^`rG1WeZ(x4t8XgTOT!FkE z@dPclu+JAo0QZG`?h3;;UY9JmplE5kMIKnl(Z$ES9NZ7U^#e@lgnzM?M?1#A&Os%~ zO#ZF-F%UmwC!fJ7Q3vc32nRn9V=rQ;Muj#ws%nt)sH&xKjhHC703>IF{u%o*e=ZN^gSXFSXuZC!p7)CU<2#pG(P}syUwarJrkgC3_vSGy6 zce^jVPT1#Qbn?`<2j7XCVi`&1G9=N3e``RwJdb>f$=d0s^b+~f7-{uumpBV4R_vzm z6m=H6o#rfTlU%#@*7>+{tgY%ol%iVV&gp`xmg+h21IY6H1qK>=R_{}H+Jp%4tf+=A zgTRHT&+7Gdv)u-VF*o9YiJtX4o#~{h5=d$prk46_I;H)7UnL=3rLhxO>a*sgf9JR@ zm0*_bnpv+yTg_J6bGj<=!)aux&l>GclTK8UtX!8SiKRX>J5ICZsD!72vD9Z?zuT>M zRPHmaMh}5I*Sbxk-~O{wH_X1$=o-zYu4ZHsfGfyX=i2PTpYnV}Sw0_8P#S$5{}Y7` zR%o{1k0@-i!bS)Fh(c*Gy$<{-f2|Ymi7yHCFrCUvQm^;0*J4Sg)9DmS_>w$>CmdI; zh9Rk_SDQqiR7=V*CRLAF%4C}my_qI{BuwJB(=Yl-Uw(29xWsWYj? zj_0outeTO@YB34ugwp-Z2_Sldv^#8jdwrvA!uB@IW<%+BjE<=v1Ws1Hf7vto4X9pk zb@JNM_VPySMzhagrloZ2Mz^D5J_BBDztz6c>|v{&US3}S2yfCf8eMF%-BsEhqutP@ ztz~u0hS5b(t#{i>qh}iZzFvkaUawyNvr<>;0LkuR^YHbxde&-RTwY$5A^Eb`>h&%p zNWQwdYBU=%#F-BK`SKV9e>k=-E_%bd4351E#``K&wXHzo~fcAc&}aq6Yn^-QM$v*Shb>7(AXG3|b3=6h#0 zZ*lK<84VUSZtsv8=7Bf-sLAijM@4GxkDtVhxT~e>Jbc6AKkKyJf2P|jFEyR^rxRCN zYD%4H(~+0D(KnmTDvF;v)9$ogL6USz9onfNN!q0iZ+c+C^LDGtY8ricR6*w`ureP3~ z>nL>Ghz!wW-bu(Se}6(*xE2L!lVP-qeHtq_bWQT6_F%o+G8%}q8uh-?F`DgzIIC$i zn}}d~Eu~R!8QsPn66%^pufvdKx1%)8y3uOxqoGFAsJ9q4Yva*sB1+vqB&>SB#WAqi z?JH)zWi%THvDOpy{^&)tcZI+u{?)6UBaybz;ds8IG`el0e|vCgyDbB;d!wT?TMeV# z-e1^!Zk?`T_L}Tok-*<+Hk$5XOmoq>7`=R1IU1(dXf~WG{m?gQqe?%RZ74o)GZp0O{d+y+bN&ziPvvV`z7*i((AbL}yRBw~E@WxF^r`_a4m)U73jh1ON_vxc1g z>zI9&fm8=9;l6qTOgibcTTd}JjC7X4#2mfs^)4k?fP#ycrIGiWoyMqoyt`(@Y&?B! zWn|{W9u2>l8fx&3Xmoo@)95uj%}%}EZ8gn)!|ZntQ^X96<>~Y;TV_Y5nc8l53ZPxO z$S;wBe>g-l^=X$@IiYf)ygBvyv_4fcGIt>CBt10SgIK%UHCj2Sbm~T@@x=Vhrr9w& z2LQ5_16!-7H0y1n-rNJojzId2reZcbM!nl?b^Fa$v)yU6@j^U!+$$%(ab>=&x2w1j zHsAc?tZk=lblJJ;OS~;Y$hQJct8bXtM6>?Ie=D%lH@bMiH5>in68r*7)bH^R>Sq1v zYqMi?JA!68bZx$DwpvdB+o(GlUADdnBk=3Hhh3?Oe7m+XvQFjDZ0^ ze}{v<(MF2XtT&ZLy=?&Bn;!=bP<6v(^liJTn4Okkwsh%)a3Z*8G#QuOY%ATq(T6%^ zaZu0bFpvWl+h}$5@8Z_#Ut-tlU*Olwe=WlntUj&c%{L;yC zV)mZG_E%Sz-HT>b?$xjN>ys+o+BG|7f3GU{q7AQch^6yfr`>XM?AYnJowAgx*Y)bn zzKk7d!)wF6RS<}sX$P*BrIVyI_=eN#nXc(oBz@D4JMm0ueI_m1FH7XQb;otP-*Z^X zWFB7&&-B{f*PuestRJ_uEgSH=x~g>!?M5=h8;i%{m~ZVrRN0bv(FUc+sKS z5-M<93hb%Miw@NmXo9*uw+na)3l7xGAhre#Q$PF`(HQM_JYZZ)=cwN|r!tQ1bS5UK zLy9$armar*2^>4EdmY-_6PwZQv~^&OJI#jMocv2vCiN}@ita%m|2EvTfA(WK1;@&7 z5~dC3PVg{^oY;f-x4x?+kTGVFkRRYjEupbL{Xt&tNe}*1q!qlZK-s*YSZ+FjKi`A0 zDgIYQ+4$dg>0+FY(`om=MHgcNg4QG|E7T>^7KI;wZ%|_)a9QE3b zwtN+i+WnWE3wd38jm|}Te^>=o6aEw`f(8?H6|2W|BdPQO)VcAJe}*JZz{H2Oxf)i-H0wR= z?tnHRmk%@)v%v`ud0TrO!|XFnZC7bDIKNljR=JYd?i#)Je*vbjRH@!D%)Narch<&c zG7=t^r0iJ<^d{c4auM~+-tbDkh^|^)^JR$)HZL3fW>xNAzcRZ(8w=zzyl7wc50FW@ zFfzwFjnSy}@=C@!SFM*QZ#2TIEW%Ejwc-Gt9 z&Zso8Mtx{DfA+AZ*)gvU5G`)IKkXFgv^N@F3{81r{n5*A8J%8TjT-GMX=1~EyJsTB zfnM+5dN4Xd8`f?sjds^)cPkuntJA!=kmaF6v(>v8mP9HIvxTVqd&DK(tE;NGqo4P0TBJ>W%sIdgZ9kf)yOQ}pjV?V+_Jfnf4$v%*+WH;zxev5_pdH{y-|4` zuCBTxxZ8_$==K|zB^w^oZJ3S8VJh}zV>ldjssM4(tT%_1wP~~({bsW&DX2Hv#VvfG zT|w{m=%h@8bsBU!@k;E$)T_6Rb*luL^i*k3Xm*WG|4WMPZhgP*-YI8_fB6HI8giwlT58JpqW454X;1spN#B!@ zWuMl|9G>HOQ^zYSPu*VMlp%gHnRtgOm8bT!_x*dyh?Pty*De~{M;jX~54mgEa%SJI zv}mKFh2lCQpCYmf$l4(f5!rZWEG=EK$urZTg(lc$-=;Bj7NzWTp~z0RO+_t>hmZPe zf1p7a9@eUEK=x%;0I!*mw&j1J+WouuPxr(JACiYy)G2Vv^?Dk|!FmaSRL(Z5sY;o4b}Pvyr|e^7c{JEg~mqB6wd*m!pCD~bulAy8Oo=lwrKJO({E*p7|1#C?|8$R5xuWW)NEg*2shavOX6E0~k!{z^lN0zi%zY9uCK|lh z?Sh(lUbKla$LRMM5@U*|OPnLvRBK|_Q}pl=XB-D6Ep+ab zleZ8PvDlZfK9GL1Xgw)J3QoayR(d5|0aDRvSnYHscM85bBJk#y`U)|fC&Z}wJuaQN z%kuF&_RDX}m8U`JcrIpkc{f?SZ_)X2o{C}XMIi)16j>vfLmisMrx^Mpf8{Yp#izf= zx)Dzv=svWeXaTy^gc5e!Bk&Kk9$+?Ay&^5(SzR z`(QIGC-EHr#k(`uxyd*RfAHwk4{4saZ!;q*xErVfHe?%O_A?r;zzS><;MCnHocgm>{=AO;RQzUbZ)T`9TgBn` zfBQJg_Ke=&k*v};tomFu83<@zT3pKzw zZZCAT`kE%oC`_mVuOWyx%f2plC$-s!#?oKXH}g1J&E}eLMHx|aMPYQCzE>sLU>s5A z=BM#BgLtCTjh5;32p z&$E)2TjYdsesq2Nz~>!ZKdUZ_FS3pAcIxlpLkM}RDa(zP@lD&{PQcpc0VoVN@Rz9P z$b)11$t`tPv2exG57adP7%8kLY#;_;7i<4iG6rbMiK(ONe`l$I@M}|&8W z$yS|75(TT2s` z!NFuQgJZkicrsQIj6yLx(bwhQ4AF_%BU}ErSUDY))vHRe}UpT9M|+`NZ~q*fzdoN3H{^- zE06Mbzl5*pM?jQ`vseZ+PArvr51ZxUQ>v1bE|y^S4ynkD9`QDz14Zv+C!A5MUKG$z zJe`n9(rEeq!D`j<$I>$TZL;t~_*HL{PpSK!g(30-Kiyb$ERiCDnh@Q>cb(w<(lWty zmpbYDf51u7_o3BkiGn2!ogm#!#X zWg6W!J~3NH?>*y1tOgeH7Q_f@CRsS2-lw?Q@Z_$NG+Ka5DfzT1cJP+6yxbSR{;d3s zZWMpYoF`*&zJ#FswVJc^YY%jzL`!xfMKONCf5N01dm!)z-U04|uQ~Q&nHkuXoG9~X z4cP!_AQIP2C?uAGro_(v0Ii@uh2o?*0}M1Qdi{HYJVqRz%pco+b< zL{tGFmg2>m+Bt4{?L6Hq-!IwIvUZM}UOWGky0vo&j(#Wsl?s?Mjsli@Fm^&OT7Y5@ zf9??|nbDA9&|L+PqB7Yi4hCO?Re<*rEGeF!uoxP!p8Wf0m11fN+%QA=$)7=kp&mGQf8R2?+eHL<4ii|Fz153pY5m}AU|v(Gw}_Hd zL=U5E6o$$Vy81Utmpr8;1SDG)qhts`edRCwG~vZ;Nuq=UZyL=gre4GxXpZ8p7AxlD zTN+$61%L&TIaQV_$0wDB%Omzff3aGW8bM-()#iCG0f+mT%n}o3uzvZTRl3iYeHaRC%oFFii zIzTz>LZbZJn<4MNK%alCceXV0#6{{Cz^H!AvRS*URO}sxgB)S2w-CV|^C|^T?~UhA zr!)qntxRYN=Hp5b&1!PL&;o~he?zU@0_rOVDa`_Up%BgXbWV}=yEq$v_hYW3o% z;GMi;e#(@DT_QBW>@It#NZr4Ao`T2qoPl^cryIbq6w>&HGJ1+)NUme32d=KC8U<`0 zO;Z{^-7MgV^0lXqUjKuE2U{M9*PqC<_rog21rAAZ+&D@SC5XbA!t=}~e}L>tpafBZ zvG-CZMelq#ce;{`D(a8xu;Fr2i9zCSiF)$YkriFsB*Dj<%Wj%gOko$XN z$p%0mhP9FJ9paSOv+73SBaIU@{~pfanperzqp9Nu7VvqGKYJFmM_?Xtd2Z->hjn6nULN{b2G(%ktO`B%P16(XxoRl|DH}=?jKVA<+6@m>T)=THiK}R7`_}8N`3xJAc!jJgv|^2k8KTcq)35aT+BK$r=xGos$VbtHZQE2o zOHWQ7JwD%W=?qXTK}3h}Iz+jtgn_`Wd z)r~+vn$h$P*bfv!?tjBWNzupvM&hi}NX35Hhg9D($q|$fo;qTpfx|$;-x3O;=+?8n zd^FokCzl&r&cB_BTwWg-P#2ld(~Je<3+-j3si*GTNlz^XIRF8~hnSFi8eg6qs~Rkl zeFxFTqf!ubM4J%J-z~>Rhv3W}neP`a$)Z%q&Z~fl1Ic0-lz$xCpY8MQXUO$%auR8W zPr0ubp(BT>arjUj>*UGr2LlKR#6SQlwp*x1&#c1%9wShdfCw;)_J4C5^s zAKzJ@Gu?Wd&myE4{_Jf&N)~!d3F-LwjzE0nj6CM8&Hn|hJ=n*f1xTRemT9p>^BC)& z5(m?OK4`~!8GkvxwaZ%r(Qpqh+cA%fMfWuULl)>tk@14a>Ny4DkU}ZIf}vkbqB!Mj zQUDRDv}2M|5d#;l-2xZCFbN8AC1GtY$;I$iXKU@4eAM%-m@A5T;@=u2F_(1@=CFuCU~9jnZ?K+0I|{f_>Kctx+vHzzV-L z_R6XZ?tfdOTu^YF><#=p#Qd?h<-$Xp7^_z{f9j06=6c?#Y&iAXR_;<@SwA z=BUX8pNkmf(PxFnh4QSbwGSDE2?ITov~(sT0#!Io^sI*?op1 z!|(Nb^ybunv1t3+J56(`{ibr% z-|)1ymFv>YF@SzR*T=g2ncB0BHmCdQ%r_{C`-GKS^)+C&eQ~{l`0jd=^=lKZCgp zGe23eHHR9Eu314GSC2ymXPg5Ie)S7it5A(D6qDx3Y4sh?HCNI+d)<|%a{7( zWSANSpBh3oC6X_?SmV4p+lG%!hsl@F$`_N*mCd9yT{0{v0rHmT(EnbM_L z1h^~>?wFKsV-6Fm1VXusp?=QT?JELE;vu`$j>%h{EbMbkS@q**oxH8A{x?nV zZ6<7RU{)dW5+fY=5VYNbdOFt00%n&Rj~O45PuhBxr=t|6EL%VM3lpk=Iqn070QSR~ zOmA5M;TZ+41*MRX1P0C3c0-b+(SK5E=0-##<~1%tkH4kXHMe7d1OUz>W#hF*8If6x zj0{(3pjHY2yPoOf7NlenrJ)iPsRRD+QY9)<1n_TuNvU__J$zRtLO{$`B{`rOK|ZKN zt&j`6BqtEmJ8}cF!3e@g1vPb2|m4EBSt;pxLW&x** zh~QH#&pwYdmLHv42zZd)AYYBZnb4p-6R?G^aqS$;rEy^LdyB~1ktU6NlERUVqG1}S z2^C624-6B)Xo#7G>BWo-8>GF>hEhfR;Ncmmr_5^*;0|#cAOIR$_hMy~<89dI!Hyl_)1Sw0s6;>i>xGq2+PlMojzkhHZa<=&3?h5vqor(AV zi5q#xVCDb(?feyQE-(Pu+sg0T$(#Sg)%?F@F<(O9ck(8STS!xr zr4v@jfS}fr7k~2d(-I6bQfwCNM8I_oOq6(XBvc*Ga$;AQsi_q}`EOgj1CqakYj?;% z@{g_@w#b(*&DRc7FeZ$JKqDIp^4AFM2DR7JjTQ??jpQ*y0ZNy*ls?p6n>t(5|7-Bs zh4%=CO`gIPKmY6roXp7oA&0Oc!F%!uR_t>B7#Q7x)qfAS1X|)f4~SwNu5pKqw5T}3gop9BY2u%?@W#Z#mbRZ+zRE5sx?q{ggqOuwm$oLn&f^MD$RyA95m!34sqn8n?1JNEshM6NlM7mYeCoF`2B=G^#)*_!sA? zQj^kU3!H2ki911}TfW*(Dz$@5`PV;IAjl$jFn=!^a^*AQJklInW|A{N9BC3ML@T6F z%GW(C7ThO{7!I;rGyR1#hsZ_2zY9PB_kkLqCS?Xl3Q<-GQ_Y-Zt?}(g)Qh8~2O>=I zqc+FXdQb6+sWU+jS*y-PXkuAQ$YLLX2fH2p0s)%$&QZ3qpy4XNVa$46ksQ{Q&o#5I ztbc2rmI8B4=8gxJ>uCwqecFua-C&?>O%#$G1b z0!vnNp%X|?o9(OPK_0s}E4%n4rA(5TZ-0>+GNd~BYSmKs2BK*TdpR4YcNLw+VqA{% za0jw0|UDjq;%)ko;cSEUk5_!a9Mp1X`V^i{J`e z{nBVQ3uw)Yoi$>){kvc`MlI*Ru-uIxKA~r+*A1hsm<`8h8*K#}QH*xYXwS{MTz^(q%%7T4 zK@BS{>b2H?^_MDMu}@zVcsq@ZQ6z`Zk*|`i zpfQ(wi-i0@4#FdjkX89WU<*~{2~$7k#OwTP4dX?o7Ucbtr!9>l(3mOw-`XTf(`cdc zJj|)TR3+uiUawyz*WqpqG>D_Hr&0PZf#w-?;;(@3cprXyO3UcBTYpZ|XtX*C`1i!=j}t7%C^yN1T~}4Z`2I4uQzH9qkr8};4d>U%yu6tSDP~04F#JEYS0t(=;A2yktsMbrLN$x0#U2d zkRmr^cAzU4hoiv2jDFozU|f7S_;%M2$>%2)z=hE$(rEZkwoXv1c3_=YJ2h;m z(Qm*q;b40GCL2r*Rtd*aW2=OtsU27+m>yepTmak|7dI;(S$~bM6WczvoV5chRg;=B zJJ^{EL*hFK`-VHnhJ=5!eLk>KwS0!37qy1bX*P{Uujv9P){I^g)~VI#iJzTri?0?g zmWl0{d20a4oj#P9W*b(_M94C_Fszn|Ef_7>P)q<~n7uYzFkG+w)}WmZwuw;F!!?7U z!0?LEVa-mrReu2Bep@vh6B}Q^z{_-DOnh(%Wi=cU8y>FM|K{#Zx7$XNM#0~6pF+at zVFSgaOlq-g&@e}3*=vRkrM3(a;xK#GKgtq73RLf$uma{?0vj zen><{?vasOWGp>KT=mjaKcC4-_B`l_c6G2_{EH#2qkm|uxwviCL@`p&f(|qdnh0e; z6R~-_tdX&xv)(}y-d^nPZ9Lz4v7-@DfP>hPBirG)V=Yuf*-#$P<;L#T&i+15%?_WN z&@|RYXxcM2psbOxB)4W7;hnv;1cT-8?MHa&t?fpS<9*OHQ~^==-{6GEbKC!t!&>gg zv@GfNcYmMIx*J=22gdPzqdVC%5A<7m^S!O@{rwoM^X_+cw|YB0BgKAqf1?}kZ0+sr z!P>g>%sl*W?RTHQ?}1TfuqXVkx3|?$fq6aH+IzR-?`(+GYJ01<-Ro>U-+yr+f$#?| z40jWt%-+WS*3S0x&i)pxf6upH;Q#0EpKa`K^?#l}zdhcqA4R*hqhl8eKZX@+Z{FE` z_hM^%?|IzW-Rk!CHg<0jS@YiZ*6xeF+oZd}zRr6)w}0ofDGr)Dk2z@KRcO+A-hG6) z3p+nPd{Ddg?K^oTE)x8?h_m2IyCZ|Sf#~w4gGz-K2(m*CWCPEs<(5)|X5|=1zRc## z9)In=#?t{OgFQGW;=#GO$tJfBj8A43N!cO+3qVJp)R-46Dv&A(8{gGKV)@g^?=YT% zn{X~)A|H03!y0>i;k{Z^9&11#D*>tiXY+!gtPbFxZU_@9i=Ho=Yiyr;-s@PB4$EK>{s{4!5AkOAK6V1n3#J4% zCY>UfqGf`yE5C0$dtCq|{&ffV*MEUyWze7%0Fi7!g%|#`sUNT+#Qu%-xaadAi+{~$ z-6-u$I+wFJ-VjaR$ZtBk8~Jr-_wNceh{+{PI3yRH-6|Jf$_#E--y=1~kMY83ke+sD z`rnolh>z`^3xC=HIlKP^Pq2qf!Mz&qZQkkW3^~{g=e?ck9(>&EZalAV%&_0b+i(`x zfd9{o6#L!h@E3P>Iz|m$jEXgAkAEE40yq_pmRFJ?v3i)@EAS zs!C+!Yvk1if6WH_A80JXEi02-*7vrAF*4I^n)q?ORoPY)dY)Ie=o^Jjt-XIRHJ> zkZbjaL&9jvx7RxT*5n1s=?ttQ=&$ve)PMuk5@{4|MW6!bp0he|rubCH?|Z@j1f9zOZ{CBHj5{CWoDxf(%ucDLQ_zFx84!xf8vEzAv% zet7b9Mm{uV?mRO0(G7G}q9IEd8hGE2Zh+DTA8y>!8)vJe1=vI6jekD8@tzJhzLa0m zFPC4Yqo-q4%6r{rAZ+~Eu}OWm$mHd*1wSQ=A;`(UJ{b71`f2w3w zl%ES}T(=g_4EWhE%_;kR!{J%Xe!r#otH=sMVjQ=B z_@Ujty%7d3Lt*Ila!TnfwVMqA-+ldx4gLBR^}Pun1DBRW4Tt+%Ng7e%eoKjoVK<8j z8wxk4q&95s)qj|nICtNaE5d9gOGBHV{IRr4e4K@|7TCbNW@cDArlurCn4Rz;p?v5r^{pPSjs4}qMV(!TwNV3>{i zq96roBM|Dy>Qk!gka8G}yo{v7B(oz23^n6t zrm6?v%70w>fB-~OI4a+ay*#$>5awFfaRfq!T6fgm$0A*;T}qS2m9>&647qpL@1ykU zASh>`6o|8lL8ieea4Hq#9Y{^8U?moWMYZ53kj~Y^aEV6S44^$@_9cne_9Th5e(c=e zk0gHYr(<4c68{K#_#%J{fT&+vh{k$#%m@}80Dld;+6n8#OvN&pO%bE?soJx&u!tfw zm)-yP0I|Cu8_Jc!fO|5ob}TJqPtxL7z^BCJYgS_;{x*=S1`KCwP`Zp6pwPK{FFGOd z0p2MNX%Wyg^to{jf-xny-h>qvL$fk_%}fDMmFCA;aU)U)mWT*u@#}1smay9LFk^J8 z@PAqErz*&-C%SKVc6JF?RY4P{(FF~Eyb);*nRL3AMo2^OHXKf~oUx}w7F6;UdS5ah zQ$tYs-o_wjE%N+x>R()_$ajA6G0SJU%Ki@70V4h=o%?YVs_38T&DkWImS8b4F>W+j&%qz2kq|&uC4E?=66GH? zSw@-QV^$ocXH*X3N6`9E$N*dRAJX_ng=0E5$mor%FAeV}Sf-o0!b8{G58b2)pMO*^^=@Pg-z%&Ac%^ClwgWuJaqp}CN zLyNPMK@pp&G*kR65mazoStE1yUtEZB#zw*ciG981t%spOXHp=}i~)^!Ks{Rfd^?Nd zGh}MQ2@OFX{TtxKo-!pA3I1Hr>3=Z|BcDOUIEkqNTK*UV3yz;hCD>jSw68BhZ&;eQ zU|m^c_!#>)ctQleJqU@uDM{exXfy{)fPnyN<^i^1(UJs_Sk@HB0`kI&l!GKUTdY_L z%?yzUya^*Y*@OjLESGB@gZm&;77#AGK{9!cpl*EA*A5aLvYXyr~Y^>noH9_?%V{~Ge6Utcai8I8in~d zjj}0N^vPX&{LrO6e4Fi_ZneSx5!E zq+^AHNaQb${T!2*G&vHLlr(|ai4~VLIi;84^DM}6D$*mK-jw7jN_oy$?FzB%6MW6& zh6R$K{44VnRm53_?TFbrmiTFONkz)Uzm^~GnSmlmgR_vqwJ}NrIe#WmswL(N3)F!t z3w)%K)Y2>sEIpWAGu|Z+|41*hDLn>DA|}Yl z#Xz5se{aG*Gm;mucs3Q^+(nBD;nHCSxo;8)WzTpbq_>m3&4~arq47Q|$_nV1rn3s@ zlon+M+oJ^Msu?p{sef}OOFX=YjTRhE{jvW2CJoJCNv8(jIx6+>d+N`r4)`!PGa&Cy z0kT|v&!*a&oPdHWx=3~F4IZyV0KKg609(IhV457tMKDX>`NhO6_XuXC3TQ{IEd80@ zfQ+OT#M6ov{w!Plp3f<>^!FOIyhrwc-WmourllWNpc=LzXn)|!IBm+HfrI00R#3g^ z2r$MBA;usfBlU`H)I(WTEskj3g$440Xe0>R*8TT(lAyegi2vrKpqjY^elk4d^4nt54zWh z%A1c_90fP$QGXU|M`DPkS2WZ^TKn0lQ-;3gs~j_#4H8%lNg8*zxnk7zEP&;G|S4@ zahBq#$$*0N^w=+HAy1+zP8}bLi7%_<7nMStLW(%!m?}hTa~j8ZrG_(FF%5Y1G&s!E zw>tL}+J6xSpAfN-lI8+*BWOuV9OYDKv@*D2=iqH4mb6&P;~ab)&x(@m$h0J|1o^xU z#uxpq)H|7_uk5K?u&7+imu$vi1 zozf&LDeQ+p$GB!r>1A{+amB9k99zXKE`M?TD)?^2BETuOWa|iy#9M#)a`eDlS{?xyS0yvxjhY`LzaBZ`QNOCrbE=$)E!A=2T z3$EUx;=s>kt-3V?#smT1b{~BZiGi;U6IX#xCar=%pcRWvqa!#OAzLIZ{AQZE zJVKR(QL3mcE#LY{6yI=(t4j>92!G_iF)%D03V48isI;gK^GwB4lvCg^h-elPQ8%$H z622Mu9C&o8C~(d~Eb13dZ5XrQIoEt^%BQsAB%i{9FSyfN1WP>#=fAoZes=tD-nr&*Mn*D<5mF`gw|`3Pjm0<` z8jWIDr%@CFpNbvNV!=+q!WKafC#Y79)FFa`KoWm?MW=9}w%8}rXJp^Ukpd@?1he~) zh~UDrsXxankCpoK4wKB~AdpB=U@qpy<4)NC%g8Akb>BRSXoNh zr^Q$$2uVeViZG97K5Da6YI(AYhn1!1X;4CrQVCdz0!^rrALo9<0!=vR$Ne7r&D$I!)EEs@8K=eW5#fT_LSsGVH#7P=b{237ih7T;A zQ6nPwI4FjVjF@ZnFpMFb;S8bdHZLL;5VADpj+Lbu`?M5~2Y-O6fJsh|m8H2qrjsa? zaOC)KI4B}mlJkSWqU0%O1&7So3Lq97vDyee5C`Etqp^bkoaJD!h~*Y+A%OF5%VZB( zSqefricU|_3^2m+%aTkY1mWYGIAF`t+YHpBDo)><$J8c zm;u(%X23PvndvnI7UeX%qKAGlIham;tR4WJ&@U!FK=dRZE-!I{XlXJ8i9{e(@Y>I1 z3K*`y&wuskpRy=5;z8nABsh*rIz@MrGD!j;bmb`$X_&$kI{!~#Z0KJhPT83nF2@Axugk@-769U~^@oeBH2$owdz*?8*b6P6)TL5s|f zebA)y`7LPPNwly<<`hI8xgd_kLLG`hh@6%O;ruszf^4e6l>xR>!2J{pNry0uN+t7CW7BZ396~4pym^+hkPE>`jtv*9fch{- z@P?F_fCMR~nSUE4GsX+N@Y9fSbU7PVXMg!f&|6_*Ux7aA+`tQ9y|XVWg57A#)LMn$JTqQF%59r*5fu{P45`Xw7 zl}~u#Ov;taBWMStuX3$e0wG@lJWt-vke5QkF;(MAg{%wRhs%D$baQluuFY`&96zSx}=YjeVxVqGT@U z63hzKOALaqcx0ytnB=C(@R@wbtbcIN6pZuBG{8-)Ffb?Dg(GjfhZ6> zMsWvJM)ESySAvO#hqcl}k{<`<>P$E@{2PR&NRhTP0@&ogap9q;jQscaEp+kX&UJ=NBj%R)5*|eAabE3ooUEHNyI=YJxJj?0&i29Bm>1r)Pl#65!3`J z7~q{Yhzz2QFa!Le_Nv4$u7A{5okRd?1hrF4MQ%zLl?p-F*`N9WTt8A>G>^q`kw6|( zXi-8&6$47XuUYy^E|{8>73Z1i0c1?-fK!Dc!4?&P6Zv8$SfL_dW)eaoiu0+0ddgYy zAt?R1prGu6nLFkocD)dyU54bB;DxT01Zx!YlAGdxv;5ZoUq!IKTYnmhaS`>PCSUa5 zD4g{d#jx&`yZT=uW2Ld^{YE>r zsGPevR8KdN5-n03EPs+GQ1hP5Wx906oB|o&2PK}VMBq0)@H+;8X*-=$}13JAaRq98pUk6C)8iENTUq z@-vMPqbUMk%$S0Td063na=|qz%@!*Gy425$Nmi=U42;e!_NV$CQ^4M6*R~=DAwOL^ zpwN$$*pm<18KNk|LpqPN2?kEQChBu8K7l+xMM|_tvT0?|xT`fYWl?^vk^RbJR6~I^ zsedc}>$kMdZ-3Pi3I=NhgiKWprtwi(-5T3e0C~5^{syR$8Ae1%SpyzSxx+0qQMf{izUk~jlV=M6olDDdyi=EKga3=Eb*VbR!(|br zc4^j`wGiaSideRYE_5m3dF6VnaUJoKcSPs$>cXXp!^F$K=4ij>XupQ7Kcz7{iip9z zR!l}-?|%)?cf<4DH0HbIKUtO>q~S-d9R?D4pTXz}oK1(FFN-aA)PC|bB0=Ik?F{|S z?da*4JOT402c6#y!z2e4OB_jNm%=VhNn$UYf{lQbY0PtT8q!jR*x!aCYM72jn4TL3 zc(vPV3ClEHvWvD!@Ugtr`h3Hzr<4x5NCxY4{(tnKv{|B#Q7-rYF;Le;T} zEo`;y0)E>C*uCQ|DORi4`xfeY_pxo78+oVMf`RN+iz71OpErhG5?+0;(nYQz{?8ll zPJajsGYQ9|!)5_Mt~6%h@8R0#yTgZH?+zb&ynBED+ui#IpYD#em%HkFmtkOl87JT& z%QQ8>tZPOGSOk1pn(YAwJymJh(>g-W@O53YM8LrKZD|$>I2iG*Dc3XA{9n0d z{_)tm9^1pSF?lm4pT^|%nEZG%B22;8A%6$6TJ&3p25DQ()<9?&nKJB42}4jqYkyE~ z74TkT3o}L2FPEeC)3M_YM~dvenPi97oWMkru+Rh!TS~C=LyiJ+nW&bWgE`3P(!NZ@ z5^)stFB7lVhb+{4`sL}DABO+_Vf4e7AKLct-%o!SiIDTdm#0t1r1YMCNuQ2M>VG}` z_m|>_rzG;8{@ecY!(iC?uctqJ`SN8kYTI9i!*1t=-?{zT8MVKRoPmQ$WAEv|UHr-* zlRa?%VGrCdU;eS&a()>6V`*W?!jQH6Vh{iAjD8q=ahAh>ulggW?K~v~*p2FcDMmj$ zB>^^}z5G(NpFACt(EH&GI^%dA zj{2{?*I;b~F@56o$g$T`19OOu=pibi9ypIj=k%r1k7%o9pR~P5m|1eLfPV?50)Nv- z+)7yJ^pCy&IiZ7@H2pQ9?r~cNHS)1pRWs_{A)Da@UaMwF>K;oAoDwgQqO^!^iAQR* ztnvgJO;Tz*B%&)-KEj#tB|NQrGs;Xa(KM{r$fDSF#e2;^R!*tkmq}MdC&v?}=VnV%$4!a|P=|g)$!T-(~-|r@Jq)n^>p6|}> zRNH<^s#S-Eb7oNMaycCJBkKKWJAEgjn_$JQ)tXUeV=kg{xtVD#|9?{v#W$M~uRYoH z&eWc|T;^K1=Qz$CRLMKL-A}aGh=N_5+=MKb69drhIZoecwZ6eildik=EgtVf2gLOgDKl17%g7=T=62VY$OnQ zyrEzQnCnqZ=-|qp)T7;GCHs30b_9=f+VQm>3`c!NH+?mFKrPTqja+PvUI@#e(~Uem z*$#oyHG6zl_L*EV&IV`dNJtWBrrdaNo0@35(=U8?n#kR$jDPzRwL6t@t5wEZU%y64 zo=r=Bv0N_ITBVk%Rx8^2`jr+;=X?;kcfvkGv|9C>ZHtvLu~Z&QnDjzpzGb|{3-D5G zPU%q_wo`4N2cvc|!*j;W$iXa%mP=uxOWRX;J2Nb+@a!%rMFox>IVA9Srr7f=QG+E0 zpxC<1rf>XUVt>oNhlsjRS}D{wI==9Dp}Y@}+zXlY!hSG_?Fq?A=(su9vhp%Cij@r~ zBQJO0;*v?*lQE9j&o>?n6}JhOC*Il2{`tlszukCwB6_i0<_S3+dmqNO1)_-#IS(0h<`2M(i|F)0zh7MTP>M{uk1!5 z27A@zgTrhuQU+hsOcSK8G4^+rD&o`*JUsop8z1pCx# zrJ_BIiB~eg2d#)gvyQk)CArZ}WxWz?cuD~?xG64|cuL3bK>|k6M6~1bA>zqk@MJ0n zG(S=*;(r)2So9*qXiK#VA!1<1iA}+h8f15HXBH4vh;HpsH=YTFKq_pL(}wGq0MRtm za*Yj>n{uc%LKslD$E`))q|yQ(o*bHta5A%d(!d@N3!lBr%qvMfHk=N(ifLISgF|-# zmJ{KQ-D=qqU1_VOp(`C^-W@KBZo1MC4yic8D}PDEXdxK*Y9Jk4xWjZrcp^E1D>w7N zUn^KC=8Z2^;|H-zBb<)J<^D=KQzTd-U*3SnnlhEtB) zN)%g;fc%yybCGdXJ>l{_{ zg{j<jc7Fz^JwmstibG|H(pa!6@p!T1TlkH%h;6Yt_CE&c0GIi>XJ z#4pOutc>DLnRUJu*PZDMwIM9+ytdCctFXe9%VjCOM0lQ9*&DC^Z#b=O{2?;@0o>Ot zXU+t~!6@}gBsLH|74*+-oFY3l1b<6@Sq}Mi&O-_2s}J9tZ))ehhuXn%=&jgTOlZ3C zhgOHXQBG&{4`57q!M>dmQ4#06R$B0#)nncHGz(|kD7QpLrQG5>3oh;{*_+9Ju>XZv z#bfVIjE$?tm1z6s2<I%r92C*HnTnnOcQxc8Ae>|6&VIrO7RvoxpZuUs-qe(vKjrhd797deL zD+r5#Pt1U}6@0hkhOc40osX@-!OT4#v&TX)!?j*F!k0@>QMcFw-fJ4iXiwo&CR*GG z$HuKl<{gghm{1}PQ{rl*c7KIUZ6^Q+^@uo|lDNsQOD5*pN|dP1h=*fgu^4BdxGV9I zl((|!K2O#+k|p6am;ilqjS7oEzp!X%v0xlhixtI1Y@MkU_EW*i9~%RoWJ> zZQHlvO_9iSep97WSX|}Zv$-TRZ!gjmtQ5_ey~reQW^{|u5kCY+eSaA4F;Is2Y9iM_E=W*mbC%nV>JeC= z=44xvj1)w_??h@JDu1`&6$t!6!0#3X!w2lHBbEt;cq0vZ(bl+%5soL(GRiMSp>_o4 zCLVBB;|%etPQ;3T^j$5K4-@seQOL|sY$LbRUte?l7<$9g+kcF_WO?XCg~~O?<#d-K z(RG37E*V}(jo|*1d{0zp;dEJg)h-x;8jMDgwmVb24xIilYJzpZx4F$jX zZfZB*bkp-x;V|%GPXVtKTWJ=eM+#Zq&!I*-{LQ(mUb7{vHz?f_2pDb2Z;9m`EXu3G zW)c;G%++ZwvSUPDAPS#&_*%LZ75HlxvQTG`x}`v2FqqgZpNk&`=hsA5TH*CUeWJFY zQd_2KBO&m0B7gPDCt6DG*zMqiIUooJA-^tkdiq%a^()YT6V*~`7d*AosiyPwPZ`+7POJL=(o0+qx>j~~V(+)y%}YFLn9YymB0ap#hRxnjhY^0?d=vTPCtm77N%BSZB9(9$mCBSS{+1b?^ERT;COUG8%=)v_r z^PX;roRi7kGs}Y~4{mV0%W*jm!OeNU$XyK^=CJ*r=}NeNC<-_99$B zkr*?4LVsZ^kj9(EuyVcQs6-MwDs&%?0R!x5M5>Gb-VV+($uAMks&`}>XXz!SYJ_Z(aY84fsKs-W^vt$)xlc!IP;XSwY53ok_W?u5i!1whH9 z-E&rwFNcSBSaJKornsQvO91TOfzyE7Np0r@VJg1q^270_@Rug}=Ekc4TX46c;>16( zQ-_H{nJaw?r^(cdD!zLL#}MUyga6?AP5L3iwGGTxF+rx-)9Mxc`qa&#?OawQRZnjZ zEPrHp)=Bo^C6WwzH6$K!+zjd3ODo}L)U`u@j4KAHlYxC*9nVhDOid@@)a$W1oRo^%Z z$lA5dk!=^8WW)iCYWyh@I|DsDjDJUNyuvm8QCBei`p0fw`XgFqPT$G|WV*H+$A`ae zu+6mCSVZL{o0S`XRM=U6teutYxvG@2G6}CcthDc$n(5l9nbxKzYj#IfRCIW=JFL|b zOBT_#k7VEUQiT+rB5^ZuTStx$!A+nXj`!`<8F_S=DtE}5KcO*}2*s41@_!2WuNyMo zSIOnH-@$3mXMKr+tffP=;%=&UIaBOZrkn5IFVD)IBL?0b_vJCP(2(bdIlvfN=s4rg zSq2N56@n=#D+2#U)}Pjhxu+P4t!t!ve;7)i;oQygi0N1lEgxMJQ}_X+5Eijecy6mpW3LaN35>591MIaZ0ur6PC3!BrUYrvAJoRq66X%!sp05@xm;?+m7JhvjdfFMY>GO z@1eeQSS_nf+g9J|&wrDxC{5|~-KXRCUMU}n<{;dDU2<(a=?oL);9h4TJt(EXey0bk z!rqHk3mE8DL6gW@E>q9*%E4yO)t0ZHQ^m&ETU zEj{>--IAnU`l>rf-7blE)|WlH>lB>Z0ahYFT&dWarD)xkxqm67crFO2y|uMf@Y@kC zn<&Y_qHtKUmysN_LO%RwBx^%0MzP&$u_SAIJ-SOu{L%PjQ)5-6lIt|E5hVgZy1<>I zj#~;Bl*xTQ3x6Cp?FJeFrWyfW?*k8R%`R}wm+i`SQmSFHFA}w}44@o-eR7sd8-l>r zAemPVQ|(fhp?~AY0$%~0J5fYT3dj}1X>d4lvK1L98A_mSNaD%}x7`a1q z1*v5F^rovTDo#j=hEk%zh6Zl=VTe2)(B=mroXFukSHusFNtbkq&NX~nQF`ImFg#-) zrKQ1ZO<%rX6QI{yF4I@NomMM-xwDPm+s`1-d)9@}-hbZqi#-VM?eFaF0_555i+zMV z+v|3p1J|haY;SL852hG?)Ipf9*X!-}dcA@5|NcM!x8<^18qNintY})pkkkD-ZS)5G zbjU>fH$cLlpa8#&`uE0i1EktfM?l}K8&ykAQt#);#)o%2qB>;EAzwlTd$Z4A|JC`& z5A83V&VLJUaM1bv-<|(Cda5m5lbPPwO?Ej3o-E=Nwus*LzNq**#3H|hPaSf$ud00O zcP^pIuN=17dFpoluVLqpyGm`hw6Qk&va_x5cTuiuQkS)8XIsPe%t#H=N4(vgo=DAG ze>{WM!5R0Ij^AA8w)N#pe)n;;grBpOMXZ_SIDh2IXPqqchW{MhBef_fQ#Lhy1!4y~{p#S@=);P7zWFTwR z1m1QWC-%1GT`+su+kWmm9d7>DlUAqi4LZMn^*gu!Q(TLh`j$Dc02SVvI90Tmp&6T@ z>VM8yYid7xx%X^myW467ulAnp^j@@D0n0R4R}nnH#9q&F3lFC)yWXv9RlmUJ3|yzE z5E;j<4eYnj&!7OMj_gMTLd-lsN+i+W@YIpnq?t4hihgaa;gv zPaV}9tyb1P=6@% zO&X%yBGEGt-ZwJ^9~uOHME?x>`7wqjRBHexAnL^eYXP{E>Ud%YisvfR2a{QP^$E?9 z-|_x4H8p&W2O9_TCGaQn_sHkW_4eOk$Om$dq@I5HJ1(;3~ z8qV}$Go%wOQ6cH%wN57o`zx|YG=IRc0AoO$zfL#@2H~K?YK=qQWiN2@A+N6y^C5OU zdMS?0qLgnQGQ#DQ1YG;z+z)M`c;AM-5m5yC4fHG^NtDh|l%9lS;@F3BPEX)ly}5~M z+ig-Udh071LI=LNb9Yaq5c7;%tz#);|II76m<3z?{QkuIMsC?o@TAk}JIJYH$%cPV zM#Jt1dHG<~9G>e{L~kT7dpKlJt>xU^dX+>p4f_{U>R+u+fK>!lo_pU|h37A;EplY; zbCDaRkZ)Jyyxo=$)~ReGdD8B|8C;aZmc(z4Ln=jk=VYScJTP!R5jY1bmxB$gO{oUG zun&>dA8!TBeei3s*0fr67z|A?rKNwozFt9gV1br&I-TXEx4GF^)MmW(b$pq8f@jXd zo77LD;7H_o=Lc8XMo^);yA@11@akkQ5|Wd|F}j#T7lrr_k_CYQAqyi_qNOUusv7&Z zH$!-pU)T=57>~SYQz42Jo`_@$3gpTtb77R()M_zP773Y?E3@5mEjLUF{#1W6ENjTC z&6ZKMcUOFv59MMeG11i*ti$Sp6?^cqBk%#Xc5L2dT)4E=7pDQa`zn^AsVl8u!{nAxHJi&&PtT#9jeNXZRbwV%MfU81e7KAL#hAp;NGdV|F|kJ zgh#mtPoRRwhgpqtA6b8wgZcB?f@W*4WpGyj4eb;hZ94CRTKAn9he^gx+hcPIU7Fi4?wc>u(YHdcU{TaS$cp2mBMQk<5 z9JQ12Bi&W#-7)v&fY_9oF;~U9r~5=6@IL4VyweIliEybZ62N~+i{wrBT)@>Zm9q|= zZnRnm(x#hi$QiRhO|>+PVwn1Jz)osNnKqab-k*!Ja8_62H%VG;nf#B~HnUn-sdbEnnXROK1TqgwLz!>pfLXh!kRa|fGeMopYLzPz{H4?!jVMnk`_y zql{Vty#YobX7xXk@CSD8ZIcH4q;>qH3O{b{bqO-pqfU>cov6J-Ccr0%+7t1Xly|oI zaRW~p$kBf{7u&}ytG1DdnORZ-OKO|?P>~HG$O8$?a+Zbdh@1t|%R5MOedv092=D@mg z=kR~}vpaxDcVf>CE}O~>sdjgkOZ?sAzt5J-F)K9kdL*#tPPK@jQpDc#N(1167doze zZ~0EE6}8(hceX2;;Ti}9K%EA!%B=Jm<}(qgq3b^|6h?#vD=4Csoq6Z@F2jD|wQe#4 zlp(&&?t}*Kr_zVrO5bzGeY0O5(23)w#t47pT0v~E5~$fslvGFhS;H{poL26|CSNE; z#GAyAV(Y&N#S5bk5W?f6AR(P}p6!UW`O0JQgN2*)YYX7qAy-nU5sDX#T`*YSPl0I< zk}Psvc(1Pu@9$ON$n-ae%o*TyEjBstcILRTof#bXOk3*(N!`Lb&H##WQ%KHR`FVfr z-RUe{SMi=d?ym^o(EV|rN%Aqlr++cQCzK8c)E7t|x`?`YpOx(F zEm-m4yX-l zewjoiMJeNl>ut=@oQRRUeP1-Z)@gqm;m7Y9KBIR?o0-WSi2gonz%Cp&TZ>r5y7)ZC zcH4%+(vSFHQt!VMV0tnZ8+agnRTP1r>-7Crr|-9qoUa-$)ht(|If{@5ddt+1R?@`H zv;6Bm%x!yJrD#KVT@7o~Hbyg&(if0-brhb0op5%=lUV$$WASq{nK2$sckO>GR&oz| zRhW1J4mRzH8fTqY>K(tSkp-_dJ7q(PMU@%MJ2n)MM~ct#5EY#&Y!kL&V2DZJ~j z+G7a97L#xZ!B~*n!du^FUZ{V(LV2DyPFt=oGnx3qbprzL(fk1Mo8HcrRC6!L>TZ4XYMJ?xEBpCgX$*l*2M)H5;bKYv5>z8$H zXBwOjw@20Cgv9U|#mjQLB=BxEf>qdXnxJoMtB)C_UxkgHaqJVqAv2zf=HX zd|t!2<3jUZJZrVs_=;iF26$n-6tC}BA}F8{tKjeFyRmv@V)g1jhE?902{4g(~17Tr;5wKLZUX2j?J@e*6x4dWI8t5b9@i->hq&I zka4yUo7$l{D2I=pqgolqVhU;)&>!f(naHaQAzlykzCE#T$vH`d$_`abtUvpj;oON5 z1ift>kz3gwut9sWOW$*sVC9@D(Y9w=&}_3%O8Jph{{{7e9aLGV(Mq8+&n|Q z@^%M>jSR+#!6jC`nTUZ6AsvtvtdwHO|8t)dB!o`fvsMQ7#4#Ai_0k!^-m_LhlZ>@; z0=#1V(l=>bD>eL=&_```{VQbtARXRPla=(H^dCF!8ZxP|SQJO@K{5$itza#g1Px>o z)XAh&y#s%QxT!Yb&iC~R_sNt2{&`=>R=B@tf)&5%^XwNx)0DS=m!#efh*_>Rqp;EU>a1eij@*W zlUsjMb1!!Z2^m^kDt6jD&v}NjVu!+6FUf9806gW?XB=#ffY+HXQ zZe97ZnqwdV!*b-R?890~ow8lc-02}AHdx43vfmFjYsJ)b%^U?SU(cpRHU(K{Een5I zzgrbj4Om(E9}LziJBjncJw4tMMMjQWzG_a#TEG+5P!iQpLLP%RP}~I9chq*=T5BBC zDDX@BFV(LV?W~mQw5}zVg7u^d!oiK-Rym!e0r+oIwhgr==B z^^{?DD%CrsnSV>yQQ*CcOXo2a<8T@EYFCpe)8&l2ea#vr+B4w3ZeVZF%oTt1bzOEX z37@_xNzqJ!1IJCn1i_!{Yz3I|&BB8Un%Vgk&TC5EIak8ktSM+Bpzowi=^r(oaDTNRSuyCJo0N)9Hr==jT_YXaQU8h7aUz=?Kbn> zWJr)Z*n5p(+-ljTCB%~azHjFQthup4AQKR`km}0}eNrrgja%lW@|51sxSV;xM=oPj;AN^0RYiZgFtA=P7Yh!& zoX?UNq-6tX$Rlz{E^js@?SRsB0FzZI2!c6?b@QEwV!Mt*HZ`YqzgL7y=@vWD!M!_D zp>3fUQA*<#83-yDUaFBk+PXuw#4y!qVuWTzQLzckXYvUWLID#o&2y5F1x)q1my#>5 zOU^vuJmIxBJmYpU=3;+dvzE2nh&`}t*mwFFTWVs5%#B9bxiFE!6}9G&0+g_p%UoC0 zN?NT#SI3%*R?qL79B6ZnsW28-ut2PxLtvSO>FMPEp)&bB7KCNzWbUzE;jMj+T!Y2S zKrV>Ea8Xgy2!;!|yP8u1lc_nx({O-_R%&RQm`I9b1E|%q&%A#{yGLF#^q!eRB6O1G zN;OVEco*1;E=UCkWj?SURfOZd=4PT7-fPkK1*{;P#!tL}&xO~+#fZEfF5113Lyp0X z3*_sET;KAT9Jf!@3173Lb4<3$iGyek)y|3Ji#QJ@&L_jGcF6EP^7v?h#sW{w?H731ToZGbAzRd1Dk zH5QPvuJvCN*{o{mtMa%7f$u_sVU7SyL}3{u*1c8E{{nw6czu`u8tb>t_pP#gxjd$1 zm`kNllx^%ko+G^Zm*3l3t^XJ^nJNJVyQw{(z)Vt7R)hxsDNVks!>KaS8!ngk8X(El ztElG7F|kjSOg+kUD>hf8hBQ{6nLeZ^a!50f6mU=EAf0fQ75wh@P*D5?gpy7)UYJ%v zp+1A}6%&6rvrkOni%OR?4&nO7^RHNbMN&rfueEA!wrbwos`WAp0Z5gcI8~g2(ETmd zajA6&61>SRvznrvMSX{T#oV?v8XABLyy=q*iBjOs!u3LX4yE>{~yQa3iiK^YM>S80R&Kwtz zqd%@0lT=L4LdlT^pd=#q-hQK!#JU++S1&LpX5OqS5xjcw;sw*$P+A->di)pkOhf*? z+iGnFt(Nt55``g6-)30}KHAP^Ie2mfYmp6_U`+jkl_g0adt}qqRJ)~I1LXc)WWHt> zsmOn1K4OL@rlw6*Z=?xTIQQnxav8MSfYfyqpQHLvMI&apv_o%mRze(^GjdwENmcDb zYl5tJTQs1mG}LaRw_eolP~NR8G{`IuHVG~-l>bhcIJ?Uw{=Q(pyZ3Acq7e&yJPVI! z+wHla#_Oi`!g$Fs>nl|8>&t9jjx%^US(tw>CryQOQVik5;4akb(E{mh@d$cb+;?i3 zn5UNSCc)h7LtgCz8wYvpS*%@R5g9tcE#P{9B$l|jLFJ8Am@C@?rxUbBcj}TobbybQ zFch`pN8mPIgImy#fyaRvPyiEhi%2@qam^gup3N?qu2BqvFtL1>pU%a*Jl?LEKV5%y zZSm(T63v^hG_iiA@#pLH0i--{zfnU`_FZcMNOP=HO8hovW;Y^2NkCGf<$Ld6pe^SL zgbQTX;DRXDDlf*~*J)j7{GP)z8arTj*d762??mZ8)_QrrI$T4#u&TkQ>pWh-aydZS zn>cl~PJP$J^KovX?vNH`lrs0)Yv6y<`1`%l4an9Ko%)M)QH`UK8-yZcilRA5z^K$Z zZARQW*mPJ_MCIm<8icjoOzp9i!9cNTzOyriR4AESxM8s&((cpq`}B-gS zaRZGt6zUxcbOw(SW&$CY9bN9EDvzTL0x+!cNh0lRzl!R{V$7sz2a?t;A6&m<&DKpH zpxHSvESq+AdC8sab!9uO@Th;?gIt4cch?~)N-DBemzo)>y4f+t(UP39*!1UlV_tYsUGNGu4fp zuRB3y-7zjM6}p0hU2Y0PHMLd4NT|tHt;c}Aftm%f4zZ%|K`Cz?L#Nq-iCjo7=ibor z!w~$Kpx=iw3UD>|!DNeaDFHv1889qO4;I|#bl~TF{|-1^TcDng|Hsp8mcu>};$~3# zQ4CduksoJc{J>ozn!|s8+~c8^%ZSEdLD}b6m46wHXH%#dyjx>M=wE|a!UqNZvW$}+ z{M&|qJMeE8{_VlPXYh}?$%Y>+XM+F0WrOC?BBo=ShUim6IMyIm;z!UFaIC?9(7y(; zQXe{zW~>bsu@DDYUJ4v!q8ktZJF$?fp#C(N;77oti&>KRQ}lo4UG?s5xb~jt{=WG> zTuwDl8#8e1ah7;PD@Uv;pB&7A6RuU<+s9%|ZQQ zz9Pw*xVgSDjpub4TlTtFb~<2W3x!mxX39(fS=mshuY|goRjjhIkr-@YDTd4JE~(Uf zr5~2<-hJ^>_@aNaO}5ST`sSXyiC_;m@|jN6gtt$PL+NS5sY7<0)L>lRP|f~Rha~#Z zRh4%N3yQ(LI7Nmrz<2j6@C>ehXDsqrHB$_t(Yl78d*HYyseS5H5;mI*KXu4!*Z@wA zv$EOH-Mw0!+rSk)MV3r0ZjS&@@2a^KvA0`qu37#3q3VAh$bSX-84Y}-p7r|h;M2j- z>T4x_Gz_x`?RK@50ZYUM@XY#r>Rwf=Jky%|_i+CjN{TM+Q@Qsrl3>5UqrNEZQ%CC{ zizlC{SC}pr#1qd)+G=fPt=3th9&J?eD$1d!s5o`%IPT?KC9afmj_p|19j!A)%&M5NF}|m zb8ug&^zP4w&K>Z3V72mbbLD|qVo>eav+5%0Q?13py)6#VHi}WcPuEY0F8}SR5jYSR zL{8&y%Q~oC5D$RybbzK((S zS%(kR*Jk|acv(la_w;d6C*j9X{t>M&6J{;?3D7tvm|$VT^1!?W95kLJ&2sKNRUNE3 zRsE#j84h&*&H;a_y7+G}R&?OF7v>DOp!XfLcqa?UA~Y4G8%LnekG}wbDjWB# z1rXr5$rl6Y1v(eEK%>b3zlT?$8Wg&$xu0w*X|U^V_aoibKX_n{SF4J@WzEf4tHrgt zr0eC>cyTyseBme3!ykVMxc4RD3Ca_m4l=xv#`+rx^eS%XEBJc*8l~Xjeonb2TZ12& z=B&1s7xbT2QdN%m?x~k!$IZjgRKCNU$6ffb5B8)$ffCdPl?t9p>D)!is0lVAu8$xn zU3sZcUkJH$0Ilk6%2EdmZ>|+#BMtW=S=CJm15?vv2y+rL5psVBF%v9%L^*|)JvXw~ zJ)LCjsJ-3f?WEA(wpJ^7;_lucMK@TaH5DJDj>qPzl}_120BSz4TGnVM>WG1WfZb6xc+ z0(y9T#fca5iKl;L`Qkb$sfA{J8cFVzM3VNMyUa7=II-U^WtRiIiXE3gLfL|w$Ul0<{D!X6ZA-tB5u!mj2dC&eIl z69@XbV0Ua4|Axg+cziJcnOiq8D$oU+RnD_Hb3nORBR+pz8Zo-mZ>B~O-dR&q%J=oX ztegfjL9o@%rlx^e0lVMCa4nS~!j|YFgb5cR%p9=$lNlz5vWhvI-QEB!+_)$X3a{X@ zB2yT&0jfkn*GEdx!-gbG474Fa$bs){J4V}!=5B`A&3vt8rPPS2nf>177K2`}-`(y2 zMJp#DS}A`TCj={vaIJ5qP-U%6lji2<4N3F*DA|9PUaAq|0G;RreeihZYS1W*4F?-* zsw~H=Zw*}>@}T_b_bqkbBa*Glq&AAMGHF%CiTPgn(`l0-`{_N_#4~+_s>$N@Zb7&f z(ci3~7E|{Sa5^{c5ofTku-#F=PW&s>JTGeg5%qtY!H2&>WahraDz5HU2yN(kP}!W! zbXha;1(L=4z=jw+YC{w)F7BhcfUA|=qf!<%s+0xr%An+{j~d1bPbrTWszZIK4*#OY zvxc$v6}MOG&{#YQjl8t1`6;IOtN5#!hP{=hVRdsN%J+|sqWAosCl(GBliJavA9JGn z6sLd6in=#%WjGV9EGIPa%P2r$b=|3t-q725&AwryR!)P7TC;p+X0_Q4Z0t?Ykn4Io zuCX?yjB*W;VKCzwz4CU@iK1crReNWwHmk&JrjgpPsd~*iESOl-#eml}32ZN~kx8C7 zF0)-Ls3%?PjOp{7J7an`CxXBV{Tc4MtLhyJYg;av|1Pe*sa(Ph5J#WWY#P!j4K0SV z4?KickFJFECzWcjS*s<%6@?YMCepnIbt+_ktZQT=+`Ezs+*Qqul|vfZ=hPPl!+3uc z(;Ac5*poIl!Wl_5?Jns4rY4cb)4zDQ{924Kq6{c7T%k4UnjxlIt#-S3+3OCf{_NaJ zql%Z?ASbg1?SuPDvHaD_bcDkQmtvAx1P|X#Lw%@kQz+g zTzjVfI428I@p&`X4#AbuQH9Ho(e{7U`zWQ{{1;g~pbBTNA%!(=%Nj7zkbY4`_~O2% zgGo>?YuAqM%@tXWwz8mNopvJseDBF5deEP`J~W{B-F)h-m2)|pmJ>Ra$S=HylK}VV zficwfd4>V@8eow|6oSu+^>?O+o3qIj`|L;bjw9<~BIF6-Gz-?G|MMlQ`SO3`oRp*h z6s$Q$-#7Z8E3IatC>+tRYPe02wEpw&ImV^($^D0G=_T@U6wx=Yh{BY{BkaBxtya-w zMv>PDvGt9=FgO0D^&1+dyQ);KBj%bzKeTh%u%+tn)Zc}u+A8(;M{e)0V|NpMezscc zkX&nR-MQ!2M4a;r3Q9ts(~y5ofiiVPpnqylci;5G;6K;AL!p+b@d8zQ@KMh|O-3&7 z!1O)iV^`CFKGk^Y=M!dMKIKnK>xyc%r0PyedJX}7glbw%`4Jg_k22wg(s zktKfodyi7Q)h*o{WwS>d^wTD7K6XtX?V33{c!B9Qczbth?&rmO610EA5n8TZLAa4t z-R-;a{PFF3?Ji6hHRQFok%SRM&Iv+NcfQ_zz&&ZCUe}s5ijoqqA&E&y#*4{)`XPAA z)J~p;EqY@dVRu2x^%L$lWW9Tn^#vHpq7UAC4Ywrf(s^I0+Ql;@rX7!o-N)EG(MTX{7C?%)@=7*|sCL)swio|K5{_#9F$4 z?UUGXDrRM*tae)A(MFfHaHPzf#0$nK&#+q0s}Y7~8`-J#WaU;cn@(v8HbGhA#X%#j zaB}}fn;ve?11;eL{qtO!vIMr^&tuzJk>BRtFJoI6-*L#VER28p^x9_l%UD^ltQ3Ot z7t;@ZpS#@rr)DTqBPcNUTxC@>lfaOUNam%QFS&vQPNS2KT=PJgI|ERzcZ0erdvs~% zasX0IHM=qZskGg~L~K$+kGxsu94od{VLyar%$OFqnZK%IuD6OWdBWaq;>E+9v1`zz zDY!-z_NEsvld6A6&D=|d3zVnXRMuFROZ6?@ZXyYBWR+sM?dfL6f7Zr)qclbl4EVEG z_fAioF52z*r4*X!JDKuMlMdritCd!s)Dca%#mC@V12_qgWVzH6ZiV!&q}XldA1_o5Y>0gN|l0@Hdmy{LKs~cEwG#UjKhSH;t`Jo90SO8iff`&y$e4 z$05_54%pS`)jO|CL-7PKAq*qQks}y(V(%^h=geLnwk^}F>Q20Pm?05BMcF0n4RUUy z$>zeFh;B@DA?%{lbI?j)-vRS!MW@q80U;)81a(TOA=qy^+YY{y2ko{rybVHAot|@- zwcA3*C%S)x+nQ(_JHMHT3zy5_<@P||?=)jEpQe5k>!-Z0%w<+1(!T)>s|2h7D z0sr^9_`iq$G36en+}p+fn11gW{@;iH&$ivq;}!X7?%loUxl`a}UwC)J&i2TCACO_E zhrc`9?)zXx$_wvqXV0C@$?mor&Y=3?*Mx+#5qZ{iCv)>Z@yvabklr@@ ztVn+fS)aS_#^lAe`((T#Q>Y^F(yI_EJ>OrE=)${$h1MNjh2-b?XhnPp+1(~D_C_lbOUP(N zvI~!o*yWVcTPjTIvsdbm(=4ac^2WaV`Za%_W@YyEtBZnDuxF*pmRI5W7s6N#KM1)$ z%?ZDky72`GvtX9cv~>S9Cvfy}%L}3%n_PN9lyH_CT@W^--SmRMzUxjeR^;p^xya(J zGGmYJpZqbon*+bpwT`oJ7E^2GX#06_VZITW6RXn`6R68(OxkLtIANB{o|rQTW8Z%O z<#Pt1?0dQFuKGe6^9~IC4B2*umc#=HNf|%B&%5XL6Nezb&OHbJr+n{pj|ol;_mI7+ zd?WJU59!FA3IZb@h56uy&j!R~I=FW$qO8liXM|lyz^PK2E!-=@4kIqr3`IjJCSSx| z5N(-u=L9Xvy9qa=@0DBP1jP2;2?>9di45&Mw$;jn?-er9Ef5D(d+mgU8^q+vYa5&( zXxxWQE>k`nxpoRpPPz`62!rjXGdq(ZGEp%GA2*;N=PsY7FYGx~ZmOKl_4dpzSZj2J zAHK?)bQDlQM?PhQG*e416(lpED=*@>`HT5=%^+xKJPatiC3*qnL`wd&4IO_UM*0C| zyJ*Dsh?hn6VC7Q}*gh;;-&=jEZLUyAKs}L;M8=K;UTka=Zm_6{vXgQ_8+jci2#v;t6~T3rd+yscoo5nG=6|M*F(rN<_(o zg8C6ogHM$F1d0s@QcG_-^>4PK0)Op@I)mTgziWwQ4P`9o;CFi%(UIf6g;?!n+J3KU z{zbd+I!9wyOm0c`WkZ6gNapP+51#WEmLx_L7#%gv0mP%3}jQpma4;T zZEH1^{-irzigVtlo?4^G3_{hxCJ{hQF71SRjF@5K+miip2SM2XI9>sLeO>ViIQ9Y6 zmqo-vjlO0z+<1QxC4o1gxL4}>gU%h>C%}(a3_BHD`(JKr8-W)OS)!4)fk;@VXP8aC zFdZJ1#zl=p3ZO0gcsYja6i=0jpq7RmFj1`tc(G354dHIiM>iswGs4Z1InSWd8CvX+ z=oQ>vh1U%5QPt-=eV{h_0s5{IzH1`KEw;Gx$W`{L3nqUcxH3~L>gp=|7Tf1@hrkO2+#UGkE4F`|JM8`y+rQ48 zRfF+wU53}-S*j=O;sS^ge3xsp;}W}u!@r3xgZh7(k7VvYDe;~TzjVKpU(zqr(bKVJ z%I<<6ZK>BIC0IjYhQk|$IZ;1NU@;V=HzDW;jLiGY3tZW5ps+zEZ<{vQR$6SJVj_im z*VG2qBjdJhg$M$Jx+L+syh*_L(@(Tr;66Ru+uncCY9;M9NhPx`d6_Blk1p+#WGnWI zk{y2q6Eg8mk}Y~o19Z0HO<&(Ugu|> zm?_l@!pIJ`_sGBYsOWi@41#X=Q8tj{?GwF)zUpFYkI=yFS9WO#NE5jIRSYS_Rw{pW zJWNoVUm>3gB6>%0Hb~1kvSyd=_W8LzYHw{jTmLoMy13o?_n4F&`=9pEIrne-^xIYW zVRY_KwywsvefrIcl=$=so*wpBWUzg$?W_1w&ko+31z9xl0z12;*OwZFxRyc=Ady5$ zveDg)^gJ7Z~GuQ#;8-fJ1l?l)Be8LOV6$$ryi3x!ySpxblCsK>F-F&^@ndK zq%6g@{r%d#UG=7u{N*wc0wguBkCzqi1HS8uw%m0f{B{dkNUU01+6l3*E^Qxv^aTB~ z3D0o{ljT` zL?~|O$yMs))zagjnDA0z zCxV~ToHYQ%&PnYjGra)ZvY~%VpZ~=+qjZUui}*rXH#n*NTSDlD==e@f8*>;K<(e;& zlT)!uPHI0(2(835cTzhov{E5m7v($@6FlNH_3%zGc;S3*RM4l59=J|w=LsB_mqFy@ zR9kpq3ge{q@k~83;4GE_u-og z<}>)cZ@_*gfc_!)F!2K~j3<%vOR%=u$vh5bq1Rl6_3@%{i~VS9G2cF{?J(!GanCIp z_uNfo*St6Ppbr_Q`fZC>=_HNBiJ6^NXj?_+rrmOqRXV=Ku zKI7$LpZO?7GIrT}waI*tsF+*qJ>Oxz{U#7Q>@uLzQj7Pa5~tGg<2VQQ2a?odkrgwT*GkXw82t%lRa>Bn;2okUrd9 z2ftn01r_{%>`(IIsc{J)GE&9usxfa*z(r$=Kp39QFa)?a4I_URB%mVVZJY%z_+NWB z&S(*gneD?Vdmh78<0`y%3Vs@Tj8aS~yR_Ng)_<4?}A3d!Sc53Je`| z5RANHTs1Zn4ikT6+5BE}O;BwZ)_@652k-H8;+#qNqi_?R-hSW}Ze#}m{iC2>!E&&& zu~vtvzAZ+wukqk_?n?ScLCsN;PUjCwUc_??Zu^JUdP1V8h)Bd9v^~YuTCMIlzX949#H-CQ=qn$B>%OdDyX^tes$=R#ryUW=;!L9*v#{~&nnkh0j5Wj! zP7Vf89>-dni-K_7RM{#^4=fl!*`q#WDXZ=JhiZRa%Ci1edU4@hY&v6j@?+vA1!BV! zao->Om}vGa^8`@h#{|`G^JHzh`E{?jo!%|`TAPBBP(1-rL=cRgXa+pB77&Mb2-W&A zJVu`+?vIHykZCszRl?MKrEvA06}07EUzOuf9WI8wKVil_D@5S-lcX%O*`p^3K@{)3 z&9i@5F!6EP(;2F-Dg<~%pCm&CIYzwL(g%qTG*_6mK-)>7Sw~N2^ygx<3zE2`=yvH@ z(Cq@2Zp24{6h9_1)DEv;Q9fFy-RG7sIaDAW4=nAAr~ zGnx4Org!nqU%IVH?c%T$x`?XX&y9V%4X! zSvs?=!%32)MGHNgS{GKAch$8nTDH~AQxO6v2=s(m0rN8GTEuCE#sB!f{-3-Bt)y9y zSY&XfRseT6V=Z9!>OP7R+`svD6*_;0Cn855;A4BihYWJ-B-hWvSzf%*PdwN%n*9l^ zCkW{7^Qp9U)z_&3Q+LM$fk!S+0FLU@=Lt7DuR10Mg!Xqh;@&y_8d5H##xLLlV@$mb z`_{c)KF%rJTxEjswU=7gu0W9`ucO97N;vNT_7koB0s&#*v6h8$M8X zhR2uo1)MK_5Cuih3Xp#&Yfnh^*%ek5s*^~oiAU97&7f+u=*@paV@D4u-9T#UWb5p1 z_Ez!?@g<1n>U_f@Sj!?@e$JZEzrxY1TSqV|I19{($I=Q6 zRHTm8y|c%-kTQP?F7wheChJl!?aH21zX6uqqHq&u4nJ^%X1};2m8AzzomD>%6Oi*B zVj~S7{8sBvi*!NNwsS0tYj#=oK_DjV=X@5KO+KqNsjPIGC;dn53u(cF*A-`H&4+0n z!WfHBuTpOtGdnlHBCl2DvD<62rIV<@XFac0?Q51Ky8eH0^IWcGng~&oBwJJ{z=NPs zdBH`?%o~i!n}a||de?MzyrwfIwr*-A@NNR1JFYc0`CC|>zh->3X5DL_a2u^P^?$B` z7;k({Yx#4nX){`*Zr2J_NmfSvWMH`AN>?qes|>gqxjy;piq*61y$17#qRC%9`u zz+pW&;-U?x#>{q*yyS#%pNP3$@ub3_4k< zDHkZ)$0RL)3hpg3Dy$StL?lEa2z_CK1dD&xjw+k2U;0rrURB!GbPM-gR39>{tVJ${ zRiBGdZ|~bVoVZ`O?~^L_FoW%&muB!j?|D&rc^S-@3R`oYSX0BX=6NvN;_fM1fOp)* zqR_5paR2%x%jEqla^uJjEBV=J>IS_l9vB;080H4?@=631$*HGRIZWr^2zDJ5@ZNt@ z;ahA7Hd1X052X;&?N;BgQjKdo-k zwXTvas~geKckp2rT)}hK_8#|#)|S=v98ej-77^jWUk6tZOnEX3Cr3f<&BDvT|L&tR zvc&MVSni+kYV&U7OOg}Vl?qdQF`s|w`uXJZZ2cDVo9NoKihp|Wu{Za{{VC8UZmXDq3eTwNfr&hGFsFPSl$x%2m6s$F*Vf{#MN!e=TpFZ z2rw3tsF33qPjd7LNX}DhjRt z1E@M#ho~E-v2m@BE~{ZxC0UN#WcUL7>YSgi8JPwLV6e_tPS-_`%WS{|Gfksll1P<0(=pPr zRz?Grx(zfW$>xPQI4*x!1^8U1A1o=|k}wltuzZNyWZEav)VO37ll*22BxhS8h|b0< z^pDWpBOZlS2@rta8xQQLEWNht?v!OFO&G-Zv5ZZjjSE1e6aSjaBcbHH0a%(5k>14(N1=8|Lki8PEd7R|`ky=0yBX3bG?pw?i;#bRE;IV#Qe}c|W57yN zj%tCAHQ3pLq_ZsBDp_n`nxKSoSs|Q2w;MiEaU~1)=W9C|g=6VrtLaI8zSgBRqAPiE z9u8}^7?1m!X;77(t*D{}0}<~M2PXGEGck0n1dR+WpmA8#cHKUbH&%g{5{!~r!_(Xi zM-kGLyaBUv9kYL;5KGjGbvmYiQ-7y65HUYeFSL;8l^sSfOscj6c^I{POIEZ*e#_Ne zhfmStvh|^rMwVmEqxDoAMNHuu+0w=X>D7I2L)jM>1bo-rb;V_@B0u}=UY^}|f`xlM3Qs?AV>5RZK0%DnL`_VjxI)$HWm2;T{uS z%XU0B9}0h;Gp7bPB)Gl`j5F0ziu;c|Njzg$1HV6}OQ72eXnN$2c~^r)r(-W!@9u)p z@|(2)PIb^O&6`l%>DV{QFokV^SV>)DdIM>obPz)k2C0Mfy%Fo1ZCKygU5h(iv$$Dx zarH3RKirpi6#kbY9IUIu*gc?6VhAp*Ogjy|3cr6|1%xK9b`|8zK*Hj?AV0n%?>Pb+ z!U5rNz>Z^^2T!&m%JGxX=Rt0B=B$zYs`RSFei%uDPKILcBCK6>V+N zrrLsoiXMl5!$5|}iU??URbG+1Z}aajZFxb)lFvWc-rZY}`T1(0HE4Nu>E0@xm-FG0 zA~WOMTw*{0=jkOk^K(uwmB0VnOM0cm$vgzY$tC566waGV^x1a~FR3XWbe`}M=NRJo z3S$xH^(DILt9mb4f%E)QIqe^@-_EB?%`^YiB?bO}!ujq}IKw}?q)2L=U-*y1Ac~wH z_`~aT={(>ugTKG5c+J1Nq(vG>&i6U}IAMRa01Dsda@I$Bsh)oZT+ldZf4m0A-Ts0mdIj5VlVeG#L^B5J4NLb@FbD@n2DvQliZGoN|gtKnTTJG zMk&q5ZUGFq87i&ya*pct){obY%#xQ=_zp_F)RDpB5_>d;7w8AiE_E%K3E|N~L)%yB zDm)f}DVyux->!`BM?Rg7SqmfhcigD94W=ej{*0e1yRj@8OmQUhwEu zG`Y?lf91-oO6=3u!S&M*ne9;@K4;ArSNZ^<*6}1;H%g|`v3){epw*EkwWdykVhzA1 zzTXJ1U{A~jb0m2*4)PqMVbo_6kG!$1Pi0R*>bvk7yucKkELLKvD$H;~)l^mSj`baX zdP!L(@P7%DVxM2Z2zR8SIsXhu&si8Og^|WB5B}h-+}gK;>YC!0kbM~P)>h}4j@e99 z42u3|ud=y% z1t>0G{OGF}41wjV;7YwZo~ZIdD?bfXAIX)`2VX30Y-5!lMBSL#6v&X(aP(Jbr~iofPev3PLWwH@fkWmp^0*L1_K#cz6YqU^!MK5%B^35(|dQ+8*WGn>big zrwMS)sBdXPBYWgi2w=P%vjOls02uhVYG4{YTrzr?@o<6mQW3;h9UwUV%4$@|8FsBN z$yk!5@3^>{tq1dy_fE6t|9ji!xJbifr@t|{oQYi?3var}DLI!!~ zWPiT|P(jF^_Pg8$92_mjgbh+V({o}a#~O}c(6X8cr)wQ~fU zs8>+PqYlRn^BOJbf}M{zE1OMgNl00;p9|77zeRm=$$h#LIHQ4ZskdK2B8G&w;uxLQ zrjO^WPgMn+zPuo<=<^tVNYm}RJWZT}MrodZbP_mJ6k)<}w!(e<(r(+}NJwbAT~Kj4 zg#<2s;fls{$pT^|*ZC~)52G{*bn-al%wN&z*cS8*h*y-Qh27%=8NQ6|=gg{+IF+{S z0Ftg?6Iw0B#{N;ch%{>R|HuFR|5__Kui|kZgdMsd{xc0f*4vnW6kuaQ^mJlBU+Q`2 zt?wq@4NypF`OvbuHslHI+66a+DIDXT`lD&m_@ynDKqw+=iaP@g@{rXi%Reqrtlm`T z1v9$%`4X?r)f)V*CCqtp3vacJ)!s0;m!&n`wa`kbvDz!SAZ2+gh274`%4b_?5`9Ed zAQ6qr*R)Okqh`B*CoL6|svwoYm2XD=m}!TnDjtp444ncXv)KzwfZJh7-E;l0;v)WeG(_JeYzkb zruMO`$22`|5-S|92)(&uTdlJXE0jstvTHB+PFU1T!T{@k@EZ%w!VoDOKEzNPe&~ca ze5xY}G_)mc$1Yh@hV_`Kn>i-KV`p>>_PJa#=4PYJbelWubPgMoK!>J!QDE7zd#Hq; zhfR*g$DPh`#n$Io*!n;e@54$+m$j<}^f*U=#d`#^n(uOzK$G78)*ItCl?cnWcHiX5m=^BTHdxwy&8$7zebd z@q7+}%gsvs>PQ-sj09vD?8EU~?AN~(VeQ481*_D5V&puU zHOX5=0NQ9xc!eFyGm+DK)4xQ;Gz9+&_eqK#6_THNK1WHeiXYkQ^&%mtRqdpjp9;)y zl#ZEnk~zvnDktMW3sT8P4`xE58XdOHF8Y zB`@hLGp0D_3Vmzv4A9%KmE;$+#TU!Xv z_UV*nN+IUUetb=k>N~e9ZCAy7y;Ockkw{ck5J!$Y24$HeD<#z$cx~W%x8{s_OKL$S zOQxtxQa=EfBAXe#bnV5^dSrDMUF)$0M>hEASSxvxUkDai<-3l<&lsV~JM3uwp^^b-)mhfw#@j^|b!bUsu(kuN$O zXshkIvpviTb_&|klj_mzZ1qVur-yC^34OdtVV{t}>0=1Cc>1VTd!WvH^=@>E48x7< z*~c((ViS5Jr@?1&GdLCNc>`I-)kcDUN9VMgOPS(AcM6O24O6Gnj<$0|gQLkl4aN>X zD2ByLug9#&)Ov-fh*130!;IW1GyYsLU9kK)I-6tu{o4M*mN}2 zLL0V#CkZ#WS(`Ftm(#^nQI6N?_4 zoTdrf_4y^qNhq>g&U~K&+u&U7%X>erqhtwG0HQSq%30;crI~&p$PQ`da`C3iw>8(L%MK131gl+`P66Uk9t9uq|;eQ zqF{TF8wI%&PhKgrNuIx%&eHkyw9{!UR+8Z*3xR477D2jiCAW487;w09GkW62bNf)T z8EX5x9^Mc$LQljFj^|)i$R4!e&6ArXT_!)U8I`5KPxv${*{H>WF#DZ<#vvl~3}d~8 z#@#F)Evppk#`St2c3F-VW11o0ZV&>CPG>naks1W&hQPhkxWk|o26K!! zip5Vt=*BMvzf8o~PTd>bl4x++>73U3IaU3fO6_*Fn_;Y7ft*;{dPw3L>&dS;Wl%92 zKnb91gMI@Vs|Tps*L|LUF@FgJxkT?j-Dnv@QcU4=M)3)IJmm93Q3)$jLJy4{&@Q_K zl>{}YC6XTq^|0W%YaohYFa(as>vj3zy1PogS|ts4;I!(}oMX;6a@MVl!BkfZQGe$LRK$@5dtNC{1>9B=r#qX_ zEcs()fV@MQS+UIHQ*aR%_n%@eS;A}h!ImiJNpG$_l$a8Lgf z3jqVy0S2qZWY&7+(O0oLz%#hkg;(~gSe(SKyuqv3?GK=Tav(xeV;*h*MU^)z>NSKy zj3#d5Ero`n{5mMKwwUK=R-`i;DIv+UnzPARazlY(BEyt`=_8Z%0=XM;DFwbATcEeq zJ3(nNxFzyW+S(^vAzx{Kx}9}8?bsaI5;x=$gc8cOg@bST*qTEM3o-O10mmB!3ApYipxH{eOjIUe zw}$u{U(nkif#6MO69tkz%*8R6&uph;y(D1CW-yC4f4L&gbi|q&yQ&H>?DSIIRFdb!TtG`m6wS1d@+ydBSc0Rc8x|7*8M!$f(l=RT; z(-T!B%o~rv9Yb?lIMrO0Q22goGz9nL+Z8=@cL}vm*^yb6;@h?+E78i7{1130&;bq( zADs-k-9v!JRBQflOs8!oOvEI1Z2e=`vroZ*b?JHtAqu(($e4HB>A;^9S$w#)qgHch zFNXGi0;DlFZrtgB5$-T{Mq}dObIP8XiIdQI4lcrjy0kB;3PYuLvWlcGG`|KaHClz#guEcpg_MvjfnyY7oLgN``C~Fd ziv62HfnKkt$pwN@x0`ZLJs2S~49RU@Kz+rpIPs%MGC1~h6p!U%@CSbSLly-nh(G#h^0w=?Py8@qOLIkc&MAcl6N<4p7!0J(@m-w&eYWENb2PWUotO*BzB14^WE zH^@6ggz6ENKI*rP#>_~)UN2XPawV^p8;1Mf^N@=U2F2{-tuL(NnRFK|DNv=ONoVk0 z-RUHJqM0&C0C%~vv{43EOo5vhB2IjNG)`DngodDw-wKnwm?R$5MSu+>5b&g6VyLIE z$zdfta+{Q;jTuu5QAG6o4LP}u*uv#f9Q17F-d;}ffJr|0sUObp=jA@c`oW*eeF_%i z&WC-P2bp7STbih7u`fd?=zibz?2nD>|CI$?pG5vvJkJZZ^z5sz$l!GfzH8)CKNBr8`$okHrT(HEjfmTG&aa+m!>E+4~kJlakxSjk+SWC{K{`2<}`d z=A?y}5*@=wJ44HIR8D4Q?G6JIhK82K0++x9JhzaNyusfYP_71)_KM&oAI5zmB($LM-X#v-NjBpsbxfAkw5{lHAsR}~2&kqe;G^(eb7f|RiFkp72 zM6F}Uz_7KIG=L$|zz~8XW@4^NS=x~DRqg|=LU>kaS7(6EsDKFWN;Qy@xhbr()FMC^3HG1pF9t7pL_UftHs7F7^=)--(6b**iP zq5^o-O&sm|{?w3jVbCod6L8a0Uw|ur+- zUBA4t5pq6Au~g%?{-d3tE#L*|W!yyWJD)cDb2|QNu;_6?>%Hr#W$emgxmRO1Gk|{($$%nqix^(@7t1^@nM< z>%bOm5ZfWDSGezgP3NffYEn#Vr)RJAI`D#U5%?{u3l^I@4L6&(s$nO zYsdOqrHh91UIh*Fm2R!ww(n3!gGm#LXkc@}L#Jb9JUOf^7X|QpGRIBI`B1If{R%uZ ziEqG+mS4XB>LBx&;XswWL51yjGYwi+HYuhJya%u?AG3ge!w`%wCW&Ok;O#H3UuclM z_^Jz`8ZBYc!H!widiwhH+vg`|PhLDfdi&({_ix|){_3ekixr-3V$L7}K>?GsZm1Rv z^_SN#^x@^+G>C&1e7LdOUtYg>dwTf8(_`$IW7!)3r51%tKsM-2(;OK-7?h>C(VC!p z7DjA9P+g9H%8F8N51>+uzyMa;uvwBO#H= z%?H;Mt}bf@2{i7vwp%jPb}pAI+60JKPu~1s(MT$PVEh0o|ML3zVH#&?0x8l9v3s9+ z?#P;kd6CXOVlMLn(wGa59y6Ll>_Ce%^A@!@hi{DsXe`zW_ii!CC@yiJdFs?R5gmmZZe9-WOW@BEwNH| zRS1jo0l;epD$iy;Szo>v3jbBEH&>9`2cBJjXsAHwFVzCo$Fmvp3TA7qA=T{tF8FsBjB;R1h1N1Grmc(K1(QP;np0NKqJ6Td6_3XiW|2->@jNPj z!YqOi!$oe9)#jxZyC;ad49JAR6+X~_s_oH{{-DfK5P%LX5VpE24CQ z#^1@a;A&D#BDmW{t1!7r@AIj+)$wnCg<;{!tY#ctACt<*a()<-4Yd)nsB1Y^mle{e z2dsvA2N6H`kozW~mQuNBC7rek6MvXRg1YTlj=rS)tz1)8h%vM=ojjg~Gr&{MC-&F@ zX{*Y*Q1TZ~1^EOXQ|_r}vtAx#O`8gB@a2|5jv9}^mLK|f#_7;<=b7Sj$!`NCfR(SF^D%>JB90g-tH7M~T;xg8hN{x%M1mK#1+|&%D zU>A_C=<$Bts*UqEldBd+E%)<(){}jM)gia}JPT&F<)zt2vEPBm3Zp=#$;HA~ENZ%5 zG%1RSHw|WrIq{mlyqX2UrvPuQAOzrL>8Btus=+?P)X0(-%IaOpc>B;Rs4`YCaNE2( zOs<-^Wn;t**#?aFVER(@=6S$E_sd{qEPVTSp55M|VwiH^kPvU>i#Qd3RdTIu>8gqk z#1cdMd(TFn6iWvYsq`@_#%_XT#5vwq=GLkPg#)Mdk)RY#anFw2g7;z;uh?qZD(Nf# zTqAG;BjCP}k5y1%^MZ^L5Z;I5>atW@VWFy+*=)P7{IEn33T@%HNbD|81CbAcrDhQ7 znu;N773B~kl$DW=%IyY!Z0EUaU%fni{^t4F)3?u0o;^Q#{^obAxkB`|3!YI)z*YL; zpXDqxm$ntkQrn7xD*WKt7QVKC5QHL@OF}?$naxr!$aC9>3WdvJPJ#7Ju`TwAMb~vq z==)kVvGI9DK|u&jhLO!TaKe&6yqcwPh+rIO`kRz$N+~vV^omD+7UZL?z5mvGI+iZc7IEL+TJ)zeu;8#=+w?ow>;3z zE5QI2yBX$oMx1mADrzSYbBn=Pkb~s(W8%p>B=85}oxp}q?g?RO<)hUC&mg#Hp& z8c^$(5E|B20`d8OQ*5Uw#apca_?(}51}r0O!dcFy=^I9PrG&~V+}vW^c|sUng~L>U zG&IpA)z%}$@Ch<_!dVUuG*OQY5)8&GO9yBov7s!BK{oVY74u8L?YzQ&NbINyq9L0bjoeKOE(Qiz zA{(_}+1Xk}%v2C)7t*_A-Ki(~k<=cjE1VW{pf2WN!EHdaNVlaS{dyW+;XbJood4kuk5Pn zmpH330BSsccBcbosm>LX5c21*&SY9)r*mOFW?NY_zYde!Lc1F<_)r;Yu!yYptJAw` zUCxWvOo(tN2^Uyqvmg%&+FDLSZwiTZvRQgLxr{!xCapNki^)yk@JczbHX$6NA6s4; z2mI>J$9K`1Bz`MTN68GVYWh-8pj%Ifo74%iN}nmnUdS38*}Ywcx5kL7nGblg3M?N$e3xkoM~zxh!L}Z z3O8eaHya2u`f#)ykNV@mTi-q{- zM3FBQwou&zHG_ydOk#L~C`efaS35wRbY8&C4vs?ugzvv(`+~k2J$$eAP~Tf3m(?VS zWP4!K)MA9P#gEx^);muQXThX^n>2hcU$m}&!dYI>*5yZR1@5$A;k4$EvrAU8$ptE4 zf(b_2QZFug`dFU{bKEu>uSv7NfJdX=tU;3)3=Vy?b*(_8_wkDilnDJKjdyzl12_Za zQ`it-oZM^u!m^OzZJp0WZ}%+MeAZs>GeA{PA*P0eZmOIjt7EHWiE9R-fwlAaf zayy=c$+kCz{47y=-HUyTJ^;5L`a_JKW|iD67@YmnzPtUWjXe#^aOUO1l4a;DKg3x^ z9&Cs7)xJBrg~VizHOY%t{Fp)S_gN5sr;A|ga(;dNaSH+@ZiR^))E3*8){2U+YeV?U zt(;(H2=+1Nn%Kf(Kv4E8@B#k$)+F(_AR4_^W>LsLiX~6E3x?Tv;J;z@{&xF;&wI#K z7pnFb=tULQI|_1dk_CSi%v=`8o5g!8Yv!N49bSQZv7nP>?Q2*j?Nf%E;!Bu+CVsY6 zq?=oVz?p9*v+JNRW&*_pE0$F=9X)w}ybQWw`$tv+5V9hH*0Q15WO<5#qF$xBIq}(K z$wEkFsa`)wAQbw{>{^yW=bq3}@}9M4*$ivhXoD4D1H!?GeJ-9VAJ+!lFj{#Rdk(Qn zf0>2+i;3@V&1aE(&3c;8qBpXCq~6AhFuD1>CdP^p_|6P|(5s*`O+*ZoV{ zn@1VkgGa;_fW;U=^-Y2)(q_T*V;1m*FUtop^|4e#2P~b+(%1OKOXh$%1gGA{H^2$~ z5U-pcVhU~=5K{nlA&uRjH&4Lx_DGJ1E?rEFEP+#&&-UrUeZ6lJlqxNMFWFz8{h995 zDf{I?L~3>p4(i^1nk!|f2NOF6HsRGi;WA?;7PbR=3^%wK*gMPWvWKpH+$++dHD~8D zJm^QX*oLjJut@jCe)qT+`qY%Cow^Gys<~lSfrsv*C$7<_^oD58PxhgEf5$i#%q7x% zBYCemH5OC{%IJFNU)J*cNeMoPg%_i5-k@I~|{G5IRXjQxHwIhc9x3!_V00>f-9Pb?@cl^1@@?OY?!WC;H^-FGdf>^vpf-Mi0gV`%K!@pD9h#v2Z`d;0={; z-KCIPeq!mt9?)Zm3$ke{ZZT{ZP3?nJr?H$RHEBQSbdsh;=ydD{Zad*?N9cn)7AuC( zOk!D@7Y+!-v6ef3rg?Sgksi9?S%prDs0Nk;wwiju&|+z;WWhfzmNGQd39b2~n27X)*E&e`k%(7(!|0(W$=a3dc78$4r z?1`4AfSZZqFj;_g<2{YK!Xio;rEAxg{m--~)b8`5o^ri^keSa$<@x#T$|j@p@t+U6 z{~GqjkOS@f{6WVes@4`O{IF}>cqV&hzJ>^b#@GqCZ;>9ONstd1Tu>kEizGI=CL_on zrBX(K;WIc*@C;{}ii|-C7_zFMW8r3_cua5H<#1We8v%87I`t_UHrm7JoRR08?Y(Q#LOkjl6f`fZfc{qVR}5(2@U>aZG=5KPd~^1`_^hP>-HV{rtP}#fb6XE8s?MZ zoA!pjBP&8pN!KSbJeJW8J`v}WZ0{2=8t=MCT4se4@F}3}WsgO0=XTdMSPFgE$9pKGh-R2kcXU%65<@Yqv@C)c8_`68r6JIjQ|Fez8d)EE{C)*@lj~Ww{5GK zgY{5gEZ75c<9ITq~Q-COPy*&%gq6 zGA~lNsae$Ge=uJHJhHUBTCxFUT74_;54kgc`eT1ggQN&%&TWMLi_sI_sB^YYD@9L1 ze&PJ;Rm*=Uimajd*X7dr)mzcvLs-1m`!)P-=rda@zr z6VBS}2^4(AZOgT2bjIiVwa-6<#eKj2srhRR&Z2)|SV8pg)EKFsT8vMYk(grIO(qO< zwzn;2FoC4;RD@4AB$2;wo(1CXnkoE$rY*#WurQka1K%NQG8%1jiJ^18eZE~TmrHx- zp7#i`M_aw~<+w}i(VwmJ;(T_VjQ>TpuS5Ft{+Nz5>SNi%NA92H`FUQRpJ%tPR`}<1 z#hN%@cE?@vU-oDVFtck9o%8b^e;{3AQR{kc5&Gl)cua2@N92qwjmoI>%@CGMDk90fQV|K{fe=fH}#^j=fCis*kv;aSuRILJ`?cl&p2&wvc=WcOeC*6=m z00#H{Y7Nibgx+bl=%UmA#yFy^&PqiT0QdeOME9=Og;%Sw<7uIy_f^a`KDcO)<>o8P z?a|h`|91Rfo53I{RG3~XGp2m!}M{TR~ z6`?(6@aXaIe7qWWA8a#LiQS6Yg~+)f;>?T(fva7zc-kv&zg7T(gxV#4$0C+8w!r(B zW%K(|%AcVI%dExkbJ62;K!UF3Ru+Qur1CSv$7(M$?RE!ptcey0FxsnT5k$UN55dE) zpj*;ASd=ig%bSUvkg`06xTmo7AlxHdMfbiXt8}lI1;LGbb)W?xI8Y}kXAiEg;%D`Y zM&SW%e1UPHdES(XQRfhU0`ujyB3^fXAozvm{?dE&7uEao*Y)Qe=nTZ{U^4?TGLPSp z#*lHAi&`^{K5792ZyVAS|H1tSALR~Up_&_oMI=)RrV%_l7}7sV8flWU>A@EVfF6odhXC97|DoCIGj||Sg%+K!o|}1R2odTn zbW-N&W%u+p*nyK2FTy0qA&ejM+X-gRqI7A4&xITlq1gf9&{ts14ut$n6LRhh1II=$ zJFC@dwJg#Vk)Y!P^Ooudc@ZWEh!^ZKXBNJmEDZ`uE#!!QeujL5;^9e_Lh`$ZEac=_T8s_*kjdI99fC&mMdFh4Q`%O@=prg)0o<3&zrEyApyyKMkw|Pov zheYMF79SWV1W%rr8wbE*4SC}eSx?KWkl%#*BHZKD-JzK#Z_2c&6f$h;2ttkV4^Bko zV3Y~5-(&EGnz~vE#D+Y1q!nl(t)Cv?x1$r54TVpC;wXs17$toXZWA~JL@aJ%)M|#qfqRId#lEyb7kpl1O zfTR%B>H8S%>4+W(^%P6VpjP>G6|10EO90+N%Vmu9WE1cK*MC|TJ%KytDFm!M7}|#} zNK#IJ;9ugLqF?p?5DVE;f3MTA*=wGLr3OhR74AF7lVaM7Cm-xS^+)k|>rkBQCvv$2 zv=6)1mIZo&CwBt_agyFwcVxX36;zO2N@!oF6kWS~=#rOpn9JitAvIGMF(R2%c zn{Gx5UgwC=6R{ERs{5`!P`xL8L{Af6jHm6o5Dmqc@QP;-GQVJ(;6!F{R!X*3_rW%` zEaIq_QgnX9iZ1?fp&dL=4LZ#O--CO;P-JRGpm9^yEhE2{>GJIC=$hAWzGcz=4i1I~ z2N-(k+izG2P=Wr=K9=q8^0NNku;1T*bF>T?r;QvWKMqwIWQ!e>HO?~Sr`Tgyf|N63 zyE=QhnH5WQR_yJ8GUqT4#J3fO%zA8f1uuq-m@<(#Fk;!hLsfE5V^ly$)#F+)+0$JI(2v@}L+4b5S;fKbN`NnVtUJFetO(3*{Z9wj}- zqUo)RvQaedNxsc>-HU%*bUG&oz_`QRjcWD82)0M9^Fj!z!XD#c2!}Tx+{O9%KQ6Qz z<=#4_y~x(C6z<@t%7ZuU{3V@!KEITzb4?~SAP`q18g{$s;~ZmprNn_m(~%oW9ljxv z!feBWrPCs}7+BN>>7mRM2Q0gPpoaldGrQ7I9-CA0BffR`cs__wvzwp?XT z1roy@DYzZ=RXS^380}wB?wSpOc`jNP@DEh_x9%CE#`>gzupAz+xYvAtYG{0yyAW8* zy0C`U_p`|&c;b0rjN@2u!pIMBLbw_UQM!Fepge9KniPR=L5x_F-lX(ck(3zn;jLu4 z>H0mucO%Kr2u5hWhv6c-efp3PIyHNK24L|yTa~#UqlG?ls|+9NL%vWSzL+G}4{r0- z1sP;r@io6qv(M=*zddAs;`Y$8D2sjLjI0Z5jDaW>35Dx)Y?GDjA22iyR62mhaU2K5 zq&5ybQyYc_t<{Eg@sEr93`-cJ$yVXiq-m#PtD>|Eg?iUMp;MdCOiLM4ISs0}awXoo zYThq+q?P4Y)>mS`d}V#b_sduJ*)MoS->_k@17pLSTNjvY?Bc6`=I!#jVY@_EY`ee) z`O5lgXfX+aV`;(xs)=y4G${-x8^kxlwQ-GvXg}FROY2|i%=wo%bKc%(4~aH5Y$H*{*h&B58|iKHM*5g4 z-rMT@^8-W^l<`vf-&C>$b*+IWU%8%}c5|WYLArWyt&OyQ^bes5u@b4D2?l$&hPPpo zhiJM>(|N&vt{hq1SH=C60}b>)=bN3CgTd4EuD?{<{F}epYJXj;D~}5>pKAh4uR%KZ zk~0W$zX=Sm2ok#5neDl`KwzGWHy691Q8*{|0^b}SY>M326a$f`*Vh$~J0Nhlo=aX> ze<#ai>`gj<1-3HlF<^j)+XZA^4%6f*p53SO*({wWaKC<@T%|4t*0RS}QUEOz1uN=x{q92Z zd8^9JlV*ycdA%Lzv0Y`d$x1e{kmbgbDRsh5XZw7AHat(t^O?M)FmAal!%E^Pc^hMi z8ds2I+_u|6&kr&Xdh#ES9+FPyH#o~M>yj9E9)RruBq!H%y)+!wl4WE+!o>cD%0Bu8 z%&{A9(BYMRWb(I}LjP$nf#o>GL11bQ`AUl08QZ%~6rI*Z(Qy7qzHMdj#~JX*z=3sb zw#_YnkQ;6>VF)nBB9GUWVv(0-?AUWiA!3#xN7wDksHnMX{ZopmB16l>C;X)N01<7Q zW-CMvc^6nz&a|wVzc4TRXUoz!RTC-_0Q`E!@o9>Y`f=NudyjOdY7^6`J00Rkx>F~o ziJl8R51tespb<={+|3Dvz>FRqus)}UpEP=Z=#QI;Bd(_$oOP>le`AS3IwzZma z^!-jl-)RH-f=>k3l!7Qo=ME54HH|&j*R4TWZyn0|^3sbaD;R)AO!ZAnHEy{BUtU^& zr(J72VjvhOs*duu0sqSsZH*QN>au>{*`~sv1$^ay5@4t1KaH6oiS4 zhide37Yq=P)3fqvIxD<6Bnmc}3`f;Ra|K_EuxGAx##j28w$hn&QDNdiT_hBNIEbqB z*oM{TpXKP!i!rgfQP;BJXZe6wgfjtuWI&=We2pJgWpN?U^zA=KwZd&)^gx!C<@TQ! z<%KFB7*PneO~?)&$k|a?KJ5JkPSBKz#b%r1%av6{b!E zWJJS0n9Qx9s3@--g!)m0dBOTSosL<`V(RxFb~@9oEgC|AD!yh@f(Ml-;Ei^F`$Psq zj=Ett(mckrWxUYNp|~RIMXqTeWuWko6rVP*dWo69l$)9r1IyN)o;6&2d-+<5f3>Es}*YmU0V=$03M=ZtM6K#;y5 zys{ClCLdU%7}{wfElvo}Pn4^FGfXmd-8(KsoQ}linU+_Ccd`{Y)9|cO1SMYSOahKa z=iCGhW|*8eN|)|6M8zZ6O=DEeFebtOTqeQ4n@Pw`CLzB+ldyiUj7jh}GYR=$V-oTT zli(Xng1?qY$g503et#xm?Mx%=-)Ns$f+1Gkl+`OF-xQGe9V}BfkDtdj znD+gDpKCCghD|v9-`vAJxQ7R8j2+W8()`PL6a~c^QDj&A*t(BQGAx34lR%PnRTD>E zbh%7&t63)bgCR!6d7#I&+3ZUQR5oC-k2Dp(^)G8^ZCMVVULvNKi0LJNaeB#`>ESr; zm?I1X@?LF-33tJP)v`H%C<*#NUg(|Ry9D2{u*!aTg@{}zIBKa|-XCnj08C#W_+<%+ zummFX#QKvjxBk2%14KQh3?mC8rn2)cwb-At<9qJ?>E_o zfa@x^3Sm$=WVC}*)1a3!C=K6(OxH<)K^mw`UE(ch(ybnZ9AMdh!+toxkef(fF|#yl z{KX_Me#v?LYM}_gAY0Y)H>yAi1}CZcp4&OwWMzpzw!pk81Lu)UixQ(ffJYV#jM=~^ zRRefv17Wka&aSNU9Ae?Gt@rRAZSB?DLazRlS5^(>JqogJ2YsOCT9(5^$n{oi-DWvj)O{@lI~+8p$Y2Mjaqig|XN$ zKe4AV=bp3_>S0a~J;n+zg5+QPr_(20TZv@D#G7HDmlt7P98YF9Xbjcv4|gEbb~W-t zKu9+gtf2^o(d`dVE{@AkmiUvw9&`qcqtCNhF!4dlzDM#!awd&5+d-Po9CTC(U%NV?2y z!{qP?>Bf$|7^cqJVRvKA0pQn7XH7PlO|EB?Y-$P+3R&|%9Y9c& z5mypX>1m);j#T=@Xg@VSD;b8MB8H?^m_%U`9Ab!nLH=;el1DXq7*i|uKm3?~fD9ZW zpdglE!3PM6o1^O+SjVO4hQ}OY@y}5>3%nv+1lCxK&hq;~)kRlxs_8-WTwAKwa=DT} z9oRWpkzoTcoeH)P<^rD3z(`a2+ZwXQM*er~1y~Ckh!?AH4_kpteuex)yFy+zTp@p} zYNI)S`0vz3cmG=(eGhGP_dl+W{$ss9TEj=pyT7(+T2kb}!f5NL{^P-Vrv7!11qGU7 zmE}W3_(u;vkBy(n7S?n0suu(6AL3mkPG>>m=^QMpRxUR3Z2Dmdt)D`m_FVef2@?Jz zhAkM>AgX;58aI8Bb#S@o-YSc7=k$Og?RCz7Vv44NPY$TEU~^s{P(g_uZ;wtVGygkL zook7m7Y7u=kUIVzMH=i}@gK_1c)CXwHFmN+icwjv*dtrgy+!f0 zQ$SWgb!KRL3izD_xX~f_IXKCRRNeJdI>KIXoXRy8(Q%lb3)2}#hirdnCV1%JfDnBO-u};%Zlx- zyjX=-;Al*b+#6%&mh|g9d2}e{8OPvc8r$HEimi(&9od8)YkJhb**Q?T_5J&-|HY;e zEX4?zYw2>Yrx4UOzdYrnN2SfwmL7xe9%|&QRKY3b+~^JRnY`d`?tk{9re=6{N75i-`1=v^%g7azDA zD5=!Cxob?RxBQ&WfYq!DBDl;<%1*>MT^s+QZ{u8F5ehW`Y^b-Xm1$4R$K*L>aW(xmdn<&lyn zc^+OTHaPKDYCx>0Rr68rFPoI1+A`5p`k6MMLZ=gTI#C0>Y3^EoBOaRrKN?yexc{X! zZdtTZbd`2GTzVx;UVz95q~rsIlOSBHfK2&~QWBRx!GZ2y-K}wX?sw07#OB^~t=m3* zxFXvWL}I>?sY{+2SvS}A@s%PIBM2QyAs`fm$Ql&*b_&Ew3s5y(Dhth9%zFu9ncNvc zL`Dixl_&(wpvXvn(K&w1?>^bmy)Dw4APGMO&TBxlx2QphrM8d*<6PSBo4F#CHOVsh+1I!(fkS{I-)5?Y$myq<7nYH zhOqb31n)F4p&oH!a6#Xzl>3mrFgEx{)ewBK_sx(K5j$Sej7|xR9N&ChmhkuB>$1E~ zu*($8_N(n@M*CB(eWNDkefD*3PgP8j(48c<22hxP2-4Ga5L)vZ^4kLJ*t|8hZ}ZX% zYdbwTqLRTv*n|CVJ01Aj?;n(9`{Z7WpZ~SR|8=>HxjAya>6k90b3nt<5pv<)c! z6#zni++K)}-{mgvnEK*S#B2aGtnM0fci=V)uj~^jhNG9qsr;HqtIT`0j5dTw`jkdB zGUKWZcwRS*Lu!?!{GCfb8FQ}*)6hG1^tTlnkPfE~+qyofPIy}Rn5A@>&XLkx7Wn68 zf`5*okP)`^Xqh2S#-w?lufaOLYMVE-hLg*GrD?Ccvw0VzQNjMV%%-5_~_x# zhU5YYP>{8gI60EUP6yoj9_nz+2~7cb`I_C9bKtSfU)e+-%mLGNXU$ZJ6mT46IYk02 zN%Ye_>Qj%{Q{qhJYF&c;F)kDQ0SmCbuRERNxjiLAAF5XA_LR`Pnm|$O_u%UxM4DDpyO7&qWlOZew z7Cd~&R{7x`|GUrs9A>wg}cpM@g zhls}^;&F(091lUvx(u~4 zJ@yq2oVRn(Z)znpT1mB5PN0KfUhgWeboKQ?eZuTxvpDAsY4LqFu2I$D;Ck9- zS?4;jQ=rBvY_nAF-z{0f$w<(K}#^ionyavTw9z+b4?eSp%&IO9&G{Og7DRI6K98h#p#mh&rwKY&2N-!!gsR$U9 zDFFzY5`*)DrTe8~>2u~~*Xgu>!`|D=Ni=~_94tS!O2HcT-d)o4|jb z6e(8k3mHfyF5u&xPNxkrkzk~h!7#?nZK4fV!mq7w^=ssF;~J@DrP6L{e(KFJBi8Lf z-{BX)#z@B6Meuk@K|UNNb2L$QRFAKP?(5}pwPM<~=5`^}vDV^~<%%AEJk;vFN>Q^s ziOdfszVBEl{nI{vv!vj*5-ox^sdET&KMkEWai)Te6k;q^B^Al$XFYAed0E+>}ZMoG7?zPCWrXi+GAsFiLQw3O#^ZD(z3u_dT~i6vDROe%@X(@?8I zfP%y)D;llojgRT>KB1X)J?eE)AjyPJ;kQQSOJN&b! zy^G-8$O8OV5A0QcYCPq7MdKl5%?C(#70O9-*54`bi^k zhS+a^i2!4Kx^S*_oOcVnp-%Mys8Yad1u|PTdi_)oSkEjE=}8o z$F^FUwD&B_4%o*(@CeQv(|YmTRhQL7@k9u0^`6A zmO8>*4RGLt)La1pF0TEczHp)><34OeY}#HP3bAB>1eEpIfT#;?nGu{(LCqvCrI(I$ zFJ|RX(FK+cN)c>C?_E<}CD<5rdj6fV3vgsEX>l5kXDb#-Nc+ve4U=ox%pnr6f`%ec z4^7X72esa-Jo5NG=B^>qccRbYs8)1{@t)nbu}{RuuCBFiKNv!GRi9Dbf3KA*4Jn+l z)h#!GuFANxtc9TH&*fddkiPlP(d*3&;bT@$2M8}OQ>hIHr_WQn&)taYzm0pp*NSW3 zV*5SZ?Ox8;_1^NE9ijT0l1EW zi7*1s+&P{jH0Pi1VXaw#t73+|=B26iuk3)Dr`yOV_-8hjtfZzGts3(L8Z-|f%oc2h zK7}EY@d3YO5_K_MD^hSPYqkq_^=@J^({O5fHs<>+^3_G0{~{;1V{J>z)&A?%P6bu{ zb?3!$FKIp5vM`O%kZ6T;uc$jD7&#J~x#lX={l=fVgQ-(p%9mCjM#Vd{T&3ag4?Vi z;v9-}-Mu$Z#LKv&Xa(486l~ciYMGx;fwh;hUbAEt6?6BDX}lUw2TkB?W?IFw*|iti z8-qE|5nLrH|JIv9piM+E>?C&2nk_Fea@NorjMi~UAXj6kI>KGx@eKfb56%MEZmG#` zfe8>Xa%UAIdrC-JaCQpo&t8Ha$fRFdw#o(0;h}3+aU+?BQ-wdCg;%4DOib-q%a>{e zp4-ZH!V|0qJj?a5&+Ij&FoD~gbu)P{n_uJXi}0dovP7K98?r0iPI6hM*a|yJv3)I` zlEwrRt8z~Y?o+Z^m|e?FkHY{MrofV9)|hW>uN2xw@PX*=SKZ8la{qaR3@WShcYqNd zi6hGGBw!Gd6FXwskzjNXCE-aM_e z1NAKGhcnR9(6%85x;>yA!%WT@s#c7sj**O@$QOufcPNGw#X&^<=&*)5J1Vk=Lm&)28jx+mk+j)L4!14V=I4FA=Ts4exd4r$|v$!nS>ycWnX zdxkziU1n%obUvWc3-Ld3sg5luBp9Sx60eB~ENuMV9pA&{?609CZ(wvLSlmwF1PS1% zVc%^&AiM$~q$}8M@64UMfg*>v5s|lDd5kWJqqo0Rg;Y_p9 zKMMV33J*&_UgeXWZXpo0fIq%Ez}W+eVFS&FArq?qmnY4NP}mtF;}8M)4+16!_ha|q_a~1JGcfu5kEpnlBTO#X@W8#*^dcif zSNBS}5uP-5KHFyD8)4Z+N*_N_Z*P}qIa_g~+JC|gfta$yFtV3&FN5H!AU;P7{W(U) z4e>*`$?jrTK~|gd>e(ZHAN+rWTP{WWkWzzwx!hRL!`aOE6Kms^4jfSchxUETjo@ta z!BPUbd1i2aW?}{NoB%3w@8-Z;{7tBNEx0xabtNX&c9UOAPQJycS+DGO{J%hGb2||> z7tT2UwTUpqTmfgHgen`7th#)za<9L%P(I=F7pe&)kK+ax6@sU*2(QkVp%aatwsFyb z{KW_tp`Zt)fushGqz{w}UBaBx{*Sg>KLx>gWrS$(z4?%5&A*a`bo*ux=}IG>s5B59 zdYpA&VaLZdUk~;SyMsU9iuBkZSHuBX(3k5((=#0@YUM}>h-}6vJ;%z*%m%7Y!rj>9 z>L0&sX`3}!EqOX~W%6xJ*$v!F!(nbfvAEuNC>*HWGJ7qQtWe=dO9Rv6%uNFbX!Pv_ zX^YPTjpj3OJKqDlFl+|I*`yRMX~=7^D-0*4m#mG+YKpxgw%OEI!`uTJY;vI=zPA=- zC`1v_$8|h>XFpHbgcW9aQAp7#l#oEG`XoVIBwCj5-!L|P){>YSEf!vmDt%Xg8Z$2X zvB9=F0VRx~L>Cp<8Vo_4wwfSATs`B62+U==j6{r$F~#ASiYWgKiLvlfeBn^t^oZ|K zlcmq);1<2t<|X2~9#PH!6q%Zd4dR&8J$oe2v^<1_V|0zw>rjzYk&@aNVV2B42>P?H z+r~`@8M6>&|5$Kx&;lamN34E;X~@(*n=C!Z&D?7ZVwon&H!@k}=xRtJ_B%e9TY}<} z87|#0%T!~~a9hc#<1%3|PdufJL8nSY%AVLDxB)6f&sy>Mmy$aKIO{%SnBvdp=jZ18 zCb$+A+GY@>9c%VqPCu>xF9v&{iJ@x8z5^(&#PQS%`8#l^YI&1(o?Fbc#hC!(p zPBT!`LeQ_54KLCPcv6wweTHcQ54F6wzPw-Cy$H{FKslYS!CB>u*Vw&iVz_%c+st#E zeksdL0>VS00o;20ekA-(DUBbmQ|O2J*NLY?Zg;N9&Zrz7I8QxR(NwDorVk=$pKA0Pna7vbaweWeYaVn=VwTFMSheXQv?K|{&ur&-FzJb+$7OMD^t zI-k!hda-nQ)8Owd3|AN8$#qjjbPX6H@86V9l{{!aR{x9d@!WC1)m#+^+&-hhZP6mr z%S0_@_MEB}QT;h8*}2|o$?1)Z5lKuK=3s=8)^?G5UXOSG$p-+=DrYNbfWW9HbDy$o zbDLjZ#v{N3h=4%A3zRB8VD`X5Bj|P?40b?OsE-T=(*qPJG}xK$IHyxcSp9}S57HYb zZ*yq=j{3tHl|WJDoW(=cfP#XE9uUm`?Et+4*8!W4AB}F>vx-9&ZZl-ePm;Z1m9sO< zL5!=91MuMB=l1~k1$cWuo_l$apbx{WD_#fKXf$0_;O~9iL=EuFVD5r1{keVLpYk5= z;lIEF5|7NINX<0D_h6gc!3|J2LZ{8bOq6x_w6iVa7N6acMc5b~{xzxjDBOoK`%Pi9=${z+ne!B+Dgpb|?fi3kJPL#CH}>ml4V~TU+%Z zoxOH~dU3>D?Pdm7{d>^yUGbgud+X9{dHYv?%zmnv`9rf7CoD0_Nbb`O+i=?dy z>$IZ_AVKTqLEos&Yn>4ZhcoQ2~Pp6ostOn(h3)ILX5~WAFd2>7ExOqxXl zlWwhECoSxGvRp~8I;5R-G_E%l&#io)YgiN3be)-9=6ec&cw)Yi6AVFm(F}W^BQGlo zeIS5foer1~Id% zecA!ChGF0Ku}7PbY+%>X)|K0n`vv#Sz;V!c1eVd8tbp}Tg{^^@p!o@q33v4q{W$9SN)dq*?ps-q?V!A8%2+}pb5=5v04GuKp8udEn!RUV=CLms zjY(NECthND*FN7I3A_G-CBEcuxX(rIXQ6|8Ku%t&-V}JlqD=$At7%BDt5chA1J0qYjr`Y8b1zu#wW2oBuIVF}lXbPGE=t3I&y25Yo$=>JSjwKkBB8X~d) zBHH`Z(g3Pb=d3aEB3OeI#DZ8H>pflx>S$*m)k-T(@K0@m)Qeaw@89w9Kn$ic<8^rs zNy+^?>0KVCpnr~l{})xVjsnwfX1vxpzq1dpH%$$=wV*@Lc2@dQta=APL(bw*##q2` zvn2_HFCT*np{C9zO00rk@sL}Vg-|ZwW|eWVG{0k>Y!(IEvo4vX1K5*UCVAUhWvNMRwEtl zWsR`@((MI-D`)}gluban$P~+bGiAHUw&OQP6TNN6)-_3uQSm=O1e-_<#K+q7bJ-p7 z1z2pqRoWg6|B4}kV7H$+ry(#xA@IXL-enbj(hHKiV+wY~wi@OXQ|;aHU3~L2_SH2f z>B?iwQ3XzgLtbSKzpdoa!`tt#|NKp!o++v507Zh#2QTKAU`lRcWu42!HUBjL-j4Ro z0C(T#R!;2zXR~^Myg`yd%2P=pr~6b>&8W>=%X9qqs%|-Z<85B;V<-;5;pe|x#QZ-$ zL%p9Kxw@gCY8gMP0vxovU8~W8H4!TcQtEDOOSUUjy#< zO|n2(jQ*6(8aeLwcGG6|M8a#thL*{WEUxvI>zQJBUyYps_pSbW&RFb@M4v93vn@lh zA)A+P*};gP?o?q=+uP!<=X=}S!)@M~@7#~W)8pvCmLDJUOYc-TWneC@k1&r`ih1ns zLQ4k&>jVIS9n{d9iC@Zr_`7Q23n3Ej%?kV9Z;(X=g%59}r&zqhp*?}EZ$0VIVSj`P zq#%t=i$M?%(0zoRa;wV11ex)DmpIh}PL0lJf9>qm4ApIgv2KgDDX#m)8+=4}cRR42$FFEHDIsynjJkoZ(n}Y;HGs zr1k~0ep`*A2-;3hXNjBGFPBC+`fco9_g&V=E9D8`;pgNK{%{@Io}d3>N$8-a9#q6B zoqT$_zZzfealLLIDz=5%b*twfr(`;9wc&TVZ{Xd#quuYY5DUFPi22}o6FE(O1yRC5 zz#bjKf1bx8@PR1tLr4zcVti2>ljc;i0j>D6|NJGu6T(8{ZvQpYUe-@gAe%n_aZbyw-(3U7wPtVX%4SOq0PM56~(a3iqRl`!R`e9 zR-%LZ!`fh(moH<%^>+@W;k|~-z{ik+fCZ4w@LHfKAXtlP?;Ir{J)Yo{!NP7-!9fc7 z211HRMVD~v82l5(c~c}n=KdeyA0%Jcl)4buI{M$~o44>gNvJ>PTf{`!ASb~Vs zQ|x8Pt}ap0{(nkwZ(-!n&<>}O08te}AUAPs$`H(>eotYIVG7{ei4ghk6f-7hfT;e0 z_uw+I)OvYnenE?Lobe^VLdw`0LV;OAA*+du_HbmY0$t zi8?zFvsM|YYkiEWJ9KY2QU%gG1G)ddHL}>Z{ljAL6QD%&gpe@`zGGiLpdLh(ya-ue z6%@>!H|an9RgQ=K6MlG=Co%q-fb}EVOP4LYr!c5$I5RF+l%M9;9jc=N$NY)?J?7&P zSe#F3BwjJXJ5Hi<#dA4y+ffaM1AaeyM5gD_- zgrA542qkXltR7h9?gR;GBasn;@n?hVSB#xbGBRe+N6Sl@_8?wHSs!Yu(A>Q_q*!Y4 z#h^4_j*0N8sySB4fx&fCWI`BKn< zWYk_rM>N^9Auk${KIMA@T9eK>@^cTD|akKB77;e%86r~|kDu&}W z>{fmO8SHv=bg1&a`taE#YJ3?XJcaQXFqfzZOOZ8Xsy7=+OY?i&=lG?)%xv0KrhPB{>c?Q=qhPMFs2vIM6zn2pQpbE~Xx=(Nxk#E`V z3NCzAB(^nHIgOGtnXyJ*$$@?`dJ$70aI^*g>p~Rq=G5(Ar4)&GF0lpvWnX~Vt&v4o z4?&s6d&H9`{x!>cQ|1_$CmE`NHhmHWFR4S7mw6=bjI3u)-~qPRN6MPRgX>UE1H*dw zs#Ii+2=4ytj{~F!pbKj-ff)cs7B!K4SQ_!0eXJE@2L4ZGAIKMC4kSKHY6optRqs{w zEGzcycz`L{J0N73dtl=F=>TDa@sNahy=~kQtKxUW`k18-1ZDNj1T?;Oo6D0PK8N8R$NCt-Z z#5Hz=9B1w%yF?oe?rqjc6p$Sx;`oIIeNZNayknBx=gQs^X!P8*Mgh5djqu$3N=XTW z363W(R}*&(uy@+~Gjl(P*px`<9?oO==)N^9Zq4?1faTN9;VIMIn&22PFp={IEHqI= zfj~>>)sB9{iJ{}BU$}JXTo6UBL|7Rx2%5}wKzwNK1;!0pY)XUYw~BE1wi&opB~eaX zg4qH5r!yyx%DYG1-bqytB{M&tBCjXz6c2_(- zZELoKs^f0P6EtK7__S1k@K6^ff0tApI31S`|Jnci;C^5^Xp0VpPdap zvX4t!K7X>N0(4-l8ZO1D*_97YK&;XmBUzwutq0> zo>xdEUxouNRclF6RxKHn2SlCsYdQ=$2-7X&mciEF&r=~QST*E2X|Hv=qGldSbEWWT zUyhOs)(_q>USq8T3tBS^P1>EhVz6&>NltS_z|AActxZ~D9Ro&jlF|T1%TF>kv+LNG z9fBzJFz`D(%K&#nJ$F-tcc$yKvFmiA;#B0$gs5d+Io(tw^&EJ43akJPW226D9^gnvHyDFT>L$R0 zfc?YPR&U8CzN><6ScQF}Oxf&Mf6Ot8GZxe0{OWtWc)Nxl9c$DdhHU&UteKk~1I@FQ z^V2rHn?;I_VITb_op{+rr_JuLMb)^k|MV_5%tY{f3voub!onNB6*YL70%}+ zuf!&mNuoS6S;_+^{?1B5bJjF5I^2e10EBBq$WTA!Yd_^rdFU-ZMVob)qu%Hd*HP$Y z*^h(Mhw4=qUaxBJ&(93_@S-;o|y*%<^J2B#e!l)$&+P!UlS+W`*BB}csh#yuTuTN!KrH13CCBf2P$40uQnt=r`Q<6M4o3V>^lLVAHTArxcAp8~>5We}|EUmH{jP6X;iA`4K&q zG1}Cmrg2};F(AtJh~%rF_D?DZbX|;GNlK!|Ol8j@?T7F;jv2q#52HkLKzBgaQ>2LRv6Cg9(|PiKUBmC7y7PM^u9*p`Aa(lR<;vUtsK6(rF7?%Pf}BWXMql-^J} z`CRI)KIg9hSbduB+$2qBzzYXLke4@>Br1T0jA??N&QI{sR4r7_E4Ia}C!U4xh{End z^d9<#zl{&Ee6Kh1flo`{Gr?+BTiT`GS0a=Tu%^);9cQ&X9={SnFKR_~CVW7+p6a0j z3oT$aSeZ=tcgFKBXJ^31V^aGjb1hMmn)4RDdf}*w1HCAy0)H$%G6ayCiPYhaVkam2 zPc|*BKT-ssHgfPtoH#H74cjXbta8I zfq1#48(U-um22oME|nI{=uzr9$3x)I12@E;v~!9(Tv1q2_5pYb+Cn^8>!OYw0UOHF zrjt$4N6oKl_BxSz@5D!kFc{vS$eQQFBc%JZLXDgeKj`q}a{=LGI)%IVX6^R+&09eY z!uy2PkG1On0*s>w^YRvbAG_`h1E&kM^LB92K)0v3c!@(X13UyQ+Et|91q@k&e+1Zt z?@q!fLm?8zgualL8`gforLp+0K2bLpm3#i&XiYuTQ~s&QlrjsiN$0z=X^TBev4c5{ z|-vq;h1u3!r*uCGLSqI$%`4CNImSIv5iUAqzr@_P6r8|RoML=j zG<}3bFrHx4bs#E}B|iqTVfMw;?%m4E{u9Vwt%o1EXih7cMX$TUY)UvdM<=5%s;($+ z!ztkX>u8gP^i%yfGBG)9XfbQH2>is{C`bJTjwucQDA;SQ`L&q)XWuJJ(5ycH!>9?s zxHc0rR13~PPUmqtb%Sf}ePfAmZd1%DRF--v78Ho#L$L`ISmZro&&X#mxPc(ue~hHU z0*P-Ko_$l)KC_mtUhB9uWisUam*eNTf_Ly%Mrv6~$)>vqC zFzUs!Y;2T`8obw_QH;wfXzgF@fvW-3m+NKN6vD>)%7e$G3$>4#XE>f;ue8apO z!|Qkm&Ga$L+kHRJKLD2>g$ZYGH)nru_QQG%=oIAf{j0<8mGi^zi3wk#mw^SqZ~X=r zs{8hIdH!Jc?|4HI0D2TQP#;`fytHt#un(nCkzCAK9Q-;)smV1=a=WYOoAP{~zOZle z??J{JB7Div>~3aZ>-&}R?(6G&W#p4~0WSd(ukVwL35GWbp+OVOIXK4c>e`&oNWvcJ^ZDs} zSocl2CR;fh_MeX^K8hWyO?fo8tV&w0qE9F6gP`~t^G?y<2nbx2h7Qvm=!MhHX6mV= z#m%%2CXj=Z=%x;LHIzw=wKH56zmr8{ODlT%+w3)tpSY`?IOxeF(J6qAPMRey(rzRC zj#hSW55_2}uy(04b69Tk8-cpoCnZg^bNzfEjhaxb2;16Qf-d#=X0P?_jhh{+V||zB zT<7ACS?nlHQMN&^-E*y5+rq8(RM`SCUr>v0`JW?#YjGcF-MJxm8|@b#ePz(vbBl{^ zxbGhXCQ{ah0q>Y`vSq+jses^Zc%1n~u6Ou77lb`88nM z&^7zwi|@db>Ab^{#^bey1R5T^c6Z2YoEXp(-{RQ5iM-J5`6 zDiSzLTixg!3gBcyqq0Vsk2Ifb%1{Vq#p!!jamsT>+fI9G30NA+#pSkrdrI+AQk#Uj zsA!GYU)|=|OTZzfL5{N)9bL&>CcOvLk2oDKM10ol23puk0Qw|ke>Bl@>IaSe_$0n zaY0O=1jsp)0pb%yJ1Jh|o+xtPi@k7$O^+*1^9GX!AI|Uh0z&v$8>6Pd7!}mZrONdL z;m4SBQD4){+m;KXr81?WBhp(Uq7qX>x1FAm>y$floHq_#Mp5bt!fU=P&vlFH=8V*$ z)B$;B^F?zhc%uZA33FaP$ITaye8Rb-bB}NzfD2X@*bHDy6=%7BbaJ+WmN$BBGr7A; zo|X*IjTTEG710p$xrt@*yy+TE$%7)RirZWf&UY8xr4LsJ&%^n{SP=~|cQ|B}NbLta zw65VLONE1n<*b(!Nb<=LkS{W6bOCz-7JEvg_swXjVWSF@z5k7Z?(tLd8@&0-&lz_f z0dANPrM5fAEAv+uFx&8HyBYY*DFrgG3KaVcP4ez^Pd#Mm^5~z<%kE6@R*eE`uTHetG z>RAK~B}sIQzRYL1R8UdMc;WedIU@>Cw9E9e?p=PifPkgW_CM)4kuI!&-v^}x5J6wv zS`C^G<(Jn2_T!+dxJ3%Bh!E|=C)w?~b_7B}N3ulXGr9K~a~niIa>wWDmxF!mfh~bu)lVyj zdQ%^+;@D8Rui_QOr8D$t;|eFB#@W=$Tk*v4!Pg=ZX!>N<>+P^vlO5Yj3?Q3w7pK4U|#H9oEfArXC!iVd*SsYA0M z8#F5!6*6mKgm0vZ2#tSn#t)t6#b^u(vTU@Qvr=j-!PZZmF}l3!DmwhGB32lQC{rpr z!BIGzCz??%QI9mS7NG<5HAo*&(CB$)=~l!bjDMKB?OVFRvht*qkrkVcRG2=6b@-oy zjoU>*vE-0E#NVcj?>6_PKh#dnF-39a`0h;*p~ni-WUwen^Nq<&G^sq+aM0USaabO9 zwT~zoH>p4+DT5Royc?3bTTT=M9gP^5u{jJDboiG9G6zCXK;i&0aI7kL>JkszC16gn zY}yM`<&0aBfTJm{{MnWTmiKQ&McqZ=+2Pq2*_K5t>q_aCgdmkk-9_aq;B7>-m1wE4 zY{*YU?NxV_w$wP6Cu!od*kJaNbVDbi!XWUn)MVFkoT~z{!yzzmad2$*4P))t*&3GT z`*A>jtcXY!)@^>nBMU>rEHH4ew5{~)^+lUu;A3dm*ed783q(j=VPdzGthR$hj$Tl4 z+VbYxuR})ZDcKx23!ST>W4Gk2woOD(Ur=z?O4r&cdLUL&adhOYtf+wj>@4>4?btyQ z5C}M#oK|Mr1&P+d5Ml6}ddM@zkgl73Fb8Zg5;TL4|-Pd1&QoI z5`Um@v`MVC5rj!;!D6?FthPafk6s{g+5~>r50prQ#M!{NGO_{!uo?3d>_iwY5HMve zRQ)l?GSO>+*vb=JOA`FPT}=|Cd%16BTu!S0?tmLD^C~J}`AS*weeIfr&n+fWskdB@ zTOq`N6u83@+$_Jxzq898w3eQ)z*olyMn6CvfCnIt|L5rAUysyG3Y!|j8{<0g3zGD_ z(o17H;fX&a(!}HGfGT`3!&IiznP>DYFukO%m&y4eOYhoee89v=8Q>`1ZQvST%YQrp z==0~DT@(}xc#ay`|3wj%(`i&0E`&nHKo+#bq%=WMDVc_rDggR%&Jlw2j1Uz+F1ooJ zDI*{%u2Y*ymFW{p5xeT5xm0d7Za?vs_8=AGAgUTL?H@K|R$NInHoMSD+>Ag;01P4I zIC-?6%cZE^4b7LqNv6)xHANYP)i3|X?-eS`Vd@2KO0SoYg$$UM@ZeQxjrOF;)fR-| zJmXV4ACRQ!s()J&(-{8)|cjhDUf~tgg!@sEUy*o~OtJ-dhQFx`L2hgih z(jZNiB4dNZXUW2^gTdFo%R~;dW*oFMx*WA-O)*QhcQFk4x zRjbURq)^eBg`Zgr!QMYnEB&#PnMp~UI90@%K{oNdA6t=g&-j()mR(ZPBpR>=$ z>SC3wwrh#;ZsjOGG4{`TDivm#TGMpeA$!;08P;bcZq~k2Q9GtdRMtoHfe-sN{X0_l zmu_~K07oC1$2G6Y^tyTgPQO~#U3refRWHj2{1lE(n*Eb|0`(n6_iEctvU(i!UWx+r zxUgSw9_V6F|AAB4?j@}Zk_fEH-$2DuTSgDoa)sIem@3|X7ps?BLz1-`yEZ*48vW_H zy;m2lv7H!9`;=prk|+1O5)isKX3vgZjl3Uy=Oh?6as9-)$M;BpzD)5yz%j9_wvW?K z9LLBdn?-jTm)I)&^VMfBEw;PW?7>~-qnUn7?23I=Ygagx(gW-NX@APhxc+Nifn_*i zT={+`?2EM$n5TbiShx)Y?uCaGLTOGBW9l^D@DT@66;%GCQ(AxRGm(17779XljM(v2 z#aI3#mh=R1JEa^3Q0ozegw~&P=nZOE7{h($Ax5=g+orXYX;ZaSWj^xtbDlo*nEWWKoo5sf$|73~7zl)X(RCa+{rkQ-K4m?( z3Q>w{1aHy%AHc)Q-Or!H$Ca;ry^rUsxB8_UjVcl*Y_$m-LxR5=xVQ!2?(Xe(NAPl3 zoLoFq?Fzz{FjHJCp3{;;N2_BEKLSKk4NCVyQ|Wh52jIerL8A(#$0t3&aN_;L_3cOsG_3YqhWVnLhRjNhw*{OYbgS&HgK}pSB3Z+YxweevDOs zGeO%9<<#!`MLi@qi(m!n?)>oJjk|S^fZu5eC3h$Q+=3Nf|;qQ4XpA;K73wHAW!NM2GwhUdzO?UQ~QA*ecQf zdHHo}SurYw(`K%Saw-wivt;OUagGdDPh>9X%28T|BxB8Jvu-FZ5@4rjg$D*_J_JTM zVoD_xu9s9W6jR~-In^>EXJ>jEhXcX*;4NxpMZ9epP)<%-p$@1(EE3Eog;8s8F~ARi zjR!O20^$d+dEKI2M67HB2Cn3cb}Oe&s=SOn+L3Gh$R2iJkSc99GrJXqa%cs30Cw2X z_A(?|Zgl*DUhV^T&%Aarn@?S&`o2AY{b<~!HeoeEI;VZwR=Os{`p}n#Dch=saHoMx z)iul+E%*a{(GxDpmIyzF6r8q!{WJ+6pGl;?9)*}s31pG2GC&X138hWVJ&8g&lTs4m z4Qu6w6>V+k9k8hvV1?O1_M+yTrk{0kK9xH)c82FC^rU<)+0-XuxuUXUKGzRQ(6|NU zI}fxs$O)9b!ZfXmXU|DmB93L_a43j?7nGa~qMVKtLz@-mWblB-1=}Lg9|8ur$PNuD z5pG}t)6Oi(e6ufnwZV?2q%Y)ag$h#Zua&`1kiH_>XZ`uJZ<1G?W{fu+AwWzG(+>U< zJS3W2Qh?TwPL%@kRgvl>k0IE3Kov>$;?eLqkX&!aAQ80+0rpKpjIT$Dgg-%EyCK&b zZLEhztVZ)kib{~tCa8o20>l;Y&LWXw88y2G5{@XI*A;f01Sp;n542oP(D5=iYU&=7WFpn|9?oW(7fg_aizFgX!p zmk3{#O8#<;o;^xR07-Mk2rOdDE{_EDHHTGvy5xW;x^amguT57RBbo)gsW0Ua`|~iC zl&zR%sWL=2rD+i=i)U6Kl_QOO$Aqc`c8Fs}q6L0egKLU+pM;1Ui`~#E=;*~RMSdyK znX_!Wy#LXb$K;BWfdL_QJk}-44h8Wk){2T&LmPaQ!FO!hsJhE09i8t7s)WYs43&dd0hm;L4xCksro*DkYIajvF zf3lLLXMeBeKB60%>QwP7Mo)p+l7iI|+diJ0b6VMXY1l-Osbw394elq#XqHme1>S-F zSDmW#Pn1(FUy4S(sMc#hy+*bYJhrm(yx*Tx8P8p&GPORDPKVmyn=DVK=nsj#?~P47 zjiSw#aw!+PyDUARl}*#^6Lq5s7rBNE zq%$jI*eUeeiMtxrM|B(mt@^@3RfO6Wq;#t*Ji)Ren^%*z?6YfBMb2|IhQm4ERbWgu z2X!HE(8Qz$+;f2zjmK?kS<@o1lgMxV*$>fC?ON<|&_fQX?w=zE}Vv|p9zZZJAChfp2 zZQdK%bSfkp-dRmC!AM%BBx8}pzzom)t6cpFOoCG398x@{(2?-mC4sJlX0F+B>5V-A}N-CGv>l8&E6Svv@^mPWk$(CQH24G#z!G~IJZ|y z@xTR`vyOhYrxdshrBYIBskZ1@8a!(JcTroKVUb~waapmDhFTDX$Gt-> zvn-)9A|QHBB{L2|2Wmapb&EW)Y`-;{Ub%#-NnFtEP-_w%5!PFpTlj(DBz7d;s$&#j z$lQyDOesV@%Bv@j{GWn#QmSTgX&a5)pL`5D(1aSn4s|nH5^*U_v79N*D02m=>vL6D z4YvJ<|2hs$PJ#@FBJf1XR}b@Og+L7$Xv9m@$DhrUSWHvZdb`3DSkTkuR0Wgtt0lY{ zQay%a%0%8+6rhLKe4`sE`% zC|@ll3Br-kAL_}+9jfvvV+!obIXtq~hx3&b7>mzOI^*_KHF^rhL0Eb*6|u=GxG~hA zarZ8dZ%=~_WI=3kNn48~*gP9GCym^WIvmM^*ilZ4pc8<|RJA$~DwVvI71|KMLsuy; zc&J#^*hp7((-p0YgUz9O`pb*NWTi+)dU_-kyq;VN`34GKFXl*`0&iDIst$+5fGvhH0vN@4 z!8z)d#v4`LZ)A0fhR69|JoPMQic6N3j9Hb|KQR&K4o#T~G!1PKaTZD~WOOmw!xorX zeE&I?ldUkmSt{uVwc?VA;upLx-&U~J!ZY^!>J;$CBCNCmy{*2=;V5zd)GcR9ZqlJi zehJnd`TK|^EWP|<6C)e7MA|U5s?3=nTT<;qTE#_x#JJmu^k2!r_AxD^1WIr-+k5Yk zTGafM{x0O?bh^>DB-Me4#r0+PcHLPT_D3{sR~ct%C-%x5mCHORmr6cVGA)I)5Uq4Q zUFlG&DMW7TG*t1nRMkj;oVO11#w7F#Lq)bvYdp=&Rz^hXlMUyx!qkVQt_{trn0uW@ zlI(wp60>?qNm*$Q7Dv2niYg36G}QE#C*|xDdQ~D5rsYUunAA()mQ&GWjoKxwmb2cI z7(~CtL!ZzExUwml7O9RFRUHA+BKLjk+t#3{LRPz;XsH#dSQOwtrH_STA=qvx>2iAU zr0owc96wG^I2AG{Sn@oS!P=s`?}4SN=ShX}oW^}2rRz#`uC{GgU|n+;qG+jT29?y1 z0EQuI@fu4k*CQvmqm~TV$$?{$kgiOUuIj8=>f)>%15#P-^lcL7`BBnYUbUs>%v%G= zlIid{Ev|fLX*B?~fkTm;y2kWFuu5our+5?P+klMN6s58Z4Hr&KwOcr}3YC0gQUO%* zxH`qfyD5G8wW%V*NV_1LqEj zv<4`3uMUoV-sEmcNmR5idu4mErpg)gy0JxScedxjTLJ)<8zT`>C#$yc_FY7s6l`q1 zjf4UnX~LpwgaQ?r(mFoJJV2qCA-J?%3v4P!;mBy9Ru|H@1IeHes13= z+HX;46(E@f?lpyy3?*Tt#+rx#Jd|=YaYv!;p=*BDRTPN^8Mz)a{SSi3z+szKu!Y9q zDd12SYBfN=6meibRk`kbe<1R)8mwAaUF0$Mr7K=IyAKs($;7J*EYM|0mmiviaqVbQ zZ2dPK;?Z0|Ivy@PQxK4nsL~>WkI_ukNF>Hcri6@$bNyrIiln36i$gK^?1u+05MZ*F zL6-y3iQTN95W*uN}xjvPz#p?m?hK%mV_?9#;zNAeb zJz!)33Tw>Tw#*ADONkCgY?Iz{DZdx9iH`ojl2Aki6+$2~(OXiub7jYQo8VXt)NK^F zxSDMZZc@@Cp5EKr?>#x+yjg~<*;dHu_-hOm1S+DJ`_ma)x8Qg_lWl`=N4}}yzA{r) z*9j0bFeCrk4BN#^k3K-Kk|`kGnY|nNs55(3#Sf{VzrvZWptq;6kto}7z+@tf6-PPF zOXjW>Kg1<3PVnK&1(^mUf@OI%ixH>|c;FTsKn~Rfi%@IlDj7OpX`l(Ak}v13;RjzO zg?TbwH6g1Tf2?ho6p=NOR_tprqs#wm$pz?kRyv)6$pWFYw_I|N6T6jH52{ok45jpK zpTBmR3l@OW*IEm4j$$up*h~<>W6Gjottu5<0@@J>|4HWY% z9&2%GXTNX6kjKu3uhq9&Og&_kov^o-t)vXB)$>}M1-HWfYaz)*soBBz+O%m+kp$Fg zRJSfM(|GM}d)wx^>MTTF&s+cIWh#Nxn7gyfE{rK-TOAO~PvS|nUp75Y%{ zMRlTKdLnq9mlu~o0_GnNqbVlNv`j!ws4DU%N_a&d&fjkbd zF-guu%=9C=@g7Rwh@D!@kQrrxcMEw{F9+qP|6x9@%bfP3x_lboE%ljLMhlF7{X`+3Y@IF%m7t3loFhJAp{ z(v++})X;+#ZJ=R1Z<#?Hf4{|crI9M*zWuaFMneze80KBG$80&)FJpq5#hD+%j6ZY7 zm-{qq@Y#UytgJ1q-0tYB_=sJV1?Ea`f3~*PXk>|LCh!MxO88KkpXErhK)gKQ<#z1j zw)%FeIyBM3mnBTwa+Lkr&Ex}V_pSwqazCj#`wz9y{C{sIH!_Y=j73%!7r4(`b0;K6 zd|)S<(XT00I#-@o?x=$%W80UeUvM#;GHtRptTH4|t9H!UbKT4YFc*(xv!%QLpA?%(1#WKW_6l+6BAel-&4>oMNgq1EE+Tv~+>G9Plb@ z(r*S4&7eqx=~lRy5&=c#2N--(++{VU@abkKBHx12&gGhkFeE3!a$l3UAr5JI%T3QO zL2dJD*yiMKW~77gYm@F!cwCWIx$KwCX3D)pQZEF-R;^2I?#r^xblo)U%g7*j#41Q;9hbJqZ zMJuPu-9;l(oZsJN+c3Ez@_Evt-=xhP1@Ub`Kev6A8$=u!Fi3MMR#O=3 zw~XGUiKdPxu>2-DGU1?|D#^MMSy->d`{+qn%v&btaU;%yPs>cZoP{m_FusH^HWwj>1gAq~Q@L17^k&hHY~o zLY%qOs>o-)6u-vfSpW&-QAn?5OINWa%}W^JvU9kaXm0*{BJ$()ej1QDk1|e3o-Mtd zMOSqW;8=*7jG9;H4DYoYwf1jgrvbd4+tfw#kF ze7C7IR&91d8waK4??XTPSxDUSY_jqSqoDZfBHhT&n*)%iMVACvwzNGEUTrT&g}Vj8 zn6Q}}rk9#uS@rQjh9P|wXv~M?Gc52GHas1s#)l=Jmx;M$X=_A05W{p9mX7d8yzu|p zj3zKAXQA25e}!>=g@q>FI%d6`XxerdG@FTe-$MVHkeljJmJh5bu=(er_an8RHw^S$}p+~?CS@?9^v z$Uhpy?JSqt+d*Q$rQm?QuYi6jF6qN{z7S0Jq;=S z?u!pAJ@oq}3bdAjyq^G6yc zNhBCIoT%X_dwC~@YbAn`98TYjTzv1^B&gNb3y0vJ$#fa{IC(?DR^N0oIQl60&mg`N z7U*wOhx`4yKap{;y6z)C$hCYUqHu9@G(aQQZ0?BfBM@Co`C5HSzp~DpVs+J@=A
5rQEP@(>a!WG4^AIfpx?^=R2 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
Wlgfun0l8 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
Q&Fj?z&dvIkh0z8X*QF@E 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�be6C$erqV-Dza%X|1--74u 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
=65KLdzYst^Zz>pDv6oyuxz>vMI%)t6N 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

Q>T*K>gEx|AVWWU%=W%nV|T=B^766n9v``r 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°(PuRsZ?kJ1S8+F6X&{}L!en(aU!*4N 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 z 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 +HwF&2|TOu>}qq=upl=gbA@AtZo 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

@?dQ0u-+oT89RRGE$3^pA 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 UVODg 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

|hci1^4&ln*~XqT~rLK2+|^35Zj&<+qZO zvha;d>i%^bIGA68gqU#qU2jHugbxdcShgxUsxkVPt> z(+QgIeu$o$?TP^)i&w%L_u25xgX?)iJxpt@}d0IBxc?Y__(HS^Qgn=Wg9G3aN zF0538?tgs+EV+rydjASXRo=CLS6~HNZ=a zU#CES>75H%>MWRR4EW%Mb7XusZ=&ABH-6Jq5N3Y$m%F5PE%RO$^5K9LachE%?cn z7A?}K@n*$UMi3{)?z&X#`$;fmZ_x%Q4~FBCXVcK5m`xDFTC{iUh;Pk{$i?C0U$<_;@3L28$+x#Gm5kc!~q4xy&^2qPVjuNH4n!N^kM z^5k{Slho0)CG16k)7VuurS z*Z8)McJztP+bA5gs8u*)Ax%EuFtbFoiarP}Zw3->tw_TA(=IIxz60%IHao>VlYhh( zNWsvVeu;f9UCO&J9J|nPGwJs;U={fRv2sv?<=k08w9#4dc4e!}QQeM)Ue-j-f>FT5 zk3w`}Z*}BSVgyj?mTKak4m%7pb2uFYQ9_7b4@3+}NbDu%|v4!UdIjI{Nx2z*$7 z9t?@W^T-jD2S$|z{4TUHk zokxrqVQHh5-4@UIWAaK_d4@kiH=K8)LR!>-kUd&^PDv3LRK~)5lP$&`nBVFEU31*e z6aBFV7tV#9WClpzfxDOSo0FsXgevMwl$D1W_Ps(nNUnQk83m(0XM8R>QRJ$?cz?$V zi+(9~@_Hw5^Kt9}BoRI9Y=5=8sCl4nF7FeSNJV&qm?s9!bc@E7KbFQ?uFiw!Cr&Zw zMp`FWF6z}6p@a2zuhgdZ?^EOBn!ZdQF-eFhKEuA;R*s>|dpkyo=017h4kFAs!}^Q-3NqWJ5eWG?k_= zD#p>ay*3sWrP+I`Mf2-&>p84hvndF14Cd*S83_;z$a0?-%VeFkVV~dqSbJ__dKkK# z@H&D=uw@~w>Sy^?xZK^953u;0|USMOTl5t@E!=sB)k$-4ehzz#SFBtsiJnkAaqst9~> z;6HXyZL6FenT;m93NKu7dYL?NPsJ_)8W6EHU;Rrhc5r4+@qe#IS|xjrw#G_6r5$() zNHV$w@d_bQHTM1Cl0abTpt4w4sS_9xNCgnoXVCVHALYapr;Xa_dXfA1wq7RNCm!|%=~ zOYZSSP`*(p|M11k?)X51ee+~W)cWFzc+<(>_Bqo{Mi=5!FOPWPg8J#;* zxOH`%1jxzd@Oztd+!dFq*c*DW8h>M^*aHDh32A+1dV_i9mUeF~s!JLhzs!DhV$&a!jlpi0G-6^?MI|2j-`dUS*c7+=|_-strq8 zv>;;x-RzP80ljJn?IUm8@HWcc*z8)!@{;d$-wvA5@yhDl?^$WR3bV7T368rst}keg zDwwC;`iJB}oc!otCx=0oAY6}~Sp%0r+7ZAlvW}Sk2%dSdpP1b|{bwBvqA0SI&VQjB zfmN79u36vZQ%9~?nNQ=cYu1?EhxLod06MxIfPEKUn}nK)k;&7r6gFGEK(vU-Ezb zqu-x@=FvaSk*S@`RNB!v;^>bh^W%Ra%|BU%Z3CKsNimv0fB2*3{u}ZSj0Gtn|J6Ov{(qaE|C6Y+6Xd~@`kxGgrdiJU)5H@R#0X(A zC!z4yNZkE1LUaFq1&McxMZ#uILY{x7S@&=M&m&FKtSwTv!K5M#m4A8wA_e6(ih~(%%d@{%;*COEcR2v$Ih+5}T&A;BTHd{0*H& zE2xL(&QRk|!gc*SeEaWHA`_vE{-Dg8{5!w*->C6#(Ujq?Rk1WyxV*z$gvx)gAgGnu zB7a_z(O|h%I#_y_^JEkGvAn;|E#DeL-na*RBU2I-jQtQBy=EZcg4k|Gd$0oosB=vE zCRaSC68z(JW^-B^Cpk|R5<&DVAHywXban_@g=MkFlOYf$x;*!H8#neC3K1)j-pcR^=XN~D@ z!id9ZfGiYqoRUb*1ldjDVs;KE7&73u1PR-phenu-9M%~?^<^$(9i&LNxrgCp?5`t* zADHaLA+=~{)RaAxI`W6?@cWpF?pnTCdq&IM{!DqZ=ErUR(j9jRL&y=FU9R=wEsZ#JMHsHyYNhECwNA;kU}5 zPxq@=1rD_5zkP)c*nSLNKN8WpA*QytJ35RT`+gvo5i9lp?P*?uw3g3cmX>VFNW`#{Pi$Y3=3s{YQBYsev^NS6~+N}(JLnB*VZ}Ll@<%#Q_ zbZ~*8nogZ|E1`ctum~eC(hJh@fM?@Iuf1&T2&mAWo^(x=G{CA*m)n(QcYS~FUZtl_ zguW?)%gq)07=GSUoIff*(dXF+F%`Sd?eT`0v$g46tS_QfKh@$328YK=pZ&a=e^?2U zurS+(D=+X#q{33iO{rv|qU*fu0PBRJC&UrgG+aewhg^Si(-9M{xkyFoHdgjL*xg!5 zhN;iUK5FTqtJ3mrOnVzEbt+v-vfAKXh}Twgl{Nx0x1D2bOjAYLf`g0!x+pLh(dhPa zO%9bPv{V`2#}%q8WBP&*)FiD~=zuVncGjDiVK`c-RgP+m&%IiJVH;p)y%2YTrGxnt z4Q>X$8Wew$)zxTv=Pw#?IfATXP%4R<*v(#=dcP|uimkrdDgRrTtG)w6Jc+UTqVpFz0j7u8_eIjPU@eU4JYT$lIH{`a;ue2N(?^aL{r)^2mt zg9Ao@#VNZ331SAdc%jVHT5c&5RT2!#G+9e|xVe9+!iH;;q|Cz$4YVnTZ0|2YGH>70 zX^fgMK&S81jKjoHGU-x^9C-+FR%wIG?gJ>2*t~ImCd$`Uu+A)TXTPxzZ_6==B_u{d ziVP@tEH+1j&&Fg`Q!RH9i_?_Ufy$#z|*x|Lwkd7X*h2(NB$xh#LV zwF2R`PA=qxMNwKHwS%8jo*VI;@}>0(6-5O=rhvARb)cchIh{m5w5(%)G>^AG2D)en zqURX70%*f;V?hl^MA5JLkw<(**^84uA*P+5rqx-BOIr1T(+4zV$@n%eyFH9eKF~RD z&uy@|@vI{oI_r6k^+ioOQex=f@&13%_0K4X2>y#R_9B8u3#v%GYhFgvU@(@rVq_&;2ga7mWrly?hf5aA zIz50O6@#;I3IxKU(IVH;!SWpK*04bSxBlHz{NQ#R*TRIJ6iBHU;Dy55igvKUxqRhi+j^v`cmg>hvZ#?+ckz& z8U@^B$aYmZ)22*)GCMDoU8R5RT>)Fu{7L}WB38~?5f9Q5$Dy6R-Gnsp3o8r^j8fg> z@9tIITf-Yc))>V}jZ_q@cbO+|aOqhLFf+VOQ|Q25tQmfQKBJ%06FfLK+@%%g^J zV0O#$6g!=RaV4?d?@T5JxedACeAUqDVh4BhKu zUBKyZCq`$cB2%m1%M>x4coSiRhwmo5f`b3PGS^C*`}OjdfkI5qN`TLA=reyX{(9py z&3rw%e5=2lo$Bu7cs|yVrsft0Fq4nEk8CbOWfsrqXj2yo;`)ChNSIpT`x@$<80dCCs83r7^Sh;_00^HbP?l*gSZ;l_nQUKN zLcy04?FcZ@b{^dh7}6t*GOS@RBv$q>jZ1SW|=K2Sctp`Yv-LXhDBev~H;lOTRYSvkjj( z$a=1g?e;Bx)20qR?+ud1&~QGFW2JxOo`m}jN2W=J%TT`DN)xMg zIq<2hE+HZ2_lh;PV7(_Z-HpXoL}f0(EqkGMbFdaEz<-VYV$oR#*f?e9CCmer0rg9( z_xCkPERLmbyX7W6j=;UFH3!F=+uMWa#Q!1xM@*R6-yg9py>5~_d23v$U_@#?KoM+xE9f{gEv#-=oa?l_t#6;ox_$!U`$?(OubntWk%$lkqS{vBkF{9xev8pmUsX|xXjE=+{qd> zaAzD8v2@e}iyry)0kBW&;x*%@yXs1n(KCNs6b8sED~mY9JYCUarxJbc#XaHf`*(UfycNgm zD&?ws4A^XxPmAxoAc#kq79a^r=KH-ucNri(vYdrc1x}^hwk^J+kV-r&@I@C_VQtTY zSrP15bKq&YV);J)4Pl_rWp;HO;0}K$AXM$teVB4%p*4LYH!UldK?KDOiMqo!>7v`9 ziI6Z&1etrZhQ6^^bx8n-vVy_UUfnQuDb>ya@}fSMv2-CY@r%X=ne>dkuVQNZl6;2D znB!Zil}BTB<(ZO1+-8y96uHbzQ=$2P1Rs`_W$$0^I2t%%cZiFi8;Tx}^;O z#g5MTRE){2b7uDg84pD<)uwp)`ur!dgmH$U2zXlBoKN~B>O>+$&(rn$D@<*>F2|VI z?cPBgDyDl?s^`(()cKA(OX+_TfC3eCNON@#1q=vEtTSxtDx}M3R39Svrk3!et=|$x zQEM4SDt{qgN@!D;MYd<`1qvY9dfyt3(vuIhSv~Fbl&t&ia1nI_j;{}X@c>wff( zv0Kt<$ZVSLg0L@7{FX1|RKFNGrIJQVorQOtBzm z)}RT`ySq!=2`N@X-PaugGpj7d$k<;g)>J`-yd|3sZfpuD7x7d1U?)6jl^c9(Mbh@> zUcn-#F=!8f&Zu6znKYHrn4G^xj8`LUV|b$oG}$AS4N@QYTPr})Rm1f#jk$@@10*}o^$Vbt+i}}ghEphGXg0B z@zgE1u_3OGn;f~NC?vj2tqN@)6&_QBd3(Csy;@vHj2#A%_oB>#`r<}jc{xN0Z4hJS zTHSAo?_}Fhg<5}05Mkd}Ef6#?iLnOBIciNB8;dk{Pgdf3Zsev_ujz0_dWbyr0mm`vY&Bc>%5jYgAP<>j z=~_xaT{h3Of8^Vw4XvZZGSEicIg`GpK|@{PEHHl$@+-eCO5))4C}{8d6NdrF z;^>28B+bfI8j7nQ&t{1$a_fD`L}z(M0#`g-yp2;z+5H;H3X_yAMGju8qZj*KjC)S- zXprPP_Lj+h@o+`HLBl?t7dIovag0_yS3=6lZbQ>Hqt7l^(GFtc+8DkQ#3B1Bg7s?R zm(LL0@0@>PL#x;?cjbmWgZPB3WcmurmkxXsJ!S`0R^q0S5jGyl`a`Uv)n%U8@`g&} z2pS;<{9TS)%6Vtzyf`vx@OjKLY<~EYDSxeetzSG0NUgq3#GBpfS|4tdJEjgrWf}MQ zB06iY7qv}QB-PCRzPyjvdRD$GUK2KSuX{HiH!6RszYS5v57Eo`PtpL{nD6(B4Pyz| zqXZxK{?LPt^%*h%Zes~MhUtKn;;;6Imrs&VYejxz- zh8hG;5GJhn6bWeAcX3I1{envWUS(fNJ~LKV-^*idXnf32dv~)%8-1NE_$q(yrV49jy{t~+ zaJgE=T~(A;gt2b{g2fsc(Q{YEAGq|XA}@afkfFZqdw;S{Gc%Vjg`(c~HKR=gQd?L* z`nZ83vJw4I;d=iX{pGz~m%eLdCbxz%qZwl5zlG!2@`jtAn0{PTyj<1qdHjR8rj*8c zMok^d1}l!`_&c>OhZe7GFB%zTw)+=;+#n0r8O_x@4OZ=%1qLVX7fCU1fy95gH!*($ zR=;}bhZchRy{-e^?+mkCuEL6${Xjl$>Lh%xybR?89gY`Z`Jzy?%Nq>czR+9<4}08H zj|%de_i2bb-P7Eo3cTKR=sCZ+qv0O)VdZ`}KNvP6WPCo<+0-vEZh;`YT!o zIxL|p$;sC(%`*3~*6L`iZy&Ubi^G4leHJaw$h`e6j#f6*4~50!aSas04_WeM(i@I> z&AvB0ap6_HuCKU2$4_7Kc;%LM&sRCdMMHQSw4&6b`%1`*C%efixAh~3o_vWp9^2#{D6{;7?a8IGO5b7GV{~VWAkS2g z%?8S)CZhTowb8=5n`EvdYBXY_>R0m23h4Me6FmaOjw*0bE~-#VnFJQ|Rtg{ND}Ek{ z6TdhgN_^#fbV^leAx{TijQxKhBDDwU)6`^t#D_zCp5i8N_G~qV`H|b()nN)$;-@LpT@ROm5L9gFpgP^PN~I zsKdvFp)RYRm-1FFd8sW~kdaY^J~uk5RjwD%wq)T4vx056NgTB=!aCOL@e+rx9P5Qy z+=62P@zIYqg)qwTH2r^zuI%kSJPMftMDSW(8cAm}#`+*{w>AOZ+O3=@b2a51R^=%N z!{ozq?upfZTMgmW0ZiYJV&H5JX%Wf=1L^Ul}mj+=bsSaTC-`Q3g! z*ZDJ!^nJ-_U6mi!!mdw}+am4jUDP69qaZoNzOFX1bVebx^Y?!0AJ#`8+V)yt~h9cfJFohrWb>e(J{%wb>!@;y<= z?@^PxoRI5K0kama;~IX z7Xw?%_+>pSrop>)V!zYXvGZakcxyjC1^r^bEZH)29F-CwJR0@=cI+lE%@1pSv;yM< zQDo%@^_~{Ii70vq5j$-@sTCfLW42qx7YVs*Q8SgqaRKVWF_~!rZY5@k{w~ zqfc{qgOh)YnfQ_QzEw^^v@1%{->mf7{6y`d0zRFZ9)CwYzn#1SyuF zW3_Sx(08TkEfQ}JOho%FF+tzx>hs>~`uF}##sh{Xw;jA85ILJXltQY)xc52nx^kbl zPw0*5THFW==H)!<=CgmOOYgm69#{!mwu9YHEE<2;8LMBHkC1VZz}{yPqwwxKCS^^U zYw_8A+ND_X0-i?n;v)<*9%BMaTE%fgPWJxAVsnyjqWx6hoJD5+P4Lf{7ITBX}K z;kV4J0#fp?eHSTQ!f`KbJm}400e7gw<$+!xCnkR4?iVpVI$}(i~1y1e%~K9)7*cJ zLt>|7V!o>Vh=M6LOyV9o*Ft_{`n1(~%rz@+-?lv$BY*BLlxvx-pIJ}R;@+4-tVu-zUwy$3w(baGZNkd4CA`dgGyho9%zS~6~yw%p)>?Bk*#FY zp&~hwy5KDvdwjkJ$y49kilmSjuc9JfDd4(Nv-?R$jo*(sP3ohk+@t5j$cyjqI9_wy zsv|yTL_iA9!qxSGHzwOYxM4Q5J@d6;V5*O_fB=J}9ciCS$G8VLo{uYtz5IV_f69bN zSgwda3&L2SL2SIZqxgZl5*l8>tUI)|2&D$Y2oJ5kKnvbdS%1nAG@nh$h$54|aHApfyNrUQ+$u4!@?_7U|^*K3Vm%|5bK6o;EN>cj%q~LyLP7m)@ zbpv~Vui}h*@d2pKe094sr%6DopO#h3H+!Tne&cdXwn=`wiqXoq$#F2ulv_H1J-qiU zVUxS=)|$1CSmw;5-oAfKI+;S%XTv+zIX(;%CcR3Lf7EGFmTnkj$0ON@ZSPfahD*nNMYy{tC+;LBTRbtVjx zRIBZq>5ytlXV9vqg5m>dp01{R1+z_kdrVcE={o#NB?`nRI zvKaRd^6fdbg>IzO(f*<`!+M9uv0h1yPw^F}romnXyaHH>?VTIHt>+r{{jLI*DJJ|= z<@fm;Zl*xyRH=XGH%(ZY=PK-R&ZNK)2hP;nccg|u!b)bJM@g8oD*T`oTjytSb$f?b zEt_+2c?GkDCr_Ur2o4~?FI4^5m7MoAfzVRx+|R<8HlUUCA_&jnQL>kd)7KYb2|s8a zIRf*@64CR0Bq*`@&QHPFRnsys5|b*T(u)dR(16~a`L%zQ$NZhiE+{lkqwp6o$L=j8 zmFx0>H-4zw`_a|?-uuae;uAkLh5DX6&ngE?BVt&@r372|L0@he1Guf>a6TiOvB5dY zRFOx^%ITdnz7jevbk|L+Ui%{p=n`m%=*|~pJn7W!7 zNu*Zvj>EiIGG0vxFW+tp8N!9f!?r)R?!!G<)8~I{@>2LSo4)H+ztBY<>j677FR@ik zp5uy;6)nUj7!kzX)ZMRqEe)#^FG&6zI2Y&-UrjS@{p#6lB(&Ge?tOXhBg&eJByD{8 zCgb!PLRwNyob(C5G3=7J8ByPG)EeIl{&JFIS-*vTUp0B7(>+` zXa0Zv;pw_hKCb%yz9v0tkjbl_9oZdY#2#!l2sKu$ut#?t0QnjOef1^HPwA2QqL#W_ zT_8DQE7qn=5uwoVA47S9(jFdEx(S!h`%cHj+n{57kUx$8DzsSsaKl2x!HT11yt>Ks zx^3g*LUrydv&q*x5b5ROP13jq*+RXlg71HPd)hD^^JM-ogEvzhnAT6Jp1k*MR1a#| zOoG7b=krnw$jun6|9rn+`!3#Y=4;dV_Cv~{`2G&ImVBNwosZUc-=&R%Cs?98kb$TD~=x=%9LAbm!i^*^N#H>PRmAo28LsOL8ym)`iH4~fu z+f5q4uW+&0yK-;3ekg7Xa1uIXs9qyoB~s+v8nQd%KhrjIoO(h*1M^(RpyD0YEA;WN z*OyQCi%~!j1<#XozfHG$;aXqoP!dW=-w{K66JG&k%|EPX);%N6%wLtCc2yrHB15-! z!>kN;OUT}?st!b1xE4`L%XNSKN`{4T$86DyT^5lkN1&{fLp3mEgK%89j8lWv zRd1oyW)VANSk~7gKPCK?j$Ec=;z7Zo%`A4Bt`lZ_Y#DnJ{pVU}UqMkS-@BH1e650s z^ADEYiZ?zUk5(!|selfaMpn(Tvz&;AZN6a7X5f|O{!<9%x8=70@CE*CY5v!);S^}Uy1b=WuK(<`mP+9NioBe~o#YvCr5u3AEaa7)ExgykoHC>88%CM(DB2)F<%|F65;aW27O=?-9_|4!1s ziuXYJ(vk>V8Zz`&p2unYa@+^YUM^Yky*(Ax+2$qx-V@o#x9Of%S?`d?zwB*FBZF8z^@mbjnHo01=68(LnIz@Gh))*pf#5dC% zoMO7@J=Zz8Zagr-Qd?_y-uMv=b=$LZN%xmv4}L zc8JvHJ~8(!8@m#f!>wKK-fJnI#q+-V9EC%|f=rkdq|7*e^?B*}kY4EvYkACFUqBpx znWCsRftY`{+eM}?y~S#m&a?&$^AgGJM2 zszha~O!cL8!D@>l?e&EP%iU_E5}>;Ro2PIH+!K8p$oSW(0kkEQ<1T7%+}k{pNpPH0}oa>Z~J&SbRxeM2=%bjNi?qE#vNH z04Ze($+=Yt;WGJ~^yL?;%o;i#x?Ff!XS#Rpn7$zf)~gmf z{nVt-PoQ55lL+KdeK1>W&$qYtUevqLJ;YBp66>XoP19Xh#!f9>_1E#RKPefo!+L*x z#|g@V%P8U(&J;+QV+roA@!k0Bnxj~UmA|-s7I4>|1@@BNOCXU+~U9DntiS3 z`+31?6?5v%qw#vtO2MAIQcE9DCeD9qb$UY~5z@2q(saS~b*o6;=60}C`sRrjvO=ku zQh#ZC{Utnjc%fJ6uG}wK#~nqFUYNXjz1hI2u7xhKx@DFKH!I#%=QRs7SL+SrBjfX~ zmuid;t78t2x@1#UyT#NpF(jei1(c2cwWRs+W0Z*1KU*#V7#$yD2JafUrIdewS$vc& zMf9T@#g8&l8h6MP2lfwb@R*inlvBu#50pBZ<-HmyY0 z9g%4bN%rJ5wqI3%u2;Egi+rs2{*!8VG)vt^ z`^sMKgy|V|DA$@5-||#fLoI&?EsZjCbzaSbEjoS7R^;YS4;6#4zU}LbUHFT|L{pnF zIaALs>1Hz&!S(tP-rIBz90A4Zoibjnw8{PbYEhkkm}hf!eTaW}bxP-^Z8N7T zME1BXN)KU2XX9d#pz1fN>k>M{FH0uU^`i93d@0#ys11;-v+XF1*#ByC#w_h>>!E*B zJM|Wav3-qv4>zCtd%96wp(AU~{D{RBYtoIhvu%-vJQqVg)KiSoFbB67eO-f!xZzjp zhESW&J1+Zo0lRhJb|rs0PF^JOwak!?tx523v!Z?XcB9t$w$_Dk;GSEhL1kgx!1aZ& z4Fbf?YBais0tzFXSZhU}`+d1izQ3)3#lCRCYf^l4n`;cD3q9%c-cK%wdHbmy6SbCMcm~n%1#nAI{hwg^z_uPG2ZR^d*ms%&hLNrC)($T4ZmfBUC7$Y zx%L>jDNQy|5a!+%6=M3qU8ne+$Ev=v&6L=xZ&J>4^6q+EttkWrqUiHn@C#yWKG^j>Ely};p3BcIibrsa}|n* z@@TYjXk9;~Uis6v`qd9Aed;Q(__cPechB^pVe)B--LBN=2~2&oNy}tkRu?J9OP!T; zEWwwToEfyLqwD^9V|2?XF2Q4HC;O1Q8~uSdYinZD%{YI-|44_=>mI?#(tDQufx0ij zm%QwHM-%LWTzrqclAaSWGQ*-T1M}^+zq#n`w}u!$4oTtPg*D`Ydc6x?qrW4kdA=uX zXQwKgm}99jIq~9J7Vujn1bJwF#*NI=!+U|{agP;y5Mr&_mBC_%$hvWr<@(26JW6Rw z%kiEwR|bE7-Asr+m#($BotO#yK90AL2*$2P{HtZHdW#6=vcEjxNZlyI(EB4_uKFWc zg8YuAr-YJ-wI>SN_?nk?K?o#Xqyr{;&L6(J`O%0AL9ObyghIur*`lz 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 T{_`Mf@L&H2A1cEbSm`7H2?DvG delta 1206217 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

lUULE|Y7H1Mf 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

fxzbSqyvCx4_mEJWw1eo4ssD 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
@@ -1202,21 +1203,28 @@ curl http://localhost:8080/v1/chat/completions \ ```shell # Native support: llama-server --jinja -fa -hf bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M - llama-server --jinja -fa -hf bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q4_K_M - llama-server --jinja -fa -hf bartowski/Llama-3.2-3B-Instruct-GGUF:Q6_K + llama-server --jinja -fa -hf bartowski/Mistral-Nemo-Instruct-2407-GGUF:Q6_K_L llama-server --jinja -fa -hf bartowski/functionary-small-v3.2-GGUF:Q4_K_M - llama-server --jinja -fa -hf bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M \ - --chat-template-file <( python scripts/get_chat_template.py NousResearch/Hermes-2-Pro-Llama-3-8B ) + llama-server --jinja -fa -hf bartowski/Llama-3.3-70B-Instruct-GGUF:Q4_K_M # Native support requires the right template for these GGUFs: + + llama-server --jinja -fa -hf bartowski/Hermes-2-Pro-Llama-3-8B-GGUF:Q4_K_M \ + --chat-template-file <( python scripts/get_chat_template.py NousResearch/Hermes-2-Pro-Llama-3-8B tool_use ) + llama-server --jinja -fa -hf bartowski/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M \ --chat-template-file <( python scripts/get_chat_template.py NousResearch/Hermes-3-Llama-3.1-8B tool_use ) + llama-server --jinja -fa -hf bartowski/firefunction-v2-GGUF -hff firefunction-v2-IQ1_M.gguf \ - --chat-template-file <( python scripts/get_chat_template.py fireworks-ai/firellama-3-firefunction-v2 ) + --chat-template-file <( python scripts/get_chat_template.py fireworks-ai/llama-3-firefunction-v2 tool_use ) + + llama-server --jinja -fa -hf bartowski/c4ai-command-r7b-12-2024-GGUF:Q6_K_L \ + --chat-template-file <( python scripts/get_chat_template.py CohereForAI/c4ai-command-r7b-12-2024 tool_use ) # Generic format support - llama-server --jinja -fa -hf bartowski/Phi-3.5-mini-instruct-GGUF:Q4_K_M - llama-server --jinja -fa -hf bartowski/gemma-2-2b-it-GGUF:Q4_K_M + llama-server --jinja -fa -hf bartowski/phi-4-GGUF:Q4_0 + llama-server --jinja -fa -hf bartowski/gemma-2-2b-it-GGUF:Q8_0 + llama-server --jinja -fa -hf bartowski/c4ai-command-r-v01-GGUF:Q2_K ``` - Test in CLI: diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 3451e96a2..e0acc4705 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -131,6 +131,11 @@ struct slot_params { lora.push_back({{"id", i}, {"scale", this->lora[i].scale}}); } + std::vector grammar_trigger_words; + for (const auto & trigger : sampling.grammar_trigger_words) { + grammar_trigger_words.push_back(trigger.word); + } + return json { {"n_predict", n_predict}, // Server configured n_predict {"seed", sampling.seed}, @@ -165,8 +170,9 @@ struct slot_params { {"n_probs", sampling.n_probs}, {"min_keep", sampling.min_keep}, {"grammar", sampling.grammar}, - // {"grammar_trigger_words", sampling.grammar_trigger_words}, + {"grammar_trigger_words", grammar_trigger_words}, {"grammar_trigger_tokens", sampling.grammar_trigger_tokens}, + {"preserved_tokens", sampling.preserved_tokens}, {"samplers", samplers}, {"speculative.n_max", speculative.n_max}, {"speculative.n_min", speculative.n_min}, @@ -363,12 +369,26 @@ struct server_task { if (ids.size() == 1) { LOG_DBG("Grammar trigger token: %d (`%s`)\n", ids[0], trigger.word.c_str()); params.sampling.grammar_trigger_tokens.push_back(ids[0]); + params.sampling.preserved_tokens.insert(ids[0]); continue; } LOG_DBG("Grammar trigger word: `%s`\n", trigger.word.c_str()); params.sampling.grammar_trigger_words.push_back(trigger); } } + const auto preserved_tokens = data.find("preserved_tokens"); + if (preserved_tokens != data.end()) { + for (const auto & t : *preserved_tokens) { + auto ids = common_tokenize(vocab, t.get(), /* add_special= */ false, /* parse_special= */ true); + if (ids.size() == 1) { + LOG_DBG("Preserved token: %d\n", ids[0]); + params.sampling.preserved_tokens.insert(ids[0]); + } else { + // This may happen when using a tool call style meant for a model with special tokens to preserve on a model without said tokens. + LOG_WRN("Not preserved because more than 1 token (wrong chat template override?): %s\n", t.get().c_str()); + } + } + } if (params.sampling.grammar_lazy) { GGML_ASSERT(params.sampling.grammar_trigger_tokens.size() > 0 || params.sampling.grammar_trigger_words.size() > 0); } @@ -695,19 +715,19 @@ struct server_task_result_cmpl_final : server_task_result { json to_json_oaicompat_chat() { std::string finish_reason = "length"; - common_chat_msg message; + common_chat_msg msg; if (stop == STOP_TYPE_WORD || stop == STOP_TYPE_EOS) { LOG_DBG("Parsing chat message: %s\n", content.c_str()); - message = common_chat_parse(content, oaicompat_chat_format); - finish_reason = message.tool_calls.empty() ? "stop" : "tool_calls"; + msg = common_chat_parse(content, oaicompat_chat_format); + finish_reason = msg.tool_calls.empty() ? "stop" : "tool_calls"; } else { - message.content = content; + msg.content = content; } json tool_calls; - if (!message.tool_calls.empty()) { + if (!msg.tool_calls.empty()) { tool_calls = json::array(); - for (const auto & tc : message.tool_calls) { + for (const auto & tc : msg.tool_calls) { tool_calls.push_back({ {"type", "function"}, {"function", { @@ -719,14 +739,19 @@ struct server_task_result_cmpl_final : server_task_result { } } + json message { + {"content", msg.content}, + {"tool_calls", tool_calls}, + {"role", "assistant"}, + }; + if (!msg.tool_plan.empty()) { + message["tool_plan"] = msg.tool_plan; + } + json choice { {"finish_reason", finish_reason}, {"index", 0}, - {"message", json { - {"content", message.content}, - {"tool_calls", tool_calls}, - {"role", "assistant"}, - }}, + {"message", message}, }; if (!stream && probs_output.size() > 0) { @@ -2833,8 +2858,7 @@ struct server_context { server_slot * slot_batched = nullptr; auto accept_special_token = [&](server_slot & slot, llama_token token) { - const auto & trigger_tokens = slot.params.sampling.grammar_trigger_tokens; - return params_base.special || std::find(trigger_tokens.begin(), trigger_tokens.end(), token) != trigger_tokens.end(); + return params_base.special || slot.params.sampling.preserved_tokens.find(token) != slot.params.sampling.preserved_tokens.end(); }; // frist, add sampled tokens from any ongoing sequences diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index bfe623c4c..fefdce55b 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -662,6 +662,7 @@ static json oaicompat_completion_params_parse( }); } llama_params["grammar_triggers"] = grammar_triggers; + llama_params["preserved_tokens"] = chat_params.preserved_tokens; for (const auto & stop : chat_params.additional_stops) { llama_params["stop"].push_back(stop); } diff --git a/models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja b/models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja new file mode 100644 index 000000000..078e9f545 --- /dev/null +++ b/models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja @@ -0,0 +1,156 @@ +{{ bos_token }}{%- macro document_turn(documents) -%} +{# format documents into chat turn #} +<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|><|START_THINKING|>I will look through the document to address the users needs.<|END_THINKING|><|START_ACTION|>[ + {"tool_call_id": "0", "tool_name": "direct-injected-document", "parameters": {}} +]<|END_ACTION|><|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|><|START_TOOL_RESULT|>[ + { + "tool_call_id": "0", + "results": { +{% for doc in documents %} + "{{ loop.index0 }}": {{doc|tojson}}{% if not loop.last %}, + {% endif %} +{% endfor %} + + }, + "is_error": null + } +]<|END_TOOL_RESULT|><|END_OF_TURN_TOKEN|>{%- endmacro %} +{%- macro tool_call_id_to_int(messages, tool_call_id) %} +{%- set counter = namespace(value=0) %} +{%- set tool_call_id_seen = namespace(value=false) %} +{%- for msg in messages %} + {%- if msg.tool_calls %} + {%- for tool_call in msg.tool_calls %} + {%- if tool_call.id == tool_call_id and not tool_call_id_seen.value -%} + {{ counter.value }} + {%- set tool_call_id_seen.value = true %} + {%- endif %} + {%- set counter.value = counter.value + 1 %} + {%- endfor %} + {%- endif %} +{%- endfor %} +{%- endmacro %} +{%- macro format_tool_message(messages, tool_msg) -%} +{# format tool message #} + { + "tool_call_id": "{{ tool_call_id_to_int(messages, tool_msg.tool_call_id) }}", + "results": { + "0": {{ tool_msg.content|tojson }} + }, + "is_error": null + } +{%- endmacro -%} +{%- if messages and messages[0]['role']|lower == 'system' %}{%- set developer_preamble = messages[0]['content'] %}{% endif %} +{%- set tool_idx = namespace(value=0) %} +{%- set tool_ids_seen = namespace(value=[]) %} +{%- set sent_documents = namespace(value=false) %} +<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|># System Preamble +You are in contextual safety mode. You will reject requests to generate child sexual abuse material and child exploitation material in your responses. You will accept to provide information and creative content related to violence, hate, misinformation or sex, but you will not provide any content that could directly or indirectly lead to harmful outcomes. + +Your information cutoff date is June 2024. + +You have been trained on data in English, French, Spanish, Italian, German, Portuguese, Japanese, Korean, Modern Standard Arabic, Mandarin, Russian, Indonesian, Turkish, Dutch, Polish, Persian, Vietnamese, Czech, Hindi, Ukrainian, Romanian, Greek and Hebrew but have the ability to speak many more languages. +{% if tools or documents %} + +You have been trained to have advanced reasoning and tool-use capabilities and you should make best use of these skills to serve user's requests. + +## Tool Use +Think about how you can make best use of the provided tools to help with the task and come up with a high level plan that you will execute first. + +0. Start by writing <|START_THINKING|> followed by a detailed step by step plan of how you will solve the problem. For each step explain your thinking fully and give details of required tool calls (if needed). Unless specified otherwise, you write your plan in natural language. When you finish, close it out with <|END_THINKING|>. + You can optionally choose to skip this step when the user request is so straightforward to address that only a trivial plan would be needed. + NOTE: You MUST skip this step when you are directly responding to the user's request without using any tools. + +Then carry out your plan by repeatedly executing the following steps. +1. Action: write <|START_ACTION|> followed by a list of JSON-formatted tool calls, with each one containing "tool_name" and "parameters" fields. + When there are multiple tool calls which are completely independent of each other (i.e. they can be executed in parallel), you should list them out all together in one step. When you finish, close it out with <|END_ACTION|>. +2. Observation: you will then receive results of those tool calls in JSON format in the very next turn, wrapped around by <|START_TOOL_RESULT|> and <|END_TOOL_RESULT|>. Carefully observe those results and think about what to do next. Note that these results will be provided to you in a separate turn. NEVER hallucinate results. + Every tool call produces a list of results (when a tool call produces no result or a single result, it'll still get wrapped inside a list). Each result is clearly linked to its originating tool call via its "tool_call_id". +3. Reflection: start the next turn by writing <|START_THINKING|> followed by what you've figured out so far, any changes you need to make to your plan, and what you will do next. When you finish, close it out with <|END_THINKING|>. + You can optionally choose to skip this step when everything is going according to plan and no special pieces of information or reasoning chains need to be recorded. + NOTE: You MUST skip this step when you are done with tool-use actions and are ready to respond to the user. + +You can repeat the above 3 steps multiple times (could be 0 times too if no suitable tool calls are available or needed), until you decide it's time to finally respond to the user. + +4. Response: then break out of the loop and write <|START_RESPONSE|> followed by a piece of text which serves as a response to the user's last request. Use all previous tool calls and results to help you when formulating your response. When you finish, close it out with <|END_RESPONSE|>. +{% if enable_citations %} + +## Grounding +Importantly, note that "Reflection" and "Response" above can be grounded. +Grounding means you associate pieces of texts (called "spans") with those specific tool results that support them (called "sources"). And you use a pair of tags "" and "" to indicate when a span can be grounded onto a list of sources, listing them out in the closing tag. Sources from the same tool call are grouped together and listed as "{tool_call_id}:[{list of result indices}]", before they are joined together by ",". E.g., "span" means that "span" is supported by result 1 and 2 from "tool_call_id=0" as well as result 0 from "tool_call_id=1". +{% endif %} + +## Available Tools +Here is the list of tools that you have available to you. +You can ONLY use the tools listed here. When a tool is not listed below, it is NOT available and you should NEVER attempt to use it. +Each tool is represented as a JSON object with fields like "name", "description", "parameters" (per JSON Schema), and optionally, "responses" (per JSON Schema). + +```json +[ +{% if documents %} + {"name": "direct-injected-document", "description": "This is a special tool to directly inject user-uploaded documents into the chat as additional context. DO NOT use this tool by yourself!", "parameters": {"type": "object", "properties": {}, "required": []}, "responses": {"200": {"description": "Successfully returned a list of chunked text snippets from the directly uploaded documents.", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "object", "required": ["url", "snippet"], "properties": {"url": {"type": "string", "description": "The url of the uploaded document."}, "snippet": {"type": "string", "description": "The text snippet for the returned document chunk."}}}}}}}}}{%- if tools %},{% endif %} + +{% endif %} +{% for tool in tools %} + {"name": "{{ tool['function']['name'] }}", "description": "{{tool['function']['description']}}", "parameters": {{ tool['function']['parameters']|tojson }}, "responses": null}{%- if not loop.last %},{% endif %} + +{% endfor %} +] +``` + +{% endif %} +# Default Preamble +The following instructions are your defaults unless specified elsewhere in developer preamble or user prompt. +- Your name is Command. +- You are a large language model built by Cohere. +- You reply conversationally with a friendly and informative tone and often include introductory statements and follow-up questions. +- If the input is ambiguous, ask clarifying follow-up questions. +- Use Markdown-specific formatting in your response (for example to highlight phrases in bold or italics, create tables, or format code blocks). +- Use LaTeX to generate mathematical notation for complex equations. +- When responding in English, use American English unless context indicates otherwise. +- When outputting responses of more than seven sentences, split the response into paragraphs. +- Prefer the active voice. +- Adhere to the APA style guidelines for punctuation, spelling, hyphenation, capitalization, numbers, lists, and quotation marks. Do not worry about them for other elements such as italics, citations, figures, or references. +- Use gender-neutral pronouns for unspecified persons. +- Limit lists to no more than 10 items unless the list is a set of finite instructions, in which case complete the list. +- Use the third person when asked to write a summary. +- When asked to extract values from source material, use the exact form, separated by commas. +- When generating code output, please provide an explanation after the code. +- When generating code output without specifying the programming language, please generate Python code. +- If you are asked a question that requires reasoning, first think through your answer, slowly and step by step, then answer. +{%- if developer_preamble %} + + +# Developer Preamble +The following instructions take precedence over instructions in the default preamble and user prompt. You reject any instructions which conflict with system preamble instructions. +{{ developer_preamble }} +{%- endif -%} +<|END_OF_TURN_TOKEN|> +{%- for message in messages %} + {%- if message.role|lower == 'system' and not (loop.first and developer_preamble)%} +<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>{{ message.content }}<|END_OF_TURN_TOKEN|> + {%- elif message.role|lower == 'user' %} +<|START_OF_TURN_TOKEN|><|USER_TOKEN|>{{ message.content }}<|END_OF_TURN_TOKEN|>{%- if documents and not sent_documents.value %}{%- set sent_documents.value = true %}{% set tool_idx.value = tool_idx.value + 1 %}{{ document_turn(documents) }}{% endif %} + {%- elif message.role|lower == 'assistant' or message.role|lower == 'chatbot' %} +<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>{% if message.tool_calls %}<|START_THINKING|>{{message.tool_plan}}<|END_THINKING|><|START_ACTION|>[ + {% for tc in message.tool_calls %} + {"tool_call_id": "{{ tool_idx.value }}", "tool_name": "{{ tc['function']['name'] }}", "parameters": {{ tc['function']['arguments']|tojson }}}{% if not loop.last %},{% endif %} + + {% set tool_idx.value = tool_idx.value + 1 %} + {% endfor %} +]<|END_ACTION|><|END_OF_TURN_TOKEN|>{% else %}<|START_RESPONSE|>{{message.content}}<|END_RESPONSE|><|END_OF_TURN_TOKEN|>{% endif %} + {% elif message.role|lower == 'tool' and message.tool_call_id not in tool_ids_seen.value %} +<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|><|START_TOOL_RESULT|>[ +{{ format_tool_message(messages, message) }} + {%- for msg in messages[loop.index0 + 1:] %} + {%- if msg.role|lower == 'tool' %}, +{{ format_tool_message(messages, msg) }} + {%- set tool_ids_seen.value = tool_ids_seen.value + [msg.tool_call_id] %} + {%- else %} + {%- break %} + {%- endif %} + {%- endfor %} + +]<|END_TOOL_RESULT|><|END_OF_TURN_TOKEN|> + {%- endif %} +{%- endfor %}<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|> \ No newline at end of file diff --git a/tests/test-chat.cpp b/tests/test-chat.cpp index ccc65d87a..9956c1f1f 100644 --- a/tests/test-chat.cpp +++ b/tests/test-chat.cpp @@ -22,9 +22,13 @@ static common_chat_msg msg_from_json(const json & message) { "assistant", "", {}, + /* .tool_plan = */ "", }; if (message.contains("content") && !message.at("content").is_null()) { - ret.content = message.at("content").get(); + ret.content = message.at("content"); + } + if (message.contains("tool_plan")) { + ret.tool_plan = message.at("tool_plan"); } auto has_tool_calls = message.contains("tool_calls"); if (has_tool_calls) { @@ -171,8 +175,7 @@ const json llama_3_1_tools = { special_function_tool, code_interpreter_too struct delta_data { std::string delta; - std::string grammar; - common_chat_format format; + common_chat_params params; }; static delta_data init_delta(const common_chat_template & tmpl, const std::vector & end_tokens, @@ -214,7 +217,7 @@ static delta_data init_delta(const common_chat_template & tmpl, const std::vecto break; } } - return { delta, params_full.grammar, params_full.format }; + return { delta, params_full }; } /* @@ -224,7 +227,7 @@ static delta_data init_delta(const common_chat_template & tmpl, const std::vecto */ static void test_template(const common_chat_template & tmpl, const std::vector & end_tokens, const json & test_message, const json & tools = {}, const std::string & expected_delta = "", - bool skip_grammar_test = false, bool skip_parser_test = false) { + bool expect_grammar_triggered = true) { common_chat_msg expected_msg = msg_from_json(test_message); auto user_message = json{ @@ -238,45 +241,110 @@ static void test_template(const common_chat_template & tmpl, const std::vector 0 && trigger.at_start) { + fprintf(stderr, "Trigger %s not at start of message, skipping:\n\n%s\n\n", trigger.word.c_str(), constrained.c_str()); + continue; + } + if (earliest_trigger_pos == std::string::npos || pos < earliest_trigger_pos) { + earliest_trigger_pos = pos; + } + } + auto grammar_triggered = false; + if (earliest_trigger_pos != std::string::npos) { + constrained = constrained.substr(earliest_trigger_pos); + grammar_triggered = true; + } + if (data.params.grammar_lazy) { + assert_equals(expect_grammar_triggered, grammar_triggered); + } + + if (grammar_triggered && !match_string(constrained, grammar.get())) { + throw std::runtime_error("Failed to match delta against grammar:\n\n" + data.delta + + "\n\nGrammar: " + data.params.grammar); } } } } static void test_template_output_parsers() { - auto text_message = json{ + json text_message { { "role", "assistant" }, { "content", "Hello, world!" }, }; - auto tool_call_message = json{ + json tool_calls = json::array({{ + { "type", "function" }, + { "function", { { "name", "special_function" }, { "arguments", "{\"arg1\": 1}" } } }, + }}); + + json tool_call_message { + { "role", "assistant"}, + { "content", {}}, + { "tool_calls", { + { + { "type", "function" }, + { "function", { + { "name", "special_function" }, + { "arguments", "{\"arg1\": 1}" }, + }}, + }, + }}, + }; + json tool_call_message_with_id { + { "role", "assistant"}, + { "content", {}}, + { "tool_calls", { + { + { "type", "function" }, + { "function", { + { "name", "special_function" }, + { "arguments", "{\"arg1\": 1}" }, + }}, + {"id", "123456789"}, + }, + }}, { "role", "assistant" }, { "content", {} }, - { "tool_calls", json{ { - { "type", "function" }, - { "function", { { "name", "special_function" }, { "arguments", "{\"arg1\": 1}" } } }, - } } } + { "tool_calls", tool_calls } + }; + json tool_call_plan_message_with_idx { + { "role", "assistant"}, + { "content", {}}, + { "tool_plan", "I'm not so sure"}, + { "tool_calls", { + { + { "type", "function" }, + { "function", { + { "name", "special_function" }, + { "arguments", "{\"arg1\": 1}" }, + }}, + // Index of the tool call in the tool_calls array + {"id", "0"}, + }, + }}, + { "role", "assistant" }, + { "content", {} }, + { "tool_calls", tool_calls } }; - auto tool_call_message_with_id = json::parse(tool_call_message.dump()); - tool_call_message_with_id["tool_calls"][0]["id"] = "123456789"; auto python_tool_call_message = json{ { "role", "assistant" }, @@ -322,6 +390,27 @@ static void test_template_output_parsers() { inputs_tools_builtin.tools = json::array(); inputs_tools_builtin.tools.push_back(python_tool); + { + // Not supported yet + const common_chat_template tmpl(read_file("models/templates/CohereForAI-c4ai-command-r-plus-tool_use.jinja"), "", ""); + assert_equals(COMMON_CHAT_FORMAT_GENERIC, common_chat_params_init(tmpl, inputs_tools).format); + } + { + const common_chat_template tmpl(read_file("models/templates/CohereForAI-c4ai-command-r7b-12-2024-tool_use.jinja"), "", ""); + std::vector end_tokens{ "<|END_OF_TURN_TOKEN|>" }; + + assert_equals(COMMON_CHAT_FORMAT_CONTENT_ONLY, common_chat_params_init(tmpl, inputs_no_tools).format); + assert_equals(COMMON_CHAT_FORMAT_COMMAND_R7B, common_chat_params_init(tmpl, inputs_tools).format); + + test_template(tmpl, end_tokens, tool_call_plan_message_with_idx, tools, + "<|START_THINKING|>I'm not so sure<|END_THINKING|>" + "<|START_ACTION|>[\n" + " {\"tool_call_id\": \"0\", \"tool_name\": \"special_function\", \"parameters\": {\"arg1\": 1}}\n" + "]<|END_ACTION|>"); + test_template(tmpl, end_tokens, text_message, tools, + "<|START_RESPONSE|>Hello, world!<|END_RESPONSE|>", + /* expect_grammar_triggered= */ false); + } { const common_chat_template tmpl(read_file("models/templates/google-gemma-2-2b-it.jinja"), "", ""); std::vector end_tokens{ "" }; @@ -362,11 +451,10 @@ static void test_template_output_parsers() { assert_equals(COMMON_CHAT_FORMAT_MISTRAL_NEMO, common_chat_params_init(tmpl, inputs_tools).format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template( tmpl, end_tokens, tool_call_message_with_id, tools, - "[TOOL_CALLS][{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}, \"id\": \"123456789\"}]", - /* skip_grammar_test= */ true); + "[TOOL_CALLS][{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}, \"id\": \"123456789\"}]"); } { const common_chat_template tmpl( @@ -388,7 +476,7 @@ static void test_template_output_parsers() { inputs_tools) .format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, "\n" "{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}\n" @@ -413,7 +501,7 @@ static void test_template_output_parsers() { inputs_tools_builtin) .format); - // test_template(tmpl, end_tokens, text_message, tools, R"(?)", /* skip_grammar_test= */ true); + // test_template(tmpl, end_tokens, text_message, tools, R"(?)", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, code_interpreter_tool_call_message, llama_3_1_tools, "<|python_tag|>code_interpreter.call(code=\"print('hey')\")"); test_template(tmpl, end_tokens, python_tool_call_message, tools, @@ -428,7 +516,7 @@ static void test_template_output_parsers() { assert_equals(COMMON_CHAT_FORMAT_LLAMA_3_X, common_chat_params_init(tmpl, inputs_tools).format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, "{\"name\": \"special_function\", \"parameters\": {\"arg1\": 1}}"); } @@ -440,7 +528,7 @@ static void test_template_output_parsers() { assert_equals(COMMON_CHAT_FORMAT_FUNCTIONARY_V3_1_LLAMA_3_1, common_chat_params_init(tmpl, inputs_tools).format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, "{\"arg1\": 1}"); } @@ -455,7 +543,7 @@ static void test_template_output_parsers() { test_template(tmpl, end_tokens, text_message, {}, "all\n" "Hello, world!", - /* skip_grammar_test= */ true); + /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, "special_function\n" "{\"arg1\": 1}"); @@ -467,7 +555,7 @@ static void test_template_output_parsers() { assert_equals(COMMON_CHAT_FORMAT_FIREFUNCTION_V2, common_chat_params_init(tmpl, inputs_tools).format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, " functools[{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}]"); } @@ -478,7 +566,7 @@ static void test_template_output_parsers() { assert_equals(COMMON_CHAT_FORMAT_DEEPSEEK_R1, common_chat_params_init(tmpl, inputs_tools).format); - test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* skip_grammar_test= */ true); + test_template(tmpl, end_tokens, text_message, tools, "Hello, world!", /* expect_grammar_triggered= */ false); test_template(tmpl, end_tokens, tool_call_message, tools, "<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>special_function\n" "```json\n" From 84ec8a58f7b6aad6887bbfbd1321f3ff417341a5 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Sun, 2 Feb 2025 16:14:48 +0100 Subject: [PATCH 097/162] Name colors (#11573) It's more descriptive, use #define's so we can use compile-time concatenations. Signed-off-by: Eric Curtin --- common/log.cpp | 10 ---------- common/log.h | 10 ++++++++++ examples/run/run.cpp | 15 ++++++++------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/common/log.cpp b/common/log.cpp index 0b8994ae1..4bfbecf15 100644 --- a/common/log.cpp +++ b/common/log.cpp @@ -14,16 +14,6 @@ void common_log_set_verbosity_thold(int verbosity) { common_log_verbosity_thold = verbosity; } -#define LOG_COL_DEFAULT "\033[0m" -#define LOG_COL_BOLD "\033[1m" -#define LOG_COL_RED "\033[31m" -#define LOG_COL_GREEN "\033[32m" -#define LOG_COL_YELLOW "\033[33m" -#define LOG_COL_BLUE "\033[34m" -#define LOG_COL_MAGENTA "\033[35m" -#define LOG_COL_CYAN "\033[36m" -#define LOG_COL_WHITE "\033[37m" - static int64_t t_us() { return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); } diff --git a/common/log.h b/common/log.h index 66605cc69..85dd4393b 100644 --- a/common/log.h +++ b/common/log.h @@ -2,6 +2,16 @@ #include "ggml.h" // for ggml_log_level +#define LOG_COL_DEFAULT "\033[0m" +#define LOG_COL_BOLD "\033[1m" +#define LOG_COL_RED "\033[31m" +#define LOG_COL_GREEN "\033[32m" +#define LOG_COL_YELLOW "\033[33m" +#define LOG_COL_BLUE "\033[34m" +#define LOG_COL_MAGENTA "\033[35m" +#define LOG_COL_CYAN "\033[36m" +#define LOG_COL_WHITE "\033[37m" + #ifndef __GNUC__ # define LOG_ATTRIBUTE_FORMAT(...) #elif defined(__MINGW32__) diff --git a/examples/run/run.cpp b/examples/run/run.cpp index cf61f4add..ca9273155 100644 --- a/examples/run/run.cpp +++ b/examples/run/run.cpp @@ -24,15 +24,16 @@ #include #include +#include "chat-template.hpp" #include "common.h" #include "json.hpp" #include "linenoise.cpp/linenoise.h" #include "llama-cpp.h" -#include "chat-template.hpp" +#include "log.h" #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) || defined(_WIN32) [[noreturn]] static void sigint_handler(int) { - printf("\n\033[0m"); + printf("\n" LOG_COL_DEFAULT); exit(0); // not ideal, but it's the only way to guarantee exit in all cases } #endif @@ -890,7 +891,7 @@ static int check_context_size(const llama_context_ptr & ctx, const llama_batch & const int n_ctx = llama_n_ctx(ctx.get()); const int n_ctx_used = llama_get_kv_cache_used_cells(ctx.get()); if (n_ctx_used + batch.n_tokens > n_ctx) { - printf("\033[0m\n"); + printf(LOG_COL_DEFAULT "\n"); printe("context size exceeded\n"); return 1; } @@ -953,7 +954,7 @@ static int generate(LlamaData & llama_data, const std::string & prompt, std::str batch = llama_batch_get_one(&new_token_id, 1); } - printf("\033[0m"); + printf(LOG_COL_DEFAULT); return 0; } @@ -962,7 +963,7 @@ static int read_user_input(std::string & user_input) { #ifdef WIN32 printf( "\r%*s" - "\r\033[0m%s", + "\r" LOG_COL_DEFAULT "%s", get_terminal_width(), " ", prompt_prefix); std::getline(std::cin, user_input); @@ -999,7 +1000,7 @@ static int generate_response(LlamaData & llama_data, const std::string & prompt, const bool stdout_a_terminal) { // Set response color if (stdout_a_terminal) { - printf("\033[33m"); + printf(LOG_COL_YELLOW); } if (generate(llama_data, prompt, response)) { @@ -1008,7 +1009,7 @@ static int generate_response(LlamaData & llama_data, const std::string & prompt, } // End response with color reset and newline - printf("\n%s", stdout_a_terminal ? "\033[0m" : ""); + printf("\n%s", stdout_a_terminal ? LOG_COL_DEFAULT : ""); return 0; } From 864a0b67a6c8f648c43ce8271f9cb2e12dd5df6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 2 Feb 2025 19:31:09 +0100 Subject: [PATCH 098/162] CUDA: use mma PTX instructions for FlashAttention (#11583) * CUDA: use mma PTX instructions for FlashAttention * __shfl_sync workaround for movmatrix * add __shfl_sync to HIP Co-authored-by: Diego Devesa --- Makefile | 2 +- ggml/include/ggml.h | 2 +- ggml/src/ggml-cuda/CMakeLists.txt | 2 +- ggml/src/ggml-cuda/common.cuh | 6 +- ggml/src/ggml-cuda/fattn-common.cuh | 181 ++++- ggml/src/ggml-cuda/fattn-mma-f16.cuh | 637 +++++++++++++++++ ggml/src/ggml-cuda/fattn-tile-f16.cu | 24 +- ggml/src/ggml-cuda/fattn-tile-f32.cu | 19 +- ggml/src/ggml-cuda/fattn-vec-f16.cuh | 9 +- ggml/src/ggml-cuda/fattn-vec-f32.cuh | 8 +- ggml/src/ggml-cuda/fattn-wmma-f16.cu | 648 ++++++++++++++++++ ggml/src/ggml-cuda/fattn-wmma-f16.cuh | 542 +-------------- ggml/src/ggml-cuda/fattn.cu | 174 ++--- ggml/src/ggml-cuda/mma.cuh | 335 +++++++-- ggml/src/ggml-cuda/mmq.cu | 2 +- ggml/src/ggml-cuda/mmq.cuh | 349 +++++----- .../fattn-mma-f16-instance-cpb16.cu | 10 + .../fattn-mma-f16-instance-cpb32.cu | 10 + .../fattn-mma-f16-instance-cpb64.cu | 10 + .../fattn-mma-f16-instance-cpb8.cu | 10 + .../fattn-wmma-f16-instance-kqfloat-cpb16.cu | 10 - .../fattn-wmma-f16-instance-kqfloat-cpb32.cu | 9 - .../fattn-wmma-f16-instance-kqhalf-cpb16.cu | 10 - .../fattn-wmma-f16-instance-kqhalf-cpb32.cu | 10 - .../fattn-wmma-f16-instance-kqhalf-cpb8.cu | 8 - .../template-instances/generate_cu_files.py | 24 +- ggml/src/ggml-cuda/vendors/hip.h | 1 + ggml/src/ggml-hip/CMakeLists.txt | 2 +- ggml/src/ggml-musa/CMakeLists.txt | 2 +- 29 files changed, 2058 insertions(+), 998 deletions(-) create mode 100644 ggml/src/ggml-cuda/fattn-mma-f16.cuh create mode 100644 ggml/src/ggml-cuda/fattn-wmma-f16.cu create mode 100644 ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb16.cu create mode 100644 ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb32.cu create mode 100644 ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb64.cu create mode 100644 ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb8.cu delete mode 100644 ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu delete mode 100644 ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu delete mode 100644 ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu delete mode 100644 ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu delete mode 100644 ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu diff --git a/Makefile b/Makefile index ef152d246..dc3de3cb1 100644 --- a/Makefile +++ b/Makefile @@ -596,7 +596,7 @@ ifdef GGML_RPC OBJ_GGML_EXT += ggml/src/ggml-rpc.o endif # GGML_RPC -OBJ_CUDA_TMPL = $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-wmma*.cu)) +OBJ_CUDA_TMPL = $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-mma*.cu)) OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/mmq*.cu)) ifdef GGML_CUDA_FA_ALL_QUANTS diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 1198dc1fd..5bd8d9c8b 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -1775,7 +1775,7 @@ extern "C" { struct ggml_tensor * a, int k); -#define GGML_KQ_MASK_PAD 32 +#define GGML_KQ_MASK_PAD 64 // q: [n_embd, n_batch, n_head, 1] // k: [n_embd, n_kv, n_head_kv, 1] diff --git a/ggml/src/ggml-cuda/CMakeLists.txt b/ggml/src/ggml-cuda/CMakeLists.txt index 14761650f..119fd39b8 100644 --- a/ggml/src/ggml-cuda/CMakeLists.txt +++ b/ggml/src/ggml-cuda/CMakeLists.txt @@ -28,7 +28,7 @@ if (CUDAToolkit_FOUND) list(APPEND GGML_HEADERS_CUDA "../../include/ggml-cuda.h") file(GLOB GGML_SOURCES_CUDA "*.cu") - file(GLOB SRCS "template-instances/fattn-wmma*.cu") + file(GLOB SRCS "template-instances/fattn-mma*.cu") list(APPEND GGML_SOURCES_CUDA ${SRCS}) file(GLOB SRCS "template-instances/mmq*.cu") list(APPEND GGML_SOURCES_CUDA ${SRCS}) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 8d8d3932e..88be8fc8a 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -148,7 +148,7 @@ typedef float2 dfloat2; #endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_TURING -#define INT8_MMA_AVAILABLE +#define NEW_MMA_AVAILABLE #endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && __CUDA_ARCH__ >= GGML_CUDA_CC_TURING #if !(defined(GGML_USE_MUSA) && __MUSA_ARCH__ <= GGML_CUDA_CC_QY1) @@ -159,11 +159,13 @@ static constexpr bool fast_fp16_available(const int cc) { return cc >= GGML_CUDA_CC_PASCAL && cc != 610; } +// Any FP16 tensor cores are available. static constexpr bool fp16_mma_available(const int cc) { return cc < GGML_CUDA_CC_OFFSET_AMD && cc >= GGML_CUDA_CC_VOLTA; } -static constexpr bool int8_mma_available(const int cc) { +// Volta technically had FP16 tensor cores but they work very differently compared to Turing and later. +static constexpr bool new_mma_available(const int cc) { return cc < GGML_CUDA_CC_OFFSET_AMD && cc >= GGML_CUDA_CC_TURING; } diff --git a/ggml/src/ggml-cuda/fattn-common.cuh b/ggml/src/ggml-cuda/fattn-common.cuh index ee9752da6..cfd7c0f44 100644 --- a/ggml/src/ggml-cuda/fattn-common.cuh +++ b/ggml/src/ggml-cuda/fattn-common.cuh @@ -516,6 +516,104 @@ constexpr __device__ dequantize_1_f32_t get_dequantize_1_f32(ggml_type type_V) { nullptr; } +template // D == head size +#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +__launch_bounds__(D, 1) +#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +static __global__ void flash_attn_stream_k_fixup( + float * __restrict__ dst, const float2 * __restrict__ dst_fixup, const int ne01, const int ne02, const int ne11) { + const float * dst_fixup_data = ((const float *) dst_fixup) + gridDim.x*(2*2*ncols); + + const int iter_k = ne11 / KQ_stride; + const int iter_j = (ne01 + (ncols - 1)) / ncols; + + const int bidx0 = blockIdx.x; + + const int kbc0 = (bidx0 + 0)*iter_k*iter_j*ne02 / gridDim.x; + const int kbc0_stop = (bidx0 + 1)*iter_k*iter_j*ne02 / gridDim.x; + + const bool did_not_have_any_data = kbc0 == kbc0_stop; + const bool wrote_beginning_of_tile = kbc0 % iter_k == 0; + const bool did_not_write_last = kbc0/iter_k == kbc0_stop/iter_k && kbc0_stop % iter_k != 0; + if (did_not_have_any_data || wrote_beginning_of_tile || did_not_write_last) { + return; + } + + const int channel = kbc0 / (iter_k*iter_j); + const int jt = (kbc0 - channel*iter_k*iter_j) / iter_k; + + dst += jt*ncols*ne02*D + channel*D; + + // Load the partial result that needs a fixup: + float dst_val[ncols] = {0.0f}; + float max_val[ncols] = {0.0f}; + float rowsum[ncols] = {0.0f}; +#pragma unroll + for (int j = 0; j < ncols; ++j) { + if (jt*ncols + j >= ne01) { + break; + } + dst_val[j] = dst[j*ne02*D + threadIdx.x]; + + const float2 tmp = dst_fixup[bidx0*ncols + j]; + max_val[j] = tmp.x; + rowsum[j] = tmp.y; + } + + // Iterate over previous blocks and compute the combined results. + // All CUDA blocks that get here must have a previous block that needs a fixup. + int bidx = bidx0 - 1; + int kbc_stop = kbc0; + while(true) { + const int kbc = bidx*iter_k*iter_j*ne02 / gridDim.x; + if (kbc == kbc_stop) { // Did not have any data. + bidx--; + kbc_stop = kbc; + continue; + } + +#pragma unroll + for (int j = 0; j < ncols; ++j) { + if (jt*ncols + j >= ne01) { + break; + } + const float dst_add = dst_fixup_data[bidx*ncols*D + j*D + threadIdx.x]; + + const float2 tmp = dst_fixup[(gridDim.x + bidx)*ncols + j]; + + // Scale the current and new value accumulators depending on the max. values. + const float max_val_new = fmaxf(max_val[j], tmp.x); + + const float diff_val = max_val[j] - max_val_new; + const float diff_add = tmp.x - max_val_new; + + const float scale_val = diff_val >= SOFTMAX_FTZ_THRESHOLD ? expf(diff_val) : 0.0f; + const float scale_add = diff_add >= SOFTMAX_FTZ_THRESHOLD ? expf(diff_add) : 0.0f; + + dst_val[j] = scale_val*dst_val[j] + scale_add*dst_add; + rowsum[j] = scale_val*rowsum[j] + scale_add*tmp.y; + + max_val[j] = max_val_new; + } + + // If this block started in a previous tile we are done and don't need to combine additional partial results. + if (kbc % iter_k == 0 || kbc/iter_k < kbc0/iter_k) { + break; + } + bidx--; + kbc_stop = kbc; + } + + // Write back final result: +#pragma unroll + for (int j = 0; j < ncols; ++j) { + if (jt*ncols + j >= ne01) { + return; + } + dst[j*ne02*D + threadIdx.x] = dst_val[j] / rowsum[j]; + } +} + template // D == head size #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) __launch_bounds__(D, 1) @@ -581,10 +679,11 @@ static void on_no_fattn_vec_case(const int D) { } } -template +// parallel_blocks == 0 is stream-k decomposition +template void launch_fattn( ggml_backend_cuda_context & ctx, ggml_tensor * dst, fattn_kernel_t fattn_kernel, - const int nwarps, const int cols_per_block, const bool need_f16_K, const bool need_f16_V + const int nwarps, const size_t nbytes_shared, const bool need_f16_K, const bool need_f16_V ) { const ggml_tensor * Q = dst->src[0]; const ggml_tensor * K = dst->src[1]; @@ -603,20 +702,23 @@ void launch_fattn( GGML_ASSERT(K->ne[1] % FATTN_KQ_STRIDE == 0 && "Incorrect KV cache padding."); + GGML_ASSERT(Q->ne[3] == 1); + ggml_cuda_pool & pool = ctx.pool(); cudaStream_t main_stream = ctx.stream(); + const int nsm = ggml_cuda_info().devices[ggml_cuda_get_device()].nsm; ggml_cuda_pool_alloc K_f16(pool); ggml_cuda_pool_alloc V_f16(pool); ggml_cuda_pool_alloc dst_tmp(pool); ggml_cuda_pool_alloc dst_tmp_meta(pool); - char * K_data = (char *) K->data; + const char * K_data = (const char *) K->data; size_t nb11 = K->nb[1]; size_t nb12 = K->nb[2]; size_t nb13 = K->nb[3]; - char * V_data = (char *) V->data; + const char * V_data = (const char *) V->data; size_t nb21 = V->nb[1]; size_t nb22 = V->nb[2]; size_t nb23 = V->nb[3]; @@ -649,39 +751,60 @@ void launch_fattn( nb23 = nb23*bs*sizeof(half)/ts; } - if (parallel_blocks > 1) { - dst_tmp.alloc(parallel_blocks*ggml_nelements(KQV)); - dst_tmp_meta.alloc(parallel_blocks*ggml_nrows(KQV)); - } + const int ntiles_x = ((Q->ne[1] + cols_per_block - 1) / cols_per_block); + const int ntiles_total = ntiles_x*Q->ne[2]*Q->ne[3]; const dim3 block_dim(WARP_SIZE, nwarps, 1); - const dim3 blocks_num(parallel_blocks*((Q->ne[1] + cols_per_block - 1) / cols_per_block), Q->ne[2], Q->ne[3]); - const int shmem = 0; + dim3 blocks_num; + if (parallel_blocks == 0) { + // For short contexts it can be faster to have the SMs work on whole tiles because this lets us skip the fixup. + const int tiles_nwaves = (ntiles_total - nsm - 1) / nsm; + const bool tiles_inefficient = 3*nsm < 2*tiles_nwaves*ntiles_total; + const bool short_context = K->ne[1] < 4096; + + const int nblocks_stream_k = 2*nsm; + + blocks_num.x = short_context && !tiles_inefficient ? ntiles_total : nblocks_stream_k; + blocks_num.y = 1; + blocks_num.z = 1; + + dst_tmp_meta.alloc(blocks_num.x*cols_per_block * (2*2 + D) * sizeof(float)); + } else { + blocks_num.x = parallel_blocks*ntiles_x; + blocks_num.y = Q->ne[2]; + blocks_num.z = Q->ne[3]; + + if (parallel_blocks > 1) { + dst_tmp.alloc(parallel_blocks*ggml_nelements(KQV)); + dst_tmp_meta.alloc(parallel_blocks*ggml_nrows(KQV)); + } + } + float scale = 1.0f; float max_bias = 0.0f; float logit_softcap = 0.0f; - memcpy(&scale, (float *) KQV->op_params + 0, sizeof(float)); - memcpy(&max_bias, (float *) KQV->op_params + 1, sizeof(float)); - memcpy(&logit_softcap, (float *) KQV->op_params + 2, sizeof(float)); + memcpy(&scale, (const float *) KQV->op_params + 0, sizeof(float)); + memcpy(&max_bias, (const float *) KQV->op_params + 1, sizeof(float)); + memcpy(&logit_softcap, (const float *) KQV->op_params + 2, sizeof(float)); if (logit_softcap != 0.0f) { scale /= logit_softcap; } const uint32_t n_head = Q->ne[2]; - const uint32_t n_head_log2 = 1u << (uint32_t) floorf(log2f((float) n_head)); + const uint32_t n_head_log2 = 1u << uint32_t(floorf(log2f(float(n_head)))); const float m0 = powf(2.0f, -(max_bias ) / n_head_log2); const float m1 = powf(2.0f, -(max_bias / 2.0f) / n_head_log2); - fattn_kernel<<>>( + fattn_kernel<<>>( (const char *) Q->data, K_data, V_data, mask ? ((const char *) mask->data) : nullptr, - (parallel_blocks) == 1 ? (float *) KQV->data : dst_tmp.ptr, dst_tmp_meta.ptr, + (parallel_blocks) > 1 ? dst_tmp.ptr : (float *) KQV->data, dst_tmp_meta.ptr, scale, max_bias, m0, m1, n_head_log2, logit_softcap, Q->ne[0], Q->ne[1], Q->ne[2], Q->ne[3], K->ne[0], K->ne[1], K->ne[2], K->ne[3], @@ -693,16 +816,22 @@ void launch_fattn( ); CUDA_CHECK(cudaGetLastError()); - if ((parallel_blocks) == 1) { - return; + if constexpr (parallel_blocks == 0) { + if (blocks_num.x % ntiles_total != 0) { // Fixup is only needed if the SMs work on fractional tiles. + const dim3 block_dim_combine(D, 1, 1); + const dim3 blocks_num_combine = blocks_num; + + flash_attn_stream_k_fixup + <<>> + ((float *) KQV->data, dst_tmp_meta.ptr, Q->ne[1], Q->ne[2], K->ne[1]); + } + } else if constexpr (parallel_blocks > 1) { + const dim3 block_dim_combine(D, 1, 1); + const dim3 blocks_num_combine(Q->ne[1], blocks_num.y, blocks_num.z); + + flash_attn_combine_results + <<>> + (dst_tmp.ptr, dst_tmp_meta.ptr, (float *) KQV->data); } - - const dim3 block_dim_combine(D, 1, 1); - const dim3 blocks_num_combine(Q->ne[1], blocks_num.y, blocks_num.z); - const int shmem_combine = 0; - - flash_attn_combine_results - <<>> - (dst_tmp.ptr, dst_tmp_meta.ptr, (float *) KQV->data); CUDA_CHECK(cudaGetLastError()); } diff --git a/ggml/src/ggml-cuda/fattn-mma-f16.cuh b/ggml/src/ggml-cuda/fattn-mma-f16.cuh new file mode 100644 index 000000000..05bc91a3b --- /dev/null +++ b/ggml/src/ggml-cuda/fattn-mma-f16.cuh @@ -0,0 +1,637 @@ +#include "common.cuh" +#include "mma.cuh" +#include "fattn-common.cuh" + +template +static __device__ __forceinline__ void flash_attn_ext_f16_process_tile( + const float2 * const __restrict__ Q_f2, + const half2 * const __restrict__ K_h2, + const half2 * const __restrict__ V_h2, + const half * const __restrict__ maskh, + float2 * const __restrict__ dstk, + float2 * const __restrict__ dstk_fixup, + const float scale, + const float slope, + const float logit_softcap, + const int ne00, + const int ne01, + const int ne02, + const int ne03, + const int ne10, + const int ne11, + const int ne12, + const int ne13, + const int ne31, + const int nb31, + const int nb01, + const int nb02, + const int nb03, + const int nb11, + const int nb12, + const int nb13, + const int nb21, + const int nb22, + const int nb23, + const int ne0, + const int ne1, + const int ne2, + const int ne3, + const int jt, + const int kb0_start, + const int kb0_stop) { +#ifdef NEW_MMA_AVAILABLE + //In this kernel Q, K, V are matrices while i, j, k are matrix indices. + + typedef mma_A_I16K8 mma_A; + typedef mma_B_J8K8 mma_B; + typedef mma_C_I16J8 mma_C_KQ; + typedef mma_C_I16J8 mma_C_VKQ; + + static_assert(nwarps*mma_B::J % ncols == 0, "bad nwarps"); + constexpr int np = nwarps*mma_B::J / ncols; // Number of parallel CUDA warps per Q column. + + static_assert(D % nwarps == 0, "bad D"); + static_assert(KQ_stride % nwarps == 0, "bad KQ_stride"); + + constexpr int D2_padded = D/2 + 4; // Size of D in half2, padded to avoid shared memory bank conflicts. + extern __shared__ half2 tile_KV[]; // Temporary shared buffer for loading K/V data with KQ_stride*D logical elements. + + const int stride_Q = nb01 / sizeof(float2); + const int stride_KV = nb11 / sizeof(half2); + const int stride_mask = nb31 / sizeof(half); + + mma_B Q_B[D/(2*mma_B::K)]; + mma_C_VKQ VKQ_C[D/mma_C_VKQ::I]; + + float2 KQ_rowsum = {0.0f, 0.0f}; + float2 KQ_max = {-FLT_MAX/2.0f, -FLT_MAX/2.0f}; + float2 KQ_max_scale = {0.0f, 0.0f}; + + // Temporarily load Q data into tile_KV, will be loaded into registers afterwards. + // The loading is done with decreasing granularity for D for better memory bandwidth. + const half2 scale_h2 = make_half2(scale, scale); +#pragma unroll + for (int stride_k : {WARP_SIZE, WARP_SIZE/2, WARP_SIZE/4}) { + const int k0_start = stride_k == WARP_SIZE ? 0 : D/2 - (D/2) % (2*stride_k); + const int k0_stop = D/2 - (D/2) % (1*stride_k); + const int stride_j = WARP_SIZE / stride_k; + + if (nwarps*stride_j > ncols && threadIdx.y*stride_j >= ncols) { + break; + } + +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps*stride_j) { + const int j = j0 + threadIdx.y*stride_j + (stride_k == WARP_SIZE ? 0 : threadIdx.x / stride_k); + + if (jt*ncols + j < ne01) { +#pragma unroll + for (int k0 = k0_start; k0 < k0_stop; k0 += stride_k) { + const int k = k0 + (stride_k == WARP_SIZE ? threadIdx.x : threadIdx.x % stride_k); + + const float2 tmp = Q_f2[(jt*ncols + j)*stride_Q + k]; + tile_KV[j*D2_padded + k] = scale_h2 * make_half2(tmp.x, tmp.y); + } + } else { +#pragma unroll + for (int k0 = k0_start; k0 < k0_stop; k0 += stride_k) { + const int k = k0 + (stride_k == WARP_SIZE ? threadIdx.x : threadIdx.x % stride_k); + + tile_KV[j*D2_padded + k] = make_half2(0.0f, 0.0f); + } + } + } + } + + __syncthreads(); + + { + const int j0 = (threadIdx.y / np) * mma_B::J; + +#pragma unroll + for (int k0 = 0; k0 < D/2; k0 += mma_B::K) { + Q_B[k0/mma_B::K].load_ldmatrix(tile_KV + j0*D2_padded + k0, D2_padded); + } + } + + __syncthreads(); + + // Iterate over ne11 == previous tokens: + for (int kb0 = kb0_start; kb0 < kb0_stop; ++kb0) { + const int k_VKQ_0 = kb0*KQ_stride; + mma_C_KQ KQ_C[KQ_stride/(np*mma_C_KQ::I)]; + + // Load K data into tile with decreasing granularity for D for better memory bandwidth: + static_assert(KQ_stride % (4*nwarps) == 0, "out of bounds"); +#pragma unroll + for (int stride_k : {WARP_SIZE, WARP_SIZE/2, WARP_SIZE/4}) { + const int k0_start = stride_k == WARP_SIZE ? 0 : D/2 - (D/2) % (2*stride_k); + const int k0_stop = D/2 - (D/2) % (1*stride_k); + const int stride_i = WARP_SIZE / stride_k; + +#pragma unroll + for (int i_KQ_0 = 0; i_KQ_0 < KQ_stride; i_KQ_0 += nwarps*stride_i) { + const int i_KQ = i_KQ_0 + threadIdx.y*stride_i + (stride_k == WARP_SIZE ? 0 : threadIdx.x / stride_k); + +#pragma unroll + for (int k_KQ_0 = k0_start; k_KQ_0 < k0_stop; k_KQ_0 += stride_k) { + const int k_KQ = k_KQ_0 + (stride_k == WARP_SIZE ? threadIdx.x : threadIdx.x % stride_k); + + tile_KV[i_KQ*D2_padded + k_KQ] = K_h2[(k_VKQ_0 + i_KQ)*stride_KV + k_KQ]; + } + } + } + + __syncthreads(); + + // Calculate tile of KQ: +#pragma unroll + for (int i_KQ_00 = 0; i_KQ_00 < KQ_stride; i_KQ_00 += np*mma_A::I) { + const int i_KQ_0 = i_KQ_00 + (threadIdx.y % np)*mma_A::I; +#pragma unroll + for (int k_KQ_0 = 0; k_KQ_0 < D/2; k_KQ_0 += mma_A::K) { + mma_A K_A; + K_A.load_ldmatrix(tile_KV + i_KQ_0*D2_padded + k_KQ_0, D2_padded); + KQ_C[i_KQ_00/(np*mma_A::I)].mma(K_A, Q_B[k_KQ_0/mma_A::K]); + } + } + + __syncthreads(); + + if (use_logit_softcap) { + static_assert(KQ_stride % (np*mma_C_KQ::I) == 0, "bad loop size"); +#pragma unroll + for (int i = 0; i < KQ_stride/(np*mma_C_KQ::I); ++i) { +#pragma unroll + for (int l = 0; l < mma_C_KQ::ne; ++l) { + KQ_C[i].x[l] = logit_softcap*tanhf(KQ_C[i].x[l]); + } + } + } + + if (maskh) { + static_assert(KQ_stride % (np *mma_C_KQ::I) == 0, "bad loop size"); + static_assert(ncols % (nwarps/np*mma_C_KQ::J) == 0, "bad loop size"); +#pragma unroll + for (int i00 = 0; i00 < KQ_stride; i00 += np*mma_C_KQ::I) { + const int i0 = i00 + (threadIdx.y % np)*mma_C_KQ::I; +#pragma unroll + for (int l = 0; l < mma_C_KQ::ne; ++l) { + const int i = i0 + mma_C_KQ::get_i(l); + const int j = (threadIdx.y / np)*mma_C_KQ::J + mma_C_KQ::get_j(l); + + KQ_C[i00/(np*mma_C_KQ::I)].x[l] += slope*__half2float(maskh[j*stride_mask + k_VKQ_0 + i]); + } + } + } + + // Calculate softmax for each KQ column using the current max. value. + // The divisor is stored in KQ_rowsum and will be applied at the end. + float2 KQ_max_new = KQ_max; + static_assert(KQ_stride % (np*mma_C_KQ::I) == 0, "bad loop size"); +#pragma unroll + for (int k = 0; k < KQ_stride/(np*mma_C_KQ::I); ++k) { +#pragma unroll + for (int l0 = 0; l0 < mma_C_KQ::ne; l0 += 2) { + KQ_max_new.x = fmaxf(KQ_max_new.x, KQ_C[k].x[l0 + 0]); + KQ_max_new.y = fmaxf(KQ_max_new.y, KQ_C[k].x[l0 + 1]); + } + } + + // Values per KQ column are spread across 8 threads, does not need full warp reduce: +#pragma unroll + for (int offset = 16; offset > 2; offset >>= 1) { + KQ_max_new.x = fmaxf(KQ_max_new.x, __shfl_xor_sync(0xFFFFFFFF, KQ_max_new.x, offset, WARP_SIZE)); + KQ_max_new.y = fmaxf(KQ_max_new.y, __shfl_xor_sync(0xFFFFFFFF, KQ_max_new.y, offset, WARP_SIZE)); + } + + { + const float2 diff = make_float2(KQ_max.x - KQ_max_new.x, KQ_max.y - KQ_max_new.y); + KQ_max_scale = make_float2(expf(diff.x), expf(diff.y)); + if (diff.x <= SOFTMAX_FTZ_THRESHOLD) { + KQ_max_scale.x = 0.0f; + } + if (diff.y <= SOFTMAX_FTZ_THRESHOLD) { + KQ_max_scale.y = 0.0f; + } + KQ_max = KQ_max_new; + } + + float2 KQ_rowsum_add = make_float2(0.0f, 0.0f); + static_assert(KQ_stride % (np*mma_C_KQ::I) == 0, "bad loop size"); +#pragma unroll + for (int k = 0; k < KQ_stride/(np*mma_C_KQ::I); ++k) { +#pragma unroll + for (int l = 0; l < mma_C_KQ::ne; ++l) { + const float KQ_max_l = l % 2 == 0 ? KQ_max.x : KQ_max.y; + const float diff = KQ_C[k].x[l] - KQ_max_l; + KQ_C[k].x[l] = expf(diff); + if (diff <= SOFTMAX_FTZ_THRESHOLD) { + KQ_C[k].x[l] = 0.0f; + } + + if (l % 2 == 0) { + KQ_rowsum_add.x += KQ_C[k].x[l]; + } else { + KQ_rowsum_add.y += KQ_C[k].x[l]; + } + } + } + + // Scale previous KQ_rowsum to account for a potential increase in KQ_max: + KQ_rowsum.x = KQ_max_scale.x*KQ_rowsum.x + KQ_rowsum_add.x; + KQ_rowsum.y = KQ_max_scale.y*KQ_rowsum.y + KQ_rowsum_add.y; + + const half2 KQ_max_scale_h2 = make_half2(KQ_max_scale.x, KQ_max_scale.y); +#pragma unroll + for (int i = 0; i < D/mma_C_VKQ::I; ++i) { +#pragma unroll + for (int l = 0; l < mma_C_VKQ::ne; ++l) { + VKQ_C[i].x[l] *= KQ_max_scale_h2; + } + } + + // Convert KQ C tiles into B tiles for VKQ calculation: + mma_B B[KQ_stride/(np*2*mma_B::K)]; + static_assert(KQ_stride % (np*2*mma_B::K) == 0, "bad loop size"); +#pragma unroll + for (int k = 0; k < KQ_stride/(np*2*mma_B::K); ++k) { + B[k] = KQ_C[k].to_mma_B(); + } + + // Load V data into tile with decreasing granularity for D for better memory bandwidth: + static_assert(KQ_stride % (4*nwarps) == 0, "out of bounds"); +#pragma unroll + for (int stride_i : {WARP_SIZE, WARP_SIZE/2, WARP_SIZE/4}) { + const int i0_start = stride_i == WARP_SIZE ? 0 : D/2 - (D/2) % (2*stride_i); + const int i0_stop = D/2 - (D/2) % (1*stride_i); + const int stride_k = WARP_SIZE / stride_i; + +#pragma unroll + for (int k_V_0 = 0; k_V_0 < KQ_stride; k_V_0 += nwarps*stride_k) { + const int k_V = k_V_0 + threadIdx.y*stride_k + (stride_i == WARP_SIZE ? 0 : threadIdx.x / stride_i); + +#pragma unroll + for (int i_V_0 = i0_start; i_V_0 < i0_stop; i_V_0 += stride_i) { + const int i_V = i_V_0 + (stride_i == WARP_SIZE ? threadIdx.x : threadIdx.x % stride_i); + + tile_KV[k_V*D2_padded + i_V] = V_h2[(k_VKQ_0 + k_V)*stride_KV + i_V]; + } + } + } + + __syncthreads(); + + // Calculate VKQ tile: +#pragma unroll + for (int i_VKQ_0 = 0; i_VKQ_0 < D; i_VKQ_0 += mma_C_VKQ::I) { + static_assert((KQ_stride/2) % (np*mma_A::K) == 0, "bad loop size"); +#pragma unroll + for (int k00 = 0; k00 < KQ_stride/2; k00 += np*mma_A::K) { + const int k0 = k00 + (threadIdx.y % np)*mma_A::K; + + mma_A A; + A.load_ldmatrix_trans(tile_KV + 2*k0*D2_padded + i_VKQ_0/2, D2_padded); + VKQ_C[i_VKQ_0/mma_C_VKQ::I].mma(A, B[k00/(np*mma_A::K)]); + } + } + + __syncthreads(); + } + + // Finally, sum up partial KQ rowsums. + // The partial sums are spread across 8 threads each, does not need full reduce. +#pragma unroll + for (int offset = 16; offset > 2; offset >>= 1) { + KQ_rowsum.x += __shfl_xor_sync(0xFFFFFFFF, KQ_rowsum.x, offset, WARP_SIZE); + KQ_rowsum.y += __shfl_xor_sync(0xFFFFFFFF, KQ_rowsum.y, offset, WARP_SIZE); + } + + // Write VKQ accumulators to shared memory in column-major format. + // It's faster to do small writes to shared memory, then large write to VRAM than to do small writes to VRAM. + // Also for np > 1 the combination is done via these values in shared memory. + const int j_cwd = threadIdx.y*mma_B::J + mma_B::get_j(-1); // j combine write data +#pragma unroll + for (int k0 = 0; k0 < D/2; k0 += mma_B::K) { + const mma_B B = VKQ_C[k0/mma_B::K].to_mma_B(); // Conversion of C to B matrix puts it in column-major format. + +#pragma unroll + for (int l = 0; l < mma_B::ne; ++l) { + const int k = k0 + mma_B::get_k(l); + + tile_KV[j_cwd*D2_padded + k] = B.x[l]; + } + } + + const int j_cwmo = (threadIdx.x % (2*mma_C_VKQ::J)) / mma_C_VKQ::J; // j combine write meta offset + const int j_cwm = threadIdx.y*(2*mma_C_VKQ::J) + 2*mma_C_VKQ::get_j(-1) + j_cwmo; // j combine write meta + const float2 KQ_cmr = make_float2(((const float *) &KQ_max)[j_cwmo], ((const float *) &KQ_rowsum)[j_cwmo]); // KQ combine max rowsum + + if (((!needs_fixup && !is_fixup) || np > 1) && threadIdx.x < 2*mma_C_VKQ::J) { + // Use the 16 bytes of padding in each row to store the meta data: KQ max, KQ rowsum, KQ max scale. + ((float2 *) tile_KV)[j_cwm*(D2_padded/2) + D/4] = KQ_cmr; + } + + __syncthreads(); + + static_assert(np == 1 || np == 2 || np == 4, "bad np"); + if (np == 1) { + // No combination is needed, the meta data can be directly written from registers to VRAM. + if (needs_fixup && threadIdx.x < mma_B::J) { + float2 * dstk_fixup_meta = dstk_fixup + blockIdx.x*ncols; + dstk_fixup_meta[j_cwm] = KQ_cmr; + } + if (is_fixup && threadIdx.x < mma_B::J) { + float2 * dstk_fixup_meta = dstk_fixup + (gridDim.x + blockIdx.x)*ncols; + dstk_fixup_meta[j_cwm] = KQ_cmr; + } + } else if (threadIdx.y % np == 0) { + // Combine the meta data for parallel warps via shared memory. + // Warps with threadIdx.y % np != 0 must NOT return early. + // All threads must return simultaneously to avoid race conditions with work on the next tile. + + float * meta_j = (float *) tile_KV + (threadIdx.y*mma_B::J + threadIdx.x)*D2_padded + D/2; + + float KQ_cm = -FLT_MAX/2; // KQ combine max per parallel warp. + if (np*mma_B::J == WARP_SIZE || threadIdx.x < np*mma_B::J) { + KQ_cm = meta_j[0]; + } + + float KQ_cmn = KQ_cm; // KQ combine max new, max between all parallel warps. +#pragma unroll + for (int offset = np*mma_B::J/2; offset >= mma_B::J; offset >>= 1) { + KQ_cmn = fmaxf(KQ_cmn, __shfl_xor_sync(0xFFFFFFFF, KQ_cmn, offset, WARP_SIZE)); + } + + const float KQ_cms = expf(KQ_cm - KQ_cmn); // KQ combine max scale per warp. + float KQ_crs = 0.0f; // KQ combine rowsum, scaled sum of all parallel warps. + if (np*mma_B::J == WARP_SIZE || threadIdx.x < np*mma_B::J) { + KQ_crs = KQ_cms*meta_j[1]; + } +#pragma unroll + for (int offset = np*mma_B::J/2; offset >= mma_B::J; offset >>= 1) { + KQ_crs += __shfl_xor_sync(0xFFFFFFFF, KQ_crs, offset, WARP_SIZE); + } + + // Write back combined meta data: + if (np*mma_B::J == WARP_SIZE || threadIdx.x < np*mma_B::J) { + meta_j[0] = KQ_cmn; // Combined max. KQ values. + meta_j[1] = KQ_crs; // Combined KQ rowsums. + meta_j[2] = KQ_cms; // KQ max scales per parallel warp. + } + if (needs_fixup && threadIdx.x < mma_B::J) { + float2 * dstk_fixup_meta = dstk_fixup + blockIdx.x*ncols; + dstk_fixup_meta[(threadIdx.y/np)*mma_B::J + threadIdx.x] = make_float2(KQ_cmn, KQ_crs); + } + if (is_fixup && threadIdx.x < mma_B::J) { + float2 * dstk_fixup_meta = dstk_fixup + (gridDim.x + blockIdx.x)*ncols; + dstk_fixup_meta[(threadIdx.y/np)*mma_B::J + threadIdx.x] = make_float2(KQ_cmn, KQ_crs); + } + } + + if (np > 1) { + __syncthreads(); + } + + if (np == 1 || threadIdx.y % np == 0) { + // The first 2*2*gridDim.x*ncols floats in dstk_fixup are for storing max. values and row sums. + // The values after that are for the partial results of the individual blocks. + float2 * dstk_fixup_data = dstk_fixup + gridDim.x*(2*ncols) + blockIdx.x*(ncols*(D/2)); + +#pragma unroll + for (int stride_k : {WARP_SIZE, WARP_SIZE/2, WARP_SIZE/4}) { + const int k0_start = stride_k == WARP_SIZE ? 0 : D/2 - (D/2) % (2*stride_k); + const int k0_stop = D/2 - (D/2) % (1*stride_k); + const int stride_j = WARP_SIZE / stride_k; + + if (nwarps*stride_j > ncols && threadIdx.y*stride_j >= ncols) { + break; + } + +#pragma unroll + for (int j0_dst = 0; j0_dst < ncols; j0_dst += (nwarps/np)*stride_j) { + const int j_dst = j0_dst + (threadIdx.y/np)*stride_j + (stride_k == WARP_SIZE ? 0 : threadIdx.x / stride_k); + const int j_tile_KV = (j_dst/mma_B::J)*(np*mma_B::J) + j_dst % mma_B::J; + + if (!is_fixup && jt*ncols + j_dst >= ne01) { + continue; + } + const float * meta_j = (const float *) tile_KV + j_tile_KV*D2_padded + D/2; +#pragma unroll + for (int k0 = k0_start; k0 < k0_stop; k0 += stride_k) { + const int k = k0 + (stride_k == WARP_SIZE ? threadIdx.x : threadIdx.x % stride_k); + + float2 dstk_val = make_float2(0.0f, 0.0f); +#pragma unroll + for (int ip = 0; ip < np; ++ip) { + const float KQ_crs = np == 1 ? 1.0f : meta_j[ip*mma_B::J*D2_padded + 2]; + const float2 dstk_val_add = __half22float2(tile_KV[(j_tile_KV + ip*mma_B::J)*D2_padded + k]); + dstk_val.x += dstk_val_add.x*KQ_crs; + dstk_val.y += dstk_val_add.y*KQ_crs; + } + + if (!needs_fixup && !is_fixup) { + const float KQ_rowsum_j = meta_j[1]; + dstk_val.x /= KQ_rowsum_j; + dstk_val.y /= KQ_rowsum_j; + } + + if (is_fixup) { + dstk_fixup_data[j_dst*(D/2) + k] = dstk_val; + } else { + dstk[(jt*ncols + j_dst)*ne02*(D/2) + k] = dstk_val; + } + } + } + } + } + + if (np > 1) { + __syncthreads(); + } +#else + NO_DEVICE_CODE; +#endif // NEW_MMA_AVAILABLE +} + +template +#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +__launch_bounds__(nwarps*WARP_SIZE, 2) +#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +static __global__ void flash_attn_ext_f16( + const char * __restrict__ Q, + const char * __restrict__ K, + const char * __restrict__ V, + const char * __restrict__ mask, + float * __restrict__ dst, + float2 * __restrict__ dst_meta, + const float scale, + const float max_bias, + const float m0, + const float m1, + const uint32_t n_head_log2, + const float logit_softcap, + const int ne00, + const int ne01, + const int ne02, + const int ne03, + const int ne10, + const int ne11, + const int ne12, + const int ne13, + const int ne31, + const int nb31, + const int nb01, + const int nb02, + const int nb03, + const int nb11, + const int nb12, + const int nb13, + const int nb21, + const int nb22, + const int nb23, + const int ne0, + const int ne1, + const int ne2, + const int ne3) { + // Skip unused kernel variants for faster compilation: + if (use_logit_softcap && !(D == 128 || D == 256)) { + NO_DEVICE_CODE; + return; + } + + static_assert(FATTN_KQ_STRIDE % KQ_stride == 0, "bad KQ_stride"); + + const int gqa_ratio = ne02 / ne12; // With grouped query attention there are > 1 Q matrices per K, V matrix. + + const int iter_k = ne11 / KQ_stride; + const int iter_j = (ne01 + (ncols - 1)) / ncols; + + // kbc == k block continuous, current index in continuous ijk space. + int kbc = (blockIdx.x + 0)*iter_k*iter_j*ne02 / gridDim.x; + const int kbc_stop = (blockIdx.x + 1)*iter_k*iter_j*ne02 / gridDim.x; + + // If the seams of 2 CUDA blocks fall within an output tile their results need to be combined. + // For this we need to track both the block that starts the tile (needs_fixup) and the block that finishes the tile (is_fixup). + // In the most general case >2 seams can fall into the same tile. + + // kb0 == k start index when in the output tile. + int kb0_start = kbc % iter_k; + int kb0_stop = min(iter_k, kb0_start + kbc_stop - kbc); + while (kbc < kbc_stop && kb0_stop == iter_k) { + const int channel = kbc / (iter_k*iter_j); + const int jt = (kbc - channel*iter_k*iter_j) / iter_k; // j index of current tile. + + const float2 * Q_f2 = (const float2 *) (Q + nb02* channel); + const half2 * K_h2 = (const half2 *) (K + nb12*(channel / gqa_ratio)); + const half2 * V_h2 = (const half2 *) (V + nb12*(channel / gqa_ratio)); // K and V have same shape + const half * maskh = mask ? (const half *) mask + (nb31/sizeof(half))*jt*ncols : nullptr; + float2 * dstk = ((float2 *) dst) + channel*(D/2); + + const float slope = get_alibi_slope(max_bias, channel, n_head_log2, m0, m1); + + constexpr bool is_fixup = false; // All but (potentially) the last iterations write their data to dst rather than the fixup buffer. + if (kb0_start == 0) { + constexpr bool needs_fixup = false; // CUDA block is working on an entire tile. + flash_attn_ext_f16_process_tile + (Q_f2, K_h2, V_h2, maskh, dstk, dst_meta, scale, slope, logit_softcap, + ne00, ne01, ne02, ne03, ne10, ne11, ne12, ne13, ne31, nb31, nb01, nb02, nb03, nb11, nb12, nb13, nb21, nb22, nb23, ne0, ne1, ne2, ne3, + jt, kb0_start, kb0_stop); + } else { + constexpr bool needs_fixup = true; // CUDA block is working on the beginning of a tile. + flash_attn_ext_f16_process_tile + (Q_f2, K_h2, V_h2, maskh, dstk, dst_meta, scale, slope, logit_softcap, + ne00, ne01, ne02, ne03, ne10, ne11, ne12, ne13, ne31, nb31, nb01, nb02, nb03, nb11, nb12, nb13, nb21, nb22, nb23, ne0, ne1, ne2, ne3, + jt, kb0_start, kb0_stop); + } + + kbc += iter_k; + kbc -= kbc % iter_k; + + kb0_start = 0; + kb0_stop = min(iter_k, kbc_stop - kbc); + } + + if (kbc >= kbc_stop) { + return; + } + + const int channel = kbc / (iter_k*iter_j); + const int jt = (kbc - channel*iter_k*iter_j) / iter_k; // j index of current tile. + + const float2 * Q_f2 = (const float2 *) (Q + nb02* channel); + const half2 * K_h2 = (const half2 *) (K + nb12*(channel / gqa_ratio)); + const half2 * V_h2 = (const half2 *) (V + nb12*(channel / gqa_ratio)); // K and V have same shape + const half * maskh = mask ? (const half *) mask + (nb31/sizeof(half))*jt*ncols : nullptr; + float2 * dstk = ((float2 *) dst) + channel*(D/2); + + const float slope = get_alibi_slope(max_bias, channel, n_head_log2, m0, m1); + + constexpr bool is_fixup = true; // Last index writes its data to fixup buffer to avoid data races with other blocks. + constexpr bool needs_fixup = false; + flash_attn_ext_f16_process_tile + (Q_f2, K_h2, V_h2, maskh, dstk, dst_meta, scale, slope, logit_softcap, + ne00, ne01, ne02, ne03, ne10, ne11, ne12, ne13, ne31, nb31, nb01, nb02, nb03, nb11, nb12, nb13, nb21, nb22, nb23, ne0, ne1, ne2, ne3, + jt, kb0_start, kb0_stop); +} + +template +void ggml_cuda_flash_attn_ext_mma_f16_case(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { + typedef mma_A_I16K8 mma_A; + typedef mma_B_J8K8 mma_B; + + static_assert(D % mma_B::K == 0, "bad D"); + static_assert(cols_per_block % mma_B::J == 0, "bad cols_per_block"); + + const ggml_tensor * KQV = dst; + + constexpr int KQ_stride = D <= 128 ? 64 : 32; + constexpr int nwarps = (KQ_stride == 32 && cols_per_block <= 16) ? + cols_per_block/mma_B::J * KQ_stride/mma_A::I : (cols_per_block <= 8 ? 4 : 8); + constexpr size_t nbytes_shared = std::max(KQ_stride, nwarps*mma_B::J) * (D + 8) * sizeof(half); + + float logit_softcap; + memcpy(&logit_softcap, (const float *) KQV->op_params + 2, sizeof(float)); + + fattn_kernel_t fattn_kernel; + if (logit_softcap == 0.0f) { + constexpr bool use_logit_softcap = false; + fattn_kernel = flash_attn_ext_f16; + } else { + constexpr bool use_logit_softcap = true; + fattn_kernel = flash_attn_ext_f16; + } + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, true, true); +} + +#define DECL_FATTN_MMA_F16_CASE(D, cols_per_block) \ + template void ggml_cuda_flash_attn_ext_mma_f16_case \ + (ggml_backend_cuda_context & ctx, ggml_tensor * dst) \ + +extern DECL_FATTN_MMA_F16_CASE( 64, 8); +extern DECL_FATTN_MMA_F16_CASE( 80, 8); +extern DECL_FATTN_MMA_F16_CASE( 96, 8); +extern DECL_FATTN_MMA_F16_CASE(112, 8); +extern DECL_FATTN_MMA_F16_CASE(128, 8); +extern DECL_FATTN_MMA_F16_CASE(256, 8); + +extern DECL_FATTN_MMA_F16_CASE( 64, 16); +extern DECL_FATTN_MMA_F16_CASE( 80, 16); +extern DECL_FATTN_MMA_F16_CASE( 96, 16); +extern DECL_FATTN_MMA_F16_CASE(112, 16); +extern DECL_FATTN_MMA_F16_CASE(128, 16); +extern DECL_FATTN_MMA_F16_CASE(256, 16); + +extern DECL_FATTN_MMA_F16_CASE( 64, 32); +extern DECL_FATTN_MMA_F16_CASE( 80, 32); +extern DECL_FATTN_MMA_F16_CASE( 96, 32); +extern DECL_FATTN_MMA_F16_CASE(112, 32); +extern DECL_FATTN_MMA_F16_CASE(128, 32); +extern DECL_FATTN_MMA_F16_CASE(256, 32); + +extern DECL_FATTN_MMA_F16_CASE( 64, 64); +extern DECL_FATTN_MMA_F16_CASE( 80, 64); +extern DECL_FATTN_MMA_F16_CASE( 96, 64); +extern DECL_FATTN_MMA_F16_CASE(112, 64); +extern DECL_FATTN_MMA_F16_CASE(128, 64); +extern DECL_FATTN_MMA_F16_CASE(256, 64); diff --git a/ggml/src/ggml-cuda/fattn-tile-f16.cu b/ggml/src/ggml-cuda/fattn-tile-f16.cu index 4d314dacb..d4edbad07 100644 --- a/ggml/src/ggml-cuda/fattn-tile-f16.cu +++ b/ggml/src/ggml-cuda/fattn-tile-f16.cu @@ -45,7 +45,17 @@ static __global__ void flash_attn_tile_ext_f16( const int ne2, const int ne3) { #ifdef FP16_AVAILABLE + +#ifndef FLASH_ATTN_AVAILABLE + NO_DEVICE_CODE; + return; +#endif // FLASH_ATTN_AVAILABLE + // Skip unused kernel variants for faster compilation: +#ifdef FP16_MMA_AVAILABLE + NO_DEVICE_CODE; + return; +#endif // FP16_MMA_AVAILABLE if (use_logit_softcap && !(D == 128 || D == 256)) { NO_DEVICE_CODE; return; @@ -288,16 +298,18 @@ void launch_fattn_tile_f16_64_128(ggml_backend_cuda_context & ctx, ggml_tensor * const ggml_tensor * Q = dst->src[0]; switch (Q->ne[0]) { case 64: { - constexpr int D = 64; - constexpr int nwarps = 8; + constexpr int D = 64; + constexpr int nwarps = 8; + constexpr size_t nbytes_shared = 0; fattn_kernel_t fattn_kernel = flash_attn_tile_ext_f16; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, true, true); } break; case 128: { - constexpr int D = 128; - constexpr int nwarps = 8; + constexpr int D = 128; + constexpr int nwarps = 8; + constexpr size_t nbytes_shared = 0; fattn_kernel_t fattn_kernel = flash_attn_tile_ext_f16; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, true, true); } break; default: { GGML_ABORT("FlashAttention without tensor cores only supports head sizes 64 and 128."); diff --git a/ggml/src/ggml-cuda/fattn-tile-f32.cu b/ggml/src/ggml-cuda/fattn-tile-f32.cu index bb3360447..0d274f332 100644 --- a/ggml/src/ggml-cuda/fattn-tile-f32.cu +++ b/ggml/src/ggml-cuda/fattn-tile-f32.cu @@ -48,7 +48,12 @@ static __global__ void flash_attn_tile_ext_f32( NO_DEVICE_CODE; return; #endif // FLASH_ATTN_AVAILABLE + // Skip unused kernel variants for faster compilation: +#ifdef FP16_MMA_AVAILABLE + NO_DEVICE_CODE; + return; +#endif // FP16_MMA_AVAILABLE if (use_logit_softcap && !(D == 128 || D == 256)) { NO_DEVICE_CODE; return; @@ -287,16 +292,18 @@ void launch_fattn_tile_f32_64_128(ggml_backend_cuda_context & ctx, ggml_tensor * const ggml_tensor * Q = dst->src[0]; switch (Q->ne[0]) { case 64: { - constexpr int D = 64; - constexpr int nwarps = 8; + constexpr int D = 64; + constexpr int nwarps = 8; + constexpr size_t nbytes_shared = 0; fattn_kernel_t fattn_kernel = flash_attn_tile_ext_f32; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, true, true); } break; case 128: { - constexpr int D = 128; - constexpr int nwarps = 8; + constexpr int D = 128; + constexpr int nwarps = 8; + constexpr size_t nbytes_shared = 0; fattn_kernel_t fattn_kernel = flash_attn_tile_ext_f32; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, true, true); } break; default: { GGML_ABORT("FlashAttention without tensor cores only supports head sizes 64 and 128."); diff --git a/ggml/src/ggml-cuda/fattn-vec-f16.cuh b/ggml/src/ggml-cuda/fattn-vec-f16.cuh index 34a2992c7..d9ac44246 100644 --- a/ggml/src/ggml-cuda/fattn-vec-f16.cuh +++ b/ggml/src/ggml-cuda/fattn-vec-f16.cuh @@ -42,6 +42,12 @@ static __global__ void flash_attn_vec_ext_f16( const int ne2, const int ne3) { #ifdef FP16_AVAILABLE + +#ifndef FLASH_ATTN_AVAILABLE + NO_DEVICE_CODE; + return; +#endif // FLASH_ATTN_AVAILABLE + // Skip unused kernel variants for faster compilation: if (use_logit_softcap && !(D == 128 || D == 256)) { NO_DEVICE_CODE; @@ -303,7 +309,8 @@ void ggml_cuda_flash_attn_ext_vec_f16_case_impl(ggml_backend_cuda_context & ctx, fattn_kernel_t fattn_kernel = flash_attn_vec_ext_f16; constexpr bool need_f16_K = D != 128; constexpr bool need_f16_V = D != 128 && D != 64; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, need_f16_K, need_f16_V); + constexpr size_t nbytes_shared = 0; + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, need_f16_K, need_f16_V); } template diff --git a/ggml/src/ggml-cuda/fattn-vec-f32.cuh b/ggml/src/ggml-cuda/fattn-vec-f32.cuh index a28fc8b7f..6ef8f9dcc 100644 --- a/ggml/src/ggml-cuda/fattn-vec-f32.cuh +++ b/ggml/src/ggml-cuda/fattn-vec-f32.cuh @@ -41,6 +41,11 @@ static __global__ void flash_attn_vec_ext_f32( const int ne1, const int ne2, const int ne3) { +#ifndef FLASH_ATTN_AVAILABLE + NO_DEVICE_CODE; + return; +#endif // FLASH_ATTN_AVAILABLE + // Skip unused kernel variants for faster compilation: if (use_logit_softcap && !(D == 128 || D == 256)) { NO_DEVICE_CODE; @@ -284,7 +289,8 @@ void ggml_cuda_flash_attn_ext_vec_f32_case_impl(ggml_backend_cuda_context & ctx, fattn_kernel_t fattn_kernel = flash_attn_vec_ext_f32; constexpr bool need_f16_K = D != 128; constexpr bool need_f16_V = D != 128 && D != 64; - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, need_f16_K, need_f16_V); + constexpr size_t nbytes_shared = 0; + launch_fattn(ctx, dst, fattn_kernel, nwarps, nbytes_shared, need_f16_K, need_f16_V); } template diff --git a/ggml/src/ggml-cuda/fattn-wmma-f16.cu b/ggml/src/ggml-cuda/fattn-wmma-f16.cu new file mode 100644 index 000000000..1054ff95d --- /dev/null +++ b/ggml/src/ggml-cuda/fattn-wmma-f16.cu @@ -0,0 +1,648 @@ +// Old and deprecated WMMA FlashAttention implementation. +// It is still needed for Volta since the memory layout of NVIDIA tensor cores changed with Turing. +// Long-term the WMMA code should be replaced with a dedicated Volta implementation. + +#include "common.cuh" +#include "fattn-common.cuh" +#include "fattn-wmma-f16.cuh" + +#ifdef FP16_MMA_AVAILABLE +#include +#endif // FP16_MMA_AVAILABLE + +// D == head size, VKQ_stride == num VKQ rows calculated in parallel: +template +#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +__launch_bounds__(nwarps*WARP_SIZE, 1) +#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) +static __global__ void flash_attn_ext_f16( + const char * __restrict__ Q, + const char * __restrict__ K, + const char * __restrict__ V, + const char * __restrict__ mask, + float * __restrict__ dst, + float2 * __restrict__ dst_meta, + const float scale, + const float max_bias, + const float m0, + const float m1, + const uint32_t n_head_log2, + const float logit_softcap, + const int ne00, + const int ne01, + const int ne02, + const int ne03, + const int ne10, + const int ne11, + const int ne12, + const int ne13, + const int ne31, + const int nb31, + const int nb01, + const int nb02, + const int nb03, + const int nb11, + const int nb12, + const int nb13, + const int nb21, + const int nb22, + const int nb23, + const int ne0, + const int ne1, + const int ne2, + const int ne3) { +#if __CUDA_ARCH__ == GGML_CUDA_CC_VOLTA + // Skip unused kernel variants for faster compilation: + if (use_logit_softcap && !(D == 128 || D == 256)) { + NO_DEVICE_CODE; + return; + } + + //In this kernel Q, K, V are matrices while i, j, k are matrix indices. + + const int ic0 = ncols*(blockIdx.x / parallel_blocks); // Index of the first Q/QKV column to work on. + const int ip = blockIdx.x % parallel_blocks; // Index in group of blocks running for the same column in parallel. + + static_assert(D <= FATTN_KQ_STRIDE, "D must be <= FATTN_KQ_STRIDE."); + static_assert(ncols == 8 || ncols % 16 == 0, "ncols must be 8 or a multiple of 16."); + constexpr int frag_m = ncols == 8 ? 32 : 16; + constexpr int frag_n = ncols == 8 ? 8 : 16; + static_assert(D % frag_m == 0, "If ncols == 8 then D % frag_m must be 0."); + typedef nvcuda::wmma::fragment frag_a_K; + typedef nvcuda::wmma::fragment frag_a_V; + typedef nvcuda::wmma::fragment frag_b; + typedef nvcuda::wmma::fragment frag_c_KQ; + typedef nvcuda::wmma::fragment frag_c_VKQ; + + constexpr int KQ_stride_tc = nwarps*frag_m; // Number of KQ rows calculated in parallel. + constexpr int VKQ_ratio = KQ_stride_tc/VKQ_stride; // Number of parallel VKQ accumulators needed to keep all warps busy. + static_assert(VKQ_ratio <= nwarps, "VKQ_ratio must be <= nwarps."); + + // Pad internal representation of KQ, KQV to reduce shared memory bank conflicts: + constexpr int D_padded = D + 8; + constexpr int kqs_padded = FATTN_KQ_STRIDE + 8; + constexpr int kqar = sizeof(KQ_acc_t)/sizeof(half); + + const int gqa_ratio = ne02 / ne12; // With grouped query attention there are > 1 Q matrices per K, V matrix. + const float * Q_f = (const float *) (Q + nb02* blockIdx.y + nb01*ic0); + const half * K_h = (const half *) (K + nb12*(blockIdx.y / gqa_ratio)); + const half * V_h = (const half *) (V + nb12*(blockIdx.y / gqa_ratio)); // K and V have same shape + const half * maskh = (const half *) mask + (nb31/sizeof(half))* ic0; + const half2 * mask2 = (const half2 *) mask + (nb31/sizeof(half))*(ic0/2); + + const int stride_Q = nb01 / sizeof(float); + const int stride_KV = nb11 / sizeof(half); + + const float slopef = get_alibi_slope(max_bias, blockIdx.y, n_head_log2, m0, m1); + const half slopeh = __float2half(slopef); + const half2 slope2 = make_half2(slopef, slopef); + + const half2 logit_softcap_2 = make_half2(logit_softcap, logit_softcap); + + frag_b Q_b[D/16][ncols/frag_n]; + + // A single buffer for temporarily holding tiles of KQ and VKQ parts: + constexpr int mem_KQ = ncols*kqs_padded*kqar; + constexpr int mem_VKQ_parts = VKQ_ratio*ncols*D_padded; + __shared__ half KQ[mem_KQ >= mem_VKQ_parts ? mem_KQ : mem_VKQ_parts]; + float * KQ_f = (float *) KQ; + half2 * KQ2 = (half2 *) KQ; + + float KQ_rowsum_f[ncols/nwarps] = {0.0f}; + float KQ_max_f[ncols/nwarps]; + float KQ_max_scale_f[ncols/nwarps] = {0.0f}; + +#pragma unroll + for (int j = 0; j < ncols/nwarps; ++j) { + KQ_max_f[j] = -FLT_MAX/2.0f; + } + + half2 KQ_rowsum_h2[ncols/nwarps] = {{0.0f, 0.0f}}; + half2 KQ_max_h2[ncols/nwarps]; + half2 KQ_max_scale_h2[ncols/nwarps] = {{0.0f, 0.0f}}; + +#pragma unroll + for (int j = 0; j < ncols/nwarps; ++j) { + KQ_max_h2[j] = make_half2(-HALF_MAX_HALF, -HALF_MAX_HALF); + } + + __shared__ half VKQ[ncols*D_padded]; // Accumulator for final VKQ slice. + half2 * VKQ2 = (half2 *) VKQ; +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps) { + const int j = j0 + threadIdx.y; +#pragma unroll + for (int i0 = 0; i0 < D/2; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + if (i0 + WARP_SIZE > D/2 && i >= D/2) { + break; + } + VKQ2[j*(D_padded/2) + i] = make_half2(0.0f, 0.0f); + } + } + + // Convert Q to half and apply scale, temporarily store in KQ: +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps) { + const int j = j0 + threadIdx.y; +#pragma unroll + for (int i0 = 0; i0 < D; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + if (i0 + WARP_SIZE > D && i >= D) { + break; + } + KQ[j*D_padded + i] = ic0 + j < ne01 ? Q_f[j*stride_Q + i] * scale : 0.0f; + } + } + + __syncthreads(); + + // Load Q into tensor core fragments/registers since it will be used frequently: +#pragma unroll + for (int i0 = 0; i0 < D; i0 += 16) { +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += frag_n) { + nvcuda::wmma::load_matrix_sync(Q_b[i0/16][j0/frag_n], KQ + j0*D_padded + i0, D_padded); + } + } + + __syncthreads(); + + // Iterate over ne11 == previous tokens: + for (int k_VKQ_0 = ip*FATTN_KQ_STRIDE; k_VKQ_0 < ne11; k_VKQ_0 += parallel_blocks*FATTN_KQ_STRIDE) { + // Calculate tile of KQ: +#pragma unroll + for (int i_KQ_0 = 0; i_KQ_0 < FATTN_KQ_STRIDE; i_KQ_0 += KQ_stride_tc) { + frag_c_KQ KQ_c[ncols/frag_n]; +#pragma unroll + for (int j = 0; j < ncols/frag_n; ++j) { + nvcuda::wmma::fill_fragment(KQ_c[j], 0.0f); + } +#pragma unroll + for (int k_KQ_0 = 0; k_KQ_0 < D; k_KQ_0 += 16) { + frag_a_K K_a; + nvcuda::wmma::load_matrix_sync(K_a, K_h + (k_VKQ_0 + i_KQ_0 + frag_m*threadIdx.y)*stride_KV + k_KQ_0, stride_KV); +#pragma unroll + for (int j = 0; j < ncols/frag_n; ++j) { + nvcuda::wmma::mma_sync(KQ_c[j], K_a, Q_b[k_KQ_0/16][j], KQ_c[j]); + } + } +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += frag_n) { + nvcuda::wmma::store_matrix_sync((KQ_acc_t *) KQ + j0*kqs_padded + i_KQ_0 + frag_m*threadIdx.y, KQ_c[j0/frag_n], kqs_padded, nvcuda::wmma::mem_col_major); + } + } + + __syncthreads(); + + // Calculate softmax for each KQ column using the current max. value. + // The divisor is stored in KQ_rowsum and will be applied at the end. +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps) { + const int j = j0 + threadIdx.y; + + if (std::is_same::value) { + float KQ_f_tmp[FATTN_KQ_STRIDE / WARP_SIZE]; +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + KQ_f_tmp[k0/WARP_SIZE] = KQ_f[j*kqs_padded + k]; + + if (use_logit_softcap) { + KQ_f_tmp[k0/WARP_SIZE] = logit_softcap*tanhf(KQ_f_tmp[k0/WARP_SIZE]); + } + } + + float KQ_max_new = KQ_max_f[j0/nwarps]; +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + KQ_f_tmp[k0/WARP_SIZE] += mask ? __half2float(slopeh*maskh[j*(nb31/sizeof(half)) + k_VKQ_0 + k]) : 0.0f; + KQ_max_new = max(KQ_max_new, KQ_f_tmp[k0/WARP_SIZE]); + } + KQ_max_new = warp_reduce_max(KQ_max_new); + + const float diff = KQ_max_f[j0/nwarps] - KQ_max_new; + KQ_max_scale_f[j0/nwarps] = expf(diff); + if (diff <= SOFTMAX_FTZ_THRESHOLD) { + KQ_max_scale_f[j0/nwarps] = 0.0f; + } + KQ_max_f[j0/nwarps] = KQ_max_new; + + float KQ_rowsum_add = 0.0f; +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + const float diff = KQ_f_tmp[k0/WARP_SIZE] - KQ_max_f[j0/nwarps]; + KQ_f_tmp[k0/WARP_SIZE] = expf(diff); + if (diff <= SOFTMAX_FTZ_THRESHOLD) { + KQ_f_tmp[k0/WARP_SIZE] = 0.0f; + } + KQ_rowsum_add += KQ_f_tmp[k0/WARP_SIZE]; + KQ[j*(kqar*kqs_padded) + k] = KQ_f_tmp[k0/WARP_SIZE]; + } + KQ_rowsum_add = warp_reduce_sum(KQ_rowsum_add); + + // Scale previous KQ_rowsum to account for a potential increase in KQ_max: + KQ_rowsum_f[j0/nwarps] = KQ_max_scale_f[j0/nwarps]*KQ_rowsum_f[j0/nwarps] + KQ_rowsum_add; + } else { + half2 KQ2_tmp[FATTN_KQ_STRIDE/(2*WARP_SIZE)]; +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + KQ2_tmp[k0/WARP_SIZE] = KQ2[j*(kqs_padded/2) + k]; + + if (use_logit_softcap) { + // There is no dedicated tangens hyperbolicus function for half2. + KQ2_tmp[k0/WARP_SIZE] = h2exp(KQ2_tmp[k0/WARP_SIZE]*make_half2(2.0f, 2.0f)); + KQ2_tmp[k0/WARP_SIZE] = (KQ2_tmp[k0/WARP_SIZE] - make_half2(1.0f, 1.0f)) + /(KQ2_tmp[k0/WARP_SIZE] + make_half2(1.0f, 1.0f)); + + KQ2_tmp[k0/WARP_SIZE] *= logit_softcap_2; + } + } + + half2 KQ_max_new = KQ_max_h2[j0/nwarps]; +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + KQ2_tmp[k0/WARP_SIZE] += mask ? slope2*mask2[(j*ne11 + k_VKQ_0)/2 + k] : make_half2(0.0f, 0.0f); + KQ_max_new = ggml_cuda_hmax2(KQ_max_new, KQ2_tmp[k0/WARP_SIZE]); + } + KQ_max_new = __half2half2(warp_reduce_max(ggml_cuda_hmax(__low2half(KQ_max_new), __high2half(KQ_max_new)))); + const half2 diff = KQ_max_h2[j0/nwarps] - KQ_max_new; + KQ_max_scale_h2[j0/nwarps] = h2exp(diff); + const uint32_t ftz_mask = __hgt2_mask(diff, make_half2(SOFTMAX_FTZ_THRESHOLD, SOFTMAX_FTZ_THRESHOLD)); + *((uint32_t *) &KQ_max_scale_h2[j0/nwarps]) &= ftz_mask; + KQ_max_h2[j0/nwarps] = KQ_max_new; + + half2 KQ_rowsum_add = make_half2(0.0f, 0.0f); +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { + const int k = k0 + threadIdx.x; + + const half2 diff = KQ2_tmp[k0/WARP_SIZE] - KQ_max_h2[j0/nwarps]; + KQ2_tmp[k0/WARP_SIZE] = h2exp(diff); + const uint32_t ftz_mask = __hgt2_mask(diff, make_half2(SOFTMAX_FTZ_THRESHOLD, SOFTMAX_FTZ_THRESHOLD)); + *((uint32_t *) &KQ2_tmp[k0/WARP_SIZE]) &= ftz_mask; + KQ_rowsum_add += KQ2_tmp[k0/WARP_SIZE]; + KQ2[j*(kqs_padded/2) + k] = KQ2_tmp[k0/WARP_SIZE]; + } + KQ_rowsum_add = warp_reduce_sum(KQ_rowsum_add); + + // Scale previous KQ_rowsum to account for a potential increase in KQ_max: + KQ_rowsum_h2[j0/nwarps] = KQ_max_scale_h2[j0/nwarps]*KQ_rowsum_h2[j0/nwarps] + KQ_rowsum_add; + } + } + + __syncthreads(); + + frag_b KQ_b[FATTN_KQ_STRIDE/(VKQ_ratio*16)][ncols/frag_n]; +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += frag_n) { +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += VKQ_ratio*16) { + const int k = k0 + (threadIdx.y % VKQ_ratio)*16; + nvcuda::wmma::load_matrix_sync( + KQ_b[k0/(VKQ_ratio*16)][j0/frag_n], + KQ + j0*(kqar*kqs_padded) + k, + kqar*kqs_padded); + } + } + + frag_c_VKQ VKQ_c[D/VKQ_stride][ncols/frag_n]; +#pragma unroll + for (int i_VKQ_0 = 0; i_VKQ_0 < D; i_VKQ_0 += VKQ_stride) { +#pragma unroll + for (int j = 0; j < ncols/frag_n; ++j) { + nvcuda::wmma::fill_fragment(VKQ_c[i_VKQ_0/VKQ_stride][j], 0.0f); + } + +#pragma unroll + for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += VKQ_ratio*16) { + const int k = k0 + (threadIdx.y % VKQ_ratio)*16; + + frag_a_V v_a; + nvcuda::wmma::load_matrix_sync(v_a, V_h + (k_VKQ_0 + k)*stride_KV + i_VKQ_0 + frag_m*(threadIdx.y/VKQ_ratio), stride_KV); +#pragma unroll + for (int j = 0; j < ncols/frag_n; ++j) { + nvcuda::wmma::mma_sync(VKQ_c[i_VKQ_0/VKQ_stride][j], v_a, KQ_b[k0/(VKQ_ratio*16)][j], VKQ_c[i_VKQ_0/VKQ_stride][j]); + } + } + } + + __syncthreads(); + + const int offset_k = (threadIdx.y % VKQ_ratio) * (ncols*D_padded); +#pragma unroll + for (int i_KQ_0 = 0; i_KQ_0 < D; i_KQ_0 += VKQ_stride) { +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += frag_n) { + nvcuda::wmma::store_matrix_sync( + KQ + offset_k + j0*D_padded + i_KQ_0 + frag_m*(threadIdx.y/VKQ_ratio), + VKQ_c[i_KQ_0/VKQ_stride][j0/frag_n], + D_padded, nvcuda::wmma::mem_col_major); + } + } + + __syncthreads(); + +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps) { + const int j = j0 + threadIdx.y; + + half2 VKQ_scale; + if (std::is_same::value) { + VKQ_scale = make_half2(KQ_max_scale_f[j0/nwarps], KQ_max_scale_f[j0/nwarps]); + } else { + VKQ_scale = KQ_max_scale_h2[j0/nwarps]; + } + +#pragma unroll + for (int i0 = 0; i0 < D/2; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + if (i0 + WARP_SIZE > D/2 && i >= D/2) { + break; + } + + half2 VKQ_add = make_half2(0.0f, 0.0f); +#pragma unroll + for (int l = 0; l < VKQ_ratio; ++l) { + VKQ_add += KQ2[l*(ncols*D_padded/2) + j*(D_padded/2) + i]; + } + VKQ2[j*(D_padded/2) + i] = VKQ_scale*VKQ2[j*(D_padded/2) + i] + VKQ_add; + } + } + + __syncthreads(); + } + +#pragma unroll + for (int j0 = 0; j0 < ncols; j0 += nwarps) { + const int j_VKQ = j0 + threadIdx.y; + if (ic0 + j_VKQ >= ne01) { + return; + } + const int j_dst = (ic0 + j_VKQ)*parallel_blocks + ip; + + float KQ_rowsum_j; + if (std::is_same::value) { + KQ_rowsum_j = KQ_rowsum_f[j0/nwarps]; + } else { + KQ_rowsum_j = __low2float(KQ_rowsum_h2[j0/nwarps]) + __high2float(KQ_rowsum_h2[j0/nwarps]); + } + +#pragma unroll + for (int i0 = 0; i0 < D; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + if (i0 + WARP_SIZE > D && i >= D) { + break; + } + float dst_val = VKQ[j_VKQ*D_padded + i]; + if (parallel_blocks == 1) { + dst_val /= KQ_rowsum_j; + } + dst[j_dst*gridDim.y*D + blockIdx.y*D + i] = dst_val; + } + + if (parallel_blocks == 1 || threadIdx.x != 0) { + continue; + } + + float2 dst_meta_val; + if (std::is_same::value) { + dst_meta_val.x = KQ_max_f[j0/nwarps]; + } else { + dst_meta_val.x = __low2float(KQ_max_h2[j0/nwarps]); + } + dst_meta_val.y = KQ_rowsum_j; + dst_meta[(ic0 + j_VKQ)*gridDim.y*parallel_blocks + blockIdx.y*parallel_blocks + ip] = dst_meta_val; + } +#else + NO_DEVICE_CODE; +#endif // __CUDA_ARCH__ == GGML_CUDA_CC_VOLTA +} + +constexpr int get_max_power_of_2(int x) { + return x % 2 == 0 ? 2*get_max_power_of_2(x/2) : 1; +} + +static_assert(get_max_power_of_2(1) == 1, "Test failed."); +static_assert(get_max_power_of_2(2) == 2, "Test failed."); +static_assert(get_max_power_of_2(4) == 4, "Test failed."); +static_assert(get_max_power_of_2(6) == 2, "Test failed."); + +// Number of VKQ rows calculated in parallel: +constexpr int get_VKQ_stride(int D, int nwarps, int frag_m) { + return (get_max_power_of_2(D/frag_m) < nwarps ? get_max_power_of_2(D/frag_m) : nwarps)*frag_m; +} + +static_assert(get_VKQ_stride(128, 1, 32) == 32, "Test failed."); +static_assert(get_VKQ_stride(128, 2, 32) == 64, "Test failed."); +static_assert(get_VKQ_stride(128, 4, 32) == 128, "Test failed."); +static_assert(get_VKQ_stride( 64, 1, 32) == 32, "Test failed."); +static_assert(get_VKQ_stride( 64, 2, 32) == 64, "Test failed."); +static_assert(get_VKQ_stride( 64, 4, 32) == 64, "Test failed."); +static_assert(get_VKQ_stride( 80, 1, 16) == 16, "Test failed."); +static_assert(get_VKQ_stride( 80, 2, 16) == 16, "Test failed."); +static_assert(get_VKQ_stride( 80, 4, 16) == 16, "Test failed."); + +template +void ggml_cuda_flash_attn_ext_wmma_f16_case(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { + const ggml_tensor * KQV = dst; + const ggml_tensor * Q = dst->src[0]; + + constexpr int nwarps = 4; + + constexpr int frag_m = cols_per_block == 8 && D % 32 == 0 ? 32 : 16; + const int blocks_num_pb1 = ((Q->ne[1] + cols_per_block - 1) / cols_per_block)*Q->ne[2]*Q->ne[3]; + const int nsm = ggml_cuda_info().devices[ggml_cuda_get_device()].nsm; + + float logit_softcap; + memcpy(&logit_softcap, (const float *) KQV->op_params + 2, sizeof(float)); + + if (4*blocks_num_pb1 < 2*nsm) { + constexpr int parallel_blocks = 4; + fattn_kernel_t fattn_kernel; + if (logit_softcap == 0.0f) { + constexpr bool use_logit_softcap = false; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } else { + constexpr bool use_logit_softcap = true; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } + launch_fattn(ctx, dst, fattn_kernel, nwarps, 0, true, true); + return; + } + if (2*blocks_num_pb1 < 2*nsm) { + constexpr int parallel_blocks = 2; + fattn_kernel_t fattn_kernel; + if (logit_softcap == 0.0f) { + constexpr bool use_logit_softcap = false; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } else { + constexpr bool use_logit_softcap = true; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } + launch_fattn(ctx, dst, fattn_kernel, nwarps, 0, true, true); + return; + } + constexpr int parallel_blocks = 1; + fattn_kernel_t fattn_kernel; + if (logit_softcap == 0.0f) { + constexpr bool use_logit_softcap = false; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } else { + constexpr bool use_logit_softcap = true; + fattn_kernel = flash_attn_ext_f16< + D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; + } + launch_fattn(ctx, dst, fattn_kernel, nwarps, 0, true, true); +} + +void ggml_cuda_flash_attn_ext_wmma_f16(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { + const ggml_tensor * KQV = dst; + const ggml_tensor * Q = dst->src[0]; + + const enum ggml_prec prec = ggml_flash_attn_ext_get_prec(KQV); + + if (prec != GGML_PREC_DEFAULT) { + if (Q->ne[1] <= 32 || Q->ne[0] > 128) { + constexpr int cols_per_block = 16; + switch (Q->ne[0]) { + case 64: + ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, float>(ctx, dst); + break; + case 80: + ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, float>(ctx, dst); + break; + case 96: + ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, float>(ctx, dst); + break; + case 112: + ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, float>(ctx, dst); + break; + case 128: + ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); + break; + case 256: + ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, float>(ctx, dst); + break; + default: + GGML_ABORT("fatal error"); + break; + } + } else { + constexpr int cols_per_block = 32; + switch (Q->ne[0]) { + case 64: + ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, float>(ctx, dst); + break; + case 80: + ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, float>(ctx, dst); + break; + case 96: + ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, float>(ctx, dst); + break; + case 112: + ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, float>(ctx, dst); + break; + case 128: + ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); + break; + // case 256: + // ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); + // break; + default: + GGML_ABORT("fatal error"); + break; + } + } + return; + } + + if (Q->ne[1] <= 8 && Q->ne[0] % WARP_SIZE == 0) { + constexpr int cols_per_block = 8; + switch (Q->ne[0]) { + case 64: + ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); + break; + case 96: + ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); + break; + case 128: + ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); + break; + case 256: + ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); + break; + default: + GGML_ABORT("fatal error"); + break; + } + return; + } + + if (Q->ne[1] <= 32) { + constexpr int cols_per_block = 16; + switch (Q->ne[0]) { + case 64: + ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); + break; + case 80: + ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, half>(ctx, dst); + break; + case 96: + ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); + break; + case 112: + ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, half>(ctx, dst); + break; + case 128: + ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); + break; + case 256: + ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); + break; + default: + GGML_ABORT("fatal error"); + break; + } + return; + } + + constexpr int cols_per_block = 32; + switch (Q->ne[0]) { + case 64: + ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); + break; + case 80: + ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, half>(ctx, dst); + break; + case 96: + ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); + break; + case 112: + ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, half>(ctx, dst); + break; + case 128: + ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); + break; + case 256: + ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); + break; + default: + GGML_ABORT("fatal error"); + break; + } +} diff --git a/ggml/src/ggml-cuda/fattn-wmma-f16.cuh b/ggml/src/ggml-cuda/fattn-wmma-f16.cuh index 860d0e6dc..beeea95eb 100644 --- a/ggml/src/ggml-cuda/fattn-wmma-f16.cuh +++ b/ggml/src/ggml-cuda/fattn-wmma-f16.cuh @@ -1,543 +1,3 @@ #include "common.cuh" -#include "fattn-common.cuh" -#ifdef FP16_MMA_AVAILABLE -#include -#endif // FP16_MMA_AVAILABLE - -// D == head size, VKQ_stride == num VKQ rows calculated in parallel: -template -#if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) -__launch_bounds__(nwarps*WARP_SIZE, 1) -#endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) -static __global__ void flash_attn_ext_f16( - const char * __restrict__ Q, - const char * __restrict__ K, - const char * __restrict__ V, - const char * __restrict__ mask, - float * __restrict__ dst, - float2 * __restrict__ dst_meta, - const float scale, - const float max_bias, - const float m0, - const float m1, - const uint32_t n_head_log2, - const float logit_softcap, - const int ne00, - const int ne01, - const int ne02, - const int ne03, - const int ne10, - const int ne11, - const int ne12, - const int ne13, - const int ne31, - const int nb31, - const int nb01, - const int nb02, - const int nb03, - const int nb11, - const int nb12, - const int nb13, - const int nb21, - const int nb22, - const int nb23, - const int ne0, - const int ne1, - const int ne2, - const int ne3) { -#ifdef FP16_MMA_AVAILABLE - // Skip unused kernel variants for faster compilation: - if (use_logit_softcap && !(D == 128 || D == 256)) { - NO_DEVICE_CODE; - return; - } - - //In this kernel Q, K, V are matrices while i, j, k are matrix indices. - - const int ic0 = ncols*(blockIdx.x / parallel_blocks); // Index of the first Q/QKV column to work on. - const int ip = blockIdx.x % parallel_blocks; // Index in group of blocks running for the same column in parallel. - - static_assert(D <= FATTN_KQ_STRIDE, "D must be <= FATTN_KQ_STRIDE."); - static_assert(ncols == 8 || ncols % 16 == 0, "ncols must be 8 or a multiple of 16."); - constexpr int frag_m = ncols == 8 ? 32 : 16; - constexpr int frag_n = ncols == 8 ? 8 : 16; - static_assert(D % frag_m == 0, "If ncols == 8 then D % frag_m must be 0."); - typedef nvcuda::wmma::fragment frag_a_K; - typedef nvcuda::wmma::fragment frag_a_V; - typedef nvcuda::wmma::fragment frag_b; - typedef nvcuda::wmma::fragment frag_c_KQ; - typedef nvcuda::wmma::fragment frag_c_VKQ; - - constexpr int KQ_stride_tc = nwarps*frag_m; // Number of KQ rows calculated in parallel. - constexpr int VKQ_ratio = KQ_stride_tc/VKQ_stride; // Number of parallel VKQ accumulators needed to keep all warps busy. - static_assert(VKQ_ratio <= nwarps, "VKQ_ratio must be <= nwarps."); - - // Pad internal representation of KQ, KQV to reduce shared memory bank conflicts: - constexpr int D_padded = D + 8; - constexpr int kqs_padded = FATTN_KQ_STRIDE + 8; - constexpr int kqar = sizeof(KQ_acc_t)/sizeof(half); - - const int gqa_ratio = ne02 / ne12; // With grouped query attention there are > 1 Q matrices per K, V matrix. - const float * Q_f = (const float *) (Q + nb02* blockIdx.y + nb01*ic0); - const half * K_h = (const half *) (K + nb12*(blockIdx.y / gqa_ratio)); - const half * V_h = (const half *) (V + nb12*(blockIdx.y / gqa_ratio)); // K and V have same shape - const half * maskh = (const half *) mask + (nb31/sizeof(half))* ic0; - const half2 * mask2 = (const half2 *) mask + (nb31/sizeof(half))*(ic0/2); - - const int stride_Q = nb01 / sizeof(float); - const int stride_KV = nb11 / sizeof(half); - - const float slopef = get_alibi_slope(max_bias, blockIdx.y, n_head_log2, m0, m1); - const half slopeh = __float2half(slopef); - const half2 slope2 = make_half2(slopef, slopef); - - const half2 logit_softcap_2 = make_half2(logit_softcap, logit_softcap); - - frag_b Q_b[D/16][ncols/frag_n]; - - // A single buffer for temporarily holding tiles of KQ and VKQ parts: - constexpr int mem_KQ = ncols*kqs_padded*kqar; - constexpr int mem_VKQ_parts = VKQ_ratio*ncols*D_padded; - __shared__ half KQ[mem_KQ >= mem_VKQ_parts ? mem_KQ : mem_VKQ_parts]; - float * KQ_f = (float *) KQ; - half2 * KQ2 = (half2 *) KQ; - - float KQ_rowsum_f[ncols/nwarps] = {0.0f}; - float KQ_max_f[ncols/nwarps]; - float KQ_max_scale_f[ncols/nwarps] = {0.0f}; - -#pragma unroll - for (int j = 0; j < ncols/nwarps; ++j) { - KQ_max_f[j] = -FLT_MAX/2.0f; - } - - half2 KQ_rowsum_h2[ncols/nwarps] = {{0.0f, 0.0f}}; - half2 KQ_max_h2[ncols/nwarps]; - half2 KQ_max_scale_h2[ncols/nwarps] = {{0.0f, 0.0f}}; - -#pragma unroll - for (int j = 0; j < ncols/nwarps; ++j) { - KQ_max_h2[j] = make_half2(-HALF_MAX_HALF, -HALF_MAX_HALF); - } - - __shared__ half VKQ[ncols*D_padded]; // Accumulator for final VKQ slice. - half2 * VKQ2 = (half2 *) VKQ; -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; -#pragma unroll - for (int i0 = 0; i0 < D/2; i0 += WARP_SIZE) { - const int i = i0 + threadIdx.x; - if (i0 + WARP_SIZE > D/2 && i >= D/2) { - break; - } - VKQ2[j*(D_padded/2) + i] = make_half2(0.0f, 0.0f); - } - } - - // Convert Q to half and apply scale, temporarily store in KQ: -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; -#pragma unroll - for (int i0 = 0; i0 < D; i0 += WARP_SIZE) { - const int i = i0 + threadIdx.x; - if (i0 + WARP_SIZE > D && i >= D) { - break; - } - KQ[j*D_padded + i] = ic0 + j < ne01 ? Q_f[j*stride_Q + i] * scale : 0.0f; - } - } - - __syncthreads(); - - // Load Q into tensor core fragments/registers since it will be used frequently: -#pragma unroll - for (int i0 = 0; i0 < D; i0 += 16) { -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += frag_n) { - nvcuda::wmma::load_matrix_sync(Q_b[i0/16][j0/frag_n], KQ + j0*D_padded + i0, D_padded); - } - } - - __syncthreads(); - - // Iterate over ne11 == previous tokens: - for (int k_VKQ_0 = ip*FATTN_KQ_STRIDE; k_VKQ_0 < ne11; k_VKQ_0 += parallel_blocks*FATTN_KQ_STRIDE) { - // Calculate tile of KQ: -#pragma unroll - for (int i_KQ_0 = 0; i_KQ_0 < FATTN_KQ_STRIDE; i_KQ_0 += KQ_stride_tc) { - frag_c_KQ KQ_c[ncols/frag_n]; -#pragma unroll - for (int j = 0; j < ncols/frag_n; ++j) { - nvcuda::wmma::fill_fragment(KQ_c[j], 0.0f); - } -#pragma unroll - for (int k_KQ_0 = 0; k_KQ_0 < D; k_KQ_0 += 16) { - frag_a_K K_a; - nvcuda::wmma::load_matrix_sync(K_a, K_h + (k_VKQ_0 + i_KQ_0 + frag_m*threadIdx.y)*stride_KV + k_KQ_0, stride_KV); -#pragma unroll - for (int j = 0; j < ncols/frag_n; ++j) { - nvcuda::wmma::mma_sync(KQ_c[j], K_a, Q_b[k_KQ_0/16][j], KQ_c[j]); - } - } -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += frag_n) { - nvcuda::wmma::store_matrix_sync((KQ_acc_t *) KQ + j0*kqs_padded + i_KQ_0 + frag_m*threadIdx.y, KQ_c[j0/frag_n], kqs_padded, nvcuda::wmma::mem_col_major); - } - } - - __syncthreads(); - - // Calculate softmax for each KQ column using the current max. value. - // The divisor is stored in KQ_rowsum and will be applied at the end. -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; - - if (std::is_same::value) { - float KQ_f_tmp[FATTN_KQ_STRIDE / WARP_SIZE]; -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - KQ_f_tmp[k0/WARP_SIZE] = KQ_f[j*kqs_padded + k]; - - if (use_logit_softcap) { - KQ_f_tmp[k0/WARP_SIZE] = logit_softcap*tanhf(KQ_f_tmp[k0/WARP_SIZE]); - } - } - - float KQ_max_new = KQ_max_f[j0/nwarps]; -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - KQ_f_tmp[k0/WARP_SIZE] += mask ? __half2float(slopeh*maskh[j*(nb31/sizeof(half)) + k_VKQ_0 + k]) : 0.0f; - KQ_max_new = max(KQ_max_new, KQ_f_tmp[k0/WARP_SIZE]); - } - KQ_max_new = warp_reduce_max(KQ_max_new); - - const float diff = KQ_max_f[j0/nwarps] - KQ_max_new; - KQ_max_scale_f[j0/nwarps] = expf(diff); - if (diff <= SOFTMAX_FTZ_THRESHOLD) { - KQ_max_scale_f[j0/nwarps] = 0.0f; - } - KQ_max_f[j0/nwarps] = KQ_max_new; - - float KQ_rowsum_add = 0.0f; -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - const float diff = KQ_f_tmp[k0/WARP_SIZE] - KQ_max_f[j0/nwarps]; - KQ_f_tmp[k0/WARP_SIZE] = expf(diff); - if (diff <= SOFTMAX_FTZ_THRESHOLD) { - KQ_f_tmp[k0/WARP_SIZE] = 0.0f; - } - KQ_rowsum_add += KQ_f_tmp[k0/WARP_SIZE]; - KQ[j*(kqar*kqs_padded) + k] = KQ_f_tmp[k0/WARP_SIZE]; - } - KQ_rowsum_add = warp_reduce_sum(KQ_rowsum_add); - - // Scale previous KQ_rowsum to account for a potential increase in KQ_max: - KQ_rowsum_f[j0/nwarps] = KQ_max_scale_f[j0/nwarps]*KQ_rowsum_f[j0/nwarps] + KQ_rowsum_add; - } else { - half2 KQ2_tmp[FATTN_KQ_STRIDE/(2*WARP_SIZE)]; -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - KQ2_tmp[k0/WARP_SIZE] = KQ2[j*(kqs_padded/2) + k]; - - if (use_logit_softcap) { - // There is no dedicated tangens hyperbolicus function for half2. - KQ2_tmp[k0/WARP_SIZE] = h2exp(KQ2_tmp[k0/WARP_SIZE]*make_half2(2.0f, 2.0f)); - KQ2_tmp[k0/WARP_SIZE] = (KQ2_tmp[k0/WARP_SIZE] - make_half2(1.0f, 1.0f)) - /(KQ2_tmp[k0/WARP_SIZE] + make_half2(1.0f, 1.0f)); - - KQ2_tmp[k0/WARP_SIZE] *= logit_softcap_2; - } - } - - half2 KQ_max_new = KQ_max_h2[j0/nwarps]; -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - KQ2_tmp[k0/WARP_SIZE] += mask ? slope2*mask2[(j*ne11 + k_VKQ_0)/2 + k] : make_half2(0.0f, 0.0f); - KQ_max_new = ggml_cuda_hmax2(KQ_max_new, KQ2_tmp[k0/WARP_SIZE]); - } - KQ_max_new = __half2half2(warp_reduce_max(ggml_cuda_hmax(__low2half(KQ_max_new), __high2half(KQ_max_new)))); - const half2 diff = KQ_max_h2[j0/nwarps] - KQ_max_new; - KQ_max_scale_h2[j0/nwarps] = h2exp(diff); - const uint32_t ftz_mask = __hgt2_mask(diff, make_half2(SOFTMAX_FTZ_THRESHOLD, SOFTMAX_FTZ_THRESHOLD)); - *((uint32_t *) &KQ_max_scale_h2[j0/nwarps]) &= ftz_mask; - KQ_max_h2[j0/nwarps] = KQ_max_new; - - half2 KQ_rowsum_add = make_half2(0.0f, 0.0f); -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE/2; k0 += WARP_SIZE) { - const int k = k0 + threadIdx.x; - - const half2 diff = KQ2_tmp[k0/WARP_SIZE] - KQ_max_h2[j0/nwarps]; - KQ2_tmp[k0/WARP_SIZE] = h2exp(diff); - const uint32_t ftz_mask = __hgt2_mask(diff, make_half2(SOFTMAX_FTZ_THRESHOLD, SOFTMAX_FTZ_THRESHOLD)); - *((uint32_t *) &KQ2_tmp[k0/WARP_SIZE]) &= ftz_mask; - KQ_rowsum_add += KQ2_tmp[k0/WARP_SIZE]; - KQ2[j*(kqs_padded/2) + k] = KQ2_tmp[k0/WARP_SIZE]; - } - KQ_rowsum_add = warp_reduce_sum(KQ_rowsum_add); - - // Scale previous KQ_rowsum to account for a potential increase in KQ_max: - KQ_rowsum_h2[j0/nwarps] = KQ_max_scale_h2[j0/nwarps]*KQ_rowsum_h2[j0/nwarps] + KQ_rowsum_add; - } - } - - __syncthreads(); - - frag_b KQ_b[FATTN_KQ_STRIDE/(VKQ_ratio*16)][ncols/frag_n]; -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += frag_n) { -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += VKQ_ratio*16) { - const int k = k0 + (threadIdx.y % VKQ_ratio)*16; - nvcuda::wmma::load_matrix_sync( - KQ_b[k0/(VKQ_ratio*16)][j0/frag_n], - KQ + j0*(kqar*kqs_padded) + k, - kqar*kqs_padded); - } - } - - frag_c_VKQ VKQ_c[D/VKQ_stride][ncols/frag_n]; -#pragma unroll - for (int i_VKQ_0 = 0; i_VKQ_0 < D; i_VKQ_0 += VKQ_stride) { -#pragma unroll - for (int j = 0; j < ncols/frag_n; ++j) { - nvcuda::wmma::fill_fragment(VKQ_c[i_VKQ_0/VKQ_stride][j], 0.0f); - } - -#pragma unroll - for (int k0 = 0; k0 < FATTN_KQ_STRIDE; k0 += VKQ_ratio*16) { - const int k = k0 + (threadIdx.y % VKQ_ratio)*16; - - frag_a_V v_a; - nvcuda::wmma::load_matrix_sync(v_a, V_h + (k_VKQ_0 + k)*stride_KV + i_VKQ_0 + frag_m*(threadIdx.y/VKQ_ratio), stride_KV); -#pragma unroll - for (int j = 0; j < ncols/frag_n; ++j) { - nvcuda::wmma::mma_sync(VKQ_c[i_VKQ_0/VKQ_stride][j], v_a, KQ_b[k0/(VKQ_ratio*16)][j], VKQ_c[i_VKQ_0/VKQ_stride][j]); - } - } - } - - __syncthreads(); - - const int offset_k = (threadIdx.y % VKQ_ratio) * (ncols*D_padded); -#pragma unroll - for (int i_KQ_0 = 0; i_KQ_0 < D; i_KQ_0 += VKQ_stride) { -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += frag_n) { - nvcuda::wmma::store_matrix_sync( - KQ + offset_k + j0*D_padded + i_KQ_0 + frag_m*(threadIdx.y/VKQ_ratio), - VKQ_c[i_KQ_0/VKQ_stride][j0/frag_n], - D_padded, nvcuda::wmma::mem_col_major); - } - } - - __syncthreads(); - -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j = j0 + threadIdx.y; - - half2 VKQ_scale; - if (std::is_same::value) { - VKQ_scale = make_half2(KQ_max_scale_f[j0/nwarps], KQ_max_scale_f[j0/nwarps]); - } else { - VKQ_scale = KQ_max_scale_h2[j0/nwarps]; - } - -#pragma unroll - for (int i0 = 0; i0 < D/2; i0 += WARP_SIZE) { - const int i = i0 + threadIdx.x; - if (i0 + WARP_SIZE > D/2 && i >= D/2) { - break; - } - - half2 VKQ_add = make_half2(0.0f, 0.0f); -#pragma unroll - for (int l = 0; l < VKQ_ratio; ++l) { - VKQ_add += KQ2[l*(ncols*D_padded/2) + j*(D_padded/2) + i]; - } - VKQ2[j*(D_padded/2) + i] = VKQ_scale*VKQ2[j*(D_padded/2) + i] + VKQ_add; - } - } - - __syncthreads(); - } - -#pragma unroll - for (int j0 = 0; j0 < ncols; j0 += nwarps) { - const int j_VKQ = j0 + threadIdx.y; - if (ic0 + j_VKQ >= ne01) { - return; - } - const int j_dst = (ic0 + j_VKQ)*parallel_blocks + ip; - - float KQ_rowsum_j; - if (std::is_same::value) { - KQ_rowsum_j = KQ_rowsum_f[j0/nwarps]; - } else { - KQ_rowsum_j = __low2float(KQ_rowsum_h2[j0/nwarps]) + __high2float(KQ_rowsum_h2[j0/nwarps]); - } - -#pragma unroll - for (int i0 = 0; i0 < D; i0 += WARP_SIZE) { - const int i = i0 + threadIdx.x; - if (i0 + WARP_SIZE > D && i >= D) { - break; - } - float dst_val = VKQ[j_VKQ*D_padded + i]; - if (parallel_blocks == 1) { - dst_val /= KQ_rowsum_j; - } - dst[j_dst*gridDim.y*D + blockIdx.y*D + i] = dst_val; - } - - if (parallel_blocks == 1 || threadIdx.x != 0) { - continue; - } - - float2 dst_meta_val; - if (std::is_same::value) { - dst_meta_val.x = KQ_max_f[j0/nwarps]; - } else { - dst_meta_val.x = __low2float(KQ_max_h2[j0/nwarps]); - } - dst_meta_val.y = KQ_rowsum_j; - dst_meta[(ic0 + j_VKQ)*gridDim.y*parallel_blocks + blockIdx.y*parallel_blocks + ip] = dst_meta_val; - } -#else - NO_DEVICE_CODE; -#endif // FP16_MMA_AVAILABLE -} - -constexpr int get_max_power_of_2(int x) { - return x % 2 == 0 ? 2*get_max_power_of_2(x/2) : 1; -} - -static_assert(get_max_power_of_2(1) == 1, "Test failed."); -static_assert(get_max_power_of_2(2) == 2, "Test failed."); -static_assert(get_max_power_of_2(4) == 4, "Test failed."); -static_assert(get_max_power_of_2(6) == 2, "Test failed."); - -// Number of VKQ rows calculated in parallel: -constexpr int get_VKQ_stride(int D, int nwarps, int frag_m) { - return (get_max_power_of_2(D/frag_m) < nwarps ? get_max_power_of_2(D/frag_m) : nwarps)*frag_m; -} - -static_assert(get_VKQ_stride(128, 1, 32) == 32, "Test failed."); -static_assert(get_VKQ_stride(128, 2, 32) == 64, "Test failed."); -static_assert(get_VKQ_stride(128, 4, 32) == 128, "Test failed."); -static_assert(get_VKQ_stride( 64, 1, 32) == 32, "Test failed."); -static_assert(get_VKQ_stride( 64, 2, 32) == 64, "Test failed."); -static_assert(get_VKQ_stride( 64, 4, 32) == 64, "Test failed."); -static_assert(get_VKQ_stride( 80, 1, 16) == 16, "Test failed."); -static_assert(get_VKQ_stride( 80, 2, 16) == 16, "Test failed."); -static_assert(get_VKQ_stride( 80, 4, 16) == 16, "Test failed."); - -template -void ggml_cuda_flash_attn_ext_wmma_f16_case(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { - const ggml_tensor * KQV = dst; - const ggml_tensor * Q = dst->src[0]; - - constexpr int nwarps = 4; - - constexpr int frag_m = cols_per_block == 8 && D % 32 == 0 ? 32 : 16; - const int blocks_num_pb1 = ((Q->ne[1] + cols_per_block - 1) / cols_per_block)*Q->ne[2]*Q->ne[3]; - const int nsm = ggml_cuda_info().devices[ggml_cuda_get_device()].nsm; - - float logit_softcap; - memcpy(&logit_softcap, (const float *) KQV->op_params + 2, sizeof(float)); - - if (4*blocks_num_pb1 < 2*nsm) { - constexpr int parallel_blocks = 4; - fattn_kernel_t fattn_kernel; - if (logit_softcap == 0.0f) { - constexpr bool use_logit_softcap = false; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } else { - constexpr bool use_logit_softcap = true; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); - return; - } - if (2*blocks_num_pb1 < 2*nsm) { - constexpr int parallel_blocks = 2; - fattn_kernel_t fattn_kernel; - if (logit_softcap == 0.0f) { - constexpr bool use_logit_softcap = false; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } else { - constexpr bool use_logit_softcap = true; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); - return; - } - constexpr int parallel_blocks = 1; - fattn_kernel_t fattn_kernel; - if (logit_softcap == 0.0f) { - constexpr bool use_logit_softcap = false; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } else { - constexpr bool use_logit_softcap = true; - fattn_kernel = flash_attn_ext_f16< - D, cols_per_block, nwarps, get_VKQ_stride(D, nwarps, frag_m), parallel_blocks, KQ_acc_t, use_logit_softcap>; - } - launch_fattn(ctx, dst, fattn_kernel, nwarps, cols_per_block, true, true); -} - -#define DECL_FATTN_WMMA_F16_CASE(D, cols_per_block, KQ_acc_t) \ - template void ggml_cuda_flash_attn_ext_wmma_f16_case \ - (ggml_backend_cuda_context & ctx, ggml_tensor * dst) \ - -extern DECL_FATTN_WMMA_F16_CASE( 64, 16, float); -extern DECL_FATTN_WMMA_F16_CASE( 80, 16, float); -extern DECL_FATTN_WMMA_F16_CASE( 96, 16, float); -extern DECL_FATTN_WMMA_F16_CASE(112, 16, float); -extern DECL_FATTN_WMMA_F16_CASE(128, 16, float); -extern DECL_FATTN_WMMA_F16_CASE(256, 16, float); - -extern DECL_FATTN_WMMA_F16_CASE( 64, 32, float); -extern DECL_FATTN_WMMA_F16_CASE( 80, 32, float); -extern DECL_FATTN_WMMA_F16_CASE( 96, 32, float); -extern DECL_FATTN_WMMA_F16_CASE(112, 32, float); -extern DECL_FATTN_WMMA_F16_CASE(128, 32, float); -// extern DECL_FATTN_WMMA_F16_CASE(256, 16, float); - -extern DECL_FATTN_WMMA_F16_CASE( 64, 8, half); -extern DECL_FATTN_WMMA_F16_CASE( 96, 8, half); -extern DECL_FATTN_WMMA_F16_CASE(128, 8, half); -extern DECL_FATTN_WMMA_F16_CASE(256, 8, half); - -extern DECL_FATTN_WMMA_F16_CASE( 64, 16, half); -extern DECL_FATTN_WMMA_F16_CASE( 80, 16, half); -extern DECL_FATTN_WMMA_F16_CASE( 96, 16, half); -extern DECL_FATTN_WMMA_F16_CASE(112, 16, half); -extern DECL_FATTN_WMMA_F16_CASE(128, 16, half); -extern DECL_FATTN_WMMA_F16_CASE(256, 16, half); - -extern DECL_FATTN_WMMA_F16_CASE( 64, 32, half); -extern DECL_FATTN_WMMA_F16_CASE( 80, 32, half); -extern DECL_FATTN_WMMA_F16_CASE( 96, 32, half); -extern DECL_FATTN_WMMA_F16_CASE(112, 32, half); -extern DECL_FATTN_WMMA_F16_CASE(128, 32, half); -extern DECL_FATTN_WMMA_F16_CASE(256, 16, half); +void ggml_cuda_flash_attn_ext_wmma_f16(ggml_backend_cuda_context & ctx, ggml_tensor * dst); diff --git a/ggml/src/ggml-cuda/fattn.cu b/ggml/src/ggml-cuda/fattn.cu index 0b26b0f8e..b1e66d470 100644 --- a/ggml/src/ggml-cuda/fattn.cu +++ b/ggml/src/ggml-cuda/fattn.cu @@ -1,5 +1,6 @@ #include "common.cuh" #include "fattn-common.cuh" +#include "fattn-mma-f16.cuh" #include "fattn-tile-f16.cuh" #include "fattn-tile-f32.cuh" #include "fattn-vec-f16.cuh" @@ -7,144 +8,56 @@ #include "fattn-wmma-f16.cuh" #include "fattn.cuh" -#include +template +static void ggml_cuda_flash_attn_ext_mma_f16_switch_hs(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { + const ggml_tensor * Q = dst->src[0]; -static void ggml_cuda_flash_attn_ext_wmma_f16(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { - const ggml_tensor * KQV = dst; - const ggml_tensor * Q = dst->src[0]; - - const enum ggml_prec prec = ggml_flash_attn_ext_get_prec(KQV); - - if (prec != GGML_PREC_DEFAULT) { - if (Q->ne[1] <= 32 || Q->ne[0] > 128) { - constexpr int cols_per_block = 16; - switch (Q->ne[0]) { - case 64: - ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, float>(ctx, dst); - break; - case 80: - ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, float>(ctx, dst); - break; - case 96: - ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, float>(ctx, dst); - break; - case 112: - ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, float>(ctx, dst); - break; - case 128: - ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); - break; - case 256: - ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, float>(ctx, dst); - break; - default: - GGML_ABORT("fatal error"); - break; - } - } else { - constexpr int cols_per_block = 32; - switch (Q->ne[0]) { - case 64: - ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, float>(ctx, dst); - break; - case 80: - ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, float>(ctx, dst); - break; - case 96: - ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, float>(ctx, dst); - break; - case 112: - ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, float>(ctx, dst); - break; - case 128: - ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); - break; - // case 256: - // ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); - // break; - default: - GGML_ABORT("fatal error"); - break; - } - } - return; - } - - if (Q->ne[1] <= 8 && Q->ne[0] % WARP_SIZE == 0) { - constexpr int cols_per_block = 8; - switch (Q->ne[0]) { - case 64: - ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); - break; - case 96: - ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); - break; - case 128: - ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); - break; - case 256: - ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); - break; - default: - GGML_ABORT("fatal error"); - break; - } - return; - } - - if (Q->ne[1] <= 32) { - constexpr int cols_per_block = 16; - switch (Q->ne[0]) { - case 64: - ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); - break; - case 80: - ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, half>(ctx, dst); - break; - case 96: - ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); - break; - case 112: - ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, half>(ctx, dst); - break; - case 128: - ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); - break; - case 256: - ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); - break; - default: - GGML_ABORT("fatal error"); - break; - } - return; - } - - constexpr int cols_per_block = 32; switch (Q->ne[0]) { case 64: - ggml_cuda_flash_attn_ext_wmma_f16_case< 64, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case< 64, cols_per_block>(ctx, dst); break; case 80: - ggml_cuda_flash_attn_ext_wmma_f16_case< 80, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case< 80, cols_per_block>(ctx, dst); break; case 96: - ggml_cuda_flash_attn_ext_wmma_f16_case< 96, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case< 96, cols_per_block>(ctx, dst); break; case 112: - ggml_cuda_flash_attn_ext_wmma_f16_case<112, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case<112, cols_per_block>(ctx, dst); break; case 128: - ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case<128, cols_per_block>(ctx, dst); break; case 256: - ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, half>(ctx, dst); + ggml_cuda_flash_attn_ext_mma_f16_case<256, cols_per_block>(ctx, dst); break; default: GGML_ABORT("fatal error"); break; } } + +static void ggml_cuda_flash_attn_ext_mma_f16(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { + const ggml_tensor * Q = dst->src[0]; + + if (Q->ne[1] <= 8) { + ggml_cuda_flash_attn_ext_mma_f16_switch_hs<8>(ctx, dst); + return; + } + + if (Q->ne[1] <= 16) { + ggml_cuda_flash_attn_ext_mma_f16_switch_hs<16>(ctx, dst); + return; + } + + if (Q->ne[1] <= 32) { + ggml_cuda_flash_attn_ext_mma_f16_switch_hs<32>(ctx, dst); + return; + } + + ggml_cuda_flash_attn_ext_mma_f16_switch_hs<64>(ctx, dst); +} + #define FATTN_VEC_F16_CASE(D, type_K, type_V) \ if (Q->ne[0] == (D) && K->type == (type_K) && V->type == (type_V)) { \ ggml_cuda_flash_attn_ext_vec_f16_case(ctx, dst); \ @@ -322,11 +235,19 @@ void ggml_cuda_flash_attn_ext(ggml_backend_cuda_context & ctx, ggml_tensor * dst return; } - if (!fp16_mma_available(cc)) { - if (Q->ne[1] <= 8) { - ggml_cuda_flash_attn_ext_vec_f16(ctx, dst); + if (!new_mma_available(cc)) { + if (prec == GGML_PREC_DEFAULT) { + if (Q->ne[1] <= 8) { + ggml_cuda_flash_attn_ext_vec_f16(ctx, dst); + } else { + ggml_cuda_flash_attn_ext_tile_f16(ctx, dst); + } } else { - ggml_cuda_flash_attn_ext_tile_f16(ctx, dst); + if (Q->ne[1] <= 8) { + ggml_cuda_flash_attn_ext_vec_f32(ctx, dst); + } else { + ggml_cuda_flash_attn_ext_tile_f32(ctx, dst); + } } return; } @@ -341,5 +262,10 @@ void ggml_cuda_flash_attn_ext(ggml_backend_cuda_context & ctx, ggml_tensor * dst } } - ggml_cuda_flash_attn_ext_wmma_f16(ctx, dst); + // The MMA implementation needs Turing or newer, use the old WMMA code for Volta: + if (cc == GGML_CUDA_CC_VOLTA) { + ggml_cuda_flash_attn_ext_wmma_f16(ctx, dst); + } + + ggml_cuda_flash_attn_ext_mma_f16(ctx, dst); } diff --git a/ggml/src/ggml-cuda/mma.cuh b/ggml/src/ggml-cuda/mma.cuh index 7d11540af..9788a1389 100644 --- a/ggml/src/ggml-cuda/mma.cuh +++ b/ggml/src/ggml-cuda/mma.cuh @@ -1,11 +1,67 @@ +// This file contains primitives that expose the tensor core PTX instructions for CUDA code. +// The primitives can be used in a similar way as the nvcuda::wmma interface but with a well-defined memory layout. +// The documentation for the PTX instructions can be found under: +// https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#matrix-multiply-accumulate-operation-using-mma-instruction +// +// Like with nvcuda::wmma there are three types of matrix tiles: A, B, and C with A @ B = C. +// A is a row-major matrix with shape I x K. +// B is a column-major matrix with shape K x J. +// C is a column-major matrix with shape I x J. +// Note that along their lowest dimension I, J, and K are measured in physical 32 bit elements instead of logical elements. +// The functions get_i, get_j, and get_k can be used to get the physical 32 bit index of the lth element of a thread within a tile. +// All matrix tiles have ne physical 32 bit elements per warp. +// +// As described in the documentation, all pointers for load_ldmatrix must be to shared memory and aligned to 16 bytes. + #include "common.cuh" -struct mma_int_A_I16K4 { + +#if CUDART_VERSION >= 11800 + +static __device__ __forceinline__ int ggml_cuda_movmatrix(const int x) { + int ret = 0; + +#ifdef NEW_MMA_AVAILABLE + asm("movmatrix.sync.aligned.m8n8.trans.b16 %0, %1;" + : "+r"(ret) : "r"(x)); +#else + NO_DEVICE_CODE; +#endif // defined(NEW_MMA_AVAILABLE) + return ret; +} + +#else + +static __device__ __forceinline__ int ggml_cuda_movmatrix(const int x) { + // Imagine transposing row-major matrix to column-major matrix. + const int src_i_low = 2 * (threadIdx.x % 4); + const int src_i_high = src_i_low + 1; + const int src_j = threadIdx.x / 4; + + const int src_laneid_low = src_i_low * 4 + src_j / 2; + const int src_laneid_high = src_i_high * 4 + src_j / 2; + + const int shift_low = ((src_j + 0) % 2) * 16; + const int shift_high = ((src_j + 1) % 2) * 16; + + const int ret_low = (__shfl_sync(0xFFFFFFFF, x, src_laneid_low, WARP_SIZE) >> shift_low) & 0x0000FFFF; + const int ret_high = (__shfl_sync(0xFFFFFFFF, x, src_laneid_high, WARP_SIZE) << shift_high) & 0xFFFF0000; + + return ret_low | ret_high; +} + +#endif // CUDART_VERSION >= 11800 + + +template +struct mma_A_I16K4 { + static_assert(sizeof(T) == 4, "bad type size"); + static constexpr int I = 16; static constexpr int K = 4; static constexpr int ne = 2; - int x[ne] = {0}; + T x[ne]; static __device__ __forceinline__ int get_i(const int l) { const int ret = (l%2) * (I/2) + threadIdx.x / K; @@ -21,27 +77,35 @@ struct mma_int_A_I16K4 { return ret; } - __device__ __forceinline__ void load(const int * __restrict__ xs0, const int & stride) { -#if defined(INT8_MMA_AVAILABLE) - const int * xs = xs0 + (threadIdx.x%I)*stride; - asm("ldmatrix.sync.aligned.m8n8.x2.b16 {%0, %1}, [%2];" - : "+r"(x[0]), "+r"(x[1]) - : "l"(xs)); -#else + __device__ __forceinline__ void load_generic(const T * __restrict__ xs0, const int & stride) { #pragma unroll for (int l = 0; l < ne; ++l) { x[l] = xs0[get_i(l)*stride + get_k(l)]; } -#endif // defined(INT8_MMA_AVAILABLE) + } + + __device__ __forceinline__ void load_ldmatrix(const T * __restrict__ xs0, const int & stride) { +#ifdef NEW_MMA_AVAILABLE + int * xi = (int *) x; + const int * xs = (const int *) xs0 + (threadIdx.x%I)*stride; + asm("ldmatrix.sync.aligned.m8n8.x2.b16 {%0, %1}, [%2];" + : "+r"(xi[0]), "+r"(xi[1]) + : "l"(xs)); +#else + load_generic(xs0, stride); +#endif // NEW_MMA_AVAILABLE } }; -struct mma_int_A_I16K8 { +template +struct mma_A_I16K8 { + static_assert(sizeof(T) == 4, "bad type size"); + static constexpr int I = 16; static constexpr int K = 8; static constexpr int ne = 4; - int x[ne] = {0}; + T x[ne]; static __device__ __forceinline__ int get_i(const int l) { const int ret = (l%2) * (I/2) + threadIdx.x / (K/2); @@ -57,31 +121,62 @@ struct mma_int_A_I16K8 { return ret; } - __device__ __forceinline__ void load(const int * __restrict__ xs0, const int & stride) { -#if defined(INT8_MMA_AVAILABLE) - const int * xs = xs0 + (threadIdx.x%I)*stride + (threadIdx.x/I)*(K/2); - asm("ldmatrix.sync.aligned.m8n8.x4.b16 {%0, %1, %2, %3}, [%4];" - : "+r"(x[0]), "+r"(x[1]), "+r"(x[2]), "+r"(x[3]) - : "l"(xs)); -#else + __device__ __forceinline__ void load_generic(const T * __restrict__ xs0, const int & stride) { #pragma unroll for (int l = 0; l < ne; ++l) { x[l] = xs0[get_i(l)*stride + get_k(l)]; } -#endif // defined(INT8_MMA_AVAILABLE) } - __device__ __forceinline__ void load_low(const int * __restrict__ xs0, const int & stride) { - ((mma_int_A_I16K4 *) x)[0].load(xs0, stride); + __device__ __forceinline__ void load_ldmatrix(const T * __restrict__ xs0, const int & stride) { +#ifdef NEW_MMA_AVAILABLE + int * xi = (int * ) x; + const int * xs = (const int *) xs0 + (threadIdx.x%I)*stride + (threadIdx.x/I)*(K/2); + asm("ldmatrix.sync.aligned.m8n8.x4.b16 {%0, %1, %2, %3}, [%4];" + : "+r"(xi[0]), "+r"(xi[1]), "+r"(xi[2]), "+r"(xi[3]) + : "l"(xs)); +#else + GGML_UNUSED(xs0); + GGML_UNUSED(stride); + NO_DEVICE_CODE; +#endif // NEW_MMA_AVAILABLE + } + + __device__ __forceinline__ void load_ldmatrix_trans(const T * __restrict__ xs0, const int & stride) { +#ifdef NEW_MMA_AVAILABLE + int * xi = (int * ) x; + const int * xs = (const int *) xs0 + (threadIdx.x%I)*stride + (threadIdx.x/I)*(K/2); + asm("ldmatrix.sync.aligned.m8n8.x4.trans.b16 {%0, %1, %2, %3}, [%4];" + : "+r"(xi[0]), "+r"(xi[2]), "+r"(xi[1]), "+r"(xi[3]) + : "l"(xs)); +#else + GGML_UNUSED(xs0); + GGML_UNUSED(stride); + NO_DEVICE_CODE; +#endif // NEW_MMA_AVAILABLE + } + + __device__ __forceinline__ void transpose() { + int * xi = (int *) x; + xi[0] = ggml_cuda_movmatrix(xi[0]); + + const int tmp = ggml_cuda_movmatrix(xi[1]); + xi[1] = ggml_cuda_movmatrix(xi[2]); + xi[2] = tmp; + + xi[3] = ggml_cuda_movmatrix(xi[3]); } }; -struct mma_int_B_J8K4 { +template +struct mma_B_J8K4 { + static_assert(sizeof(T) == 4, "bad type size"); + static constexpr int J = 8; static constexpr int K = 4; static constexpr int ne = 1; - int x[ne] = {0}; + T x[ne]; static __device__ __forceinline__ int get_j(const int /* l */) { const int ret = threadIdx.x / K; @@ -97,27 +192,34 @@ struct mma_int_B_J8K4 { return ret; } - __device__ __forceinline__ void load(const int * __restrict__ xs0, const int & stride) { -#if defined(INT8_MMA_AVAILABLE) && false // Loading as 4 byte values is faster - const int * xs = xs0 + (threadIdx.x%J)*stride; - asm("ldmatrix.sync.aligned.m8n8.x1.b16 {%0}, [%1];" - : "+r"(x[0]) - : "l"(xs)); -#else + __device__ __forceinline__ void load_generic(const T * __restrict__ xs0, const int & stride) { #pragma unroll for (int l = 0; l < ne; ++l) { x[l] = xs0[get_j(l)*stride + get_k(l)]; } -#endif // defined(INT8_MMA_AVAILABLE) + } + + __device__ __forceinline__ void load_ldmatrix(const T * __restrict__ xs0, const int & stride) { +#ifdef NEW_MMA_AVAILABLE + int * xi = (int *) x; + const int * xs = (const int *) xs0 + (threadIdx.x%J)*stride; + asm("ldmatrix.sync.aligned.m8n8.x1.b16 {%0}, [%1];" + : "+r"(xi[0]) : "l"(xs)); +#else + load_generic(xs0, stride); +#endif // NEW_MMA_AVAILABLE } }; -struct mma_int_B_J8K8 { +template +struct mma_B_J8K8 { + static_assert(sizeof(T) == 4, "bad type size"); + static constexpr int J = 8; static constexpr int K = 8; static constexpr int ne = 2; - int x[ne] = {0}; + T x[ne]; static __device__ __forceinline__ int get_j(const int /* l */) { const int ret = threadIdx.x / (K/2); @@ -133,22 +235,31 @@ struct mma_int_B_J8K8 { return ret; } - __device__ __forceinline__ void load(const int * __restrict__ xs0, const int & stride) { -#if defined(INT8_MMA_AVAILABLE) && false // Loading as 4 byte values is faster - const int * xs = xs0 + (threadIdx.x%J)*stride + ((threadIdx.x/J)*(K/2)) % K; - asm("ldmatrix.sync.aligned.m8n8.x2.b16 {%0, %1}, [%2];" - : "+r"(x[0]), "+r"(x[1]) - : "l"(xs)); -#else + __device__ __forceinline__ void load_generic(const T * __restrict__ xs0, const int & stride) { #pragma unroll for (int l = 0; l < ne; ++l) { x[l] = xs0[get_j(l)*stride + get_k(l)]; } -#endif // defined(INT8_MMA_AVAILABLE) + } + + __device__ __forceinline__ void load_ldmatrix(const T * __restrict__ xs0, const int & stride) { +#ifdef NEW_MMA_AVAILABLE + int * xi = (int *) x; + const int * xs = (const int *) xs0 + (threadIdx.x%J)*stride + ((threadIdx.x/J)*(K/2)) % K; + asm("ldmatrix.sync.aligned.m8n8.x2.b16 {%0, %1}, [%2];" + : "+r"(xi[0]), "+r"(xi[1]) + : "l"(xs)); +#else + load_generic(xs0, stride); +#endif // NEW_MMA_AVAILABLE } }; -struct mma_int_C_I16J8 { +template +struct mma_C_I16J8 {}; + +template <> +struct mma_C_I16J8 { static constexpr int I = 16; static constexpr int J = 8; static constexpr int ne = 4; @@ -169,8 +280,8 @@ struct mma_int_C_I16J8 { return ret; } - __device__ __forceinline__ void mma_K4(const mma_int_A_I16K4 & mma_A, const mma_int_B_J8K4 & mma_B) { -#ifdef INT8_MMA_AVAILABLE + __device__ __forceinline__ void mma(const mma_A_I16K4 & mma_A, const mma_B_J8K4 & mma_B) { +#ifdef NEW_MMA_AVAILABLE #if __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE asm("mma.sync.aligned.m16n8k16.row.col.s32.s8.s8.s32 {%0, %1, %2, %3}, {%4, %5}, {%6}, {%0, %1, %2, %3};" : "+r"(x[0]), "+r"(x[1]), "+r"(x[2]), "+r"(x[3]) @@ -188,11 +299,11 @@ struct mma_int_C_I16J8 { GGML_UNUSED(mma_A); GGML_UNUSED(mma_B); NO_DEVICE_CODE; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } - __device__ __forceinline__ void mma_K8(const mma_int_A_I16K8 & mma_A, const mma_int_B_J8K8 & mma_B) { -#ifdef INT8_MMA_AVAILABLE + __device__ __forceinline__ void mma(const mma_A_I16K8 & mma_A, const mma_B_J8K8 & mma_B) { +#ifdef NEW_MMA_AVAILABLE #if __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE asm("mma.sync.aligned.m16n8k32.row.col.s32.s8.s8.s32 {%0, %1, %2, %3}, {%4, %5, %6, %7}, {%8, %9}, {%0, %1, %2, %3};" : "+r"(x[0]), "+r"(x[1]), "+r"(x[2]), "+r"(x[3]) @@ -216,6 +327,132 @@ struct mma_int_C_I16J8 { GGML_UNUSED(mma_A); GGML_UNUSED(mma_B); NO_DEVICE_CODE; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE + } +}; + +template <> +struct mma_C_I16J8 { + static constexpr int I = 16; + static constexpr int J = 4; + static constexpr int ne = 2; + + half2 x[ne] = {{0.0f, 0.0f}, {0.0f, 0.0f}}; + + static __device__ __forceinline__ int get_i(const int l) { + const int ret = l * (I/2) + threadIdx.x / J; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < I); + return ret; + } + + static __device__ __forceinline__ int get_j(const int /* l */) { + const int ret = threadIdx.x % J; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < J); + return ret; + } + + __device__ __forceinline__ void mma(const mma_A_I16K8 & mma_A, const mma_B_J8K8 & mma_B) { +#ifdef NEW_MMA_AVAILABLE + int * Axi = (int *) mma_A.x; + int * Bxi = (int *) mma_B.x; + int * xi = (int *) x; +#if __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE + asm("mma.sync.aligned.m16n8k16.row.col.f16.f16.f16.f16 {%0, %1}, {%2, %3, %4, %5}, {%6, %7}, {%0, %1};" + : "+r"(xi[0]), "+r"(xi[1]) + : "r"(Axi[0]), "r"(Axi[1]), "r"(Axi[2]), "r"(Axi[3]), "r"(Bxi[0]), "r"(Bxi[1])); +#else + // On Turing m16n8k16 mma is not available, use 2x m8n8k8 mma instead: + asm("mma.sync.aligned.m16n8k8.row.col.f16.f16.f16.f16 {%0, %1}, {%2, %3}, {%4}, {%0, %1};" + : "+r"(xi[0]), "+r"(xi[1]) + : "r"(Axi[0]), "r"(Axi[1]), "r"(Bxi[0])); + asm("mma.sync.aligned.m16n8k8.row.col.f16.f16.f16.f16 {%0, %1}, {%2, %3}, {%4}, {%0, %1};" + : "+r"(xi[0]), "+r"(xi[1]) + : "r"(Axi[2]), "r"(Axi[3]), "r"(Bxi[1])); +#endif // __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE +#else + GGML_UNUSED(mma_A); + GGML_UNUSED(mma_B); + NO_DEVICE_CODE; +#endif // NEW_MMA_AVAILABLE + } + + __device__ __forceinline__ mma_B_J8K8 to_mma_B() { + mma_B_J8K8 mma_B; + + int * xi = (int *) x; + int * Bxi = (int *) mma_B.x; + Bxi[0] = ggml_cuda_movmatrix(xi[0]); + Bxi[1] = ggml_cuda_movmatrix(xi[1]); + + return mma_B; + } +}; + +template <> +struct mma_C_I16J8 { + static constexpr int I = 16; + static constexpr int J = 8; + static constexpr int ne = 4; + + float x[ne] = {0.0f, 0.0f, 0.0f, 0.0f}; + + static __device__ __forceinline__ int get_i(const int l) { + const int ret = (l/2) * (I/2) + threadIdx.x / (J/2); + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < I); + return ret; + } + + static __device__ __forceinline__ int get_j(const int l) { + const int ret = 2 * (threadIdx.x % (J/2)) + l%2; + GGML_CUDA_ASSUME(ret >= 0); + GGML_CUDA_ASSUME(ret < J); + return ret; + } + + __device__ __forceinline__ void mma(const mma_A_I16K8 & mma_A, const mma_B_J8K8 & mma_B) { +#ifdef NEW_MMA_AVAILABLE + int * Axi = (int *) mma_A.x; + int * Bxi = (int *) mma_B.x; + int * xi = (int *) x; +#if __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE + asm("mma.sync.aligned.m16n8k16.row.col.f32.f16.f16.f32 {%0, %1, %2, %3}, {%4, %5, %6, %7}, {%8, %9}, {%0, %1, %2, %3};" + : "+r"(xi[0]), "+r"(xi[1]), "+r"(xi[2]), "+r"(xi[3]) + : "r"(Axi[0]), "r"(Axi[1]), "r"(Axi[2]), "r"(Axi[3]), "r"(Bxi[0]), "r"(Bxi[1])); +#else + // On Turing m16n8k16 mma is not available, use 2x m8n8k8 mma instead: + asm("mma.sync.aligned.m16n8k8.row.col.f32.f16.f16.f32 {%0, %1, %2, %3}, {%4, %5}, {%6}, {%0, %1, %2, %3};" + : "+r"(xi[0]), "+r"(xi[1]), "+r"(xi[2]), "+r"(xi[3]) + : "r"(Axi[0]), "r"(Axi[1]), "r"(Bxi[0])); + asm("mma.sync.aligned.m16n8k8.row.col.f32.f16.f16.f32 {%0, %1, %2, %3}, {%4, %5}, {%6}, {%0, %1, %2, %3};" + : "+r"(xi[0]), "+r"(xi[1]), "+r"(xi[2]), "+r"(xi[3]) + : "r"(Axi[2]), "r"(Axi[3]), "r"(Bxi[1])); +#endif // __CUDA_ARCH__ >= GGML_CUDA_CC_AMPERE +#else + GGML_UNUSED(mma_A); + GGML_UNUSED(mma_B); + NO_DEVICE_CODE; +#endif // NEW_MMA_AVAILABLE + } + + __device__ __forceinline__ mma_B_J8K8 to_mma_B() { + mma_B_J8K8 mma_B; + mma_B.x[0] = make_half2(x[0], x[1]); + mma_B.x[1] = make_half2(x[2], x[3]); + + int * Bxi = (int *) mma_B.x; + Bxi[0] = ggml_cuda_movmatrix(Bxi[0]); + Bxi[1] = ggml_cuda_movmatrix(Bxi[1]); + + return mma_B; + } + + __device__ __forceinline__ void load_generic(const float * __restrict__ xs0, const int & stride) { +#pragma unroll + for (int l = 0; l < ne; ++l) { + x[l] = xs0[get_j(l)*stride + get_i(l)]; + } } }; diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index 270251df4..83cb78cbd 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -132,7 +132,7 @@ bool ggml_cuda_should_use_mmq(enum ggml_type type, int cc, int64_t ne11) { return false; } - if (int8_mma_available(cc)) { + if (new_mma_available(cc)) { return true; } diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index 3cd508a1d..c05c84778 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -87,7 +87,7 @@ struct tile_x_sizes { }; static constexpr int get_mmq_x_max_host(const int cc) { - return int8_mma_available(cc) ? 128 : + return new_mma_available(cc) ? 128 : #ifdef GGML_CUDA_FORCE_MMQ cc >= GGML_CUDA_CC_VOLTA && cc < GGML_CUDA_CC_OFFSET_AMD ? 128 : 64; #else @@ -96,9 +96,9 @@ static constexpr int get_mmq_x_max_host(const int cc) { } static constexpr __device__ int get_mmq_x_max_device() { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE return 128; -#else // INT8_MMA_AVAILABLE +#else // NEW_MMA_AVAILABLE #if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) return 128; @@ -116,7 +116,7 @@ static constexpr __device__ int get_mmq_x_max_device() { #endif // __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA #endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } static constexpr int get_mmq_y_host(const int cc) { @@ -209,10 +209,10 @@ static constexpr __host__ __device__ int mmq_get_mma_tile_x_k(ggml_type type) { #define MMQ_TILE_Y_K (WARP_SIZE + WARP_SIZE/QI8_1) static int mmq_get_granularity_host(const int mmq_x, const int cc) { - return int8_mma_available(cc) && mmq_x >= 48 ? 16 : 8; + return new_mma_available(cc) && mmq_x >= 48 ? 16 : 8; } -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE static constexpr __device__ int mmq_get_granularity_device(const int mmq_x) { return mmq_x >= 48 ? 16 : 8; } @@ -220,21 +220,21 @@ static constexpr __device__ int mmq_get_granularity_device(const int mmq_x) { static constexpr __device__ int mmq_get_granularity_device(const int /* mmq_x */) { return 8; } -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE // ------------------------------------------------------------ template static __device__ __forceinline__ void load_tiles_q4_0( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + 2*WARP_SIZE); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q4_0, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI4_0; const int kqsx = threadIdx.x % QI4_0; @@ -250,12 +250,12 @@ template static __device__ __forceinlin const block_q4_0 * bxi = (const block_q4_0 *) x + kbx0 + i*stride + kbx; const int qs0 = get_int_b2(bxi->qs, kqsx); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + kbx*(2*QI4_0) + kqsx + 0] = __vsubss4((qs0 >> 0) & 0x0F0F0F0F, 0x08080808); x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + kbx*(2*QI4_0) + kqsx + QI4_0] = __vsubss4((qs0 >> 4) & 0x0F0F0F0F, 0x08080808); #else x_qs[i*(WARP_SIZE + 1) + threadIdx.x] = qs0; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI4_0; @@ -271,11 +271,11 @@ template static __device__ __forceinlin const block_q4_0 * bxi = (const block_q4_0 *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kbxd] = bxi->d; #else x_df[i*(WARP_SIZE/QI4_0) + i/QI4_0 + kbxd] = bxi->d; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -322,14 +322,14 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a( template static __device__ __forceinline__ void load_tiles_q4_1( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + 2*WARP_SIZE); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q4_1, mmq_y); int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI4_1; const int kqsx = threadIdx.x % QI4_1; @@ -345,12 +345,12 @@ template static __device__ __forceinlin const block_q4_1 * bxi = (const block_q4_1 *) x + kbx0 + i*stride + kbx; const int qs0 = get_int_b4(bxi->qs, kqsx); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kbx*(2*QI4_1) + kqsx + 0] = (qs0 >> 0) & 0x0F0F0F0F; x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kbx*(2*QI4_1) + kqsx + QI4_1] = (qs0 >> 4) & 0x0F0F0F0F; #else x_qs[i*(WARP_SIZE + 1) + threadIdx.x] = qs0; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI4_1; @@ -366,11 +366,11 @@ template static __device__ __forceinlin const block_q4_1 * bxi = (const block_q4_1 *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_dm[i*MMQ_MMA_TILE_X_K_Q8_1 + kbxd] = bxi->dm; #else x_dm[i*(WARP_SIZE/QI4_1) + i/QI4_1 + kbxd] = bxi->dm; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -417,14 +417,14 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a( template static __device__ __forceinline__ void load_tiles_q5_0( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q5_0, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI5_0; const int kqsx = threadIdx.x % QI5_0; @@ -456,13 +456,13 @@ template static __device__ __forceinlin qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 qs1 = __vsubss4(qs1, 0x10101010); // subtract 16 -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + kbx*(2*QI5_0) + kqsx + 0] = qs0; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + kbx*(2*QI5_0) + kqsx + QI5_0] = qs1; #else x_qs[i*(2*WARP_SIZE + 1) + kbx*(2*QI5_0) + kqsx + 0] = qs0; x_qs[i*(2*WARP_SIZE + 1) + kbx*(2*QI5_0) + kqsx + QI5_0] = qs1; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI5_0; @@ -478,25 +478,25 @@ template static __device__ __forceinlin const block_q5_0 * bxi = (const block_q5_0 *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kbxd] = bxi->d; #else x_df[i*(WARP_SIZE/QI5_0) + i/QI5_0 + kbxd] = bxi->d; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_q5_1( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + 2*WARP_SIZE); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q5_1, mmq_y); int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI5_1; const int kqsx = threadIdx.x % QI5_1; @@ -526,13 +526,13 @@ template static __device__ __forceinlin qs1 |= (qh << 2) & 0x00100000; // 18 -> 20 qs1 |= (qh << 9) & 0x10000000; // 19 -> 28 -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kbx*(2*QI5_1) + kqsx + 0] = qs0; x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kbx*(2*QI5_1) + kqsx + QI5_1] = qs1; #else x_qs[i*(2*WARP_SIZE + 1) + kbx*(2*QI5_1) + kqsx + 0] = qs0; x_qs[i*(2*WARP_SIZE + 1) + kbx*(2*QI5_1) + kqsx + QI5_1] = qs1; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI5_1; @@ -548,25 +548,25 @@ template static __device__ __forceinlin const block_q5_1 * bxi = (const block_q5_1 *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_dm[i*MMQ_MMA_TILE_X_K_Q8_1 + kbxd] = bxi->dm; #else x_dm[i*(WARP_SIZE/QI5_1) + i/QI5_1 + kbxd] = bxi->dm; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_q8_0( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_tile + 2*WARP_SIZE); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q8_0, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI8_0; const int kqsx = threadIdx.x % QI8_0; @@ -581,13 +581,13 @@ template static __device__ __forceinlin const block_q8_0 * bxi = (const block_q8_0 *) x + kbx0 + i*stride + kbx; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 0 + threadIdx.x] = get_int_b2(bxi[0].qs, kqsx); x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + WARP_SIZE + threadIdx.x] = get_int_b2(bxi[WARP_SIZE/QI8_0].qs, kqsx); #else x_qs[i*(2*WARP_SIZE + 1) + 0 + threadIdx.x] = get_int_b2(bxi[0].qs, kqsx); x_qs[i*(2*WARP_SIZE + 1) + WARP_SIZE + threadIdx.x] = get_int_b2(bxi[WARP_SIZE/QI8_0].qs, kqsx); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = 2*WARP_SIZE / QI8_0; @@ -603,11 +603,11 @@ template static __device__ __forceinlin const block_q8_0 * bxi = (const block_q8_0 *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kbxd] = bxi->d; #else x_df[i*(2*WARP_SIZE/QI8_0) + i/(QI8_0/2) + kbxd] = bxi->d; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -645,9 +645,9 @@ template static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { - typedef mma_int_A_I16K8 mma_A; - typedef mma_int_B_J8K8 mma_B; - typedef mma_int_C_I16J8 mma_C; + typedef mma_A_I16K8 mma_A; + typedef mma_B_J8K8 mma_B; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; @@ -672,7 +672,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += QI8_0) { const int k0 = k00 + k01; - A[n][k01/QI8_0].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q8_0 + k0, MMQ_MMA_TILE_X_K_Q8_0); + A[n][k01/QI8_0].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q8_0 + k0, MMQ_MMA_TILE_X_K_Q8_0); } #pragma unroll @@ -695,7 +695,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( mma_B B; float dB[mma_C::ne/2]; - B.load(y_qs + j0*MMQ_TILE_Y_K + k01, MMQ_TILE_Y_K); + B.load_generic(y_qs + j0*MMQ_TILE_Y_K + k01, MMQ_TILE_Y_K); // faster than load_ldmatrix #pragma unroll for (int l = 0; l < mma_C::ne/2; ++l) { @@ -711,7 +711,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( #pragma unroll for (int n = 0; n < ntx; ++n) { mma_C C; - C.mma_K8(A[n][k01/QI8_0], B); + C.mma(A[n][k01/QI8_0], B); #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { @@ -756,9 +756,9 @@ template static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { - typedef mma_int_A_I16K8 mma_A; - typedef mma_int_B_J8K8 mma_B; - typedef mma_int_C_I16J8 mma_C; + typedef mma_A_I16K8 mma_A; + typedef mma_B_J8K8 mma_B; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; @@ -782,7 +782,7 @@ static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += QI8_1) { const int k0 = k00 + k01; - A[n][k01/QI8_1].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q8_1 + k0, MMQ_MMA_TILE_X_K_Q8_1); + A[n][k01/QI8_1].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q8_1 + k0, MMQ_MMA_TILE_X_K_Q8_1); } #pragma unroll @@ -805,7 +805,7 @@ static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( mma_B B; float2 dsB[mma_C::ne/2]; - B.load(y_qs + j0*MMQ_TILE_Y_K + k01, MMQ_TILE_Y_K); + B.load_generic(y_qs + j0*MMQ_TILE_Y_K + k01, MMQ_TILE_Y_K); // faster than load_ldmatrix #pragma unroll for (int l = 0; l < mma_C::ne/2; ++l) { @@ -817,7 +817,7 @@ static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( #pragma unroll for (int n = 0; n < ntx; ++n) { mma_C C; - C.mma_K8(A[n][k01/QI8_1], B); + C.mma(A[n][k01/QI8_1], B); #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { @@ -864,12 +864,12 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE - typedef mma_int_A_I16K4 mma_A; - typedef mma_int_A_I16K8 mma_A_K8; - typedef mma_int_B_J8K4 mma_B; - typedef mma_int_C_I16J8 mma_C; + typedef mma_A_I16K4 mma_A; + typedef mma_A_I16K8 mma_A_K8; + typedef mma_B_J8K4 mma_B; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; @@ -893,7 +893,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += 8) { const int k0 = k00 + k01; - ((mma_A_K8 *) A[n])[k01/8].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q3_K + k0, MMQ_MMA_TILE_X_K_Q3_K); + ((mma_A_K8 *) A[n])[k01/8].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q3_K + k0, MMQ_MMA_TILE_X_K_Q3_K); } #pragma unroll @@ -916,8 +916,9 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( mma_B B[2]; float dB[mma_C::ne/2]; - B[0].load(y_qs + j0*MMQ_TILE_Y_K + (k01 + 0), MMQ_TILE_Y_K); - B[1].load(y_qs + j0*MMQ_TILE_Y_K + (k01 + mma_B::K), MMQ_TILE_Y_K); + // Here load_generic is faster than load_ldmatrix. + B[0].load_generic(y_qs + j0*MMQ_TILE_Y_K + (k01 + 0), MMQ_TILE_Y_K); + B[1].load_generic(y_qs + j0*MMQ_TILE_Y_K + (k01 + mma_B::K), MMQ_TILE_Y_K); #pragma unroll for (int l = 0; l < mma_C::ne/2; ++l) { @@ -929,8 +930,8 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( #pragma unroll for (int n = 0; n < ntx; ++n) { mma_C C[2]; - C[0].mma_K4(A[n][k01/4 + 0], B[0]); - C[1].mma_K4(A[n][k01/4 + 1], B[1]); + C[0].mma(A[n][k01/4 + 0], B[0]); + C[1].mma(A[n][k01/4 + 1], B[1]); #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { @@ -942,20 +943,20 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( #else GGML_UNUSED(x); GGML_UNUSED(y); GGML_UNUSED(sum); NO_DEVICE_CODE; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template static __device__ __forceinline__ void load_tiles_q2_K( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + 2*WARP_SIZE); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q2_K, mmq_y); int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % QI2_K; @@ -977,11 +978,11 @@ template static __device__ __forceinlin const int x_qs_k = (x_ql_0 >> (2*l)) & 0x03030303; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q2_K + k] = x_qs_k; #else x_qs[i*(2*WARP_SIZE + 1) + k] = x_qs_k; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int sc_m = bxi->scales[kqsx]; @@ -992,11 +993,11 @@ template static __device__ __forceinlin const half2 x_dm_ik = make_half2(bxi_dmf.x*(sc_m & 0x0F), bxi_dmf.y*(sc_m >> 4)); #endif // FAST_FP16_AVAILABLE -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_dm[i*MMQ_MMA_TILE_X_K_Q2_K + kqsx] = x_dm_ik; #else x_dm[i*(WARP_SIZE + 1) + kqsx] = x_dm_ik; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -1051,12 +1052,12 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE - typedef mma_int_A_I16K4 mma_A; - typedef mma_int_A_I16K8 mma_A_K8; - typedef mma_int_B_J8K4 mma_B; - typedef mma_int_C_I16J8 mma_C; + typedef mma_A_I16K4 mma_A; + typedef mma_A_I16K8 mma_A_K8; + typedef mma_B_J8K4 mma_B; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; @@ -1081,7 +1082,7 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += QI8_1) { const int k0 = k00 + k01; - ((mma_A_K8 *) A[n])[k01/QI8_1].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q2_K + k0, MMQ_MMA_TILE_X_K_Q2_K); + ((mma_A_K8 *) A[n])[k01/QI8_1].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q2_K + k0, MMQ_MMA_TILE_X_K_Q2_K); } } @@ -1118,24 +1119,25 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += QI8_1) { mma_B B[2]; - B[0].load(y_qs + j0*MMQ_TILE_Y_K + (k01 + 0), MMQ_TILE_Y_K); - B[1].load(y_qs + j0*MMQ_TILE_Y_K + (k01 + mma_B::K), MMQ_TILE_Y_K); + // Here load_generic is faster than load_ldmatrix. + B[0].load_generic(y_qs + j0*MMQ_TILE_Y_K + (k01 + 0), MMQ_TILE_Y_K); + B[1].load_generic(y_qs + j0*MMQ_TILE_Y_K + (k01 + mma_B::K), MMQ_TILE_Y_K); mma_C Cm[2]; if (k01 >= WARP_SIZE * 3/4) { mma_A A1; A1.x[0] = 0x01010101; A1.x[1] = 0x01010101; - Cm[0].mma_K4(A1, B[0]); - Cm[1].mma_K4(A1, B[1]); + Cm[0].mma(A1, B[0]); + Cm[1].mma(A1, B[1]); } #pragma unroll for (int n = 0; n < ntx; ++n) { mma_C Cd[2]; - Cd[0].mma_K4(A[n][k01/4 + 0], B[0]); - Cd[1].mma_K4(A[n][k01/4 + 1], B[1]); + Cd[0].mma(A[n][k01/4 + 0], B[0]); + Cd[1].mma(A[n][k01/4 + 1], B[1]); #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { @@ -1172,13 +1174,13 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( #else GGML_UNUSED(x); GGML_UNUSED(y); GGML_UNUSED(sum); NO_DEVICE_CODE; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template static __device__ __forceinline__ void load_tiles_q3_K( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else @@ -1186,7 +1188,7 @@ template static __device__ __forceinlin int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); int * x_sc = (int *) (x_df + txs.dm); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % QI3_K; @@ -1212,11 +1214,11 @@ template static __device__ __forceinlin const int x_qs_k = __vsubss4(x_ql_k | x_qh_k, 0x04040404); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q3_K + k] = x_qs_k; #else x_qs[i*(2*WARP_SIZE + 1) + k] = x_qs_k; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -1242,7 +1244,7 @@ template static __device__ __forceinlin const int sc = __vsubss4(sc_low | sc_high, 0x20202020); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE const int8_t * sc8 = (const int8_t *) ≻ const float d = bxi->d; @@ -1252,10 +1254,10 @@ template static __device__ __forceinlin } #else x_sc[i*(WARP_SIZE/8) + i/8 + threadIdx.x % (WARP_SIZE/8)] = sc; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } -#ifndef INT8_MMA_AVAILABLE +#ifndef NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps*WARP_SIZE) { int i = (i0 + threadIdx.y*WARP_SIZE + threadIdx.x) % mmq_y; @@ -1268,7 +1270,7 @@ template static __device__ __forceinlin x_df[i] = bxi->d; } -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template @@ -1317,7 +1319,7 @@ static __device__ __forceinline__ int unpack_scales_q45_K(const int * scales, co template static __device__ __forceinline__ void load_tiles_q4_K( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + 2*WARP_SIZE); #else @@ -1325,7 +1327,7 @@ template static __device__ __forceinlin int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + txs.qs); int * x_sc = (int *) (x_dm + txs.dm); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { @@ -1338,15 +1340,15 @@ template static __device__ __forceinlin const block_q4_K * bxi = (const block_q4_K *) x + kbx0 + i*stride; const int qs0 = get_int_b4(bxi->qs, threadIdx.x); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + 16*(threadIdx.x/8) + threadIdx.x % 8 + 0] = (qs0 >> 0) & 0x0F0F0F0F; x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + 16*(threadIdx.x/8) + threadIdx.x % 8 + 8] = (qs0 >> 4) & 0x0F0F0F0F; #else x_qs[i*(WARP_SIZE + 1) + threadIdx.x] = qs0; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps*16) { @@ -1407,7 +1409,7 @@ template static __device__ __forceinlin x_sc[i*(WARP_SIZE/8) + i/8 + ksc] = scales8; } -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template @@ -1446,7 +1448,7 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a( template static __device__ __forceinline__ void load_tiles_q5_K( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + WARP_SIZE*2); #else @@ -1454,7 +1456,7 @@ template static __device__ __forceinlin int * x_qs = (int *) x_tile; half2 * x_dm = (half2 *) (x_qs + txs.qs); int * x_sc = (int *) (x_dm + txs.dm); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { @@ -1478,16 +1480,16 @@ template static __device__ __forceinlin const int kq0 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + 0; const int kq1 = ky - ky % (QI5_K/2) + threadIdx.x % (QI5_K/4) + QI5_K/4; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kq0] = ql0 | qh0; x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + kq1] = ql1 | qh1; #else x_qs[i*(2*WARP_SIZE + 1) + kq0] = ql0 | qh0; x_qs[i*(2*WARP_SIZE + 1) + kq1] = ql1 | qh1; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps*16) { @@ -1548,7 +1550,7 @@ template static __device__ __forceinlin x_sc[i*(WARP_SIZE/8) + i/8 + ksc] = scales8; } -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template @@ -1587,7 +1589,7 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a( template static __device__ __forceinline__ void load_tiles_q6_K( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); int * x_sc = (int *) (x_df + WARP_SIZE/QI6_K); @@ -1596,7 +1598,7 @@ template static __device__ __forceinlin int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); int * x_sc = (int *) (x_df + txs.dm); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE #pragma unroll for (int i0 = 0; i0 < mmq_y; i0 += nwarps) { @@ -1619,13 +1621,13 @@ template static __device__ __forceinlin const int kq0 = 2*threadIdx.x - threadIdx.x % (QI6_K/2) + 0; const int kq1 = 2*threadIdx.x - threadIdx.x % (QI6_K/2) + QI6_K/2; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q6_K + kq0] = __vsubss4(ql0 | qh0, 0x20202020); x_qs[i*MMQ_MMA_TILE_X_K_Q6_K + kq1] = __vsubss4(ql1 | qh1, 0x20202020); #else x_qs[i*(2*WARP_SIZE + 1) + kq0] = __vsubss4(ql0 | qh0, 0x20202020); x_qs[i*(2*WARP_SIZE + 1) + kq1] = __vsubss4(ql1 | qh1, 0x20202020); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI6_K; // == 1 if QK_K == 256 @@ -1641,11 +1643,11 @@ template static __device__ __forceinlin const block_q6_K * bxi = (const block_q6_K *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q6_K + kbxd] = bxi->d; #else x_df[i*(WARP_SIZE/QI6_K) + i/QI6_K + kbxd] = bxi->d; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } #pragma unroll @@ -1658,11 +1660,11 @@ template static __device__ __forceinlin const block_q6_K * bxi = (const block_q6_K *) x + kbx0 + i*stride + (threadIdx.x % (WARP_SIZE/8)) / 4; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_sc[i*MMQ_MMA_TILE_X_K_Q6_K + threadIdx.x % (WARP_SIZE/8)] = get_int_b2(bxi->scales, threadIdx.x % (QI6_K/8)); #else x_sc[i*(WARP_SIZE/8) + i/8 + threadIdx.x % (WARP_SIZE/8)] = get_int_b2(bxi->scales, threadIdx.x % (QI6_K/8)); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -1702,11 +1704,11 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE - typedef mma_int_A_I16K4 mma_A; - typedef mma_int_B_J8K4 mma_B; - typedef mma_int_C_I16J8 mma_C; + typedef mma_A_I16K4 mma_A; + typedef mma_B_J8K4 mma_B; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; @@ -1732,8 +1734,8 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( for (int k01 = 0; k01 < WARP_SIZE; k01 += 8) { const int k0 = k00 + k01; - A[n][k01/4 + 0].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q6_K + (k0 + 0), MMQ_MMA_TILE_X_K_Q6_K); - A[n][k01/4 + 1].load(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q6_K + (k0 + mma_A::K), MMQ_MMA_TILE_X_K_Q6_K); + A[n][k01/4 + 0].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q6_K + (k0 + 0), MMQ_MMA_TILE_X_K_Q6_K); + A[n][k01/4 + 1].load_ldmatrix(x_qs + (i0 + n*mma_A::I)*MMQ_MMA_TILE_X_K_Q6_K + (k0 + mma_A::K), MMQ_MMA_TILE_X_K_Q6_K); } #pragma unroll @@ -1771,8 +1773,9 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( mma_B B[2]; float dB[mma_C::ne/2]; - B[0].load(y_qs + j0*MMQ_TILE_Y_K + 0 + k01, MMQ_TILE_Y_K); - B[1].load(y_qs + j0*MMQ_TILE_Y_K + mma_B::K + k01, MMQ_TILE_Y_K); + // Here load_generic is faster than load_ldmatrix. + B[0].load_generic(y_qs + j0*MMQ_TILE_Y_K + 0 + k01, MMQ_TILE_Y_K); + B[1].load_generic(y_qs + j0*MMQ_TILE_Y_K + mma_B::K + k01, MMQ_TILE_Y_K); #pragma unroll for (int l = 0; l < mma_C::ne/2; ++l) { @@ -1784,8 +1787,8 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( #pragma unroll for (int n = 0; n < ntx; ++n) { mma_C C[2]; - C[0].mma_K4(A[n][k01/4 + 0], B[0]); - C[1].mma_K4(A[n][k01/4 + 1], B[1]); + C[0].mma(A[n][k01/4 + 0], B[0]); + C[1].mma(A[n][k01/4 + 1], B[1]); #pragma unroll for (int l = 0; l < mma_C::ne; ++l) { @@ -1805,20 +1808,20 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( #else GGML_UNUSED(x); GGML_UNUSED(y); GGML_UNUSED(sum); NO_DEVICE_CODE; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } template static __device__ __forceinline__ void load_tiles_iq4_nl( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ4_NL, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = threadIdx.x / QI4_NL; const int kqsx = threadIdx.x % QI4_NL; @@ -1836,13 +1839,13 @@ template static __device__ __forceinlin const int aux_q4 = get_int_b2(bxi->qs, kqsx); const int2 v = get_int_from_table_16(aux_q4); const int k0 = 8 * (threadIdx.x / 4) + threadIdx.x % 4; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + k0 + 0] = v.x; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + k0 + 4] = v.y; #else x_qs[i*(2*WARP_SIZE + 1) + k0 + 0] = v.x; x_qs[i*(2*WARP_SIZE + 1) + k0 + 4] = v.y; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int blocks_per_tile_x_row = WARP_SIZE / QI4_NL; @@ -1858,25 +1861,25 @@ template static __device__ __forceinlin const block_iq4_nl * bxi = (const block_iq4_nl *) x + kbx0 + i*stride + kbxd; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kbxd] = __half2float(bxi->d); #else x_df[i*(WARP_SIZE/4) + i/4 + kbxd] = __half2float(bxi->d); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq2_xxs( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ2_XXS, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % (QI2_XXS/2); @@ -1905,36 +1908,36 @@ template static __device__ __forceinlin const int signs1 = __vcmpne4(((signs_packed & 0x30) << 3) | ((signs_packed & 0xC0) << 17), 0x00000000); const int grid1 = __vsub4(grid_pos[1] ^ signs1, signs1); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l + 0)] = grid0; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l + 1)] = grid1; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 0)] = grid0; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 1)] = grid1; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int ls = aux32 >> 28; const float d = bxi->d; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kqsx] = (ls*d + d/2)/4; #else x_df[i*(WARP_SIZE/4) + i/4 + kqsx] = (ls*d + d/2)/4; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq2_xs( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = MMQ_DP4A_TXS_Q8_0_16; int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % (QI2_XS/2); @@ -1959,38 +1962,38 @@ template static __device__ __forceinlin const int grid_l = __vsub4(grid_pos[0] ^ signs[0], signs[0]); const int grid_h = __vsub4(grid_pos[1] ^ signs[1], signs[1]); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q3_K + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*MMQ_MMA_TILE_X_K_Q3_K + 8*kqsx + (2*l + 1)] = grid_h; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 1)] = grid_h; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int ls = bxi->scales[kqsx]; const float d = bxi->d; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q3_K + 2*kqsx+0] = ((ls & 0x0F)*d + d/2)/4; x_df[i*MMQ_MMA_TILE_X_K_Q3_K + 2*kqsx+1] = ((ls >> 4)*d + d/2)/4; #else x_df[i*(2*WARP_SIZE*2/QI8_0) + i/(QI8_0/4) + 2*kqsx+0] = ((ls & 0x0F)*d + d/2)/4; x_df[i*(2*WARP_SIZE*2/QI8_0) + i/(QI8_0/4) + 2*kqsx+1] = ((ls >> 4)*d + d/2)/4; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq2_s( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ2_S, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % (QI2_S/2); @@ -2022,38 +2025,38 @@ template static __device__ __forceinlin const int grid_l = __vsub4(grid_pos[0] ^ signs0, signs0); const int grid_h = __vsub4(grid_pos[1] ^ signs1, signs1); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q3_K + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*MMQ_MMA_TILE_X_K_Q3_K + 8*kqsx + (2*l + 1)] = grid_h; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 1)] = grid_h; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int ls = bxi->scales[kqsx]; const float d = bxi->d; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q3_K + 2*kqsx+0] = ((ls & 0x0F)*d + d/2)/4; x_df[i*MMQ_MMA_TILE_X_K_Q3_K + 2*kqsx+1] = ((ls >> 4)*d + d/2)/4; #else x_df[i*(2*WARP_SIZE*2/QI8_0) + i/(QI8_0/4) + 2*kqsx+0] = ((ls & 0x0F)*d + d/2)/4; x_df[i*(2*WARP_SIZE*2/QI8_0) + i/(QI8_0/4) + 2*kqsx+1] = ((ls >> 4)*d + d/2)/4; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq3_xxs( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ3_XXS, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % (QI3_XXS/2); @@ -2080,36 +2083,36 @@ template static __device__ __forceinlin const int grid_l = __vsub4(grid_pos.x ^ signs[0], signs[0]); const int grid_h = __vsub4(grid_pos.y ^ signs[1], signs[1]); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l + 1)] = grid_h; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 0)] = grid_l; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l + 1)] = grid_h; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int ls = aux32 >> 28; const float d = bxi->d; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kqsx] = (ls*d + d/2)/2; #else x_df[i*(WARP_SIZE/4) + i/4 + kqsx] = (ls*d + d/2)/2; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq3_s( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ3_S, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % (QI3_S/2); @@ -2143,36 +2146,36 @@ template static __device__ __forceinlin const int grid_l = __vsub4(grid_pos.x ^ signs0, signs0); const int grid_h = __vsub4(grid_pos.y ^ signs1, signs1); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l+0)] = grid_l; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + 8*kqsx + (2*l+1)] = grid_h; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l+0)] = grid_l; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l+1)] = grid_h; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const int ls = 1 + 2*((bxi->scales[kqsx/2] >> (((2*kqsx) << 1) & 0x04)) & 0x0F); const float d = bxi->d; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + kqsx] = ls*d; #else x_df[i*(WARP_SIZE/4) + i/4 + kqsx] = ls*d; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq1_s( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; half2 * x_ds = (half2 *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ3_S, mmq_y); int * x_qs = (int *) x_tile; half2 * x_ds = (half2 *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kqsx = threadIdx.x % QI1_S; @@ -2198,37 +2201,37 @@ template static __device__ __forceinlin const int grid0 = (grid >> 0) & 0x0F0F0F0F; const int grid1 = (grid >> 4) & 0x0F0F0F0F; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + 8*kqsx + (2*l+0)] = grid0; x_qs[i*MMQ_MMA_TILE_X_K_Q8_1 + 8*kqsx + (2*l+1)] = grid1; #else x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l+0)] = grid0; x_qs[i*(2*WARP_SIZE + 1) + 8*kqsx + (2*l+1)] = grid1; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } const float d1q = __half2float(bxi->d) * (((qh >> 11) & 0x0E) + 1); const float delta = -1.0f + IQ1S_DELTA - (qh & 0x8000) * (2.0f*IQ1S_DELTA/0x8000); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_ds[i*MMQ_MMA_TILE_X_K_Q8_1 + kqsx] = make_half2(d1q, d1q*delta); #else x_ds[i*(WARP_SIZE/4) + i/4 + kqsx] = make_half2(d1q, d1q*delta); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } template static __device__ __forceinline__ void load_tiles_iq4_xs( const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + WARP_SIZE*2); #else constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_IQ4_XS, mmq_y); int * x_qs = (int *) x_tile; float * x_df = (float *) (x_qs + txs.qs); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE const int kbx = 0; // threadIdx.x / QI4_XS const int kqsx = threadIdx.x; // threadIdx.x % QI4_XS @@ -2246,13 +2249,13 @@ template static __device__ __forceinlin const int aux_q4 = get_int_b4(bxi->qs, kqsx); const int2 v = get_int_from_table_16(aux_q4); const int k0 = 8 * (threadIdx.x / 4) + threadIdx.x % 4; -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + k0 + 0] = v.x; x_qs[i*MMQ_MMA_TILE_X_K_Q8_0 + k0 + 4] = v.y; #else x_qs[i*(2*WARP_SIZE + 1) + k0 + 0] = v.x; x_qs[i*(2*WARP_SIZE + 1) + k0 + 4] = v.y; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } #pragma unroll @@ -2270,11 +2273,11 @@ template static __device__ __forceinlin const int ls = ((bxi->scales_l[(threadIdx.x % 8)/2] >> (4*(threadIdx.x % 2))) & 0x0F) | (((bxi->scales_h >> (2*(threadIdx.x % 8))) & 0x03) << 4); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE x_df[i*MMQ_MMA_TILE_X_K_Q8_0 + threadIdx.x % 8] = d * (ls - 32); #else x_df[i*(WARP_SIZE/4) + i/4 + threadIdx.x % 8] = d * (ls - 32); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE } } @@ -2307,16 +2310,16 @@ template static __device__ __forceinline__ void mmq_write_back_mma( const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max) { - typedef mma_int_C_I16J8 mma_C; + typedef mma_C_I16J8 mma_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); constexpr int rows_per_warp = 2 * granularity; constexpr int ntx = rows_per_warp/mma_C::I; // Number of x minitiles per warp. const int i0 = (threadIdx.y / ntx) * (ntx*mma_C::I); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE static_assert(nwarps*mma_C::I == mmq_y, "nwarps*mma_C::I != mmq_y"); -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += ntx*mma_C::J) { @@ -2505,13 +2508,13 @@ static __device__ void mul_mat_q_process_tile( int * tile_y = (int *) data_mul_mat_q; int * tile_x = tile_y + GGML_PAD(mmq_x*(WARP_SIZE + WARP_SIZE/QI8_1), nwarps*WARP_SIZE); -#ifdef INT8_MMA_AVAILABLE +#ifdef NEW_MMA_AVAILABLE constexpr vec_dot_mmq_t vec_dot = mmq_type_traits::vec_dot_mma; constexpr mmq_write_back_t write_back = mmq_write_back_mma; #else constexpr vec_dot_mmq_t vec_dot = mmq_type_traits::vec_dot_dp4a; constexpr mmq_write_back_t write_back = mmq_write_back_dp4a; -#endif // INT8_MMA_AVAILABLE +#endif // NEW_MMA_AVAILABLE constexpr int blocks_per_iter = MMQ_ITER_K / qk; @@ -2643,7 +2646,7 @@ static __global__ void mul_mat_q( const int jt = kbc / (blocks_per_ne00*nty); const int it = (kbc - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; - constexpr bool fixup = true; // Last index writes it data to fixup buffer to avoid data races with other blocks. + constexpr bool fixup = true; // Last index writes its data to fixup buffer to avoid data races with other blocks. mul_mat_q_process_tile (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, it, jt, kb0_start, kb0_stop); @@ -2749,7 +2752,7 @@ template static int mmq_get_shmem(const int mmq_x, const int mmq_y, const int cc) { const tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(type, mmq_y); const int mmq_tile_x_k = mmq_get_mma_tile_x_k(type); - const int shmem_x = int8_mma_available(cc) ? mmq_y*mmq_tile_x_k*sizeof(int) : txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int); + const int shmem_x = new_mma_available(cc) ? mmq_y*mmq_tile_x_k*sizeof(int) : txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int); const int shmem_y = mmq_x*sizeof(block_q8_1_mmq); return shmem_x + GGML_PAD(shmem_y, MMQ_NWARPS*WARP_SIZE*sizeof(int)); } diff --git a/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb16.cu b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb16.cu new file mode 100644 index 000000000..f09bdeff7 --- /dev/null +++ b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb16.cu @@ -0,0 +1,10 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../fattn-mma-f16.cuh" + +DECL_FATTN_MMA_F16_CASE(64, 16); +DECL_FATTN_MMA_F16_CASE(80, 16); +DECL_FATTN_MMA_F16_CASE(96, 16); +DECL_FATTN_MMA_F16_CASE(112, 16); +DECL_FATTN_MMA_F16_CASE(128, 16); +DECL_FATTN_MMA_F16_CASE(256, 16); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb32.cu b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb32.cu new file mode 100644 index 000000000..221108873 --- /dev/null +++ b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb32.cu @@ -0,0 +1,10 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../fattn-mma-f16.cuh" + +DECL_FATTN_MMA_F16_CASE(64, 32); +DECL_FATTN_MMA_F16_CASE(80, 32); +DECL_FATTN_MMA_F16_CASE(96, 32); +DECL_FATTN_MMA_F16_CASE(112, 32); +DECL_FATTN_MMA_F16_CASE(128, 32); +DECL_FATTN_MMA_F16_CASE(256, 32); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb64.cu b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb64.cu new file mode 100644 index 000000000..d24b08575 --- /dev/null +++ b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb64.cu @@ -0,0 +1,10 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../fattn-mma-f16.cuh" + +DECL_FATTN_MMA_F16_CASE(64, 64); +DECL_FATTN_MMA_F16_CASE(80, 64); +DECL_FATTN_MMA_F16_CASE(96, 64); +DECL_FATTN_MMA_F16_CASE(112, 64); +DECL_FATTN_MMA_F16_CASE(128, 64); +DECL_FATTN_MMA_F16_CASE(256, 64); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb8.cu b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb8.cu new file mode 100644 index 000000000..bdf86c0ea --- /dev/null +++ b/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-cpb8.cu @@ -0,0 +1,10 @@ +// This file has been autogenerated by generate_cu_files.py, do not edit manually. + +#include "../fattn-mma-f16.cuh" + +DECL_FATTN_MMA_F16_CASE(64, 8); +DECL_FATTN_MMA_F16_CASE(80, 8); +DECL_FATTN_MMA_F16_CASE(96, 8); +DECL_FATTN_MMA_F16_CASE(112, 8); +DECL_FATTN_MMA_F16_CASE(128, 8); +DECL_FATTN_MMA_F16_CASE(256, 8); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu b/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu deleted file mode 100644 index 2d94e65c2..000000000 --- a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb16.cu +++ /dev/null @@ -1,10 +0,0 @@ -// This file has been autogenerated by generate_cu_files.py, do not edit manually. - -#include "../fattn-wmma-f16.cuh" - -DECL_FATTN_WMMA_F16_CASE(64, 16, float); -DECL_FATTN_WMMA_F16_CASE(80, 16, float); -DECL_FATTN_WMMA_F16_CASE(96, 16, float); -DECL_FATTN_WMMA_F16_CASE(112, 16, float); -DECL_FATTN_WMMA_F16_CASE(128, 16, float); -DECL_FATTN_WMMA_F16_CASE(256, 16, float); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu b/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu deleted file mode 100644 index c3d9df3c4..000000000 --- a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqfloat-cpb32.cu +++ /dev/null @@ -1,9 +0,0 @@ -// This file has been autogenerated by generate_cu_files.py, do not edit manually. - -#include "../fattn-wmma-f16.cuh" - -DECL_FATTN_WMMA_F16_CASE(64, 32, float); -DECL_FATTN_WMMA_F16_CASE(80, 32, float); -DECL_FATTN_WMMA_F16_CASE(96, 32, float); -DECL_FATTN_WMMA_F16_CASE(112, 32, float); -DECL_FATTN_WMMA_F16_CASE(128, 32, float); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu b/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu deleted file mode 100644 index bb680e401..000000000 --- a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb16.cu +++ /dev/null @@ -1,10 +0,0 @@ -// This file has been autogenerated by generate_cu_files.py, do not edit manually. - -#include "../fattn-wmma-f16.cuh" - -DECL_FATTN_WMMA_F16_CASE(64, 16, half); -DECL_FATTN_WMMA_F16_CASE(80, 16, half); -DECL_FATTN_WMMA_F16_CASE(96, 16, half); -DECL_FATTN_WMMA_F16_CASE(112, 16, half); -DECL_FATTN_WMMA_F16_CASE(128, 16, half); -DECL_FATTN_WMMA_F16_CASE(256, 16, half); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu b/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu deleted file mode 100644 index 073f71b1f..000000000 --- a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb32.cu +++ /dev/null @@ -1,10 +0,0 @@ -// This file has been autogenerated by generate_cu_files.py, do not edit manually. - -#include "../fattn-wmma-f16.cuh" - -DECL_FATTN_WMMA_F16_CASE(64, 32, half); -DECL_FATTN_WMMA_F16_CASE(80, 32, half); -DECL_FATTN_WMMA_F16_CASE(96, 32, half); -DECL_FATTN_WMMA_F16_CASE(112, 32, half); -DECL_FATTN_WMMA_F16_CASE(128, 32, half); -DECL_FATTN_WMMA_F16_CASE(256, 32, half); diff --git a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu b/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu deleted file mode 100644 index d30710c5f..000000000 --- a/ggml/src/ggml-cuda/template-instances/fattn-wmma-f16-instance-kqhalf-cpb8.cu +++ /dev/null @@ -1,8 +0,0 @@ -// This file has been autogenerated by generate_cu_files.py, do not edit manually. - -#include "../fattn-wmma-f16.cuh" - -DECL_FATTN_WMMA_F16_CASE(64, 8, half); -DECL_FATTN_WMMA_F16_CASE(96, 8, half); -DECL_FATTN_WMMA_F16_CASE(128, 8, half); -DECL_FATTN_WMMA_F16_CASE(256, 8, half); diff --git a/ggml/src/ggml-cuda/template-instances/generate_cu_files.py b/ggml/src/ggml-cuda/template-instances/generate_cu_files.py index d7874e6ea..a2628f16e 100755 --- a/ggml/src/ggml-cuda/template-instances/generate_cu_files.py +++ b/ggml/src/ggml-cuda/template-instances/generate_cu_files.py @@ -12,13 +12,13 @@ SOURCE_FATTN_VEC = """// This file has been autogenerated by generate_cu_files.p DECL_FATTN_VEC_F{vkq_size}_CASE({head_size}, {type_k}, {type_v}); """ -SOURCE_FATTN_WMMA_START = """// This file has been autogenerated by generate_cu_files.py, do not edit manually. +SOURCE_FATTN_MMA_START = """// This file has been autogenerated by generate_cu_files.py, do not edit manually. -#include "../fattn-wmma-f16.cuh" +#include "../fattn-mma-f16.cuh" """ -SOURCE_FATTN_WMMA_CASE = "DECL_FATTN_WMMA_F16_CASE({head_size}, {cols_per_block}, {kq_acc_t});\n" +SOURCE_FATTN_MMA_CASE = "DECL_FATTN_MMA_F16_CASE({head_size}, {cols_per_block});\n" TYPES_MMQ = [ "GGML_TYPE_Q4_0", "GGML_TYPE_Q4_1", "GGML_TYPE_Q5_0", "GGML_TYPE_Q5_1", "GGML_TYPE_Q8_0", @@ -57,20 +57,12 @@ for vkq_size in [16, 32]: with open(f"fattn-vec-f{vkq_size}-instance-hs{head_size}-{get_short_name(type_k)}-{get_short_name(type_v)}.cu", "w") as f: f.write(SOURCE_FATTN_VEC.format(vkq_size=vkq_size, head_size=head_size, type_k=type_k, type_v=type_v)) -for kq_acc_t in ["half", "float"]: - for cols_per_block in [8, 16, 32]: - if kq_acc_t == "float" and cols_per_block == 8: - continue +for cols_per_block in [8, 16, 32, 64]: + with open(f"fattn-mma-f16-instance-cpb{cols_per_block}.cu", "w") as f: + f.write(SOURCE_FATTN_MMA_START) - with open(f"fattn-wmma-f16-instance-kq{kq_acc_t}-cpb{cols_per_block}.cu", "w") as f: - f.write(SOURCE_FATTN_WMMA_START) - - for head_size in [64, 80, 96, 112, 128, 256]: - if cols_per_block == 8 and head_size % 32 != 0: # wmma fragment is 8x32 - continue - if kq_acc_t == "float" and cols_per_block == 32 and head_size == 256: # register spilling, bad performance - continue - f.write(SOURCE_FATTN_WMMA_CASE.format(kq_acc_t=kq_acc_t, cols_per_block=cols_per_block, head_size=head_size)) + for head_size in [64, 80, 96, 112, 128, 256]: + f.write(SOURCE_FATTN_MMA_CASE.format(cols_per_block=cols_per_block, head_size=head_size)) for type in TYPES_MMQ: with open(f"mmq-instance-{get_short_name(type)}.cu", "w") as f: diff --git a/ggml/src/ggml-cuda/vendors/hip.h b/ggml/src/ggml-cuda/vendors/hip.h index 8594093f0..129478ed7 100644 --- a/ggml/src/ggml-cuda/vendors/hip.h +++ b/ggml/src/ggml-cuda/vendors/hip.h @@ -25,6 +25,7 @@ #define CU_MEM_LOCATION_TYPE_DEVICE hipMemLocationTypeDevice #define CU_MEM_ACCESS_FLAGS_PROT_READWRITE hipMemAccessFlagsProtReadWrite #define CU_CHECK(fn) {hipError_t err = fn; if(err != hipSuccess) { GGML_ABORT("HipVMM Failure: %s\n", hipGetErrorString(err)); }} +#define __shfl_sync(mask, var, laneMask, width) __shfl(var, laneMask, width) #define __shfl_xor_sync(mask, var, laneMask, width) __shfl_xor(var, laneMask, width) #define cublasComputeType_t hipblasDatatype_t //deprecated, new hipblasComputeType_t not in 5.6 #define cublasCreate hipblasCreate diff --git a/ggml/src/ggml-hip/CMakeLists.txt b/ggml/src/ggml-hip/CMakeLists.txt index 7a877bdc1..eb03e10fa 100644 --- a/ggml/src/ggml-hip/CMakeLists.txt +++ b/ggml/src/ggml-hip/CMakeLists.txt @@ -50,7 +50,7 @@ file(GLOB GGML_HEADERS_ROCM "../ggml-cuda/*.cuh") list(APPEND GGML_HEADERS_ROCM "../../include/ggml-cuda.h") file(GLOB GGML_SOURCES_ROCM "../ggml-cuda/*.cu") -file(GLOB SRCS "../ggml-cuda/template-instances/fattn-wmma*.cu") +file(GLOB SRCS "../ggml-cuda/template-instances/fattn-mma*.cu") list(APPEND GGML_SOURCES_ROCM ${SRCS}) file(GLOB SRCS "../ggml-cuda/template-instances/mmq*.cu") list(APPEND GGML_SOURCES_ROCM ${SRCS}) diff --git a/ggml/src/ggml-musa/CMakeLists.txt b/ggml/src/ggml-musa/CMakeLists.txt index 415b2b2e0..2f555416e 100644 --- a/ggml/src/ggml-musa/CMakeLists.txt +++ b/ggml/src/ggml-musa/CMakeLists.txt @@ -29,7 +29,7 @@ if (MUSAToolkit_FOUND) list(APPEND GGML_HEADERS_MUSA "../../include/ggml-cuda.h") file(GLOB GGML_SOURCES_MUSA "../ggml-cuda/*.cu") - file(GLOB SRCS "../ggml-cuda/template-instances/fattn-wmma*.cu") + file(GLOB SRCS "../ggml-cuda/template-instances/fattn-mma*.cu") list(APPEND GGML_SOURCES_MUSA ${SRCS}) file(GLOB SRCS "../ggml-cuda/template-instances/mmq*.cu") list(APPEND GGML_SOURCES_MUSA ${SRCS}) From 90f9b88afb6447d3929843a2aa98c0f11074762d Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Sun, 2 Feb 2025 19:58:34 +0000 Subject: [PATCH 099/162] nit: more informative crash when grammar sampler fails (#11593) --- src/llama-grammar.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/llama-grammar.cpp b/src/llama-grammar.cpp index 6be5cbe0e..9b518d1ac 100644 --- a/src/llama-grammar.cpp +++ b/src/llama-grammar.cpp @@ -1213,5 +1213,7 @@ void llama_grammar_accept_str(struct llama_grammar & grammar, const std::string } grammar.partial_utf8 = decoded.second; - GGML_ASSERT(!grammar.stacks.empty()); + if (grammar.stacks.empty()) { + throw std::runtime_error("Unexpected empty grammar stack after accepting piece: " + piece); + } } From 4d0598e1445a64c99cf2faac72f8d5d023f1e6a1 Mon Sep 17 00:00:00 2001 From: uvos Date: Sun, 2 Feb 2025 22:08:05 +0100 Subject: [PATCH 100/162] HIP: add GGML_CUDA_CC_IS_* for amd familys as increasing cc archtectures for amd gpus are not supersets of eatch other (#11601) This fixes a bug where RDNA1 gpus other than gfx1010 where not handled correctly --- ggml/src/ggml-cuda/common.cuh | 7 +++++++ ggml/src/ggml-cuda/ggml-cuda.cu | 4 ++-- ggml/src/ggml-cuda/mmq.cu | 2 +- ggml/src/ggml-cuda/mmq.cuh | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 88be8fc8a..232163c1c 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -61,6 +61,13 @@ #define GGML_CUDA_CC_RDNA2 (GGML_CUDA_CC_OFFSET_AMD + 0x1030) // RX 6000, minimum for dp4a #define GGML_CUDA_CC_RDNA3 (GGML_CUDA_CC_OFFSET_AMD + 0x1100) // RX 7000, minimum for WMMA +#define GGML_CUDA_CC_IS_RDNA(cc) (cc >= GGML_CUDA_CC_RDNA1) +#define GGML_CUDA_CC_IS_RDNA1(cc) (cc >= GGML_CUDA_CC_RDNA1 && cc < GGML_CUDA_CC_RDNA2) +#define GGML_CUDA_CC_IS_RDNA2(cc) (cc >= GGML_CUDA_CC_RDNA2 && cc < GGML_CUDA_CC_RDNA3) +#define GGML_CUDA_CC_IS_RDNA3(cc) (cc >= GGML_CUDA_CC_RDNA3) +#define GGML_CUDA_CC_IS_GCN(cc) (cc > GGML_CUDA_CC_OFFSET_AMD && cc < GGML_CUDA_CC_CDNA) +#define GGML_CUDA_CC_IS_CDNA(cc) (cc >= GGML_CUDA_CC_CDNA && cc < GGML_CUDA_CC_RDNA1) + #define GGML_CUDA_CC_QY1 210 #define GGML_CUDA_CC_QY2 220 diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 383131c77..bda10aec1 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1205,7 +1205,7 @@ static void ggml_cuda_op_mul_mat_cublas( CUBLAS_CHECK(cublasSetStream(ctx.cublas_handle(id), stream)); - if (compute_capability == GGML_CUDA_CC_CDNA) { + if (GGML_CUDA_CC_IS_CDNA(compute_capability)) { const float alpha = 1.0f; const float beta = 0.0f; CUBLAS_CHECK( @@ -1750,7 +1750,7 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co beta = &beta_f32; } - if (ggml_cuda_info().devices[ctx.device].cc == GGML_CUDA_CC_CDNA) { + if (GGML_CUDA_CC_IS_CDNA(ggml_cuda_info().devices[ctx.device].cc)) { cu_compute_type = CUBLAS_COMPUTE_32F; alpha = &alpha_f32; beta = &beta_f32; diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index 83cb78cbd..45212f66c 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -148,5 +148,5 @@ bool ggml_cuda_should_use_mmq(enum ggml_type type, int cc, int64_t ne11) { return cc < GGML_CUDA_CC_VOLTA || ne11 < MMQ_DP4A_MAX_BATCH_SIZE; } - return (cc < GGML_CUDA_CC_RDNA3 && cc != GGML_CUDA_CC_CDNA && cc != GGML_CUDA_CC_VEGA20) || ne11 < MMQ_DP4A_MAX_BATCH_SIZE; + return (!GGML_CUDA_CC_IS_RDNA3(cc) && !GGML_CUDA_CC_IS_CDNA(cc) && !GGML_CUDA_CC_IS_GCN(cc)) || ne11 < MMQ_DP4A_MAX_BATCH_SIZE; } diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index c05c84778..7a2c4d85b 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -120,7 +120,7 @@ static constexpr __device__ int get_mmq_x_max_device() { } static constexpr int get_mmq_y_host(const int cc) { - return cc >= GGML_CUDA_CC_OFFSET_AMD ? (cc == GGML_CUDA_CC_RDNA1 ? 64 : 128) : (cc >= GGML_CUDA_CC_VOLTA ? 128 : 64); + return cc >= GGML_CUDA_CC_OFFSET_AMD ? (GGML_CUDA_CC_IS_RDNA1(cc) ? 64 : 128) : (cc >= GGML_CUDA_CC_VOLTA ? 128 : 64); } static constexpr __device__ int get_mmq_y_device() { From 396856b40029dd6747d2fbdb179e828683418045 Mon Sep 17 00:00:00 2001 From: uvos Date: Sun, 2 Feb 2025 22:40:09 +0100 Subject: [PATCH 101/162] CUDA/HIP: add support for selectable warp size to mmv (#11519) CUDA/HIP: add support for selectable warp size to mmv --- ggml/src/ggml-cuda/common.cuh | 8 +++++++ ggml/src/ggml-cuda/mmv.cu | 38 ++++++++++++++++++++------------ ggml/src/ggml-cuda/vendors/hip.h | 2 ++ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 232163c1c..174916bc9 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -176,6 +176,14 @@ static constexpr bool new_mma_available(const int cc) { return cc < GGML_CUDA_CC_OFFSET_AMD && cc >= GGML_CUDA_CC_TURING; } +static constexpr __device__ int ggml_cuda_get_physical_warp_size() { +#if defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) + return __AMDGCN_WAVEFRONT_SIZE; +#else + return 32; +#endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) +} + [[noreturn]] static __device__ void no_device_code( const char * file_name, const int line, const char * function_name, const int arch, const char * arch_list) { diff --git a/ggml/src/ggml-cuda/mmv.cu b/ggml/src/ggml-cuda/mmv.cu index ac45f2d17..5a9ddd958 100644 --- a/ggml/src/ggml-cuda/mmv.cu +++ b/ggml/src/ggml-cuda/mmv.cu @@ -5,9 +5,10 @@ template static __global__ void mul_mat_vec( const T * __restrict__ x, const float * __restrict__ y, float * __restrict__ dst, const int64_t ncols2, const int64_t stride_row, const int64_t channel_ratio, const int64_t stride_channel_x, const int64_t stride_channel_y, const int64_t stride_channel_dst) { - const int64_t row = blockIdx.x; - const int64_t channel = blockIdx.z; - const int tid = threadIdx.x; + const int64_t row = blockIdx.x; + const int64_t channel = blockIdx.z; + const int tid = threadIdx.x; + constexpr int warp_size = ggml_cuda_get_physical_warp_size(); x += (channel/channel_ratio)*stride_channel_x + row*stride_row; y += channel *stride_channel_y; @@ -18,8 +19,8 @@ static __global__ void mul_mat_vec( extern __shared__ char data_mmv[]; float * buf_iw = (float *) data_mmv; - if (block_size > WARP_SIZE) { - if (tid < WARP_SIZE) { + if (block_size > warp_size) { + if (tid < warp_size) { buf_iw[tid] = 0.0f; } __syncthreads(); @@ -67,16 +68,16 @@ static __global__ void mul_mat_vec( static_assert(std::is_same::value, "unsupported type"); } - sumf = warp_reduce_sum(sumf); + sumf = warp_reduce_sum(sumf); - if (block_size > WARP_SIZE) { - buf_iw[tid/WARP_SIZE] = sumf; + if (block_size > warp_size) { + buf_iw[tid/warp_size] = sumf; __syncthreads(); - if (tid >= WARP_SIZE) { + if (tid >= warp_size) { return; } sumf = buf_iw[tid]; - sumf = warp_reduce_sum(sumf); + sumf = warp_reduce_sum(sumf); } if (tid != 0) { @@ -96,10 +97,19 @@ static void launch_mul_mat_vec_cuda( GGML_ASSERT(stride_row % 2 == 0); GGML_ASSERT(nchannels_y % nchannels_x == 0); const int64_t channel_ratio = nchannels_y / nchannels_x; + int device; + int warp_size; - int64_t block_size_best = WARP_SIZE; - int64_t niter_best = (ncols + 2*WARP_SIZE - 1) / (2*WARP_SIZE); - for (int64_t block_size = 2*WARP_SIZE; block_size <= 256; block_size += WARP_SIZE) { + CUDA_CHECK(cudaGetDevice(&device)); + warp_size = ggml_cuda_info().devices[device].warp_size; + + int64_t block_size_best = warp_size; + int64_t niter_best = (ncols + 2*warp_size - 1) / (2*warp_size); + int64_t max_block_size = 256; + if(ggml_cuda_info().devices[device].cc > GGML_CUDA_CC_OFFSET_AMD && ggml_cuda_info().devices[device].cc < GGML_CUDA_CC_RDNA1) { + max_block_size = 128; + } + for (int64_t block_size = 2*warp_size; block_size <= max_block_size; block_size += warp_size) { const int64_t niter = (ncols + 2*block_size - 1) / (2*block_size); if (niter < niter_best) { niter_best = niter; @@ -107,7 +117,7 @@ static void launch_mul_mat_vec_cuda( } } - const int smem = WARP_SIZE*sizeof(float); + const int smem = warp_size*sizeof(float); const dim3 block_nums(nrows, 1, nchannels_y); const dim3 block_dims(block_size_best, 1, 1); switch (block_size_best) { diff --git a/ggml/src/ggml-cuda/vendors/hip.h b/ggml/src/ggml-cuda/vendors/hip.h index 129478ed7..81964611c 100644 --- a/ggml/src/ggml-cuda/vendors/hip.h +++ b/ggml/src/ggml-cuda/vendors/hip.h @@ -1,5 +1,6 @@ #pragma once +#define HIP_ENABLE_WARP_SYNC_BUILTINS 1 #include #include #include @@ -8,6 +9,7 @@ // for rocblas_initialize() #include "rocblas/rocblas.h" #endif // __HIP_PLATFORM_AMD__ + #define CUBLAS_COMPUTE_16F HIPBLAS_R_16F #define CUBLAS_COMPUTE_32F HIPBLAS_R_32F #define CUBLAS_COMPUTE_32F_FAST_16F HIPBLAS_R_32F From 6eecde3cc8fda44da7794042e3668de4af3c32c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 2 Feb 2025 23:48:29 +0100 Subject: [PATCH 102/162] HIP: fix flash_attn_stream_k_fixup warning (#11604) --- ggml/src/ggml-cuda/fattn-common.cuh | 10 ++++++++++ ggml/src/ggml-cuda/softmax.cu | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/fattn-common.cuh b/ggml/src/ggml-cuda/fattn-common.cuh index cfd7c0f44..d40ee2da4 100644 --- a/ggml/src/ggml-cuda/fattn-common.cuh +++ b/ggml/src/ggml-cuda/fattn-common.cuh @@ -516,6 +516,12 @@ constexpr __device__ dequantize_1_f32_t get_dequantize_1_f32(ggml_type type_V) { nullptr; } +// The HIP compiler for some reason complains that it can't unroll a loop because of the jt*ncols + j >= ne01 conditional. +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpass-failed" +#endif // __clang__ + template // D == head size #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) __launch_bounds__(D, 1) @@ -614,6 +620,10 @@ static __global__ void flash_attn_stream_k_fixup( } } +#ifdef __clang__ +#pragma clang diagnostic pop +#endif // __clang__ + template // D == head size #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) __launch_bounds__(D, 1) diff --git a/ggml/src/ggml-cuda/softmax.cu b/ggml/src/ggml-cuda/softmax.cu index da377200e..aac6e0999 100644 --- a/ggml/src/ggml-cuda/softmax.cu +++ b/ggml/src/ggml-cuda/softmax.cu @@ -18,7 +18,7 @@ __device__ float __forceinline__ t2f32(half val) { #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpass-failed" -#endif +#endif // __clang__ template static __global__ void soft_max_f32( const float * x, const T * mask, float * dst, const int ncols_par, const int nrows_y, @@ -126,7 +126,7 @@ static __global__ void soft_max_f32( } #ifdef __clang__ #pragma clang diagnostic pop -#endif +#endif // __clang__ static __global__ void soft_max_back_f32( const float * grad, const float * dstf, float * dst, const int ncols, const float scale) { From d92cb67e37abc23b1c6f7b0ef27a9889da8537e3 Mon Sep 17 00:00:00 2001 From: mashdragon <122402293+mashdragon@users.noreply.github.com> Date: Mon, 3 Feb 2025 09:42:55 +0000 Subject: [PATCH 103/162] server : (webui) Fix Shift+Enter handling (#11609) * Fix Shift+Enter handling `exact` on the Enter handler means the message is not sent when Shift+Enter is pressed anyway * build index.html.gz --------- Co-authored-by: Xuan Son Nguyen --- examples/server/public/index.html.gz | Bin 1207150 -> 1207129 bytes examples/server/webui/index.html | 1 - 2 files changed, 1 deletion(-) diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index 582ccc0d3f8d07ce79dd9e978772f9c5ea85c426..3a2529aa2fb84485aa480d3d476e5ef27eab8e27 100644 GIT binary patch delta 8942 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 IBq|0Y08m?OdH?_b delta 8964 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 diff --git a/examples/server/webui/index.html b/examples/server/webui/index.html index d3893ea4e..882570c81 100644 --- a/examples/server/webui/index.html +++ b/examples/server/webui/index.html @@ -154,7 +154,6 @@ placeholder="Type a message (Shift+Enter to add a new line)" v-model="inputMsg" @keydown.enter.exact.prevent="sendMessage" - @keydown.enter.shift.exact.prevent="inputMsg += '\n'" :disabled="isGenerating" id="msg-input" dir="auto" From 21c84b5d2dc04050714567501bf78762bfa17846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Mon, 3 Feb 2025 13:25:56 +0100 Subject: [PATCH 104/162] CUDA: fix Volta FlashAttention logic (#11615) --- ggml/src/ggml-cuda/fattn-wmma-f16.cu | 2 +- ggml/src/ggml-cuda/fattn.cu | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/fattn-wmma-f16.cu b/ggml/src/ggml-cuda/fattn-wmma-f16.cu index 1054ff95d..45702ad65 100644 --- a/ggml/src/ggml-cuda/fattn-wmma-f16.cu +++ b/ggml/src/ggml-cuda/fattn-wmma-f16.cu @@ -561,7 +561,7 @@ void ggml_cuda_flash_attn_ext_wmma_f16(ggml_backend_cuda_context & ctx, ggml_ten ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); break; // case 256: - // ggml_cuda_flash_attn_ext_wmma_f16_case<128, cols_per_block, float>(ctx, dst); + // ggml_cuda_flash_attn_ext_wmma_f16_case<256, cols_per_block, float>(ctx, dst); // break; default: GGML_ABORT("fatal error"); diff --git a/ggml/src/ggml-cuda/fattn.cu b/ggml/src/ggml-cuda/fattn.cu index b1e66d470..b0cf152f5 100644 --- a/ggml/src/ggml-cuda/fattn.cu +++ b/ggml/src/ggml-cuda/fattn.cu @@ -235,7 +235,7 @@ void ggml_cuda_flash_attn_ext(ggml_backend_cuda_context & ctx, ggml_tensor * dst return; } - if (!new_mma_available(cc)) { + if (!fp16_mma_available(cc)) { if (prec == GGML_PREC_DEFAULT) { if (Q->ne[1] <= 8) { ggml_cuda_flash_attn_ext_vec_f16(ctx, dst); @@ -265,6 +265,7 @@ void ggml_cuda_flash_attn_ext(ggml_backend_cuda_context & ctx, ggml_tensor * dst // The MMA implementation needs Turing or newer, use the old WMMA code for Volta: if (cc == GGML_CUDA_CC_VOLTA) { ggml_cuda_flash_attn_ext_wmma_f16(ctx, dst); + return; } ggml_cuda_flash_attn_ext_mma_f16(ctx, dst); From 8ec05832fa8409c49b3bbd13f957c6ae8486e618 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 3 Feb 2025 14:57:08 +0200 Subject: [PATCH 105/162] sync : ggml --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index ddb9d817e..34f1cbf69 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -32f0b85987396945afea2291d5f4c5862434292b +498e0ecd2c4f9379439fd413805af10e8e9ff349 From 5598f475be3e31430fbe17ebb85654ec90dc201e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 3 Feb 2025 16:45:38 +0100 Subject: [PATCH 106/162] server : remove CPPHTTPLIB_NO_EXCEPTIONS define (#11622) This commit removes the CPPHTTPLIB_NO_EXCEPTIONS define from the server code. The motivation for this is that when using a debug build the server would crash when an exception was throws and terminate the server process, as it was unhandled. When CPPHTTPLIB_NO_EXCEPTIONS is set cpp_httplib will not call the exception handler, which would normally return a 500 error to the client. This caused tests to fail when using a debug build. Fixes: https://github.com/ggerganov/llama.cpp/issues/11613 --- examples/server/utils.hpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index fefdce55b..5f97df5fd 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -5,10 +5,6 @@ #include "llama.h" #include "common/base64.hpp" -#ifndef NDEBUG -// crash the server in debug mode, otherwise send an http 500 error -#define CPPHTTPLIB_NO_EXCEPTIONS 1 -#endif // increase max payload length to allow use of larger context size #define CPPHTTPLIB_FORM_URL_ENCODED_PAYLOAD_MAX_LENGTH 1048576 #include "httplib.h" From 1d1e6a90bcf485ad2dee309c31cf19bd802465e5 Mon Sep 17 00:00:00 2001 From: Woof Dog <197125663+woof-dog@users.noreply.github.com> Date: Mon, 3 Feb 2025 22:16:27 +0000 Subject: [PATCH 107/162] server : (webui) allow typing and submitting during llm response (#11626) --- examples/server/public/index.html.gz | Bin 1207129 -> 1207175 bytes examples/server/webui/index.html | 1 - examples/server/webui/src/main.js | 8 ++++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index 3a2529aa2fb84485aa480d3d476e5ef27eab8e27..df3cb1bef96b805742b458d0abf6c9b16826fae8 100644 GIT binary patch delta 868279 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%0D17m!M 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 z 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

_pZVT>z$>9H6Mvnd? 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

((rM?vjx6-|acui#FGEPVt@$&ORy*HF$l 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