Numerical Accuracy Differences in CPU and GPGPU Codes
The Department of Electrical and Computer Engineering, Northeastern University, Boston, Massachusetts
Northeastern University, 2011
@phdthesis{yablonski2011numerical,
title={Numerical Accuracy Differences in CPU and GPGPU Codes},
author={Yablonski, D.},
year={2011},
school={NORTHEASTERN UNIVERSITY Boston}
}
This thesis presents an analysis of numerical accuracy issues that are found in many scientific GPU applications due to floating-point computation. Two widely held myths about floating-point on GPUs are that the CPU’s answer is more precise than the GPU version and that computations on the GPU are unavoidably different from the same computations on a CPU. We dispel both myths by studying a specific application: Digital Breast Tomosynthesis. We describe situations where the GPGPU provides greater precision in the application. Digital Breast Tomosynthesis (1500 lines of code) was analyzed and differences between the CUDA (GPU) and C++ (CPU) implementations were completely resolved. The techniques developed can aid in debugging other scientific GPU floating-point code. This analysis requires an in-depth understanding of the arithmetic issues that arise in implementing floating-point on CPUs, multi-core architectures, and GPUs. We provide insight into the accuracy, speed and verification of floating-point codes, which are becoming increasingly important as GPUs are used more frequently to accelerate scientific and medical applications.
September 25, 2011 by hgpu