A Multi-GPU Programming Library for Real-Time Applications
BiomedNMR Forschungs GmbH at the Max Planck Institute for biophysical Chemistry, Goettingen
arXiv:1301.1215 [cs.DC], (7 Jan 2013)
@article{2013arXiv1301.1215S,
author={Schaetz}, S. and {Uecker}, M.},
title={"{A Multi-GPU Programming Library for Real-Time Applications}"},
journal={ArXiv e-prints},
archivePrefix={"arXiv"},
eprint={1301.1215},
primaryClass={"cs.DC"},
keywords={Computer Science – Distributed, Parallel, and Cluster Computing, Computer Science – Performance},
year={2013},
month={jan},
adsurl={http://adsabs.harvard.edu/abs/2013arXiv1301.1215S},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
We present MGPU, a C++ programming library targeted at single-node multi-GPU systems. Such systems combine disproportionate floating point performance with high data locality and are thus well suited to implement real-time algorithms. We describe the library design, programming interface and implementation details in light of this specific problem domain. The core concepts of this work are a novel kind of container abstraction and MPI-like communication methods for intra-system communication. We further demonstrate how MGPU is used as a framework for porting existing GPU libraries to multi-device architectures. Putting our library to the test, we accelerate an iterative non-linear image reconstruction algorithm for real-time magnetic resonance imaging using multiple GPUs. We achieve a speed-up of about 1.7 using 2 GPUs and reach a final speed-up of 2.1 with 4 GPUs. These promising results lead us to conclude that multi-GPU systems are a viable solution for real-time MRI reconstruction as well as signal-processing applications in general.
January 8, 2013 by hgpu