当前位置: X-MOL 学术arXiv.cs.DC › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
WarpCore: A Library for fast Hash Tables on GPUs
arXiv - CS - Distributed, Parallel, and Cluster Computing Pub Date : 2020-09-16 , DOI: arxiv-2009.07914
Daniel J\"unger (1), Robin Kobus (1), Andr\'e M\"uller (1), Christian Hundt (2), Kai Xu (3), Weiguo Liu (3), Bertil Schmidt (1) ((1) Johannes Gutenberg University, (2) NVIDIA AI Technology Center, (3) Shandong University)

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.

中文翻译:

WarpCore:GPU 上的快速哈希表库

哈希表无处不在。诸如插入和查询的摊销常数时间复杂度以及紧凑的内存布局等特性使它们成为具有多种应用的多功能关联数据结构。许多领域中出现的快速增长的数据量激发了对为现代并行架构设计的加速哈希表的需求。在这项工作中,我们利用现代 GPU 的快速内存接口以及为改进全局内存访问模式而定制的并行散列方案,以设计 WarpCore——一个多功能的散列表数据结构库。独特的设备端操作允许完全在 GPU 上构建高性能数据处理管道。我们的实施实现了多达 16 亿次插入和多达 4 次插入。在单个 GV100 GPU 上每秒进行 30 亿次检索,从而优于最先进的解决方案 cuDPP、SlabHash 和 NVIDIA RAPIDS cuDF。对于超过 $90\%$ 的高负载因子,这种性能优势变得更加明显。为了克服单个 GPU 的内存限制,我们在密集的 NVLink 拓扑上扩展了我们的方法,这为我们在 DGX 服务器上提供了接近最佳的弱扩展。我们进一步展示了 WarpCore 如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于 CPU 的解决方案相比,速度提高了两个数量级以上。WC 是用 C++/CUDA-C 编写的,可在 https://github.com/sleeepyjack/warpcore 上公开获取。对于超过 $90\%$ 的高负载因子,这种性能优势变得更加明显。为了克服单个 GPU 的内存限制,我们在密集的 NVLink 拓扑上扩展了我们的方法,这为我们在 DGX 服务器上提供了接近最佳的弱扩展。我们进一步展示了 WarpCore 如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于 CPU 的解决方案相比,速度提高了两个数量级以上。WC 是用 C++/CUDA-C 编写的,可在 https://github.com/sleepyjack/warpcore 上公开获取。对于超过 $90\%$ 的高负载因子,这种性能优势变得更加明显。为了克服单个 GPU 的内存限制,我们在密集的 NVLink 拓扑上扩展了我们的方法,这为我们在 DGX 服务器上提供了接近最佳的弱扩展。我们进一步展示了 WarpCore 如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于 CPU 的解决方案相比,速度提高了两个数量级以上。WC 是用 C++/CUDA-C 编写的,可在 https://github.com/sleepyjack/warpcore 上公开获取。我们进一步展示了 WarpCore 如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于 CPU 的解决方案相比,速度提高了两个数量级以上。WC 是用 C++/CUDA-C 编写的,可在 https://github.com/sleepyjack/warpcore 上公开获取。我们进一步展示了 WarpCore 如何用于加速现实世界的生物信息学应用程序(宏基因组分类),与最先进的基于 CPU 的解决方案相比,速度提高了两个数量级以上。WC 是用 C++/CUDA-C 编写的,可在 https://github.com/sleepyjack/warpcore 上公开获取。
更新日期:2020-11-13
down
wechat
bug