Repository navigation
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/25055
Note: Links to docs will display an error until the docs builds have been completed. ❌ 132 New Failures, 1 Cancelled Job, 2 Pending, 7 Unrelated Failures, 26 Unclassified FailuresAs of commit 39b07a5 with merge base c7f7931 ( NEW FAILURES - The following jobs have failed:
UNCLASSIFIED FAILURES - DrCI could not classify the following jobs because the workflow did not run on the merge base. The failures may be pre-existing on trunk or introduced by this PR:
CANCELLED JOB - The following job was cancelled. Please retry:
FLAKY - The following jobs failed but were likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This was referenced Nov 13, 2026
metascroy
force-pushed
the
offgraph-kv-native-executor
branch
from
November 14, 2026 00:18
834004e to
a52159c
Compare
NativeExecutor, in backends/native/batching, serves a .ptn exported with --offgraph_cache --logits_to_keep selected behind extension/llm/batching: the native counterpart of ModuleExecutor, as CudaExecutor is for CUDA. It reads the cache geometry and context length from the package, builds the engine's batched cache with room for every resident session's context, and serves sessions as the cache's sequences through SessionTable. A batch puts several sessions in one forward; each forward declares its sequences and selects the logits row each input wants; a clone shares its source's cells. The engine is the caller's: the config takes a host factory and the CacheFactory backend id of that engine's caches, as the native LLM runner does, so a model's serving code picks ggml (or another engine with a batched cache) and adds only its own preparation. native_batching_test, given a package from test/export_toy_llm.py, checks that sessions decoded together in one batch get the tokens they get alone and that a clone continues as its source; it skips without one.
metascroy
force-pushed
the
offgraph-kv-selected-logits
branch
from
November 14, 2026 00:38
4ab7569 to
95d13f3
Compare
metascroy
force-pushed
the
offgraph-kv-native-executor
branch
from
November 14, 2026 00:38
a52159c to
39b07a5
Compare
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack
Off-graph KV cache for the native ggml engine, through serving Muse Glimmer on it. Review bottom-up; each PR builds and passes its tests on its own.
Summary
NativeExecutor, in the newbackends/native/batching/, serves a.ptnexported with--offgraph_cache --logits_to_keep selectedbehindextension/llm/batching. It's the native counterpart ofModuleExecutor, asCudaExecutorinbackends/cuda/batching/is for CUDA.SessionTable. A batch puts several sessions in one forward; each forward declares its sequences and selects the logits row each input wants. A clone shares its source's cells.Build:
native_batchingis installed and exported, so out-of-tree projects such as the Muse Glimmer example link it. There's also a Buck target.Test plan
native_batching_test, given a toy package fromtest/export_toy_llm.py(ET_NATIVE_BATCHING_PTN; skips without one):All pass. Making the engine ignore the cache's mask fails the batching test. The Buck target is unverified.
Authored with Claude Code.