Repository navigation
lanes: Nemotron plain streams share one exact Metal round (+20% at 2 streams, +77% at 4) - #3005
Conversation
|
The wide check is in, and it holds. Same checkpoint and harness as the 1-4 stream table (Nemotron 3.5 Lightning, MLX affine 4-bit, M5 Ultra), served, a fresh server per arm, base-new-new-base, 24 distinct prose and code prompts, on main
That was the one thing left before landing, so this is queued.
|
|
Two findings on this branch, and an independent measurement on an M5 Ultra. 1. The branch does not build on current main Merging head main has had 2. A local check, not a naming proposal With only this PR's new bool renamed in a local copy (8 lines: the declaration and its one use in 3. Independent receipts on an M5 Ultra
Aggregate tok/s, mean of two runs, P against M:
Token ids:
Measured on one machine, one checkpoint, token hashes only (no logits). |
7948027 to
840a5e3
Compare
Keep headless per-stream verification at one row while opting into exact cross-stream rounds. Retain the pipelined lone path and test shared transitions without drafts or copies.
840a5e3 to
61d8a7a
Compare
For #2968. A Nemotron checkpoint without an MTP head runs each stream as a plain one-row decode, and until now those streams never shared a round on Metal: two or four clients took turns.
Change
core/lanes/config.zig: a model can declareplain_streams(default false). When it does, plain one-row streams may share one exact round. Each stream's verify window stays one row: no drafts, copies or extra rows are added.families/nemotron/backend.zig: Nemotron on Metal sets it. With a head loaded the width is already two or more, so nothing changes there; the single-stream (lone, pipelined) path is unchanged.Tests
core/lanes/plain_streams_test.zig: the opt-in, the existing exactness requirements, no draft or copy widening, and shared/lone transitions. Reverting theconfig.zigcondition fails the two new sharing tests (13 pass, 2 fail); with the change, 15/15. Full lanes suite 362 passed, 1 skipped.Measured on an M5 Ultra, Nemotron 3.5 Lightning (MLX affine 4-bit), served, base-new-new-base, aggregate tok/s, token hashes equal in every cell:
Also checked at 8 and 24 streams (rounds past 16 rows, where the kernels switch tile shapes): tokens equal to main in every cell, 131,072 tokens with zero differences; 8 streams +147% greedy and +133% seeded, 24 streams +253% and +219%. The table is in the comments.