Efficient Instrumentation of GPGPU Applications Using Information Flow Analysis and Symbolic Execution

Efficient Instrumentation of GPGPU Applications Using Information Flow Analysis and Symbolic Execution

Naila Farooqui, Karsten Schwan, and Sudhakar Yalamanchili. “Efficient Instrumentation of GPGPU Applications Using Information Flow Analysis and Symbolic Execution.” Seventh Workshop on General Purpose Processing Using GPUs. March 2014.

Abstract

Dynamic instrumentation of GPGPU binaries makes possible real-time introspection methods for performance debugging, correctness checks, workload characterization, and runtime optimization. Such instrumentation involves inserting code at the instruction level of an application, while the application is running, thereby able to accurately profile data-dependent application behavior. Runtime overheads seen from instrumentation, however, can obviate its utility. This paper shows how a combination of information flow analysis and symbolic execution can be used to alleviate these overheads. The methods and their effectiveness are demonstrated for a variety of GPGPU codes written in OpenCL that run on AMD GPU target backends. Kernels that can be analyzed entirely via symbolic execution need not be instrumented, thus eliminating kernel runtime overheads altogether. For the remaining GPU kernels, our results show 5-38% improvements in kernel runtime overheads.

Download

Citation

@inproceedings{farooqui_gpgpu7,
author={Naila Farooqui, Karsten Schwan, and Sudhakar Yalamanchili},
booktitle={Seventh Workshop on General Purpose Processing Using GPUs},
title={Efficient Instrumentation of GPGPU Applications Using Information Flow Analysis and Symbolic Execution},
year={2014},
month={March},
}