Meta-programming and Multi-stage Programming for GPGPUs

Autor: Marc Baboulin, Ian Masliah, Joel Falcou
Přispěvatelé: Laboratoire de Recherche en Informatique (LRI), Université Paris-Sud - Paris 11 (UP11)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS), Performance Optimization by Software Transformation and Algorithms & Librairies Enhancement (POSTALE), Université Paris-Sud - Paris 11 (UP11)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS)-Université Paris-Sud - Paris 11 (UP11)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS)-Inria Saclay - Ile de France, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), Inria Saclay Ile de France, Paris-Sud XI, Systèmes parallèles (LRI) (ParSys - LRI), Université Paris-Sud - Paris 11 (UP11)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS)-Université Paris-Sud - Paris 11 (UP11)-CentraleSupélec-Centre National de la Recherche Scientifique (CNRS), IEEE Computer Society
Jazyk: angličtina
Rok vydání: 2015
Předmět:
Zdroj: [Research Report] RR-8780, Inria Saclay Ile de France; Paris-Sud XI. 2015
MCSoC
DOI: 10.1109/MCSoC.2016.49⟩
Popis: International audience; GPGPUs and other accelerators are becoming a mainstream asset for high-performance computing. Raising the programmability of such hardware is essential to enable users to discover, master and subsequently use accelerators in day-today simulations. Furthermore, tools for high-level programming of parallel architectures are becoming a great way to simplify the exploitation of such systems. For this reason, we have extended NT2 (Numerical Template Toolbox), a C++ scientific computing library which can generate code for SIMD and multi-threading systems in a transparent way. In this paper, we study how to introduce an accelerator-based programming model into this library to allow developers to reap the benefits of such an architecture from a simple, MATLAB like code. After a brief description of the NT2 framework, we explain how our accelerator programming model has been designed and integrated in a pure C++ library. We conclude by showing the applicability and performance of this tool on some practical applications.
Databáze: OpenAIRE