Where is the data? Why you cannot debate CPU vs. GPU performance without the answer
Department of Computer Science, University of Virginia
IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2011
@article{greggdata,
title={Where is the Data? Why You Cannot Debate CPU vs. GPU Performance Without the Answer},
author={Gregg, C. and Hazelwood, K.},
booktitle={IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2011},
year={2011}
}
General purpose GPU Computing (GPGPU) has taken off in the past few years, with great promises for increased desktop processing power due to the large number of fast computing cores on high-end graphics cards. Many publications have demonstrated phenomenal performance and have reported speedups as much as 1000x over code running on multi-core CPUs. Other studies have claimed that well-tuned CPU code reduces the performance gap significantly. We demonstrate that this important discussion is missing a key aspect, specifically the question of where in the system data resides, and the overhead to move the data to where it will be used, and back again if necessary. We have benchmarked a broad set of GPU kernels on a number of platforms with different GPUs and our results show that when memory transfer times are included, it can easily take between 2 to 50x longer to run a kernel than the GPU processing time alone. Therefore, it is necessary to either include memory transfer overhead when reporting GPU performance, or to explain why this is not relevant for the application in question. We suggest a taxonomy for future CPU/GPU comparisons, and we argue that this is not only germane for reporting performance, but is important to heterogeneous scheduling research in general.
May 11, 2011 by hgpu