Implementing a GPU Programming Model on a non-GPU Accelerator Architecture
University of Illinois at Urbana-Champaign, Urbana IL 61801, USA
1st Workshop on Applications for Multi and Many Core Processors, Saint Malo : France (2010), A4MMC 2010, inria-00493905
@article{kofsky2010implementing,
title={Implementing a GPU Programming Model on a non-GPU Accelerator Architecture},
author={Kofsky, S.M. and Johnson, D.R. and Stratton, J.A. and Hwu, W.M.W. and Patel, S.J. and Lumetta, S.S.},
year={2010}
}
Parallel codes are written primarily for the purpose of performance. It is highly desirable that parallel codes be portable between parallel architectures without significant performance degradation or code rewrites. While performance portability and its limits have been studied thoroughly on single processor systems, this goal has been less extensively studied and is more difficult to achieve for parallel systems. Emerging single-chip parallel platforms are no exception; writing code that obtains good performance across GPUs and other many-core CMPs can be challenging. In this paper, we focus on CUDA codes, noting that programs must obey a number of constraints to achieve high performance on an NVIDIA GPU. Under such constraints, we develop optimizations that improve the performance of CUDA code on a MIMD accelerator architecture that we are developing called Rigel. We demonstrate performance improvements with these optimizations over naive translations, and final performance results comparable to those of codes that were hand-optimized for Rigel.
March 19, 2011 by hgpu