Repository navigation
glm cuda: the idle KV pool's line reads even under TF_GLM_KV_SHARE - #1993
Conversation
|
Thanks @Bizuayeu. An independent review on current main (d38bba3): Applying it: cleanly on main d38bba3. The lean check stays at 424, the same as main. The author line is a real Nothing was built or run here. What holds
Small point (not blocking): the receipt was taken on an older main (532589e). The changed lines are identical Device run: none needed beyond the author's. |
Under the share the prompt cache holds pool pages, so a balanced idle pool logged (UNEVEN): Pool.idle() already checks free + kept == total, free == total holds only for the copy store. Spark 25's form from 004655c.
72a78e0 to
7d8228b
Compare
|
Thank you @Bizuayeu. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes. |
|
Thanks @Bizuayeu! This is in TensorFold 1.2.2, out now: https://github.com/ashhart/TensorFold/releases/tag/v1.2.2 |
What this changes
Under
TF_GLM_KV_SHARE, an idle server whose prompt cache keeps pool pages logskv pool idle (UNEVEN), because GLM'sreportalso asks forfree == total; with this change it readsPool.idle()'sfree + kept == totalthere, Spark 25's form from004655c64, and is unchanged without the share. Only the log line changes: no pool, page or token.TF_GLM_KV_SHAREmain532589e40kv pool idle (UNEVEN): promised 0, free 6131 + store 16 == total 6147kv pool idle: promised 0, free 6131 + store 16 == total 6147kv pool idle: promised 0, free 6147 + store 0 == total 6147532589e40and merges clean with071cefe08).atc overlap --json: against main071cefe08, no open pull request found onzig/src/families/glm/cuda_pages.zig(atc whoagrees, though ATC could not read a few pulls' file lists). native cuda: TF_KV_SHARE=n keeps a paged family's prompts as its core pool's pages in one prompt_radix store (Kolibri-1 first) #1755 and gemma4 CUDA: the global layers' caches in pages of the core pool, every stream leasing; sliding layers keep their rings #1619, which put other families' prompts in pool pages, do not touch the file.Checks on this head
72a78e008python3 tools/zig/lean_check.py, on the base and on this head: 424 and 424, no new findings.zig build test-cuda-host291/291 steps (4,483 of 4,499 tests, 16 skipped);zig build test487/487 steps (2,035 of 2,065 tests, 30 skipped);zig build test-kv-pool33/33 tests; the GLM host steps (test-glm-prompt-settings-host6/6,test-glm-tp3-host8/8,test-glm-pages-host,test-glm-fp8-kv-host,test-glm-prompts-host7/7);zig build compile-cuda-tests10/10 steps, also with-Dtarget=aarch64-linux-gnu(the CUDA runner, which CI does not build);zig build compile-config-server7/7;zig build test-roce-multi-host40/40 tests;zig build test-tp33/33 steps;zig fmt --checkclean. No failures.reportreturns at once under the test build, as Spark 25's does, so the table above is its before and after.Receipt
532589e40and this head72a78e008, each built withzig build native(Zig 0.17.0, CUDA 13.3, sm_121); three NVIDIA GB10s at TP=3 over NCCL 2.30.7, driver 580.178.04,--parallel 4with paged KV; GLM-5.3-Flash XSFP4 (Bizuayeu/GLM-5.3-Flash-XSFP4at88736f91). Each launch rantools/bench_cache.py --require-cold --repeats 1 --streams 1on an 8K-token prompt (a cold request, a repeated one and one concurrent), and rank 0 printed the same line after each.Checklist
reportdoes not run under the test build. The table above is the before and after.)"draft": false, a resumed prompt equals a fresh one, and concurrent equals solo. (A log line.)--drafter, no slower than without it, greedy and sampled (the change cannot reach either: the line prints when the last stream closes).