Repository navigation
docs: the CUDA memory plan, what each setting decides and the file that reads it - #3028
Conversation
|
Thanks @Bizuayeu. I checked each setting and file in the new table against main, and nearly all of it holds:
The old "sizes its window" wording was wrong, and this fixes it. Three small edits before it lands:
CI is green, and it's docs only, so it needs no device run. We'll add the CHANGELOG line when we land it.
|
Done in
The description matches the new head. |
|
Thanks @Bizuayeu, all three edits are in. It's queued to land.
|
…d cache, and ashhart#3000 for the numbers
c20358d to
cd3dc7e
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.8, out now: https://github.com/ashhart/TensorFold/releases/tag/v1.2.8
|
What this changes
docs/api.mdsaid the CUDA server "sizes its window" from the free memory less the reserve, on unified memory and on discrete cards. On native CUDA the window is--context, the model's own window at--context 0, or, when it is unset, the family's default capped at the model's own window; on the paged families the streams and pages fill the budget up to the streams' windows plus the cache's pages, so once those exceed it, the free memory after load is the reserve. The two paragraphs now say so. After them, under "Context and errors":--prompt-cache-gibbefore every window but the engine's own and an unnamed one after the whole windows (GLM CUDA: a named TF_KV_SHARE is planned after every window the room holds, so at TP=3 on a lighter checkpoint it keeps 8 of 32 states #2987 for what that does toTF_KV_SHARE's states), then the kept states, and the rest of the budget as pages;docs/recipes/cuda.md's paragraph on the Python 0.6.6 engine links to the table. No new names and no default changes.3885dceb2bb6). It merges with main6c5cef8941cleanly (git merge-tree).atc overlap --json(2026-11-12 14:05 UTC, base main;complete: false, with the other pull requests' limit, unavailable pull files and the time limit): atc tested 5 pull requests that share a file, GLM-5.3-Flash on CUDA keeps conversation states on disk, every rank's part (--learn-conversations) #1411, Nemotron 3.5 Transcribe: audio input, the 65,536-token window, an hour of audio, MTP drafts #1632, CUDA: #1764's BF16 prompt tile for Qwen ModelOpt, Nemotron and Dory, plus two exact Qwen prompt kernels (#1762) #2008, ricursive: Ripple-65B-Preview on native Metal (NVFP4 and bf16 releases) #2231 and ricursive: the publisher's DFlash2 drafter for Ripple-65B (stacked on #2231) #2260, all clean there. By hand: 33 of the 288 open pull requests changedocs/api.mdordocs/recipes/cuda.md(the 25 whose file lists stop at 100 were read to the end). Test merges with this branch and with main6c5cef8941(git merge-tree): 8 merge with this branch cleanly, and the 25 that conflict with it conflict with main in the same files, so the branch adds none. Indocs/api.md, ocr: PDF documents and pages on /v1/ocr, one page at a time (#2440 step 2) #2571 to ocr: POST /ocr in PaddleX's contract (#2440 step 6) #2575 conflict in the one block they already have with main.Checks on this head
c20358d550(documentation only), the review's three edits ona748ac0581.python3 tools/zig/lean_check.py, on the base and on this head: 345 and 345, 0 new.tools/pr_check.py: 0 errors, 0 warnings.python -m pytest -q -rs -p no:cacheproviderfrom the root, ona748ac0581: 450 passed, 86 skipped and 519 subtests passed. Main's CI run of the same job on3885dceb2bb6has 452 passed and 84 skipped: the two more skips here aretools/zig/test_nfkd_tables.py's, since this interpreter has Unicode 15.0.0 and the tables pin 16.0.0.c20358d550changes onlydocs/api.md, which no test reads, so it was not run again.c20358d550(runs 43330299393 and 43330299202): benchmark-clients (ubuntu-latest, windows-latest), pytest, release-paths (ubuntu-24.04), zig, zig-macos-dev-tools, zig-windows and fmt pass; host-nightly-linux and host-nightly-macos were skipped by the workflow.Receipt
n/a: documentation only, so it cannot reach inference.
Checklist