Repository navigation
EXL3 Flash Next: KV pages from the core pool (4/8) - #1444
BlivionIaG wants to merge 151 commits into
Conversation
be465ae to
3d5601c
Compare
|
Thanks for the careful paging work. As I said on #1113, a second BF16 paging system beside main's core KV pool won't The way in is to extend Two other points:
|
48789c4 to
cbc4a99
Compare
cbc4a99 to
dec5973
Compare
dec5973 to
fa88fd0
Compare
fa88fd0 to
7a0f3c6
Compare
70b4527 to
4ea4504
Compare
|
Aggregate tok/s from
The |
|
A TP=2 finding on paged K/V, found while trying to run #1522's TP=2 restore cells (the first server start there failed). Binary
On the #1522-tested binary with the tier off (the paged path is this PR's), the same So at TP=2, paged, |
…ot-nov12 # Conflicts: # CHANGELOG.md
|
Follow-up to the TP=2 paged-admission refusal: commit On the previously tested #1444 source ( |
…ot-nov12 # Conflicts: # CHANGELOG.md
…ot-nov12 # Conflicts: # CHANGELOG.md
…ot-nov12 # Conflicts: # CHANGELOG.md
…ot-nov12 # Conflicts: # CHANGELOG.md
Current head:
310133f35a. Main90b4fae62d,bafe3e07cb,948e748584,d001c28f29and release09a9eb3317and the #1444 TP=2 paging fix were added after the checks and device measurements below; those device measurements were not repeated on this head. CI is running on this head.What this changes
Paged EXL3 K/V from the core pool.
5415afbd81; over it this PR adds 2 commits (cuda: use the core K/V page pool for EXL3 cachesand the TP=2 refusal for non-EXL3 packs).6c5cef8941, merged through484437b6ac.atc overlap --jsonagainst four known peers (Flash Next TP=2 on CUDA: head and rollback graphs replay, and one-row split lanes skip the interleave copies #2837, flashnext cuda: the opt-in --tp 2 decode graph (TF_FLASHNEXT_DECODE_GRAPH=1) serves again instead of failing its first plain round #2980, flashnext cuda: the opt-in --tp 2 decode graph takes the dense split and keeps its graph across drafted verifies #2982, flashnext: the MTP head's streams by row through the lease's pages, no per-lane block outside the pool (#2444 P3, F2 part c) #2992) only, run on the integrated stack before the latest merges of main; not a global clearance. Conflicting files: Flash Next TP=2 on CUDA: head and rollback graphs replay, and one-row split lanes skip the interleave copies #2837 2, flashnext cuda: the opt-in --tp 2 decode graph (TF_FLASHNEXT_DECODE_GRAPH=1) serves again instead of failing its first plain round #2980 6, flashnext cuda: the opt-in --tp 2 decode graph takes the dense split and keeps its graph across drafted verifies #2982 8, flashnext: the MTP head's streams by row through the lease's pages, no per-lane block outside the pool (#2444 P3, F2 part c) #2992 6. Owner composition agreements exist for flashnext cuda: the opt-in --tp 2 decode graph (TF_FLASHNEXT_DECODE_GRAPH=1) serves again instead of failing its first plain round #2980, flashnext cuda: the opt-in --tp 2 decode graph takes the dense split and keeps its graph across drafted verifies #2982, flashnext: the MTP head's streams by row through the lease's pages, no per-lane block outside the pool (#2444 P3, F2 part c) #2992; my notice on Flash Next TP=2 on CUDA: head and rollback graphs replay, and one-row split lanes skip the interleave copies #2837 is unanswered.Checks before the release merge
d2aaa3ed00. The device results below ran on08abdaf8a5c0; this head differs from it by the merges of main at0591c4e85d,c34ff562ca,a3aecd8d0fand484437b6acand the pin fixturegradient-serving.tsv. The device cells were not repeated on this head.python3 tools/pr_check.py --base <main> --pr 1444: exit 0, 0 errors, 0 warnings; lean 339 vs 341 on main, 0 new.zig fmt --check zig: clean.test-cuda-host,test-exl3-cuda-host,test-flashnext-exl3-host,test-exl3-prompt-host,compile-flashnext-host,test-flashnext-memory-host,test-qwen-serving-host,test-lane-api-hostandtest-lanes-seepass on Darwin arm64 on the EXL3 Flash Next: draft lane guard for offloaded experts (8/8) #1446 head, which contains this head; the Linux host suite is CI's.-Dtarget=x86_64-linux-gnu): exit 0 on the EXL3 Flash Next: draft lane guard for offloaded experts (8/8) #1446 head, which contains this head (build only, no GPU executed on this head).Device results on
08abdaf8a5c0Two 16 GB sm_120 GPUs, Linux x86_64, checkpoint above. One run per cell unless stated.
1444-perf-tp2-abba, TP=2 speed with paging, unpaged/paged/paged/unpagedpaged-allandunsetpass and equal each otherpaged-allandunseteach pass;tp2-compareis red only because the two runs differ in which lane took the 4164-token cache hit (the gate pins the lane)Not run or open
--parallel 2was refused; the targeted admission smoke passed with the fix. The full device suite has not been repeated on the current head.Receipt
turboderp/Qwen3.8-Flash-Next-exl3at69e33439ae950f17bcbe95c98f117d80f759ab6d.Review requests implemented in source
TF_FLASHNEXT_KV_PAGESat--tp 2is kept for every pack except EXL3 (refusePages); EXL3 at TP=2 is accepted and the explain text says so. A host test covers non-EXL3 refused with the setting named, EXL3 accepted, TP=1 accepted, unset accepted.Checklist
"draft": false, a resumed prompt equals a fresh one, and concurrent equals solo. Resume and drafted resume pass at TP=1; the TP=2 drafted comparison is red on lane pinning (above). Concurrent equals solo was not run for this PR on its own.--drafter, no slower than without it. Paged against unpaged: level at one stream; at four streams 4 to 10% higher on code at TP=1 and 3 to 7% higher at TP=2 (about the size of the noise: no slower). Main refuses this checkpoint (n/a).TP=2 admission fix: commit
69fe300ff9negotiates the maximum rank state-run size before each rank plans its page pool. On the earlier device-tested #1444 source plus this change,--tp 2 --parallel 2with 256-row paging served both 3,000- and 10,000-token prompts; the 10,000-token request previously returned HTTP 500. The current release-merged head has not been run on device.