  Hash tables are ubiquitous. Properties such as an amortized constant time
complexity for insertion and querying as well as a compact memory layout make
them versatile associative data structures with manifold applications.
  The rapidly growing amount of data emerging in many fields motivated the need
for accelerated hash tables designed for modern parallel architectures. In this
work, we exploit the fast memory interface of modern GPUs together with a
parallel hashing scheme tailored to improve global memory access patterns, to
design WarpCore -- a versatile library of hash table data structures. Unique
device-sided operations allow for building high performance data processing
pipelines entirely on the GPU. Our implementation achieves up to 1.6 billion
inserts and up to 4.3 billion retrievals per second on a single GV100 GPU
thereby outperforming the state-of-the-art solutions cuDPP, SlabHash, and
NVIDIA RAPIDS cuDF. This performance advantage becomes even more pronounced for
high load factors of over $90\%$. To overcome the memory limitation of a single
GPU, we scale our approach over a dense NVLink topology which gives us
close-to-optimal weak scaling on DGX servers. We further show how WarpCore can
be used for accelerating a real world bioinformatics application (metagenomic
classification) with speedups of over two orders-of-magnitude against
state-of-the-art CPU-based solutions. WC is written in C++/CUDA-C and is openly
available at https://github.com/sleeepyjack/warpcore.
