BelRed: Constructing GPGPU graph applications with software building blocks
BelRed: Constructing GPGPU graph applications with software building blocks
复制标题
BelRed:使用软件构建块构建 GPGPU 图形应用程序
DOI:
--
复制
发表时间:
2014
期刊:
影响因子:
--
通讯作者:
S. Reinhardt
中科院分区:
文献类型:
--
作者:
Shuai Che;Bradford M. Beckmann;S. Reinhardt
Graph applications are common in scientific and enterprise computing. Recent research studies used graphics processing units (GPUs) to accelerate graph workloads. These applications tend to present characteristics that are challenging for single instruction multiple data (SIMD) computation. To achieve high performance, prior work studied individual graph problems, and designed device-specific algorithms and optimizations to achieve high performance. However, programmers have to expend significant manual effort, packing data and computation to make such solutions GPU-friendly. Usually, they are too complex for regular programmers, and the resultant implementations may not be portable nor perform well across platforms. To address these concerns, we present a library of software building blocks, BelRed1 which allows programmers to build GPGPU graph applications with ease. BelRed is based on the prior research of graph algorithms in linear algebra, and is implemented and optimized for the GPU platform. BelRed currently is built on top of the OpenCL framework. It consists of fundamental building blocks necessary for graph processing. This paper introduces the library and presents several case studies on how to leverage it for a variety of representative graph problems. We evaluate application performance on an AMD GPU and investigate optimization approaches to improve performance.