Session captured: the FV outbound-NAT root cause and its diagnostic signature, the fv-ml1 dead man's switch, fleet identity/group/path conventions and the root:docker normalization, nh3-dev's ts-input reachability fix, ESPHome modernisation and the kb KB-search tool, and the Hermes bearer rotation release. Six new detail files. Tried-and-abandoned gains three: probing OPNsense endpoints by POSTing at them (which rebooted the FV firewall), advertising a /32 from nh3-dev, and the nh3-scale remote-site masquerade rules that fired but were not the fix. Housekeeping: 8 Recent-decisions entries archived to archival-memory.md, and 21 oversized inline entries split into detail files per the two-tier rule -- they had been sitting fully inline in the index, which is what the split exists to prevent. Two pointers to a detail file archived this run were repointed at archival-memory.md. The index is 389 lines, still over the ~300 soft cap. The archival guards stop it there: only 4 further entries are old enough to move and every one carries an open deferred-work pointer. An over-cap file that keeps live decisions beats a scannable one that lost a deferred call.
1.4 KiB
[2026-09-11] MEASURED: two concurrent training jobs on pfi-gx10 are 13% NET SLOWER than running them back to back — VRAM is
⭐ MEASURED: two concurrent training jobs on pfi-gx10 are 13% NET SLOWER than running them back to back — VRAM is not the constraint and never was. Operator asked to run the two BabyYarros arms in parallel if VRAM allowed. It does, comfortably: 18.4 GiB per 4B LoRA job, 36 of 121 GiB with both up, 98 GiB free. But the GB10 is a capacity box, not a throughput box, and the binding constraint is memory bandwidth. Solo baseline 37.10 s/it (n=6, 0.05% spread); with a second job both arms settled at ~85 s/it — 2.29x each, so combined throughput 0.0235 vs 0.0270 steps/s solo. Not a clean 2x split: the box is past its roofline and pays a contention penalty on top. ⭐ Control: killing the second job returned the first to 37 s/it on the very next step, so the slowdown tracked contention and reversed with it. Chaining finished both arms ~43 min earlier than concurrency would have. General form: on this box, nvidia-smi free memory tells you nothing about whether a second job is affordable. Decision rule was pre-registered before the numbers were read (<55 s/it keep both, ≥2x chain). scripts/yarros-corpus/{launch-yarros-4b-base,chain-yarros-4b-base}.sh; the shared-GPU bypass is an explicit argument, never a default.