DocumentCode :
2481568
Title :
CuPP - A framework for easy CUDA integration
Author :
Breitbart, Jens
Author_Institution :
Res. Group Programming Languages / Methodologies, Univ. Kassel, Kassel, Germany
fYear :
2009
fDate :
23-29 May 2009
Firstpage :
1
Lastpage :
8
Abstract :
This paper reports on CuPP, our newly developed C++ framework designed to ease integration of NVIDIAs GPGPU system CUDA into existing C++ applications. CuPP provides interfaces to reoccurring tasks that are easier to use than the standard CUDA interfaces. In this paper we concentrate on memory management and related data structures. CuPP offers both a low level interface - mostly consisting of smartpointers and memory allocation functions for GPU memory - and a high level interface offering a C++ STL vector wrapper and the so-called type transformations. The wrapper can be used by both device and host to automatically keep data in sync. The type transformations allow developers to write their own data structures offering the same functionality as the CuPP vector, in case a vector does not conform to the need of the application. Furthermore the type transformations offer a way to have two different representations for the same data at host and device, respectively. We demonstrate the benefits of using CuPP by integrating it into an example application, the open-source steering library OpenSteer. In particular, for this application we develop a uniform grid data structure to solve the k-nearest neighbor problem that deploys the type transformations. The paper finishes with a brief outline of another CUDA application, the Einstein@Home client, which also requires data structure redesign and thus may benefit from the type transformations and future work on CuPP.
Keywords :
C++ language; application program interfaces; data structures; parallel architectures; public domain software; storage management; C++ framework; CUDA integration; Compute Unified Device Architecture; CuPP; Einstein@Home client; GPU memory; NVIDIAs GPGPU system CUDA; OpenSteer; high level interface; k-nearest neighbor problem; memory allocation functions; memory management; open-source steering library; smartpointers; uniform grid data structure; Application software; Central Processing Unit; Computational modeling; Computer languages; Data structures; Graphics; High performance computing; Libraries; Memory management; Open source software;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Parallel & Distributed Processing, 2009. IPDPS 2009. IEEE International Symposium on
Conference_Location :
Rome
ISSN :
1530-2075
Print_ISBN :
978-1-4244-3751-1
Electronic_ISBN :
1530-2075
Type :
conf
DOI :
10.1109/IPDPS.2009.5160937
Filename :
5160937
Link To Document :
بازگشت