mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2025-01-06 02:48:57 +01:00
gguf : simplify gguf_get_val
This commit is contained in:
parent
cb871fa022
commit
d313c0fa33
68
ggml.c
68
ggml.c
@ -18297,6 +18297,19 @@ size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, i
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
enum gguf_type {
|
||||||
|
GGUF_TYPE_UINT8 = 0,
|
||||||
|
GGUF_TYPE_INT8 = 1,
|
||||||
|
GGUF_TYPE_UINT16 = 2,
|
||||||
|
GGUF_TYPE_INT16 = 3,
|
||||||
|
GGUF_TYPE_UINT32 = 4,
|
||||||
|
GGUF_TYPE_INT32 = 5,
|
||||||
|
GGUF_TYPE_FLOAT32 = 6,
|
||||||
|
GGUF_TYPE_BOOL = 7,
|
||||||
|
GGUF_TYPE_STRING = 8,
|
||||||
|
GGUF_TYPE_ARRAY = 9,
|
||||||
|
};
|
||||||
|
|
||||||
struct gguf_str {
|
struct gguf_str {
|
||||||
uint32_t n;
|
uint32_t n;
|
||||||
char * data;
|
char * data;
|
||||||
@ -18670,77 +18683,40 @@ enum gguf_type gguf_get_type(struct gguf_context * ctx, int i) {
|
|||||||
return ctx->header.kv[i].type;
|
return ctx->header.kv[i].type;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gguf_get_val(struct gguf_context * ctx, int i, void * val) {
|
|
||||||
struct gguf_kv * kv = &ctx->header.kv[i];
|
|
||||||
|
|
||||||
switch (kv->type) {
|
|
||||||
case GGUF_TYPE_UINT8: memcpy(val, &kv->value.uint8, sizeof(uint8_t)); break;
|
|
||||||
case GGUF_TYPE_INT8: memcpy(val, &kv->value.int8, sizeof(int8_t)); break;
|
|
||||||
case GGUF_TYPE_UINT16: memcpy(val, &kv->value.uint16, sizeof(uint16_t)); break;
|
|
||||||
case GGUF_TYPE_INT16: memcpy(val, &kv->value.int16, sizeof(int16_t)); break;
|
|
||||||
case GGUF_TYPE_UINT32: memcpy(val, &kv->value.uint32, sizeof(uint32_t)); break;
|
|
||||||
case GGUF_TYPE_INT32: memcpy(val, &kv->value.int32, sizeof(int32_t)); break;
|
|
||||||
case GGUF_TYPE_FLOAT32: memcpy(val, &kv->value.float32, sizeof(float)); break;
|
|
||||||
case GGUF_TYPE_BOOL: memcpy(val, &kv->value.bool_, sizeof(bool)); break;
|
|
||||||
case GGUF_TYPE_STRING: memcpy(val, &kv->value.str.data, sizeof(char *)); break;
|
|
||||||
default:
|
|
||||||
GGML_ASSERT("gguf: not implemented");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t gguf_get_val_u8(struct gguf_context * ctx, int i) {
|
uint8_t gguf_get_val_u8(struct gguf_context * ctx, int i) {
|
||||||
uint8_t val;
|
return ctx->header.kv[i].value.uint8;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t gguf_get_val_i8(struct gguf_context * ctx, int i) {
|
int8_t gguf_get_val_i8(struct gguf_context * ctx, int i) {
|
||||||
int8_t val;
|
return ctx->header.kv[i].value.int8;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t gguf_get_val_u16(struct gguf_context * ctx, int i) {
|
uint16_t gguf_get_val_u16(struct gguf_context * ctx, int i) {
|
||||||
uint16_t val;
|
return ctx->header.kv[i].value.uint16;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t gguf_get_val_i16(struct gguf_context * ctx, int i) {
|
int16_t gguf_get_val_i16(struct gguf_context * ctx, int i) {
|
||||||
int16_t val;
|
return ctx->header.kv[i].value.int16;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int i) {
|
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int i) {
|
||||||
uint32_t val;
|
return ctx->header.kv[i].value.uint32;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t gguf_get_val_i32(struct gguf_context * ctx, int i) {
|
int32_t gguf_get_val_i32(struct gguf_context * ctx, int i) {
|
||||||
int32_t val;
|
return ctx->header.kv[i].value.int32;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float gguf_get_val_f32(struct gguf_context * ctx, int i) {
|
float gguf_get_val_f32(struct gguf_context * ctx, int i) {
|
||||||
float val;
|
return ctx->header.kv[i].value.float32;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gguf_get_val_bool(struct gguf_context * ctx, int i) {
|
bool gguf_get_val_bool(struct gguf_context * ctx, int i) {
|
||||||
bool val;
|
return ctx->header.kv[i].value.bool_;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * gguf_get_val_str (struct gguf_context * ctx, int i) {
|
const char * gguf_get_val_str (struct gguf_context * ctx, int i) {
|
||||||
char * val;
|
return ctx->header.kv[i].value.str.data;
|
||||||
gguf_get_val(ctx, i, &val);
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int gguf_get_n_tensors(struct gguf_context * ctx) {
|
int gguf_get_n_tensors(struct gguf_context * ctx) {
|
||||||
|
20
ggml.h
20
ggml.h
@ -1619,19 +1619,6 @@ extern "C" {
|
|||||||
// gguf
|
// gguf
|
||||||
//
|
//
|
||||||
|
|
||||||
enum gguf_type {
|
|
||||||
GGUF_TYPE_UINT8 = 0,
|
|
||||||
GGUF_TYPE_INT8 = 1,
|
|
||||||
GGUF_TYPE_UINT16 = 2,
|
|
||||||
GGUF_TYPE_INT16 = 3,
|
|
||||||
GGUF_TYPE_UINT32 = 4,
|
|
||||||
GGUF_TYPE_INT32 = 5,
|
|
||||||
GGUF_TYPE_FLOAT32 = 6,
|
|
||||||
GGUF_TYPE_BOOL = 7,
|
|
||||||
GGUF_TYPE_STRING = 8,
|
|
||||||
GGUF_TYPE_ARRAY = 9,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct gguf_context;
|
struct gguf_context;
|
||||||
|
|
||||||
struct gguf_init_params {
|
struct gguf_init_params {
|
||||||
@ -1651,10 +1638,9 @@ extern "C" {
|
|||||||
GGML_API size_t gguf_get_data_offset(struct gguf_context * ctx);
|
GGML_API size_t gguf_get_data_offset(struct gguf_context * ctx);
|
||||||
GGML_API void * gguf_get_data (struct gguf_context * ctx);
|
GGML_API void * gguf_get_data (struct gguf_context * ctx);
|
||||||
|
|
||||||
GGML_API int gguf_get_n_kv(struct gguf_context * ctx);
|
GGML_API int gguf_get_n_kv(struct gguf_context * ctx);
|
||||||
GGML_API const char * gguf_get_key (struct gguf_context * ctx, int i);
|
GGML_API const char * gguf_get_key (struct gguf_context * ctx, int i);
|
||||||
GGML_API enum gguf_type gguf_get_type(struct gguf_context * ctx, int i);
|
GGML_API void gguf_get_val (struct gguf_context * ctx, int i, void * val);
|
||||||
GGML_API void gguf_get_val (struct gguf_context * ctx, int i, void * val);
|
|
||||||
|
|
||||||
GGML_API uint8_t gguf_get_val_u8 (struct gguf_context * ctx, int i);
|
GGML_API uint8_t gguf_get_val_u8 (struct gguf_context * ctx, int i);
|
||||||
GGML_API int8_t gguf_get_val_i8 (struct gguf_context * ctx, int i);
|
GGML_API int8_t gguf_get_val_i8 (struct gguf_context * ctx, int i);
|
||||||
|
Loading…
Reference in New Issue
Block a user