Modeling GPU-CPU Workloads and Systems

Modeling GPU-CPU Workloads and Systems

Andrew Kerr, Gregory Diamos, and Sudhakar Yalamanchili. “Modeling GPU-CPU Workloads and Systems.” Third Workshop on General-Purpose Computation on Graphics Procesing Units. March 2010.


Heterogeneous systems, systems with multiple processors tailored for specialized tasks, are challenging programming environments. While it may be possible for domain experts to optimize a high performance application for a very specific and well documented system, it may not perform as well or even function on a different system. Developers who have less experience with either the application domain or the system architecture may devote a significant effort to writing a program that merely functions correctly. We believe that a comprehensive analysis and modeling framework is necessary to ease application development and automate program optimization on heterogeneous platforms.

This paper reports on an empirical evaluation of 25 CUDA applications on four GPUs and three CPUs, leveraging the Ocelot dynamic compiler infrastructure which can execute and instrument the same CUDA applications on either target. Using a combination of instrumentation and statistical analysis, we record 37 different metrics for each application and use them to derive relationships between program behavior and performance on heterogeneous processors. These relationships are then fed into a modeling framework that attempts to predict the performance of similar classes of applications on different processors. Most significantly, this study identifies several non-intuitive relationships between program characteristics and demonstrates that it is possible to accurately model CUDA kernel performance using only metrics that are available before a kernel is executed.


Modeling GPU-CPU Workloads and Systems [PDF]


author = {Kerr, Andrew and Diamos, Gregory and Yalamanchili, Sudhakar},
title = {Modeling GPU-CPU workloads and systems},
booktitle = {Proceedings of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units},
series = {GPGPU ’10},
year = {2010},
isbn = {978-1-60558-935-0},
location = {Pittsburgh, Pennsylvania},
pages = {31–42},
numpages = {12},
url = {},
doi = {},
acmid = {1735696},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {CUDA, GPGPU, Ocelot, OpenCL, PTX, Rodinia, parboil},