Skip to content

Commit 5b44038

Browse files
committed
Add UINT type to KV overrides
1 parent ea1431b commit 5b44038

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

common/common.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,10 @@ bool string_parse_kv_override(const char * data, std::vector<llama_model_kv_over
650650
sep += 4;
651651
kvo.tag = LLAMA_KV_OVERRIDE_TYPE_INT;
652652
kvo.val_i64 = std::atol(sep);
653+
} else if (strncmp(sep, "uint:", 5) == 0) {
654+
sep += 5;
655+
kvo.tag = LLAMA_KV_OVERRIDE_TYPE_UINT;
656+
kvo.val_u64 = std::atol(sep);
653657
} else if (strncmp(sep, "float:", 6) == 0) {
654658
sep += 6;
655659
kvo.tag = LLAMA_KV_OVERRIDE_TYPE_FLOAT;

include/llama.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ extern "C" {
269269
LLAMA_KV_OVERRIDE_TYPE_FLOAT,
270270
LLAMA_KV_OVERRIDE_TYPE_BOOL,
271271
LLAMA_KV_OVERRIDE_TYPE_STR,
272+
LLAMA_KV_OVERRIDE_TYPE_UINT,
272273
};
273274

274275
struct llama_model_kv_override {
@@ -277,10 +278,11 @@ extern "C" {
277278
char key[128];
278279

279280
union {
280-
int64_t val_i64;
281-
double val_f64;
282-
bool val_bool;
283-
char val_str[128];
281+
int64_t val_i64;
282+
uint64_t val_u64;
283+
double val_f64;
284+
bool val_bool;
285+
char val_str[128];
284286
};
285287
};
286288

src/llama-model-loader.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ namespace GGUFMeta {
164164
case LLAMA_KV_OVERRIDE_TYPE_INT: return "int";
165165
case LLAMA_KV_OVERRIDE_TYPE_FLOAT: return "float";
166166
case LLAMA_KV_OVERRIDE_TYPE_STR: return "str";
167+
case LLAMA_KV_OVERRIDE_TYPE_UINT: return "uint";
167168
}
168169
return "unknown";
169170
}
@@ -180,6 +181,9 @@ namespace GGUFMeta {
180181
case LLAMA_KV_OVERRIDE_TYPE_INT: {
181182
LLAMA_LOG_INFO("%" PRId64 "\n", ovrd->val_i64);
182183
} break;
184+
case LLAMA_KV_OVERRIDE_TYPE_UINT: {
185+
LLAMA_LOG_INFO("%" PRIu64 "\n", ovrd->val_u64);
186+
} break;
183187
case LLAMA_KV_OVERRIDE_TYPE_FLOAT: {
184188
LLAMA_LOG_INFO("%.6f\n", ovrd->val_f64);
185189
} break;
@@ -216,6 +220,10 @@ namespace GGUFMeta {
216220
target = ovrd->val_i64;
217221
return true;
218222
}
223+
if (validate_override(LLAMA_KV_OVERRIDE_TYPE_UINT, ovrd)) {
224+
target = ovrd->val_u64;
225+
return true;
226+
}
219227
return false;
220228
}
221229

src/llama-quant.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,8 @@ static void llama_model_quantize_impl(const std::string & fname_inp, const std::
586586
gguf_set_val_f32(ctx_out.get(), o.key, o.val_f64);
587587
} else if (o.tag == LLAMA_KV_OVERRIDE_TYPE_INT) {
588588
gguf_set_val_i32(ctx_out.get(), o.key, o.val_i64);
589+
} else if (o.tag == LLAMA_KV_OVERRIDE_TYPE_UINT) {
590+
gguf_set_val_u32(ctx_out.get(), o.key, o.val_u64);
589591
} else if (o.tag == LLAMA_KV_OVERRIDE_TYPE_BOOL) {
590592
gguf_set_val_bool(ctx_out.get(), o.key, o.val_bool);
591593
} else if (o.tag == LLAMA_KV_OVERRIDE_TYPE_STR) {

0 commit comments

Comments
 (0)