Skip to content
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

Manually unroll MDS calculation #2558

Closed
wants to merge 1 commit into from

Conversation

georgeee
Copy link

Modify full_round to perform round inline when params.mds.len() == 3.

This optimization gave a ~3% speedup (measured by mina ledger test apply on top of a PR stack #2394, MinaProtocol/mina#15980 and TODO open a PR.

Although 3% isn't much, I expect speed-up to be better when a batch version of hash (MinaProtocol/mina#16053) is delivered.

P.S. change's diff is bloated by ^M characters present at the end of each line for the previous version of the poseidon/src/permutation.rs file.

@dannywillems
Copy link
Member

As discussed with @georgeee online, we can close this for now.

@georgeee
Copy link
Author

georgeee commented Dec 18, 2024

Copying my message from Slack

let's close this one for now. Initially I thought it would be useful. But now I'm not that sure. For the work I was doing I developed a quite different version of this computation (relying on parallelism). So the usage against which I was seeing 3% speed-up (i.e. ocaml bindings) will end up not involving the optimized call. And I have no idea whether this optimization would still make sense in other contexts (like WASM) or is likely to worsen things.
3% is also not that convincing. I thought there will be a follow-up with more increases, but it turned out to be a futile endeavor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants