A Dynamic Hash Table for the GPU
Saman Ashkiani, Martin Farach-Colton, John D. Owens

TL;DR
This paper introduces a high-performance, fully concurrent dynamic hash table for GPUs that leverages warp-cooperative strategies and a custom memory allocator to achieve state-of-the-art update and query speeds.
Contribution
It presents a novel warp-cooperative work sharing strategy and a dynamic memory allocator, enabling efficient concurrent updates and searches in a GPU-based hash table.
Findings
Supports up to 512 million updates per second
Processes up to 937 million search queries per second
SlabAlloc is up to 37 times faster than alternatives
Abstract
We design and implement a fully concurrent dynamic hash table for GPUs with comparable performance to the state of the art static hash tables. We propose a warp-cooperative work sharing strategy that reduces branch divergence and provides an efficient alternative to the traditional way of per-thread (or per-warp) work assignment and processing. By using this strategy, we build a dynamic non-blocking concurrent linked list, the slab list, that supports asynchronous, concurrent updates (insertions and deletions) as well as search queries. We use the slab list to implement a dynamic hash table with chaining (the slab hash). On an NVIDIA Tesla K40c GPU, the slab hash performs updates with up to 512 M updates/s and processes search queries with up to 937 M queries/s. We also design a warp-synchronous dynamic memory allocator, SlabAlloc, that suits the high performance needs of the slab hash.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
