From: Daniel Bevenius Date: Mon, 24 Nov 2025 20:06:17 +0000 (+0100) Subject: llama : skip output reordering for single token batches (#17466) X-Git-Tag: upstream/0.0.7446~297 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=134e6940caf5c64071b7f3b7bc6c2f32f1b3a5a4;p=pkg%2Fggml%2Fsources%2Fllama.cpp llama : skip output reordering for single token batches (#17466) This commit adds a check to skip the output reordering logic when n_outputs == 1. With a single output token, the data is trivially sorted and the reordering code is currently doing unnecessary work (resetting and rebuilding output_ids to the same values). The motivation for this change is improved code clarity and avoiding confusion when debugging. While the performance impact is probably negligible, this unnecessary work happens on every decode call in llama-server when processing batches with single-token outputs. --- diff --git a/src/llama-context.cpp b/src/llama-context.cpp index 70a3ec62..2aa6d52a 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -1248,7 +1248,7 @@ int llama_context::decode(const llama_batch & batch_inp) { // make the outputs have the same order they had in the user-provided batch // note: this is mostly relevant for recurrent models atm - if (!sorted_output) { + if (!sorted_output && n_outputs > 1) { GGML_ASSERT((size_t) n_outputs == out_ids.size()); // TODO: is there something more efficient which also minimizes swaps?