Skip to content

Move the ABC pin on to the bounded ISOP table - #1243

Merged
TrevorHansen merged 1 commit into
masterfrom
abc-pin-isop-bound
Oct 4, 2026
Merged

TrevorHansen merged 1 commit into
masterfrom
abc-pin-isop-bound

Conversation

@TrevorHansen

Copy link
Copy Markdown
Member

Follows #1242, which pinned 1b977a4d5. This moves on to e19e80d78, adding stp/abc#20: the ISOP cover table that pin brought in is now bounded at 1024 entries, about 200 KB.

It needed bounding. The table inserts on every miss and never evicts, so its size was limited only by two entries per cone — O(AIG) — and at roughly 160 bytes an entry a twelve-million-gate blast could in principle have reached a gigabyte of table while getting nothing back, since in that regime almost every lookup is a miss. Real circuits are nowhere near: four functions answer all 146,304 cover requests of a 293k-AND multiplier, and the most diverse input measured presents 166. But that was a property of the circuits rather than of the code.

The bound costs nothing measurable. Replaying the request streams against a bound of 1024, an LRU of 1024 and a direct-mapped 1024 all reproduce the unbounded table's hit rate to three decimal places, so the policy is the simplest one that bounds it: past the bound a stored function is still replayed, one that is not is computed and not stored.

Verified against an ABC built at exactly e19e80d78 and reached through -DABC_DIR, since a plain configure resolves ABC from whatever libabc-pic.a another build tree installed first and would not test the pin at all: build clean, 357 of 357 tests passing.

The ISOP cover table the previous commit's pin brought in inserts on
every miss and never evicts, so its size was bounded only by two
entries per cone, which is O(AIG). stp/abc#20 bounds it at 1024
entries, about 200 KB.

It costs nothing measurable. Replaying the request streams against a
bound of 1024, an LRU of 1024 and a direct-mapped 1024 gives the same
hit rate as the unbounded table to three decimal places, the most
distinct cut functions any measured circuit presents being 166.

Rebuilt and retested against an ABC built at exactly this revision:
357 of 357.
@TrevorHansen
TrevorHansen merged commit c68a547 into master Oct 4, 2026
20 checks passed
@TrevorHansen
TrevorHansen deleted the abc-pin-isop-bound branch October 4, 2026 07: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