Title :
CUDA Expression Templates for Electromagnetic Applications on GPUs [EM Programmer´s Notebook]
Author :
Breglia, Alfonso ; Capozzoli, Amedeo ; Curcio, Claudio ; Liseno, Angelo
Author_Institution :
Dipt. di Ing. Elettr. e delle Tecnol. dell´Inf., Univ. di Napoli Federico II, Naples, Italy
Abstract :
We report on the development of one of the first libraries ever presented based on the so-called expression templates technique for simplifying the implementation of CPU and parallel GPU codes. Expression templates allow expressing matrix-algebra operations for execution either on the CPU or on the GPU, with a syntax very close to the natural mathematical syntax. We present all the key relevant programming points to implement a CUDA expression template-based library, so that applied electromagnetics research groups can develop their own implementations of the approach without much effort. The developed library has been extensively optimized so that the same performance as standard C/C++ or CUDA codings is kept. We illustrate how the coding of an inverse-scattering algorithm for parallel execution on a GPU - which in pure CUDA language would be very cumbersome - can be significantly simplified by the language exposed by the developed CUDA-expression-templates-based library.
Keywords :
computational electromagnetics; electromagnetic wave scattering; graphics processing units; matrix algebra; parallel architectures; telecommunication computing; CPU; CUDA expression template based library; computational electromagnetics; inverse scattering algorithm; matrix algebra; natural mathematical syntax; parallel GPU codes; programming points; standard C/C++; Computer architecture; Electromagnetics; Encoding; Graphics processing units; Syntactics; Vectors; CUDA; GPU; back projection; expression templates; metaprogramming; parallel processing;
Journal_Title :
Antennas and Propagation Magazine, IEEE
DOI :
10.1109/MAP.2013.6735497