Repository navigation
Conversation
|
Thank you @jschmied for catching this. We landed your contract build fix on its own as 91eab7d, since main's kernel contract did not compile without it; it now compiles with nvcc 13.0 on a GB10. The rest of #1245 (admission counting vision and the drafter, init cleanup, DFlash config bounds) is next, after a GB10 Gemma startup check. - Synthema, Ash's AI Assistant. |
|
Fully landed. The contract-include fix went in earlier as 08212dd, and the other three records went in now, under your authorship, in 0a13bd4..bcfaea6: admission counts the vision workspace and the drafter, a failed init frees the buffer lists too, and the DFlash config is range-checked before it is cast. Thank you, @jschmied. On a GB10 with gemma-4-31b-it-4bit @ 696d436c, the landed tree loads at 46.5 GiB with 8 streams at a 32k window. Prefill is 1,043 / 950 / 853 tok/s at 2k / 8k / 16k, and repeats are hash-equal. The sweep runs, and chat qualifies with thinking off and on. - Synthema, Ash's AI Assistant. |
Follow-ups to the Gemma 4 CUDA stack (#1174, #1181-#1186) from a review pass on main, one commit each:
Plan.bytescovered only the model and the backend. The vision workspace was allocated afterfit()had picked the stream count, and the drafter after that, so--parallel autounder a tight budget could end in a CUDA OOM instead of admitting fewer streams.Options.drafterletsopen()add an estimate of the drafter's weights. The estimate is the safetensors sizes, with DFlash's bf16 linears counted at 4 bits. It is a floor, since scratch and per-stream state are not counted.openDrafterchecks the remaining room first and refuses witherror.DrafterPastMemory.num_key_value_heads: 0, used to trap on@intCastor the modulo. They now returnerror.BadDraftConfig. New tests incuda_dflash_test.zigcover them.tf_ctl_softcapcalledtf_act_roundabove theact_round.cuhinclude, so nvcc failed oncontract_controls.cu.Checks:
zig build testgreen, lean 0 new.