Enabling Traceability in MDE to Improve Performance of GPU Applications
Centre de recherche INRIA Lille – Nord Europe, Parc Scientifique de la Haute Borne 40, avenue Halley, 59650 Villeneuve d’Ascq
inria-00617912, 2011
@article{de2011enabling,
title={Enabling Traceability in an MDE Approach to Improve Performance of GPU Applications},
author={De Oliveira Rodrigues, A.W. and Aranega, V. and Etien, A. and Guyomarc’H, F. and Dekeyser, J.L. and others},
year={2011}
}
Graphics Processor Units (GPUs) are known for offering high performance and power efficiency for processing algorithms that suit well to their massively parallel architecture. Unfortunately, as parallel programming for this kind of architecture requires a complex distribution of tasks and data, developers find it difficult to implement their applications effectively. Although approaches based on source-to-source and model-to-source transformations have intended to provide a low learning curve for parallel programming and take advantage of architecture features to create optimized applications, the programming remains difficult for neophytes. A Model Driven Engineering (MDE) approach for GPU intends to hide the low-level details of GPU programming by automatically generating the application from the high-level specifications. However, the application designer should take into account some adjustments in the source code to achieve better performance at runtime. Directly modifying the generated source code goes against the MDE philosophy. Moreover, the designer does not necessarily have the required knowledge to effectively modify the GPU generated code. This work aims at improving performance by returning to the high-level models, specific execution data from a profiling tool enhanced by smart advices from an analysis engine. In order to keep the link between execution and model, the process is based on a traceability mechanism. Once the model is automatically annotated, it can be re-factored by aiming performance on the re-generated code. Hence, this work allows us keeping coherence between model and code without forgetting to harness the power of GPUs. To illustrate and clarify key points of this approach, an experimental example taking place in a transformation chain from UML-MARTE models to OpenCL code is provided.
February 7, 2012 by hgpu