Open nhysteric opened 2 weeks ago
I also have a question about the max size of RsOpprf:
# receiver
oc::span<const block> keyspan(key.data() + offset, binSize);
oc::MatrixView<block> outputspan(outputs.data() + offset * outputs.cols(), binSize, outputs.cols());
auto p = receiver.receive(binSize * context.max_in_bin, keyspan, outputspan, prng, context.threads, chl);
# sender
oc::span<const block> keyspan(key.data() + offset, binSize * context.max_in_bin);
oc::MatrixView<block> valuespan(value.data() + offset * value.cols(), binSize * context.max_in_bin, value.cols());
auto p = sender.send(binSize, keyspan, valuespan, prng, context.threads, chl);
In this situation, the size of (valuespan+keyspan)
is 4288042880 bytes, which is lower than u32 max 4294967295 bytes. However it still failed in extern/volePSI/out/install/linux/include/coproto/Socket/SocketScheduler.h:1016
COPROTO_ASSERT(data.size() < std::numeric_limits<u32>::max());
where data.size
is 5771200000.
So my question is, how many additional information will be attached to the payloads?
You could modify the code to use u64. I believe the size is n*1.24
or something like that.
I'll try to look at the multi threading at some point. Might not be soon.
Thank you for your reply. Modification code looks a bit complicated and I couldn't find a starting point. I'm now using subpackages to transfer data.
OK. So apart from the multi thread thing your are good?
Also, you likely don't want to do a psi with more than a million items. If you do have that many, you can shard your dataset and process each shard independently.
Yes, and this assertion `B2 <= B' will aslo failed in RsOPPRF with some specific input size.
what sizes
Well, here is some tests I made:
X | val | values | ||
---|---|---|---|---|
sender | 26840 | 26840*5000 | receiver | 2684 |
20180 | 20180*3000 | 2018 | ||
18216 | 18216*5268 | 2024 |
Where X
and values
are oc::span<block>
, val
is oc::MatrixView<block>
. All sizes are in blocks.
This is the gdb backtrace:
And this assertion is also appeared in other test, like test 47: