Repository navigation
gpu-gate.sh: the PIN_3090 refusal of the Qwen3.8 serve plain arm applies to the real tier only, so the fixture tier runs the plain arm on GB10 and RTX 5090 - #1024
Conversation
…ies to the real tier only, so the fixture tier runs the plain arm on GB10 and RTX 5090 The pin's reason is the paged clause, which the gate defers by name in the fixture tier (its rooms are the real file's shapes), so a fixture run on any card was refused for a clause it never runs.
There was a problem hiding this comment.
Verdict: CLEAN: The fixture-tier bypass matches the deferred paged clause, and real-tier card refusals remain enforced.
Checked
Duplicates: 0 new functions, types or constants; no duplicate owner introduced. The two new cases exercise box and local card paths.
Complexity: The change adds one tier check to the existing refusal loop.
Silent failure: 0 new sites. Invalid tiers exit 64 before the bypass; empty or unset tier selects real.
Tests: bash -n passed during validation. Static mutation check: removing tools/gpu-gate.sh:2274 would make both new regression scenarios return 64 instead of the asserted 0.
Gates: The fixture-only refusal change has a dated PIN, its reason and FAIL-first output in the PR. The real-tier pin remains.
Escape catalog: No changed code matches C1–C4.
Notes
Full self-tests, GPU gates, dryer and crapper were not run during validation. No Rust file changed.
The reported GB10 run omits the required nvidia-smi line and model path, so GPU evidence is incomplete.
🔨 Shingler, bloomery's review bot: approves a clean pull request and requests changes on a must-fix (how it works)
|
The review is done and the contribution check passed, so I'm merging this. |
Qwen3.8 serve gate의 plain arm이 fixture tier에서 3090 전용 거절 때문에 돌지 않던 문제를 고쳤습니다.
What and why
tools/gpu-gate.shrefuses thegate_qwen38_serveplain arm on any card but the RTX 3090, because the real file'spagedclause is only valid there. The fixture tier defers that clause (tier::run_clause("paged", Tag::Scale)), so on a GB10 or an RTX 5090 the refusal rejected the plain arm for a clause that does not run. The refusal now applies to the real tier only. The real tier's pin and its reason are unchanged. Thejustfilecomment that described the plain arm's call as 3090-only now says "in the real tier".Release notes: Fixed: the Qwen3.8 serve gate's plain arm now runs in the fixture tier on GB10 and RTX 5090 instead of exiting 64 as a 3090-only gate.
Code shape
The review reads these first. A box left unticked needs one line of why.
copying it (
AGENTS.md"Common code first",docs/rust-quality.mdR14). Where I found an existing copy, Inamed it below.
(tensor shapes, the attention kind, the quant). A common owner gained no per-model branch, flag or trait method.
tools/check-comments.sh).PIN(YYYY-MM-DD):and its reason.
cargo fmtandcargo clippyare clean on what I touched; the lint count did not go up.Duplication found or removed (
path:line), or "none": noneWhat I ran
Before (base
989d0106b36ca2141adf5d506c3ebdef0c86a1c9) and after (head3ac5714f8b88d67cd407c108212d741e96d3d994), the same command on a GB10:Base:
Fix, with the
pagedclause deferred in the plain arm:The gate's own self-test gained one case per mode, each failing first without the fix:
Part 1 prints
gpu-gate self-test: 68 of 68 okand part 3 printsgpu-gate self-test: 51 of 51 ok. With the[ "$TIER" = real ] || breakline removed, part 1 printsFAIL a 3090-only gate in the fixture tier runs on the A6000: rc 64 (want 0)andgpu-gate self-test: 67 of 68 ok, and part 3 printsFAIL … a 3090-only gate in the fixture tier runs on another local card: rc 64 (want 0)andgpu-gate self-test: 50 of 51 ok.Hardware (if the change is for a machine)
AI help
AI 코딩 에이전트가 코드를 작성한 후 설명을 썼고, 테스트를 마쳤습니다. diff 리뷰와 PR 초안 리뷰는 제가 직접 했습니다.