|
@@ -5,6 +5,12 @@
|
|
|
#include <fstream>
|
|
#include <fstream>
|
|
|
#include <regex>
|
|
#include <regex>
|
|
|
|
|
|
|
|
|
|
+ #if defined(_MSC_VER) || defined(__MINGW32__)
|
|
|
|
|
+ #include <malloc.h> // using malloc.h with MSC/MINGW
|
|
|
|
|
+ #elif !defined(__FreeBSD__)
|
|
|
|
|
+ #include <alloca.h>
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|
bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|
|
for (int i = 1; i < argc; i++) {
|
|
for (int i = 1; i < argc; i++) {
|
|
|
std::string arg = argv[i];
|
|
std::string arg = argv[i];
|
|
@@ -472,7 +478,8 @@ size_t ggml_quantize_q4_0(float * src, void * dst, int n, int k, int qk, int64_t
|
|
|
|
|
|
|
|
assert(k % qk == 0);
|
|
assert(k % qk == 0);
|
|
|
|
|
|
|
|
- uint8_t pp[qk/2];
|
|
|
|
|
|
|
+ const size_t pp_size = qk / 2;
|
|
|
|
|
+ uint8_t *pp = static_cast<uint8_t*>(alloca(pp_size));
|
|
|
|
|
|
|
|
char * pdst = (char *) dst;
|
|
char * pdst = (char *) dst;
|
|
|
|
|
|
|
@@ -511,7 +518,7 @@ size_t ggml_quantize_q4_0(float * src, void * dst, int n, int k, int qk, int64_t
|
|
|
pp[l/2] = vi0 | (vi1 << 4);
|
|
pp[l/2] = vi0 | (vi1 << 4);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- memcpy(pb, pp, sizeof(pp));
|
|
|
|
|
|
|
+ memcpy(pb, pp, pp_size);
|
|
|
pb += bs;
|
|
pb += bs;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -526,7 +533,8 @@ size_t ggml_quantize_q4_1(float * src, void * dst, int n, int k, int qk, int64_t
|
|
|
|
|
|
|
|
assert(k % qk == 0);
|
|
assert(k % qk == 0);
|
|
|
|
|
|
|
|
- uint8_t pp[qk/2];
|
|
|
|
|
|
|
+ const size_t pp_size = qk / 2;
|
|
|
|
|
+ uint8_t *pp = static_cast<uint8_t*>(alloca(pp_size));
|
|
|
|
|
|
|
|
char * pdst = (char *) dst;
|
|
char * pdst = (char *) dst;
|
|
|
|
|
|
|
@@ -570,7 +578,7 @@ size_t ggml_quantize_q4_1(float * src, void * dst, int n, int k, int qk, int64_t
|
|
|
pp[l/2] = vi0 | (vi1 << 4);
|
|
pp[l/2] = vi0 | (vi1 << 4);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- memcpy(pb + i*qk/2, pp, sizeof(pp));
|
|
|
|
|
|
|
+ memcpy(pb + i*qk/2, pp, pp_size);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|