-
Notifications
You must be signed in to change notification settings - Fork 84
Add weak dependencies to TD3 (rebased) #1747
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
Conversation
|
I redid the comparison on ConcurrencySafety from sv-benchmarks, but with full SV-COMP resource limits. The output is currently here, but the important plots are screenshotted below: https://goblint.cs.ut.ee/results/259-concurrency-weak-deps-before/table-generator-cmp.table.html#/. Quantile plotsEvalsCPU timeScatter plots (before vs after-lazy)EvalsCPU timeDifferencesGoing from before to after-lazy also has an impact on 6 verdicts:
Although this doesn't give is more points in SV-COMP, these speedups are insane: at least 300×! Given all of this evidence, I'm proposing to make lazy weak dependencies the default in TD3. |
|
This looks good to me. Reminder that I cannot accepts PRs, hence the comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've now made no weak dependencies the default.
CHANGES: * Add division by zero analysis (goblint/analyzer#1764). * Add bitfield domain (goblint/analyzer#1623). * Add weakly-relational C-2PO pointer analysis (goblint/analyzer#1485). * Add widening delay (goblint/analyzer#1358, goblint/analyzer#1442, goblint/analyzer#1483). * Add narrowing of globals to top-down solver (goblint/analyzer#1636). * Add weak dependencies to top-down solver (goblint/analyzer#1746, goblint/analyzer#1747). * Add YAML ghost witness generation (goblint/analyzer#1394). * Remove GraphML witness generation (goblint/analyzer#1732, goblint/analyzer#1733, goblint/analyzer#1738). * Use C standard option for preprocessing (goblint/analyzer#1807). * Add bash completion for array options (goblint/analyzer#1670, goblint/analyzer#1705, goblint/analyzer#1750). * Make `malloc(0)` semantics configurable (goblint/analyzer#1418, goblint/analyzer#1777). * Update path-sensitive analyses (goblint/analyzer#1785, goblint/analyzer#1791, goblint/analyzer#1792). * Fix evaluation of library function arguments (goblint/analyzer#1758, goblint/analyzer#1761). * Optimize affine equalities analysis using sparse matrices (goblint/analyzer#1459, goblint/analyzer#1625). * Prepare for parallelism (goblint/analyzer#1708, goblint/analyzer#1744, goblint/analyzer#1748, goblint/analyzer#1781, goblint/analyzer#1790).




This is a rebase of (the relevant parts of) #1743 on top of #1746.
It was easier to cherry-pick the necessary commits from #1743 to avoid conflicts with #1746. Also #1743 includes changes to unrelated solvers which would've needed reverting anyway. So this way we get a cleaner history.
TODO