SIMD-X: Programming and Processing of Graph Algorithms on GPUs
University of Massachusetts Lowell
arXiv:1812.04070 [cs.DC], 10 Dec 2018
@article{liu2018simdx,
title={SIMD-X: Programming and Processing of Graph Algorithms on GPUs},
author={Liu, Hang Huang, H. Howie},
year={2018},
month={dec},
archivePrefix={"arXiv"},
primaryClass={cs.DC}
}
With high computation power and memory bandwidth, graphics processing units (GPUs) lend themselves to accelerate data-intensive analytics, especially when such applications fit the single instruction multiple data (SIMD) model. However, graph algorithms such as breadth-first search and k-core, often fail to take full advantage of GPUs, due to irregularity in memory access and control flow. To address this challenge, we have developed SIMD-X, for programming and processing of single instruction multiple, complex, data on GPUs. Specifically, the new Active-Compute-Combine (ACC) model not only provides ease of programming to programmers, but more importantly creates opportunities for system-level optimizations. To this end, SIMD-X utilizes just-in-time task management which filters out inactive vertices at runtime and intelligently maps various tasks to different amount of GPU cores in pursuit of workload balancing. In addition, SIMD-X leverages push-pull based kernel fusion that, with the help of a new deadlock-free global barrier, reduces a large number of computation kernels to very few. Using SIMD-X, a user can program a graph algorithm in tens of lines of code, while achieving 3x, 6x, 24x, 3x speedup over Gunrock, Galois, CuSha, and Ligra, respectively.
December 16, 2018 by hgpu