BitBlender: Scalable Bloom Filter Acceleration on FPGAs with Dynamic Scheduling
The Bloom filter is one of the most widely used data structures in big data analytics to efficiently filter out vast amounts of noisy data. Unfortunately, prior Bloom filter designs only focus on single-input-stream acceleration, and can no longer match the increasing data rates offered by modern networks.To support large Bloom filters with low false-positive rate and high throughput, we present BitBlender, a configurable and scalable multi-input-stream Bloom filter acceleration framework in HLS. To effectively share one large bit-vector on chip among all streams, we design and implement the novel arbiter and unshuffle modules to dynamically schedule conflicting accesses to execute sequentially and non-conflicting accesses to execute in parallel. To support different user configurations of the Bloom filter, we also develop an automation flow, together with an accurate performance estimator, to automatically generate the best BitBlender design. Experimental results show that, on the AMD/Xilinx Alveo U280 FPGA, BitBlender achieves a throughput up to 2,194 MQueries/s (i.e., $8.8 \mathrm{~GB} / \mathrm{s}$) for a $\mathrm{9 6 M b}$ bit-vector with 0.01% false-positive rate. It achieves up to 10.4x speedup over a 24-thread CPU implementation and up to 4.9x speedup over a naively-duplicated multi-stream FPGA design. BitBlender will be released soon at https://github.com/SFU-HiAccel/BitBlender.
Authors
- Kenneth Liu (ORCID: https://orcid.org/0009-0002-1348-6583)
- Zhenman Fang (ORCID: https://orcid.org/0000-0003-0603-9697)
- Alec Lu (ORCID: https://orcid.org/0000-0002-3315-7368)
Institutions
- Simon Fraser University (CA)
Publication Details
- Published
- 2024-09-02
- DOI
- https://doi.org/10.1109/fpl64840.2024.00052
- Citations
- 1
- Primary Topic
- Error Correcting Code Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.35