Description
bench_summary.box (added in #1034) records the conditions a custom-workload number was measured in: tctl_c, gtt_used_gib, gtt_total_gib, mem_available_gib, and on the summary tctl_c_min/tctl_c_max/tctl_samples.
It does not record the NPU. For this workload that is the condition that has mattered most:
- This box's policy (okf
policies/strixhalo-thermal-and-gpu-claims.md, "Coexistence vs contention", 2026-11-05) is that the two engines coexist safely — the real cross-engine hazard is a shared dma-buf range, not simultaneity — but a GPU arm beside a running NPU matrix corrupts both lanes' numbers. That makes NPU occupancy a condition of the score, in the same class as the die temperature. - The long-context arm in this lane (
HL_MTP_MAX=0, 20,480 ctx / 18,800-token leg, 27B UD-Q4_K_XL) was offered 27 times on 2026-11-05 and produced no number, every refusal on an "is the NPU idle" gate. Had one of those attempts measured beside a job, its JSON could not have said so — and with the gate relaxed to "record instead of refuse" (which is what the policy above calls for), an unattributable number is exactly what would be produced.
So a reader of a result cannot currently tell a clean arm from one measured beside an NPU job, which is the same defect class as #947 (no device stack), #993 (no model fingerprint), #996 (no box conditions), #1008 (no placement) and #1062 (no drafting): the artifact cannot answer a question about itself.
Field wanted, in the same shape as the rest of box, read device-free from the claim files:
"box": {
"tctl_c": 61.75, "tctl_c_min": 61.75, "tctl_c_max": 74.62, "tctl_samples": 4,
"gtt_used_gib": 51.39, "gtt_total_gib": 120.0, "mem_available_gib": 61.49,
"npu_holder": "npu-serve-keeper pid 4675", "npu_job": false, "npu_queued": 0,
"npu_job_samples": 0, "npu_samples": 4
}npu-serve-keeper (the owner's resident serve) is baseline box state and must not read as contention; npu_job_samples/npu_samples are needed because a job can start after the arm is claimed (the same reason tctl_samples exists).
Fixed in the PR that closes this; reproducer is a direct box_conditions() call on both trees, where origin/main 29ec80c6 returns no npu* key at all.
Activity