arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1906.06504cs.DC
收藏

加速GPU上的并发堆

Accelerating Concurrent Heap on GPUs

Yanhao Chen, Fei Hua, Chaozhang Huang, Jeremy Bierema, Chi Zhang, Eddy Z. Zhang

摘要:

优先级队列(Priority queue),通常以堆的形式实现,是一种抽象的数据类型,已经在许多著名的应用程序中使用,如Dijkstra的最短路径算法,Prim的最小生成树,Huffman编码和分支定界算法。然而,这是具有挑战性的利用GPU上的堆的并行性,因为控制发散和内存不规则性必须考虑。在本文中,我们提出了一个并行广义堆模型,有效地工作在GPU上。我们还证明了我们的广义堆模型的线性化,使我们能够对预期的结果的原因。我们彻底评估了我们的并发堆,并显示出最大19.49倍的加速比与顺序CPU实现和2.11倍的加速比与现有的GPU实现。我们还将堆应用于单源最短路径,加速比高达1.23倍,0/1背包问题加速比高达12.19倍。

英文摘要:

Priority queue, often implemented as a heap, is an abstract data type that has been used in many well-known applications like Dijkstra's shortest path algorithm, Prim's minimum spanning tree, Huffman encoding, and the branch-and-bound algorithm. However, it is challenging to exploit the parallelism of the heap on GPUs since the control divergence and memory irregularity must be taken into account. In this paper, we present a parallel generalized heap model that works effectively on GPUs. We also prove the linearizability of our generalized heap model which enables us to reason about the expected results. We evaluate our concurrent heap thoroughly and show a maximum 19.49X speedup compared to the sequential CPU implementation and 2.11X speedup compared with the existing GPU implementation. We also apply our heap to single source shortest path with up to 1.23X speedup and 0/1 knapsack problem with up to 12.19X speedup.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑