-
Notifications
You must be signed in to change notification settings - Fork 483
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
[Builtins] Defer 'readKnown' until full saturation #4430
[Builtins] Defer 'readKnown' until full saturation #4430
Conversation
/benchmark plutus-benchmark:validation |
^ just out of curiosity |
Comparing benchmark results of 'plutus-benchmark:validation' on '61a9a0fbe' (base) and 'd3b87a894' (PR)
|
Yup, makes perfect sense. It might be possible to tame some of that, though. |
d3b87a8
to
6994bf9
Compare
/benchmark plutus-benchmark:validation |
Comparing benchmark results of 'plutus-benchmark:validation' on '61a9a0fbe' (base) and '7d03746ff' (PR)
|
Oh. |
A pleasingly small change, shame about the appalling performance 😅 We also do need a way to be able to pick this behaviour at runtime (for now)... |
Neat. I had to stare at it for quite a while, but seems nice. Any idea why the performance is so garbage? |
/benchmark plutus-benchmark:validation |
I posted a mini version of this problem as a challenge here (more than a year ago).
No point to debug it before the monomorphic |
Comparing benchmark results of 'plutus-benchmark:validation' on '61a9a0fbe' (base) and 'f7ed238a8' (PR)
|
Hmm, I'm keen to get this moving, though. It seems like the effect is big enough that surely it should be observable what's up even without the other things being done yet? |
Realistically, it's unlikely to happen within the next several weeks. I'll update the What would be considered an acceptable slowdown? Up to 15? 10? 5?
Let's talk about that once the |
29b8ca9
to
2bf38b9
Compare
/benchmark plutus-benchmark:validation |
Comparing benchmark results of 'plutus-benchmark:validation' on 'edcf0e886' (base) and '2bf38b98b' (PR)
|
/benchmark plutus-benchmark:validation |
1 similar comment
/benchmark plutus-benchmark:validation |
Comparing benchmark results of 'plutus-benchmark:validation' on 'edcf0e886' (base) and '42357c11c' (PR)
|
^ @michaelpj told ya. The average is +10.8%, which is not that bad given that this is truly a less efficient way of doing builtin application and we've got similar slowdowns in the past by tweaking unlifting just a little bit. Still, I believe we can optimize what's in here, but not without substantial effort (in particular changing |
Comparing benchmark results of 'plutus-benchmark:validation' on 'edcf0e886' (base) and 'f841f1b1a' (PR)
|
/benchmark plutus-benchmark:validation |
Comparing benchmark results of 'plutus-benchmark:validation' on 'edcf0e886' (base) and 'bbb1ac993' (PR)
|
Okay, I'm a little confused, lots of benchmarks. If I understand correctly, the slowdown applies to both ways of doing unlifting, and is a consequence of the machinery, rather than one way being especially slower or faster? A relevant question might be: if we dropped the need to have this be configurable, i.e. we just switched to the new way, would that make things faster (we might have this option later)? |
Yeah, sorry, I should've been clearer.
Yes, the difference is like 1%, i.e. probably noise.
I don't think so. It's not really configurable right now, it's a proof-of-concept. That matching on |
Yep I figured. |
This reverts commit 19656b6.
bbb1ac9
to
e3073ec
Compare
/benchmark plutus-benchmark:validation |
Comparing benchmark results of 'plutus-benchmark:validation' on 'dc9275462' (base) and 'e3073ec34' (PR)
|
Seems like rebasing on master made things a tiny bit worse, by about 1% or so. Maybe just noise. |
…to effectfully/builtins/defer-readKnown-until-full-saturation
Closing in favor of #4516. |
A quick-and-dirty implementation of deferred unlifting.
Emitting does not work.Not intended for merging.