BelRed: Constructing GPGPU graph applications with software building blocks

BelRed: Constructing GPGPU graph applications with software building blocks
复制标题

BelRed:使用软件构建块构建 GPGPU 图形应用程序

DOI:
--
复制
发表时间:
2014
期刊:
IEEE Conference on High Performance Extreme Computing
影响因子:
--
通讯作者:
S. Reinhardt
S. Reinhardt
中科院分区:
--
文献类型:
--
作者:
Shuai Che;Bradford M. Beckmann;S. Reinhardt

文献摘要

被引文献

相似文献

图形应用程序在科学和企业计算中很常见。最近的研究使用图形处理单元(GPU)来加速图形工作负载。这些应用倾向于呈现对单指令多数据(SIMD)计算具有挑战性的特征。为了实现高性能,以前的工作研究了单个图问题,并设计了特定于设备的算法和优化以实现高性能。然而,程序员必须花费大量的人工努力,打包数据和计算,才能使这种解决方案对GPU友好。通常,它们对于普通程序员来说太复杂了,结果实现可能不能移植,也不能很好地跨平台执行。为了解决这些问题,我们提出了一个软件构建块库BelRed1,它允许程序员轻松构建GPGPU图形应用程序。BelRed是在前人对线性代数中图算法研究的基础上,在GPU平台上实现和优化的。BelRed目前构建在OpenCL框架之上。它由图形处理所必需的基本构建块组成。本文介绍了这个库,并提供了几个案例研究,说明如何利用它来解决各种典型的图形问题。我们评估了AMD图形处理器上的应用程序性能,并研究了提高性能的优化方法。
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.