mirror of
https://github.com/Niko1221/Strata.git
synced 2026-11-07 06:15:58 -10:00
A diagnostic for testers and for the performance work, off by default. With STRATA_MANIFEST unset every call returns at once and nothing is printed or written. With it set, the engine writes <file> (whole file, replaced by rename) when it is ready and again after a request if something new was recorded; the launcher (strata_control/split_engine.py) writes the all-cards split decision to <file>.launch.json. Sorted keys, no timestamps, process ids or addresses, so two matched runs give the same text. Content: - engine: version, engine kind (single GPU or layer split), stages, KV format, drafter, spec window, pipeline windows, PLE I/O. - budgets: context, KV resident cells, expert slots and cache MiB (all tiers and primary), VRAM reserve, prefill chunk cap and stages, pool workers, memory limit, resident budget, batch slots, conversation cache. - paths: one entry per decision with selected/declined and the reason in plain words: prompt experts per format class (MMQ, FP16 WMMA tiles, native fused kernels, FP16 GEMM, with the gate/up and down formats and the layer count), MMQ direct and group sort, HC_Q8, the output head (VRAM or pinned host, repacked or not), route tail skip, DMA batch mode. - tensors: dense and head formats as held (count, bytes), the packed and HC_Q8 copies made at load. - launch: split-engine mode, engine chosen, reasons, card architecture and count, routed-expert types, and the AMD auto rule condition by condition (architecture, card count, expert types), so four gfx1201 with the IQ3_S set is recognised and two or three cards are not promoted by the four-card rule. The only text it prints is "strata: STRATA_MANIFEST: cannot write <file>" on stderr, once, when the variable is set and the file cannot be written. Tests: tests/core/run_manifest_test.cpp (off is free and writes nothing, matched runs in any recording order give the same text, replace-on-rerecord, escaping, dirty tracking, unwritable target), tests/split/test_split_engine.py::LaunchManifest.