A performance study of general-purpose applications on graphics processors using CUDA

  • Authors:
  • Shuai Che;Michael Boyer;Jiayuan Meng;David Tarjan;Jeremy W. Sheaffer;Kevin Skadron

  • Affiliations:
  • University of Virginia, Department of Computer Science, Charlottesville, VA, USA;University of Virginia, Department of Computer Science, Charlottesville, VA, USA;University of Virginia, Department of Computer Science, Charlottesville, VA, USA;University of Virginia, Department of Computer Science, Charlottesville, VA, USA;University of Virginia, Department of Computer Science, Charlottesville, VA, USA;University of Virginia, Department of Computer Science, Charlottesville, VA, USA

  • Venue:
  • Journal of Parallel and Distributed Computing
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

Graphics processors (GPUs) provide a vast number of simple, data-parallel, deeply multithreaded cores and high memory bandwidths. GPU architectures are becoming increasingly programmable, offering the potential for dramatic speedups for a variety of general-purpose applications compared to contemporary general-purpose processors (CPUs). This paper uses NVIDIA's C-like CUDA language and an engineering sample of their recently introduced GTX 260 GPU to explore the effectiveness of GPUs for a variety of application types, and describes some specific coding idioms that improve their performance on the GPU. GPU performance is compared to both single-core and multicore CPU performance, with multicore CPU implementations written using OpenMP. The paper also discusses advantages and inefficiencies of the CUDA programming model and some desirable features that might allow for greater ease of use and also more readily support a larger body of applications.