-
Notifications
You must be signed in to change notification settings - Fork 37
VNV type stability improvements and tests #1102
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
base: main
Are you sure you want to change the base?
Conversation
Benchmark Report for Commit 48e93efComputer InformationBenchmark Results |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1102 +/- ##
==========================================
+ Coverage 81.17% 81.23% +0.05%
==========================================
Files 40 40
Lines 3793 3805 +12
==========================================
+ Hits 3079 3091 +12
Misses 714 714 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
DynamicPPL.jl documentation for PR #1102 is available at: |
|
Current benchmarks: Still not happy with that overhead, will try to understand it better and fix. |
|
Thanks, Markus. To clarify, is the below accurate?
|
|
Yes, that's correct. |
|
Some of the overheads turned out to be in Loop univariate has gotten a lot better, from a 12% slow down to 3%. I might still look into e.g. Dynamic, see if I can squeeze that down, but if there's nothing obvious to be found I would call this good enough and start a PR replacing Metadata with VNV. |
More aggressively tighten element types after each
setindex_internal!!. This fixes performance for some models, most notably the Loop univariate 10k that showed substantial disadvantage compared to Metadata in still in #1098.Also, add tests for
tighten_andloosen_types!!. These become more important since we are calling those two functions all the time now, and they must be compile-time no-ops for this to not cause a large overhead. Tests check this the best they can (I've checked more thoroughly manually withcode_typed).Also fix a type instability in
loosen_types!!caught by the new tests.Benchmarking now, depending on results will either mark this ready or add more performance improvements to this if needed.