-
Notifications
You must be signed in to change notification settings - Fork 169
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
BFS for Insert path #12
Comments
I have not had luck with prefetching speeding things up when the cycles between the prefetch and the use of the bits numbers in the low dozens. |
In the case of the packed table, there's a slightly complex decode step involved that involves more bit manipulation and a dereference into a lookup table. We can actually skip that in the common case (one of the two buckets has space): You don't have to decode the packed bits to get a one-sided error guess if the bucket is full. If all (un-packed) tags are non-zero, you know it's full, so you can avoid one latency worth of the bucket fetch & decode. Interleaving the bucket search in this way should provide for a reasonable speedup for table construction on the packed table. |
Hi,does anyone knows that why the speed for inserting items intio the filter is so slow? Are there any other ideas to speed up the inserting and lookuping?Thx |
We should think about bringing in the BFS-based insert from libcuckoo. It permits more parallel memory accesses & work on the insert path and might give us a nice speed boost.
Barring that, I wonder if it's helpful to try to check the first two buckets in a more explicitly parallel fashion. Might not be, but we can pretty quickly determine if they're full.
The text was updated successfully, but these errors were encountered: