From 3e7344670adf63ce28527a4d42f2d71eca27c41e Mon Sep 17 00:00:00 2001 From: Niklas Wenzel Date: Wed, 19 Aug 2026 17:05:48 +0200 Subject: [PATCH] Revert "common: share thread pools when `n_threads` differ (#27138)" (#27337) * Revert "common: share thread pools when `n_threads` differ (#27138)" This reverts commit 04b569142da23d91beca090a99098d592d3f3c80. Co-authored-by: Max Krasnyansky * common: add comment about inability to share threadpool --------- Co-authored-by: Max Krasnyansky --- common/common.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index 0f2f01ad0..25ca838df 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1750,18 +1750,6 @@ struct ggml_threadpool_params ggml_threadpool_params_from_cpu_params(const commo return tpp; } -namespace { - -bool can_share_threadpool(const ggml_threadpool_params & tpp1, const ggml_threadpool_params & tpp2) { - // n_threads does not matter -> we'll use what's larger - ggml_threadpool_params tpp_comparison = tpp1; - tpp_comparison.n_threads = tpp2.n_threads; - - return ggml_threadpool_params_match(&tpp_comparison, &tpp2); -} - -} // namespace - common_threadpools::~common_threadpools() { if (!free_fn) { return; @@ -1790,9 +1778,9 @@ void common_threadpools::init(llama_context * ctx, const common_params & params) struct ggml_threadpool_params tpp = ggml_threadpool_params_from_cpu_params(params.cpuparams); - if (can_share_threadpool(tpp, tpp_batch)) { - tpp.n_threads = std::max(tpp.n_threads, tpp_batch.n_threads); - } else { + // each pool needs to match the respective n_threads exactly + // see: https://github.com/ggml-org/llama.cpp/pull/27138#issuecomment-5332307332 + if (!ggml_threadpool_params_match(&tpp, &tpp_batch)) { threadpool_batch = ggml_threadpool_new_fn(&tpp_batch); if (!threadpool_batch) { COM_WRN("batch threadpool create failed : n_threads %d\n", tpp_batch.n_threads);