Skip to content

Raising: unroll budget for constant-bound loops - #3004

Merged
wsmoses merged 3 commits into
mainfrom
pb/unroll-budget
Sep 3, 2026
Merged

Raising: unroll budget for constant-bound loops#3004
wsmoses merged 3 commits into
mainfrom
pb/unroll-budget

Conversation

@wsmoses

@wsmoses wsmoses commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nested constant-bound loops unroll multiplicatively: mfem's generic max-degree EA fallback kernels (runtime degree, loops bounded by MAX_D1D-style constants) reached millions of opsbilininteg_diffusion_ea.cpp produced a 2 GB object whose largest embedded module was a gigabyte of textual IR with SSA ids past 2.2M. Estimate the unrolled op count recursively and, past a budget, try the while raising first even when unrolling is preferred (prefer_while_raising=false): the diffusion EA object shrinks to 78 MB, convection EA 935 MB → 30 MB, all still raising fully.

The budget is a pass option, unroll_budget (default 65536, the nested unrolled op count past which a constant-bound affine.for raises as a while); -1 disables it. The test covers the default, a tight budget that pushes a 4-trip loop to a while, and -1 unrolling the 100000-trip loop.

Part of #2968.

🤖 Generated with Claude Code

https://claude.ai/code/session_016zErYp7upmqr4NHfhod9UD

Nested constant-bound loops unroll multiplicatively: mfem's generic
max-degree EA fallback kernels reached millions of ops and a 2 GB
object (one embedded module was a gigabyte of text). Estimate the
unrolled op count and, past a 64k budget, try the while raising first
even when unrolling is preferred: the diffusion EA object shrinks from
2 GB to 78 MB and still raises fully.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016zErYp7upmqr4NHfhod9UD
wsmoses and others added 2 commits September 3, 2026 09:19
unroll_budget (default 65536) is the nested unrolled op count past which a
constant-bound affine.for raises as a while; -1 disables the budget.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016zErYp7upmqr4NHfhod9UD
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016zErYp7upmqr4NHfhod9UD
@wsmoses
wsmoses merged commit 9449818 into main Sep 3, 2026
23 of 29 checks passed
@wsmoses
wsmoses deleted the pb/unroll-budget branch September 3, 2026 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant