Repository navigation
Conversation
875c056 to
34f66f3
Compare
|
Rebased onto main ( |
|
Thanks @jschmied for the clean rebase. We read the two commits. |
|
Thanks @ashhart. Here are the M3 Pro checks rerun on Where this run differs from the body
Gates
ABBA speed, share against main: medians of 4 servers per arm, 3 repeats each.
Since this Mac runs under daily load, a run on your M3 or M5 Ultra would give cleaner speed numbers and the copy-store comparison. We'd gladly take your offer. |
|
Thanks @jschmied, that's a thorough rerun: every reply byte-equal, every gate green, and the three numbers that moved explained by the box's state, not the code. We'll take the Mac run you suggested: on our M3 or M5 Ultra, on this head, flag off against main, |
|
Thanks @jschmied. Here's the Mac run on an M5 Ultra with Nemotron 3.5 Lightning 30B-A3B MLX 4-bit, balanced order, against main:
All three read level. On both One correction to what we said we'd run: these arms used 1 and 8, not the 4 you suggested, and this table doesn't report the cached-token counts or the cap-8 round robin separately. It answers the question that matters for landing, that the flag off and on costs nothing here. This is queued to land, and our prep will carry the one-line rebase around |
34f66f3 to
c2854c9
Compare
|
Thanks @jschmied. Main has moved under this one. Nemotron's prompt loop now cuts its chunks in |
c2854c9 to
96cec73
Compare
|
Thanks @ashhart. All done on
Lean checker 210 and 210, new findings 0. Nemotron Metal host tests on the rebased head (Apple M3 Pro, Zig 0.17.0). The counts are from the first run on the rebased tree; since then only the new test's name changed, and the rerun on |
|
Thanks @jschmied. The cut now sits in |
96cec73 to
2e5cd2c
Compare
|
Thanks @ashhart. All three are on
|
|
Thanks @jschmied. Here are the two missing cells on the rebased head 96cec73, against its main parent c3f64ca, on an M5 Ultra with Nemotron 3.5 Lightning 30B-A3B MLX 4-bit.
Every tested reply's token IDs and text equal its fresh run and the other store's reply. Per-request cached tokens are in cached-tokens.tsv. The functional cells used greedy sampling and draft:false. The server reported 8192-row chunks, so these prompts were longer than that grid. Cap 8: 12 conversations, 12 hits, 20 evictions; the state count reached 8 and never exceeded it. All 40 replies equal fresh. 112 idle census lines satisfy free + kept == total. The counters do not distinguish page-pressure reclaim from state-cap eviction; we did not force pressure. With TF_KV_SHARE unset, warm/base/new/new/base, first process excluded:
All 192 cross-arm prompt/reply keys match. The full report includes both process medians per arm and all speed findings. TF_NEMOTRON_METAL_KV_PAGES=1 was enabled throughout. Share-enabled concurrency/drafting and forced-pressure cases remain unchecked on this head. No source changes or public post were made. These ran on |
|
@jschmied, this was in tonight's landing train, but on today's main it takes |
… names kv_pool and kv_prompts
…ashhart#1293) The core prompt_radix store over the Nemotron pool, opened through the CUDA adapter. A kept state is its Mamba states (Snap.pages); its rows stay in pages a later stream adopts. Marks lie on the prompt chunk grid, so a resume's chunk seams are a cold pass's. Unset or 0: the host prompt cache as before. The store's marks end chunks in prompt_flight.rows, where the prompt loop cuts them. metal.zig reads the model's window with cuda_window's modelContext instead of its own copy.
…s, as the --learn-conversations refusal does
…e core adapter, so metal.zig stays under 600 lines
2e5cd2c to
3dca2b1
Compare
|
Thanks @ashhart. Done on
|
|
@jschmied, an easier way to room: #2425 moves six shared helpers out of |
Part of #1293 (step 4). On main (#1837 has landed); this PR's change is its two commits,
ab9c1ea88and34f66f309. The M3 Pro checks are rerun on this head; see the rerun, where three numbers differ from the ones below under memory pressure.With
TF_KV_SHARE=n, Nemotron on Metal keeps prompt states in the coreprompt_radixstore over the Nemotron KV pool, as CUDA does since #1756. Unset or 0: the host prompt cache as before.What changes
efc4cdc07: a Metal lane can adopt a kept prompt's pages. The engines'corere-exportstensorfold.kv_pool, so Metal and CUDA use the samePooltype, and main'scuda_prompt_pagesadapter is used as is.875c05684: a kept state holds only Nemotron's Mamba states (Snap.pages). Its attention rows stay in the pool pages a later stream adopts, so a shared prefix is held once.Checks (M3 Pro)
zig build test test-metal-kv-pages test-native: 590/590 steps, 1,312/1,336 tests (24 skipped); contract nemotron: 63 pass gates 1-4 with 1 known finding (main's experts relu2), 29/29 controls red as planted, limits 0 problems.