NIRICT Reconnaissance Topic: Performance and Correctness of GPGPU Applications
Duration: December 2015 until May 2019
Summary of the project
Graphics processing units (GPUs) initially were designed to support computer graphics. Their specific architecture provides high processing power and massive parallelism, which allows for efficient solving of typical graphics-related tasks. However, soon it was realised that such architectures are also suitable for many other computational tasks, which led to the development of the area of GPGPU (General Purpose GPU) programming. As a result, GPUs are now used in many different elds, including numerical simulation, media processing, medical imaging, eye-tracking, genomics, fluid dynamics, and machine learning. Complex GPU applications typically need to be programmed at a relatively low level, since they require expert knowledge on the specic hardware used. Given the importance, range and increasing complexity of GPGPU applications today, the main research challenge for GPGPU programming is that we urgently need systematic techniques that can optimise given GPGPU applications without requiring expert knowledge. This would allow GPGPU applications to be developed at a more convenient higher abstraction level. These techniques should oer a predictable performance increase, while preserving the original behaviour. Within the 3TU community, several researchers have contributed to this research challenge.