Abstract | ||
---|---|---|
Programs written for GPUs often contain correctness errors such as races, deadlocks, or may compute the wrong result. Existing debugging tools often miss these errors because of their limited input-space and execution-space exploration. Existing tools based on conservative static analysis or conservative modeling of SIMD concurrency generate false alarms resulting in wasted bug-hunting. They also often do not target performance bugs (non-coalesced memory accesses, memory bank conflicts, and divergent warps). We provide a new framework called GKLEE that can analyze C++ GPU programs, locating the aforesaid correctness and performance bugs. For these programs, GKLEE can also automatically generate tests that provide high coverage. These tests serve as concrete witnesses for every reported bug. They can also be used for downstream debugging, for example to test the kernel on the actual hardware. We describe the architecture of GKLEE, its symbolic virtual machine model, and describe previously unknown bugs and performance issues that it detected on commercial SDK kernels. We describe GKLEE's test-case reduction heuristics, and the resulting scalability improvement for a given coverage target. |
Year | DOI | Venue |
---|---|---|
2012 | 10.1145/2145816.2145844 | PPOPP |
Keywords | Field | DocType |
aforesaid correctness,conservative static analysis,performance issue,high coverage,debugging tool,test generation,downstream debugging,performance bug,coverage target,conservative modeling,correctness error,concolic verification,formal verification,virtual machine,gpu programming,static analysis | Memory bank,Programming language,Computer science,Concurrency,Correctness,Parallel computing,Theoretical computer science,Heuristics,Concolic testing,Symbolic execution,Debugging,Formal verification | Conference |
Volume | Issue | ISSN |
47 | 8 | 0362-1340 |
Citations | PageRank | References |
59 | 2.30 | 14 |
Authors | ||
6 |
Name | Order | Citations | PageRank |
---|---|---|---|
Guodong Li | 1 | 154 | 6.18 |
Peng Li | 2 | 180 | 7.67 |
Geof Sawaya | 3 | 59 | 2.30 |
Ganesh Gopalakrishnan | 4 | 1619 | 130.11 |
Indradeep Ghosh | 5 | 407 | 43.54 |
Sreeranga P. Rajan | 6 | 259 | 18.23 |