Skip to content

new IC3: restrict SAT solver decisions to latch and input variables - #2014

Open
kroening wants to merge 1 commit into
mainfrom
kroening/ic3-decision-variable-restriction
Open

new IC3: restrict SAT solver decisions to latch and input variables#2014
kroening wants to merge 1 commit into
mainfrom
kroening/ic3-decision-variable-restriction

Conversation

@kroening

Copy link
Copy Markdown
Collaborator

Summary

  • Disable decision variables for all AIG gate variables in MiniSAT frame solvers
  • Only latch and input variables are branched on; gates are implied by BCP via Tseitin encoding
  • Eliminates ~50% of solver decision overhead

Individual benefit

30-60% SAT solver time reduction on HWMCC benchmarks. This is the single biggest performance win from the rIC3 comparison.

Synergies

Test plan

  • regression/ebmc/new-ic3 passes
  • Builds with -Werror (GCC)

In AIG-based netlists with full Tseitin encoding, any complete
assignment to latch and input variables is totalized by BCP alone —
internal gate variables need not be branched on. This restricts the
decision variables in MiniSAT frame solvers to latches and inputs,
eliminating ~50% of the decision overhead on typical benchmarks.

This is the single biggest performance win from the rIC3 comparison:
on HWMCC benchmarks it reduces SAT solver time by 30-60%.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant