Skip to content

ci(ci): Offer the table size on the Strength workflow's dispatch tab - #376

Merged
aywrite merged 1 commit into
masterfrom
claude/tt-aging-spec-mosqqn-ci
Oct 5, 2026
Merged

aywrite merged 1 commit into
masterfrom
claude/tt-aging-spec-mosqqn-ci

Conversation

@aywrite

@aywrite aywrite commented Oct 5, 2026

Copy link
Copy Markdown
Owner

hash_mb was an input of the Strength workflow's reusable form only, so a match started from the actions tab always played at 256 MB. A change to how the transposition table replaces entries only shows when the table is full, which at 10+0.1 means a smaller table, so the size is now a dispatch input with the same default of 256.

A dispatch input arrives as a string, and the batch workflow declares the size a number, so it is read back off the resolve job's outputs through fromJSON, as the elo bounds are. scripts/tests/test_strength_ladder.py caught the first version, which handed the raw input to the typed one.

It has already run: the table aging matches were dispatched from this commit, at 16 MB and at 256 MB, and every shard's manifest recorded the size asked for. The script tests pass (204; the five that need chess or numpy were not run locally).

🤖 Generated with Claude Code

https://claude.ai/code/session_01WmzY2g6SZGYszT5dnuQ6tw


Generated by Claude Code

hash_mb was an input to the reusable form only, so a match started from the
actions tab always played at 256 MB. A change to how the table replaces
entries only shows when the table is full, which at 10+0.1 means a smaller
table, so the size is now a box with the same default.

A dispatch input arrives as a string, and the batch workflow declares the
size a number, so it is read back off the resolve job's outputs with
fromJSON like the elo bounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WmzY2g6SZGYszT5dnuQ6tw
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Speed against d9379f35

Measured on AMD EPYC 9V74 80-Core Processor.
Both sides built with rustc 1.98.1 (48a229cea 2026-09-01).

Both sides built and run on this runner in this job, the way
scripts/speed.sh measures a perf commit. Each round runs
both sides on a layout of its own, the same compiled code with
its code and data shuffled and moved, so the 95% interval carries
where the code landed as well as the run. The verdict holds the
interval against a 1% threshold. The default layout, the one a
release ships, is measured after as a diagnostic. The node
counts are the search's: they move when the search does, and a
speed change leaves them alone.

round     base nps  candidate nps  change
    1      5697686        5748479   +0.9%
    2      5832308        5849572   +0.3%
    3      5710223        5704070   -0.1%
    4      5799661        5689481   -1.9%
    5      5781973        5734929   -0.8%
    6      5845354        5764537   -1.4%
    7      5643188        5725111   +1.5%
    8      5672408        5738973   +1.2%
    9      5762627        5682387   -1.4%
   10      5627495        5739398   +2.0%
   11      5762565        5782539   +0.3%
   12      5496257        5643193   +2.7%
   13      5712919        5839409   +2.2%
   14      5834053        5817657   -0.3%
   15      5770502        5679131   -1.6%
   16      5546120        5603857   +1.0%
   17      5438786        5492067   +1.0%
   18      5589503        5524683   -1.2%
   19      5484938        5716093   +4.2%
   20      5686471        5618116   -1.2%
   21      5682512        5597674   -1.5%
   22      5442194        5684326   +4.4%
   23      4894506        5096874   +4.1%
   24      5521487        5381727   -2.5%
   25      5644603        5626243   -0.3%
   26      5579978        5662335   +1.5%
   27      5673725        5768421   +1.7%
   28      5757910        5515867   -4.2%
   29      5709245        5700092   -0.2%
   30      5762098        5672953   -1.5%
   31      5582546        5469029   -2.0%
   32      5548580        5503431   -0.8%
   33      5565771        5431289   -2.4%
   34      5630385        5762120   +2.3%
   35      5496080        5640493   +2.6%
   36      5646617        5676354   +0.5%
   37      5659746        5680072   +0.4%
   38      5639496        5300213   -6.0%
   39      5655443        5668969   +0.2%
   40      5684298        5682853   -0.0%

             nodes    time  median nps  faster half
base       5965973  1.05 s     5657594      5739914
candidate  5965973  1.05 s     5679602      5740526
change                           +0.4%        +0.0%

paired change +0.1%, 95% interval -0.6% to +0.8%
diagnostic, on the default layout alone -1.2%, 95% interval -2.3% to -0.0%, 13 rounds

no change beyond ±1.0%: the whole interval is inside it

Speed: +0.1% (bench nps, 95% interval -0.6% to +0.8%, 40 interleaved rounds over shuffled layouts vs d9379f35)

The instructions each side's bench executed, counted under
cachegrind. The count repeats to within a few hundred
instructions, so a small change here is a real one, but it
prices instructions only: cache misses, mispredicted branches
and where the code lands are the speed's to show.

instructions against d9379f35, one cachegrind run a side, bench

            instructions    nodes  per node
base       9,011,280,137  5965973    1510.4
candidate  9,011,280,166  5965973    1510.4
change            +0.00%             +0.00%

within ±0.7%, as far as edits not made for speed have moved the count

@aywrite
aywrite merged commit ec2abac into master Oct 5, 2026
21 checks passed
@aywrite
aywrite deleted the claude/tt-aging-spec-mosqqn-ci branch October 5, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants