Skip to content

Commit d313c0f

Browse files
committed
gguf : simplify gguf_get_val
1 parent cb871fa commit d313c0f

File tree

2 files changed

+25
-63
lines changed

2 files changed

+25
-63
lines changed

ggml.c

Lines changed: 22 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18297,6 +18297,19 @@ size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, i
1829718297

1829818298
////////////////////////////////////////////////////////////////////////////////
1829918299

18300+
enum gguf_type {
18301+
GGUF_TYPE_UINT8 = 0,
18302+
GGUF_TYPE_INT8 = 1,
18303+
GGUF_TYPE_UINT16 = 2,
18304+
GGUF_TYPE_INT16 = 3,
18305+
GGUF_TYPE_UINT32 = 4,
18306+
GGUF_TYPE_INT32 = 5,
18307+
GGUF_TYPE_FLOAT32 = 6,
18308+
GGUF_TYPE_BOOL = 7,
18309+
GGUF_TYPE_STRING = 8,
18310+
GGUF_TYPE_ARRAY = 9,
18311+
};
18312+
1830018313
struct gguf_str {
1830118314
uint32_t n;
1830218315
char * data;
@@ -18670,77 +18683,40 @@ enum gguf_type gguf_get_type(struct gguf_context * ctx, int i) {
1867018683
return ctx->header.kv[i].type;
1867118684
}
1867218685

18673-
void gguf_get_val(struct gguf_context * ctx, int i, void * val) {
18674-
struct gguf_kv * kv = &ctx->header.kv[i];
18675-
18676-
switch (kv->type) {
18677-
case GGUF_TYPE_UINT8: memcpy(val, &kv->value.uint8, sizeof(uint8_t)); break;
18678-
case GGUF_TYPE_INT8: memcpy(val, &kv->value.int8, sizeof(int8_t)); break;
18679-
case GGUF_TYPE_UINT16: memcpy(val, &kv->value.uint16, sizeof(uint16_t)); break;
18680-
case GGUF_TYPE_INT16: memcpy(val, &kv->value.int16, sizeof(int16_t)); break;
18681-
case GGUF_TYPE_UINT32: memcpy(val, &kv->value.uint32, sizeof(uint32_t)); break;
18682-
case GGUF_TYPE_INT32: memcpy(val, &kv->value.int32, sizeof(int32_t)); break;
18683-
case GGUF_TYPE_FLOAT32: memcpy(val, &kv->value.float32, sizeof(float)); break;
18684-
case GGUF_TYPE_BOOL: memcpy(val, &kv->value.bool_, sizeof(bool)); break;
18685-
case GGUF_TYPE_STRING: memcpy(val, &kv->value.str.data, sizeof(char *)); break;
18686-
default:
18687-
GGML_ASSERT("gguf: not implemented");
18688-
break;
18689-
}
18690-
}
18691-
1869218686
uint8_t gguf_get_val_u8(struct gguf_context * ctx, int i) {
18693-
uint8_t val;
18694-
gguf_get_val(ctx, i, &val);
18695-
return val;
18687+
return ctx->header.kv[i].value.uint8;
1869618688
}
1869718689

1869818690
int8_t gguf_get_val_i8(struct gguf_context * ctx, int i) {
18699-
int8_t val;
18700-
gguf_get_val(ctx, i, &val);
18701-
return val;
18691+
return ctx->header.kv[i].value.int8;
1870218692
}
1870318693

1870418694
uint16_t gguf_get_val_u16(struct gguf_context * ctx, int i) {
18705-
uint16_t val;
18706-
gguf_get_val(ctx, i, &val);
18707-
return val;
18695+
return ctx->header.kv[i].value.uint16;
1870818696
}
1870918697

1871018698
int16_t gguf_get_val_i16(struct gguf_context * ctx, int i) {
18711-
int16_t val;
18712-
gguf_get_val(ctx, i, &val);
18713-
return val;
18699+
return ctx->header.kv[i].value.int16;
1871418700
}
1871518701

1871618702
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int i) {
18717-
uint32_t val;
18718-
gguf_get_val(ctx, i, &val);
18719-
return val;
18703+
return ctx->header.kv[i].value.uint32;
1872018704
}
1872118705

1872218706
int32_t gguf_get_val_i32(struct gguf_context * ctx, int i) {
18723-
int32_t val;
18724-
gguf_get_val(ctx, i, &val);
18725-
return val;
18707+
return ctx->header.kv[i].value.int32;
1872618708
}
1872718709

1872818710
float gguf_get_val_f32(struct gguf_context * ctx, int i) {
18729-
float val;
18730-
gguf_get_val(ctx, i, &val);
18731-
return val;
18711+
return ctx->header.kv[i].value.float32;
1873218712
}
1873318713

1873418714
bool gguf_get_val_bool(struct gguf_context * ctx, int i) {
18735-
bool val;
18736-
gguf_get_val(ctx, i, &val);
18737-
return val;
18715+
return ctx->header.kv[i].value.bool_;
1873818716
}
1873918717

1874018718
const char * gguf_get_val_str (struct gguf_context * ctx, int i) {
18741-
char * val;
18742-
gguf_get_val(ctx, i, &val);
18743-
return val;
18719+
return ctx->header.kv[i].value.str.data;
1874418720
}
1874518721

1874618722
int gguf_get_n_tensors(struct gguf_context * ctx) {

ggml.h

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1619,19 +1619,6 @@ extern "C" {
16191619
// gguf
16201620
//
16211621

1622-
enum gguf_type {
1623-
GGUF_TYPE_UINT8 = 0,
1624-
GGUF_TYPE_INT8 = 1,
1625-
GGUF_TYPE_UINT16 = 2,
1626-
GGUF_TYPE_INT16 = 3,
1627-
GGUF_TYPE_UINT32 = 4,
1628-
GGUF_TYPE_INT32 = 5,
1629-
GGUF_TYPE_FLOAT32 = 6,
1630-
GGUF_TYPE_BOOL = 7,
1631-
GGUF_TYPE_STRING = 8,
1632-
GGUF_TYPE_ARRAY = 9,
1633-
};
1634-
16351622
struct gguf_context;
16361623

16371624
struct gguf_init_params {
@@ -1651,10 +1638,9 @@ extern "C" {
16511638
GGML_API size_t gguf_get_data_offset(struct gguf_context * ctx);
16521639
GGML_API void * gguf_get_data (struct gguf_context * ctx);
16531640

1654-
GGML_API int gguf_get_n_kv(struct gguf_context * ctx);
1655-
GGML_API const char * gguf_get_key (struct gguf_context * ctx, int i);
1656-
GGML_API enum gguf_type gguf_get_type(struct gguf_context * ctx, int i);
1657-
GGML_API void gguf_get_val (struct gguf_context * ctx, int i, void * val);
1641+
GGML_API int gguf_get_n_kv(struct gguf_context * ctx);
1642+
GGML_API const char * gguf_get_key (struct gguf_context * ctx, int i);
1643+
GGML_API void gguf_get_val (struct gguf_context * ctx, int i, void * val);
16581644

16591645
GGML_API uint8_t gguf_get_val_u8 (struct gguf_context * ctx, int i);
16601646
GGML_API int8_t gguf_get_val_i8 (struct gguf_context * ctx, int i);

0 commit comments

Comments
 (0)