mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-29 08:41:22 +00:00 
			
		
		
		
	gguf : simplify gguf_get_val
This commit is contained in:
		
							
								
								
									
										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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Georgi Gerganov
					Georgi Gerganov