commit 2187755546cc1548643844ed91ad9f64e8c4c4a1
parent def70ad6d72880f238f03d0994ab727ec11a3477
Author: Aristide Tossou <atossou@mozilla.com>
Date: Wed, 8 Oct 2025 14:27:11 +0000
Bug 1990534 - Support topk Sampling for llama.cpp. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D267614
Diffstat:
3 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/config/external/mozinference/mozinference.symbols b/config/external/mozinference/mozinference.symbols
@@ -19,6 +19,7 @@ llama_sampler_chain_init
llama_sampler_init_greedy
llama_sampler_init_temp
llama_sampler_init_dist
+llama_sampler_init_top_k
llama_sampler_free
llama_sampler_sample
llama_memory_clear
diff --git a/toolkit/components/ml/backends/llama/LlamaBackend.cpp b/toolkit/components/ml/backends/llama/LlamaBackend.cpp
@@ -376,6 +376,10 @@ LlamaBackend::SamplerResult LlamaBackend::InitializeSampler(
break;
}
+ case LlamaSamplerType::Top_k:
+ samplerElement = mLib->llama_sampler_init_top_k(samplerConfig.mTopK);
+ break;
+
default:
auto msg = nsFmtCString(FMT_STRING("{}: Unimplemented sampler type"),
diff --git a/toolkit/components/ml/backends/llama/LlamaRuntimeLinker.h b/toolkit/components/ml/backends/llama/LlamaRuntimeLinker.h
@@ -47,6 +47,7 @@ namespace mozilla::llama {
X(struct llama_sampler*, llama_sampler_init_greedy, (void)) \
X(struct llama_sampler*, llama_sampler_init_temp, (float t)) \
X(struct llama_sampler*, llama_sampler_init_dist, (uint32_t seed)) \
+ X(struct llama_sampler*, llama_sampler_init_top_k, (int32_t k)) \
X(void, llama_memory_clear, (llama_memory_t mem, bool data)) \
X(llama_memory_t, llama_get_memory, (const struct llama_context* ctx)) \
X(const struct llama_vocab*, llama_model_get_vocab, \