Signal and Image processing
Accélération sur GPU d'une simulation radar avec OpenACC
Published on - GRETSI 2019 - XXVIIème Colloque francophone de traitement du signal et des images
Cet article propose une méthodologie pour accélérer un environnement d'une simulation RADAR (RAdio Detecting And Ranging), en passant d'une implémentation sur processeur (CPU) à une implémentation sur puce graphique (GPU). Nous utilisons les outils de programma-tion GPU les plus utilisés, comme CUDA [1], et plus précisément OpenACC [5], un langage de programmation par directives. La contribution majoritaire est d'évaluer la vitesse de mise en oeuvre d'une solution d'accélération sur un algorithme, tout en fournissant des étapes clefs d'accélération sur GPU, en analysant non seulement les performances brutes, mais aussi la facilité et la rapidité de programmation. Concernant notre cas d'étude, l'accélération maximale obtenue sur GPU est de 8.2 avec CUDA et de 4.56 avec OpenACC par rapport à l'implémentation de référence sur CPU. Abstract-This article gives a methodological approach to accelerating an environment of a RADAR (RAdio Detecting And Ranging) simulation , from a CPU to a GPU implementation. We focus our attention on the most common tools for GPU programming like CUDA [1], but more specifically on OpenACC [5], a directive based parallel programming language. Our contribution is providing key steps for accelerating a software simulation of a radar algorithm on a GPU, with a particular focus on performance but also on the ease of programming. Maximum achieved execution time speedup on GPU architecture for our typical use case of radar processing is of 8.2 for CUDA and of 4.56 for OpenACC compared to the reference implementation on CPU.