perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

perf/inline blake3 round - #557

Closed
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round
Closed

perf/inline blake3 round#557
gabriel-barrett wants to merge 1 commit into
mainfrom
perf/inline-blake3-round

Conversation

@gabriel-barrett

@gabriel-barrettgabriel-barrett commented Aug 13, 2026

Copy link
Copy Markdown
Member

Inline blake3_compress_inner_j. This has the effect of increasing the total width, though not at the same proportion as what we gain on efficiency, for the lookup itself is costly, especially when the input arguments are big.

Eventually we will have to decrease the proof size of the recursive verifier, but there are ways around it see #551

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 2b2a4fd to 1617d60CompareAugust 13, 2026 16:25
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from 1f5a367 to 2b83e35CompareAugust 13, 2026 17:24
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 2b83e35 to 3d03094CompareAugust 13, 2026 21:20
@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett

This comment was marked as outdated.

@argument-ci-bot

This comment was marked as outdated.

@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch 3 times, most recently from d6f0857 to 69ce736CompareAugust 14, 2026 14:45
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 4e89546 (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split35.764 s31.074 s-13.1% (1.15× faster) 🟢107.68 GiB81.50 GiB-24.3% (1.32× smaller) 🟢5.30 MiB6.27 MiB+18.3% (1.18× larger) ⚠️33.1 ms38.1 ms+15.3% (1.15× slower) ⚠️5.961 s4.727 s-20.7% (1.26× faster) 🟢180.38B143.49B-20.5% (1.26× fewer) 🟢15.713 s14.745 s-6.2% (1.07× faster) 🟢11.21 MiB12.14 MiB+8.3% (1.08× larger) ⚠️69.0 ms75.7 ms+9.7% (1.10× slower) ⚠️32.74 GiB29.83 GiB-8.9% (1.10× smaller) 🟢
Vector.append32.628 s27.362 s-16.1% (1.19× faster) 🟢95.00 GiB73.59 GiB-22.5% (1.29× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️32.4 ms39.9 ms+23.0% (1.23× slower) ⚠️5.158 s4.255 s-17.5% (1.21× faster) 🟢157.02B128.00B-18.5% (1.23× fewer) 🟢3.885 s3.795 s-2.3%10.42 MiB11.34 MiB+8.9% (1.09× larger) ⚠️65.7 ms69.1 ms+5.1% (1.05× slower) ⚠️6.80 GiB6.89 GiB+1.4%
Nat.add_comm21.106 s17.709 s-16.1% (1.19× faster) 🟢58.08 GiB44.38 GiB-23.6% (1.31× smaller) 🟢5.30 MiB6.23 MiB+17.5% (1.18× larger) ⚠️34.6 ms38.9 ms+12.3% (1.12× slower) ⚠️3.752 s3.105 s-17.2% (1.21× faster) 🟢113.85B92.75B-18.5% (1.23× fewer) 🟢1.024 s1.034 s+1.0%8.93 MiB9.86 MiB+10.4% (1.10× larger) ⚠️52.6 ms60.8 ms+15.7% (1.16× slower) ⚠️3.79 GiB4.06 GiB+7.0% (1.07× larger) ⚠️

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 69ce736

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 4e89546 (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append39.589 s38.272 s-3.3% 🟢38.95040.290+3.4% 🟢73.66 GiB70.70 GiB-4.0% 🟢9.861 s9.625 s-2.4%131.2 ms146.6 ms+11.7% (1.12× slower) ⚠️21.59 MiB23.38 MiB+8.3% (1.08× larger) ⚠️136.02B130.81B-3.8% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append38.143 s36.140 s-5.2% (1.06× faster) 🟢70.55074.460+5.5% (1.06× faster) 🟢73.09 GiB67.14 GiB-8.1% (1.09× smaller) 🟢9.759 s9.374 s-3.9% 🟢136.4 ms145.1 ms+6.4% (1.06× slower) ⚠️21.69 MiB23.47 MiB+8.2% (1.08× larger) ⚠️138.80B126.89B-8.6% (1.09× fewer) 🟢
Char.ofOrdinal_le_of_le29.836 s29.502 s-1.1%88.69089.690+1.1%58.53 GiB58.49 GiB-0.1%6.903 s6.630 s-4.0% 🟢137.5 ms201.3 ms+46.4% (1.46× slower) ⚠️21.64 MiB23.42 MiB+8.3% (1.08× larger) ⚠️99.42B90.63B-8.8% (1.10× fewer) 🟢
Vector.extract_append._proof_221.860 s21.323 s-2.5%59.56061.060+2.5%39.70 GiB38.22 GiB-3.7% 🟢5.365 s5.263 s-1.9%130.4 ms148.2 ms+13.7% (1.14× slower) ⚠️21.30 MiB23.08 MiB+8.4% (1.08× larger) ⚠️77.08B73.31B-4.9% (1.05× fewer) 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.638 s16.652 s-5.6% (1.06× faster) 🟢102.740108.810+5.9% (1.06× faster) 🟢34.77 GiB31.77 GiB-8.6% (1.09× smaller) 🟢3.634 s3.537 s-2.7%138.0 ms149.8 ms+8.5% (1.09× slower) ⚠️21.47 MiB23.26 MiB+8.3% (1.08× larger) ⚠️54.85B49.57B-9.6% (1.11× fewer) 🟢
String.split16.598 s15.578 s-6.1% (1.07× faster) 🟢106.340113.300+6.5% (1.07× faster) 🟢32.71 GiB29.74 GiB-9.1% (1.10× smaller) 🟢3.376 s3.252 s-3.7% 🟢133.0 ms141.9 ms+6.7% (1.07× slower) ⚠️21.68 MiB23.46 MiB+8.2% (1.08× larger) ⚠️50.25B45.59B-9.3% (1.10× fewer) 🟢
List.mergeSort12.202 s11.714 s-4.0% 🟢118.670123.610+4.2% 🟢23.77 GiB22.24 GiB-6.4% (1.07× smaller) 🟢2.438 s2.333 s-4.3% 🟢129.5 ms147.4 ms+13.7% (1.14× slower) ⚠️21.53 MiB23.32 MiB+8.3% (1.08× larger) ⚠️36.10B32.44B-10.1% (1.11× fewer) 🟢
Vector.append3.968 s3.886 s-2.1%122.230124.810+2.1%6.69 GiB6.60 GiB-1.3%684.6 ms653.3 ms-4.6% 🟢132.6 ms134.9 ms+1.7%20.13 MiB21.92 MiB+8.9% (1.09× larger) ⚠️8.02B7.24B-9.7% (1.11× fewer) 🟢
Nat.gcd_comm3.235 s3.104 s-4.1% 🟢120.550125.640+4.2% 🟢5.07 GiB5.78 GiB+14.0% (1.14× larger) ⚠️524.7 ms507.6 ms-3.3% 🟢123.7 ms133.3 ms+7.8% (1.08× slower) ⚠️19.90 MiB21.68 MiB+9.0% (1.09× larger) ⚠️5.25B4.60B-12.4% (1.14× fewer) 🟢
String.append2.399 s2.299 s-4.2% 🟢126.740132.250+4.3% 🟢4.62 GiB4.64 GiB+0.3%403.9 ms393.2 ms-2.7%123.5 ms127.6 ms+3.3% ⚠️19.17 MiB20.96 MiB+9.3% (1.09× larger) ⚠️2.90B2.55B-12.1% (1.14× fewer) 🟢
Int.gcd1.991 s2.001 s+0.5%104.480103.950-0.5%4.50 GiB4.53 GiB+0.7%355.0 ms343.3 ms-3.3% 🟢118.2 ms129.5 ms+9.5% (1.10× slower) ⚠️18.73 MiB20.51 MiB+9.5% (1.10× larger) ⚠️1.87B1.64B-11.9% (1.14× fewer) 🟢
Nat.sub_le_of_le_add1.815 s1.788 s-1.5%93.65095.090+1.5%4.60 GiB4.62 GiB+0.3%343.9 ms333.7 ms-2.9%113.8 ms128.4 ms+12.8% (1.13× slower) ⚠️19.08 MiB20.87 MiB+9.4% (1.09× larger) ⚠️1.60B1.42B-11.5% (1.13× fewer) 🟢
Nat.add_comm1.011 s1.050 s+3.9% ⚠️41.55040-3.7% ⚠️3.54 GiB4.17 GiB+17.7% (1.18× larger) ⚠️255.5 ms251.9 ms-1.4%106.7 ms116.6 ms+9.3% (1.09× slower) ⚠️17.25 MiB19.04 MiB+10.4% (1.10× larger) ⚠️271.37M249.57M-8.0% (1.09× fewer) 🟢

Workflow logs

Rebased onto the fused xor-rotation branch: the seven inline calls now
compose with the two-operand u32_xor_rotr7/12 forms. Codegen
regenerated and all 71 kernel FFT pins + the shard aggregate
re-measured on top of the new base (median -5.4%, range -11.4%..-0.2%;
shard 6.08B -> 5.21B, -14.4%). aiur (cargo + prove + cross),
ixvm (pins + parity), multi-stark and recursive-verifier suites pass;
fmt, clippy, deny clean.
@gabriel-barrett
gabriel-barrettforce-pushed the perf/inline-blake3-round branch from 69ce736 to b6a4f22CompareAugust 14, 2026 17:50
@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur-recursive fresh

@gabriel-barrett

Copy link
Copy Markdown
MemberAuthor

!benchmark aiur fresh

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur-recursive · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur-recursive · InitStd — main from: base run @ 97aa19e (fresh — bencher bypassed)

3 constants · 3 with regressions · 3 with improvements (|Δ| > 3.0% on any metric).

constantrecursive-prove-time (main)recursive-prove-time (PR)Δ%recursive-peak-ram (main)recursive-peak-ram (PR)Δ%recursive-proof-size (main)recursive-proof-size (PR)Δ%recursive-verify-time (main)recursive-verify-time (PR)Δ%recursive-execute-time (main)recursive-execute-time (PR)Δ%recursive-fft-cost (main)recursive-fft-cost (PR)Δ%prove-time (main)prove-time (PR)Δ%proof-size (main)proof-size (PR)Δ%verify-time (main)verify-time (PR)Δ%peak-ram (main)peak-ram (PR)Δ%
String.split34.284 s31.716 s-7.5% (1.08× faster) 🟢102.25 GiB81.04 GiB-20.7% (1.26× smaller) 🟢5.27 MiB6.27 MiB+18.9% (1.19× larger) ⚠️34.7 ms37.9 ms+9.2% (1.09× slower) ⚠️5.645 s4.839 s-14.3% (1.17× faster) 🟢173.38B143.49B-17.2% (1.21× fewer) 🟢15.805 s15.068 s-4.7% 🟢11.19 MiB12.14 MiB+8.5% (1.09× larger) ⚠️68.0 ms75.8 ms+11.6% (1.12× slower) ⚠️32.25 GiB29.75 GiB-7.7% (1.08× smaller) 🟢
Vector.append31.433 s28.063 s-10.7% (1.12× faster) 🟢90.02 GiB73.45 GiB-18.4% (1.23× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️32.5 ms37.4 ms+15.3% (1.15× slower) ⚠️4.991 s4.283 s-14.2% (1.17× faster) 🟢152.01B128.00B-15.8% (1.19× fewer) 🟢3.853 s3.825 s-0.7%10.39 MiB11.34 MiB+9.2% (1.09× larger) ⚠️65.2 ms68.8 ms+5.5% (1.06× slower) ⚠️7.23 GiB6.34 GiB-12.3% (1.14× smaller) 🟢
Nat.add_comm20.507 s17.985 s-12.3% (1.14× faster) 🟢55.58 GiB44.60 GiB-19.8% (1.25× smaller) 🟢5.27 MiB6.23 MiB+18.1% (1.18× larger) ⚠️34.9 ms38.4 ms+10.2% (1.10× slower) ⚠️3.591 s3.070 s-14.5% (1.17× faster) 🟢107.43B92.75B-13.7% (1.16× fewer) 🟢1.034 s1.031 s-0.4%8.90 MiB9.86 MiB+10.7% (1.11× larger) ⚠️53.3 ms61.2 ms+14.9% (1.15× slower) ⚠️3.98 GiB3.56 GiB-10.7% (1.12× smaller) 🟢

Workflow logs

@argument-ci-bot

argument-ci-botBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs b6a4f22

backends: aiur=prove · envs: InitStd · set: primary · shard: 0 · baseline: fresh (base-SHA run, bencher bypassed)

aiur · InitStd · prove — main from: base run @ 97aa19e (fresh — bencher bypassed)

13 constants · 13 with regressions · 13 with improvements (|Δ| > 3.0% on any metric).

comparison table (13 constants)
constantprove-time (main)prove-time (PR)Δ%throughput (const/s) (main)throughput (const/s) (PR)Δ%peak-ram (main)peak-ram (PR)Δ%execute-time (main)execute-time (PR)Δ%verify-time (main)verify-time (PR)Δ%proof-size (main)proof-size (PR)Δ%fft-cost (main)fft-cost (PR)Δ%
Array.extract_append37.550 s37.412 s-0.4%41.07041.220+0.4%73.20 GiB70.64 GiB-3.5% 🟢9.577 s9.391 s-1.9%138.9 ms151.1 ms+8.8% (1.09× slower) ⚠️21.54 MiB23.38 MiB+8.5% (1.09× larger) ⚠️135.19B130.81B-3.2% 🟢
ByteArray.utf8DecodeChar?_utf8EncodeChar_append37.157 s34.546 s-7.0% (1.08× faster) 🟢72.42077.900+7.6% (1.08× faster) 🟢72.13 GiB67.22 GiB-6.8% (1.07× smaller) 🟢9.613 s9.122 s-5.1% (1.05× faster) 🟢197.0 ms148.7 ms-24.5% (1.33× faster) 🟢21.63 MiB23.47 MiB+8.5% (1.09× larger) ⚠️136.87B126.89B-7.3% (1.08× fewer) 🟢
Char.ofOrdinal_le_of_le28.515 s28.454 s-0.2%92.79092.990+0.2%58.03 GiB58.51 GiB+0.8%6.602 s6.421 s-2.8%131.8 ms150.6 ms+14.2% (1.14× slower) ⚠️21.58 MiB23.42 MiB+8.5% (1.09× larger) ⚠️98.00B90.63B-7.5% (1.08× fewer) 🟢
Vector.extract_append._proof_221.362 s20.460 s-4.2% 🟢60.95063.640+4.4% 🟢39.42 GiB38.21 GiB-3.1% 🟢5.182 s5.110 s-1.4%128.2 ms152.2 ms+18.7% (1.19× slower) ⚠️21.24 MiB23.08 MiB+8.7% (1.09× larger) ⚠️76.48B73.31B-4.1% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq17.040 s15.965 s-6.3% (1.07× faster) 🟢106.340113.500+6.7% (1.07× faster) 🟢34.22 GiB31.82 GiB-7.0% (1.08× smaller) 🟢3.560 s3.361 s-5.6% (1.06× faster) 🟢134.9 ms143.8 ms+6.6% (1.07× slower) ⚠️21.42 MiB23.26 MiB+8.6% (1.09× larger) ⚠️54.00B49.57B-8.2% (1.09× fewer) 🟢
String.split16.080 s15.024 s-6.6% (1.07× faster) 🟢109.770117.480+7.0% (1.07× faster) 🟢32.26 GiB29.72 GiB-7.9% (1.09× smaller) 🟢3.243 s3.158 s-2.6%132.5 ms141.8 ms+7.0% (1.07× slower) ⚠️21.62 MiB23.46 MiB+8.5% (1.09× larger) ⚠️49.51B45.59B-7.9% (1.09× fewer) 🟢
List.mergeSort11.944 s11.350 s-5.0% (1.05× faster) 🟢121.230127.570+5.2% (1.05× faster) 🟢23.52 GiB22.26 GiB-5.4% (1.06× smaller) 🟢2.435 s2.308 s-5.2% (1.05× faster) 🟢133.7 ms142.9 ms+6.9% (1.07× slower) ⚠️21.48 MiB23.32 MiB+8.6% (1.09× larger) ⚠️35.52B32.44B-8.7% (1.09× fewer) 🟢
Vector.append3.982 s3.778 s-5.1% (1.05× faster) 🟢121.780128.380+5.4% (1.05× faster) 🟢7.11 GiB6.06 GiB-14.8% (1.17× smaller) 🟢666.1 ms647.1 ms-2.8%135.2 ms131.0 ms-3.1% 🟢20.08 MiB21.92 MiB+9.2% (1.09× larger) ⚠️7.90B7.24B-8.3% (1.09× fewer) 🟢
Nat.gcd_comm3.194 s3.051 s-4.5% 🟢122.110127.830+4.7% 🟢4.92 GiB4.81 GiB-2.2%529.7 ms504.2 ms-4.8% (1.05× faster) 🟢122.8 ms131.9 ms+7.4% (1.07× slower) ⚠️19.84 MiB21.68 MiB+9.3% (1.09× larger) ⚠️5.15B4.60B-10.7% (1.12× fewer) 🟢
String.append2.339 s2.245 s-4.0% 🟢129.970135.390+4.2% 🟢4.63 GiB4.79 GiB+3.5% ⚠️400.3 ms382.6 ms-4.4% 🟢120.4 ms127.3 ms+5.7% (1.06× slower) ⚠️19.12 MiB20.96 MiB+9.6% (1.10× larger) ⚠️2.85B2.55B-10.5% (1.12× fewer) 🟢
Int.gcd1.991 s1.956 s-1.8%104.490106.350+1.8%5.40 GiB4.53 GiB-16.2% (1.19× smaller) 🟢342.9 ms340.7 ms-0.6%113.8 ms127.5 ms+12.0% (1.12× slower) ⚠️18.67 MiB20.51 MiB+9.9% (1.10× larger) ⚠️1.83B1.64B-10.3% (1.12× fewer) 🟢
Nat.sub_le_of_le_add1.788 s1.741 s-2.7%95.06097.660+2.7%4.42 GiB4.61 GiB+4.3% ⚠️337.3 ms333.3 ms-1.2%113.0 ms128.9 ms+14.1% (1.14× slower) ⚠️19.03 MiB20.87 MiB+9.7% (1.10× larger) ⚠️1.58B1.42B-10.0% (1.11× fewer) 🟢
Nat.add_comm1.019 s1.084 s+6.3% (1.06× slower) ⚠️41.20038.740-6.0% (1.06× slower) ⚠️4.17 GiB3.49 GiB-16.4% (1.20× smaller) 🟢245.4 ms246.5 ms+0.4%107.8 ms115.9 ms+7.4% (1.07× slower) ⚠️17.20 MiB19.04 MiB+10.7% (1.11× larger) ⚠️268.28M249.57M-7.0% (1.07× fewer) 🟢

Workflow logs

Sign up for freeto 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.

1 participant

@gabriel-barrett