Three devices, no contention
Every claim below links to the record it came from. Interim results are labelled as interim. The device router switchyard is now interlock, renamed before its first release because the old name is taken.
E4b’s result
Section titled “E4b’s result”E4b asks whether each device keeps its speed when another runs beside it. A pair counts as “free” only when the 90% interval of its slowdown sits inside ±10%. That rule was fixed in advance.
| Measured device | Beside | Change | 90% interval | Verdict |
|---|---|---|---|---|
| 5090 (decode rate) | NPU | −0.8% | −1.2% to −0.5% | free |
| 5090 (decode rate) | iGPU | +0.6% | +0.2% to +1.4% | free |
| NPU (latency) | 5090 | −0.6% | −1.3% to +0.1% | free |
| iGPU (latency) | 5090 | +2.5% | −1.0% to +4.8% | free |
So the router can treat the three devices as independent lanes, and E4’s question is answered.
The NPU and iGPU rows took a second run. In the first full block those two pairs came out inconclusive, and not because of noise. The Intel calls take about 40 ms, and the harness ran them within a tenth of a second of starting the 5090. So they overlapped the 5090’s start, not its steady decode. The clock check refused them. The harness now waits for one steady 5090 warm-up, and the re-run of just those two pairs had no refusals at all.
One detail for routing: the iGPU’s latency beside a 5090 decode is sometimes about 6% higher, which is inside the band but worth knowing for latency-sensitive iGPU work. That chart was drawn after the verdict, and it decides nothing.
→ The E4b data and charts → E4b block 2
How the harness got there
Section titled “How the harness got there”E4b is the redesign of the co-scheduling experiment that came out inconclusive. Its harness merged after two rounds of review.
- It runs its own Ollama server. The server inherits the system environment with every Ollama setting stripped, then gets three pinned values.
- Before it measures anything, the run refuses unless the server’s new log shows the CUDA 13 backend, the model sits wholly in GPU memory, and the model’s digest matches the spec.
- Before the server starts, the VRAM watchdog must be alive and the card must be empty.
A pilot of 20 calls on the 5090 alone set the clock tolerance from data, at 22.5 MHz (three of the card’s clock steps). All 20 ran at full length, at 218–224 tokens/s.
→ The switchyard review record
Live-only defects
Section titled “Live-only defects”The first pilot attempts stopped before any device work, with the card idle.
- The listener looked closed. After an overnight update, Windows build 26340 reports Ollama’s listening socket as “Closed”, so every lookup by listening state found nothing. → The rig fact
- The command runner threw its output away, so the server pin read nothing. Worse, the git check read “no output” as “clean tree”. It now fails closed.
- The pilot counted its prompt before its own server existed.
A read of the pilot path then turned up more of the same, all fixed before the fourth try:
- the start didn’t wait for the server to come up;
- GPU clock sampling wasn’t connected;
- there were no request timeouts.
The fourth try showed that E4’s prompt, one sentence repeated, makes the model loop at long lengths, so E4b now counts “1, 2, 3, …”. The first full block then lost its record to a read-only NPU cache file at cleanup. The harness now writes the record first, refuses run names already in use, and sets aside any run that stops.
Fakes that told the truth, continued
Section titled “Fakes that told the truth, continued”Issue 3 described four failures caused by test fakes. The count is now seven. The pattern is the same each time: a test swaps in a stand-in for a real call, and the real version is never exercised. The remedies are:
- recorded real exchanges;
- one test that builds the live setup with nothing swapped in and fails if anything is still a stand-in;
- reads that refuse a missing value instead of passing it.
→ Test fakes that hide the platform
The puzzle generator and batch 6
Section titled “The puzzle generator and batch 6”- Dated spans. The solver now works out which edition was in force on a given day. The writer can’t state it, which closes the shortcut that let a placeholder date pass.
- The generator’s first slice builds T10 puzzles, then proves that a reader who misreads “exactly” or “at least” gets a different answer. T10 uses only “which could be…” and true/false questions, because a single-answer question can’t show that misreading.
- Batch 6’s last fixes were wording and options only, and it is clear for the Stage 1 freeze.
