Partial evaluation for GPGPU programming

Project supervisor: Daniil Berezun
Status: Active

Is it possible to use partial evaluation for GPGPU programs optimization?

* Evaluation of AnyDSL framework

Participants

Publications

  • Aleksey Tyurin, Daniil Berezun, Semyon Grigorev

    While GPU utilization allows one to speed up computations to the orders of magnitude, memory management remains the bottleneck making it often a challenge to achieve the desired performance. Hence, different memory optimizations are leveraged to make memory being used more effectively. We propose an approach automating memory management utilizing partial evaluation, a program transformation technique that enables data accesses to be pre-computed, optimized, and embedded into the code, saving memory transactions. An empirical evaluation of our approach shows that the transformed program could be up to 8 times as efficient as the original one in the case of CUDA C naïve string pattern matching algorithm implementation.

    PPoPP '20: Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming,

Resources