-
Notifications
You must be signed in to change notification settings - Fork 270
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
Matrix.dot is not merged #1407
Comments
The reason to have matmulsm is to avoid loading all inputs to registers (the m at the end stands for memory). The only reason not to have matmulsm mergeable is the effort involved. You should be able to force |
Thanks for the swift response. This works for now. My guess would be that it should be turned into varargs instructions, followed by adjustments in the SubProcessor (and to the Hemi protocol). How would this be handled on the compiler side? |
You're correct abouth the virtual machine side. The compiler side would relatively easy. You would need to adapt |
Thank you very much. I may attempt making matmulsm mergeable once I have the time to do so. |
Hello,
I am currently developing a protocol which uses vector-matrix multiplications and I've noticed some unexpected behavior, produced by the following example code:
When executed using replicated ring (of MP-SPDZ version 0.3.8 as well as the current master branch), this yields the following outputs:
As shown, the vector-matrix multiplications are not merged when using the Matrix.dot function, which would require me to use the first approach, which drastically increases the compile time, or the very hacky fourth method.
Both solutions don't seem to be very good. Further, I can see others (and my future self) wrongfully relying on the dot function being parallelized / mergeable.
I have identified two ways this could be achieved:
Is it intended that the dot function is not merged? If not, which way to fix this issue would you recommend?
The text was updated successfully, but these errors were encountered: