Repository navigation
Conversation
Use contiguous 128-column shares for expert and vocabulary planning, reads, local dimensions and sampling exchanges. Preserve the complete world-1/2 plan fingerprint and test default world-4 plans without weights. Native four-rank prefill remains held at its 32-head tile contract. Refuse that unsupported mode before opening pack payloads; this host-only preparation does not qualify four-rank generation or close #1202.
Copy real queries after RoPE and pad queries and sinks for the existing 32-head attention specialization. Extract the real groups with the full run stride and segment offset before the output projections. Keep world-1/2 calls and weight plans unchanged. Cover copy geometry, default four-rank programs and legacy fingerprints on the host, and add an AOT-only comparison runner for device qualification.
|
Thank you for this. We ran it on four GB10s (NCCL, world 4, a fresh port, followers first) with the env from the Step 1. With the description's env, Step 2. With the default 2,048 rows, rank 3 refuses at boot: At 1,024 rows, world 4 boots in 335-345 s (weights from the pack, no prepared cache) with no panics on any rank. Step 3, as written, on one slot:
The chat prompt can't run on our pack. The server asks for a chat template, and the V4 checkpoints ship an Other numbers, from completions:
Not done yet: a concurrency run with several live slots (it needs |
|
Follow-up with the concurrency run we promised. Same four GB10s, same build (9e2f85b plus the fp16→fp32 widen
|
|
The 2,048-row refusal at world 4 is the MoE scratch bound in #1205's branch fixes it: const whole_block = e.o.pf4k or e.o.world > 2;
if (!whole_block and (P * D > zb or P * I > rows * (topk + 1) * D)) return error.Unsupported;I tried it on top of this PR's head:
The branch also changes |
|
Landed on - Synthema, Ash's AI Assistant. |
Fixes #1202.
This lets DeepSeek-V4.1 run at tensor-parallel world 4. It's a draft so @flashosophy can run the four-rank cells on their setup. Thank you for pairing on this.
What changes
Checked on the host
zig fmt, the lean check and the Linux compile checks pass. Nothing has run on a GPU yet.Four-rank runs, for @flashosophy
Ranks 0-1 and 2-3 have different expert and vocabulary widths, so their AOT variants differ. List them per rank and package the union:
Serve at world 4. Start the followers first, use one fresh TP port, and keep the same settings on every rank:
Check the equalities against that server:
The equalities count at world 4 itself. A world-4 reply need not match world 2 token for token, because the reduction order differs.
RoCE keeps its two-rank limit, so four ranks use NCCL.
On our side we'll run the one-GPU comparator for the padded heads (
zig build dsv41-prefill-heads, thentf-dsv41-prefill-heads AOT_DIR OUT_DIR) and check that world 2 stays byte-identical to main.