Automated Dynamic Analysis of CUDA Programs

Michael Boyer, Kevin Skadron, Westley Weimer
University of Virginia, Dept. of Computer Science, Charlottesville, VA 22904
Proceedings of Third Workshop on Software Tools for MultiCore Systems, April 2008


   title={Automated Dynamic Analysis of CUDA Programs},

   author={Boyer, M. and Skadron, K. and Weimer, W.},

   booktitle={Third Workshop on Software Tools for MultiCore Systems},



Download Download (PDF)   View View   Source Source   



Recent increases in the programmability and performance of GPUs have led to a surge of interest in utilizing them for general-purpose computations. Tools such as NVIDIA’s Cuda allow programmers to use a C-like language to code algorithms for execution on the GPU. Unfortunately, parallel programs are prone to subtle correctness and performance bugs, and Cuda tool support for solving these remains a work in progress. As a first step towards addressing these problems, we present an automated analysis technique for finding two specific classes of bugs in Cuda programs: race conditions, which impact program correctness, and shared memory bank conflicts, which impact program performance. Our technique automatically instruments a program in two ways: to keep track of the memory locations accessed by different threads, and to use this data to determine whether bugs exist in the program. The instrumented source code can be run directly in Cuda’s device emulation mode, and any potential errors discovered will be automatically reported to the user. This automated analysis can help programmers find and solve subtle bugs in programs that are too complex to analyze manually. Although these issues are explored in the context of Cuda programs, similar issues will arise in any sufficiently “manycore” architecture.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2017 hgpu.org

All rights belong to the respective authors

Contact us: