-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exec policy/remove fast reduce #642
Conversation
Experiments seem to indicate this optimisation does not positively impact the Quantify algorithm(s). Hence, we move it into a compile-time flag for later use with variable reordering
If '__reduce_level__fast' is only to-be used with variable reordering where we can guarantee all intermediate results are reduced, then there is no need to have this extra if-statement here.
For the same reason as the duplicate node merging, there is no need to waste CPU cycles on trying to reduce the BDD, if it is only supposed to be used in a context, where it is reduced.
38a0537
to
6468467
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #642 +/- ##
=============================================
+ Coverage 97.306% 97.315% +0.008%
=============================================
Files 90 90
Lines 6534 6480 -54
=============================================
- Hits 6358 6306 -52
+ Misses 176 174 -2 ☔ View full report in Codecov by Sentry. |
🟢 Regression Test (12-Queens)'origin/exec_policy/remove-fast_reduce' is a change in performance of 0.15% (stdev: 0.75%).
Number of samples: 4 |
🟡 Regression Test (QBF 'breakthrough/3x4_19_bwnib')'origin/exec_policy/remove-fast_reduce' is a change in performance of -1.27% (stdev: 2.00%).
Number of samples: 3 |
🟡 Regression Test (Picotrav 'arbiter')'origin/exec_policy/remove-fast_reduce' is a change in performance of -0.56% (stdev: 1.21%).
Number of samples: 3 |
🟢 Regression Test (QBF 'connect4/4x4_9_connect3_bwnib')'origin/exec_policy/remove-fast_reduce' is a change in performance of 0.23% (stdev: 2.73%).
Number of samples: 4 |
🟡 Regression Test (Picotrav 'mem_ctrl')'origin/exec_policy/remove-fast_reduce' is a change in performance of -0.88% (stdev: 1.01%).
Number of samples: 3 |
🟡 Regression Test (14-Queens)'origin/exec_policy/remove-fast_reduce' is a change in performance of -1.30% (stdev: 2.27%).
Number of samples: 3 |
🟢 Regression Test (Picotrav 'adder')'origin/exec_policy/remove-fast_reduce' is a change in performance of 0.24% (stdev: 9.49%).
Number of samples: 10 |
exec_policy::nested::fast_reduce
has been removed and the optimisation is triggered at compile-time instead.__reduce_level__fast
has been simplified such that it is faster.__reduce_level__fast
algorithm turns the Reduce priority queue into a 2-level cut. So, the 3/2 bound has been applied.