Meta-programming and Multi-stage Programming for GPGPUs
LRI – Laboratoire de Recherche en Informatique
hal-01204661, (10 October 2015)
@phdthesis{baboulin2015meta,
title={Meta-programming and Multi-stage Programming for GPGPUs},
author={Baboulin, Marc and Falcou, Joel and Masliah, Ian},
year={2015},
school={Inria Saclay Ile de France; Paris-Sud XI}
}
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-to-day 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 – the 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 NT2 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.
October 11, 2015 by hgpu