Skip to content

ci: Vulkan validation with cost-balanced test-backend-ops sharding - #52

Merged
lalalune merged 12 commits into
eliza/develop-pin-ea8b3f2from
fix/bge-nonspacing-marks-31518
Oct 14, 2026
Merged

lalalune merged 12 commits into
eliza/develop-pin-ea8b3f2from
fix/bge-nonspacing-marks-31518

Conversation

@lalalune

@lalalune lalalune commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Retargeted to eliza/develop-pin-ea8b3f2 and narrowed to Vulkan CI (2026-10-13).

  • The BGE WordPiece / embedding-token-options work this PR originally carried has already landed on develop-pin; the old base codex/aosp69-vulkan-core-storage is fully contained in it. The branch was rebuilt on develop-pin (c6e523b6).
  • The Metal half (strict real-MTL0 gate, MUL_MAT capability narrowing, TBQ3/TBQ4 attention-score kernels, matmul support test) is superseded by metal: enforce kernel capabilities and restore numerical parity gates #61 (codex/metal-capability-validation), which re-implements the same changes against develop-pin. Those commits were dropped here so the two PRs don't conflict; this branch merges cleanly with metal: enforce kernel capabilities and restore numerical parity gates #61's head (git merge-tree).

What remains

  • test-backend-ops --test-shard index/count: deterministic partition of the matching occurrences (duplicates and whole-graph cases included), with each occurrence's owner printed in the inventory. Occurrences are assigned by estimated cost (op FLOPs + bytes + per-case term, longest first onto the lightest shard). Index-modulo assignment let the large hsk=512/576 FLASH_ATTN_EXT cases stack on one worker: shard 86 hit the 600 s limit (exit 124) in run 35630168295.
  • --threads also applies to tensor initialization and the CPU reference backend.
  • Eliza Vulkan Validation: one GGML_NATIVE=OFF runtime build shared by 128 workers (MUL_MAT and FLASH_ATTN_EXT sharded; unsharded ops on worker 0), 1200 s per sharded invocation with elapsed time logged, and an aggregate job that re-verifies every worker's raw log (scripts/ci_verify_vulkan.py): same inventory and assignment on every worker, each worker ran exactly its own occurrences, union covers every occurrence once, no FAIL, unsupported counted separately.
  • Removed the one-off fixed-artifact / partition-children diagnostic workflows: they replayed an expired artifact from run 35506984389, qualified nothing, and the fixed-artifact one exited 1 by design.

Local: verifier tests pass (7); --test-shard assignment identical across workers, 1,420 MUL_MAT and 5,096 FLASH_ATTN_EXT occurrences fully covered.

Hosted CI on this head

Pending.

🤖 Generated with Claude Code

@lalalune
lalalune force-pushed the fix/bge-nonspacing-marks-31518 branch from cc0cfdf to fd4e328 Compare October 14, 2026 03:30
@lalalune lalalune changed the title fix(wordpiece): align BGE normalization and embedding token options metal: TBQ attention score kernel and matmul capability alignment; Vulkan CI cost-balanced sharding Oct 14, 2026
@lalalune
lalalune changed the base branch from codex/aosp69-vulkan-core-storage to eliza/develop-pin-ea8b3f2 October 14, 2026 03:31
lalalune and others added 12 commits October 13, 2026 23:42
--test-shard assigned occurrences by index modulo the shard count, so the
expensive hsk=512/576 FLASH_ATTN_EXT cases could stack on one worker. On
llvmpipe shard 86 of 128 exceeded the 600 s limit (exit 124) while most
shards finished in a few minutes.

test-backend-ops now estimates each matching case (op FLOPs plus a
per-byte and per-case term, from the same metadata-only graph eval()
builds) and assigns longest-first to the lightest shard. The assignment
is deterministic, printed in every inventory line ("Shard inventory N ->
S: ..."), and the verifier requires every worker to report the same
assignment, run exactly its own occurrences, and cover each occurrence
once across the union.

The workflow gives sharded invocations 1200 s (worker 0 also runs every
unsharded op, so the job limit rises to 75 minutes) and reports each
invocation's elapsed time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fixed-artifact and partition-children diagnostics replayed one
runtime artifact from run 35506984389 to time cases from the shard that
timed out. They qualify nothing ("Diagnostic only, not matrix
qualification"), the fixed-artifact run exits 1 whenever one of its
pinned slow cases does not complete in its bound (as on the last push),
and the pinned artifact has a 14-day retention that has since expired,
so both would now fail on any pull request touching them. The shard
timing they measured is addressed by cost-balanced sharding.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lalalune
lalalune force-pushed the fix/bge-nonspacing-marks-31518 branch from fd4e328 to b8fa7fe Compare October 14, 2026 03:43
@lalalune lalalune changed the title metal: TBQ attention score kernel and matmul capability alignment; Vulkan CI cost-balanced sharding ci: Vulkan validation with cost-balanced test-backend-ops sharding Oct 14, 2026
@lalalune
lalalune merged commit f3fbe2b into eliza/develop-pin-ea8b3f2 Oct 14, 2026
15 of 41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant