Closed llCurious closed 3 years ago
Hi,
Thanks for your interest in our work. The answers to your questions are as follows:
Hey, happy to receive your reply. Thank a lot and this greatly answers many of my questions.
I still have a confusion as to the second point, i currently understand how you implement the functionality. However, i saw that you directly use (inA[i] & mask_bwA)
to mask the least significant several bits to somehow simulate the mod operation over a smaller ring 2^{ell}. I think this might introduce some error since there might be a carry bit which can be ignored in such implementation (similar to SecureML?). If i am wrong, could you please correct misunderstandings?
By the way, i note that you compare with the MP-SPDZ and MiniONN mainly focus on non-linear functions including Sigmoid and Tanh. Your idea of using LUT to compute these functions is interesting, do you have a theoretically comparison concerning round / communication complexity against above two works.
Great work deserves more thinkings. Looking forward to your answers~~
Sry, i idiot. The second point is my misunderstanding and forget about it. SecureML truncates to take the most significant several bits, while you here use mask to take the least significant several bits. The carry bit does not have negative effects indeed.
Hey, @bhatuzdaname ✋🏻. I recently read the paper SIRNN and the work is particularly interesting. However, I just have several questions about the paper and the code implementation. Look forward to receiving your answers~
BuildingBlocks/extension.cpp, truncation.cpp
, the data types to store all the values are uint64_t. I am a little confused here, since the uint64_t implies a ring Z_2^64. This is contradict with the claim in the paper.Thanks a lot anyway, really hope you can answer these questions