A GPU-aware Component Model Extension for Heterogeneous Embedded Systems

One way for modern embedded systems to tackle the demand for more complex functionality requiring more computational power is to take advantage of heterogeneous hardware. These hardware platforms are constructed from the combination of different processing units including both traditional CPUs and for example Graphical Processing Units (GPUs). However, there is a lack of efficient approaches supporting software development for such systems. In particular, modern software development approaches, such as component-based development, do not provide sufficient support for heterogeneous hardware platforms. This paper presents a component model extension, which defines specific features for components with GPU capabilities. The benefits of the proposed solution include an increased system performance by accelerating the communication between GPU-aware components and the possibility to control the distribution of GPU computation resources at system level.

[1]  Vivek Sarkar,et al.  JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA , 2009, Euro-Par.

[2]  Wolfgang Karl,et al.  Seamlessly portable applications: Managing the diversity of modern heterogeneous systems , 2012, TACO.

[3]  Takeo Kanade,et al.  GPU-accelerated real-time 3D tracking for humanoid locomotion and stair climbing , 2007, 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[4]  Christoph W. Kessler,et al.  The PEPPHER Composition Tool: Performance-Aware Dynamic Composition of Applications for GPU-Based Systems , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

[5]  Greg Stitt,et al.  Elastic computing: A portable optimization framework for hybrid computers , 2012, Parallel Comput..

[6]  Lars Asplund,et al.  The Black Pearl: An Autonomous Underwater Vehicle , 2013 .

[7]  André Rigland Brodtkorb,et al.  The Graphics Processor as a Mathematical Coprocessor in MATLAB , 2008, 2008 International Conference on Complex, Intelligent and Software Intensive Systems.

[8]  David Gerónimo Gómez,et al.  Survey of Pedestrian Detection for Advanced Driver Assistance Systems , 2010, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[9]  Nicolas Pinto,et al.  PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation , 2009, Parallel Comput..

[10]  J. Ramanujam,et al.  Automatic C-to-CUDA Code Generation for Affine Programs , 2010, CC.

[11]  Séverine Sentilles,et al.  A Classification Framework for Software Component Models , 2011, IEEE Transactions on Software Engineering.

[12]  Yu Sun,et al.  A platform-independent tool for modeling parallel programs , 2011, ACM-SE '11.

[13]  Frank Stoinski Towards a component model for universal data streams , 2003, Proceedings of the Eighth IEEE Symposium on Computers and Communications. ISCC 2003.

[14]  Rudolf Eigenmann,et al.  OpenMP to GPGPU: a compiler framework for automatic translation and optimization , 2009, PPoPP '09.

[15]  Séverine Sentilles,et al.  A Component Model for Control-Intensive Distributed Embedded Systems , 2008, CBSE.