Research group

Programming Languages and Tools Lab

Partial evaluation for GPGPU programming

Berezun DaniilActive

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

Evaluation of AnyDSL framework


Grigorev Semyon
Grigorev Semyon
Berezun Daniil
Berezun Daniil



Optimizing GPU programs by partial evaluation

February 2020

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.

Read more