Practical Symbolic Race Checking Of Gpu Programs

SC '14: International Conference for High Performance Computing, Networking, Storage and Analysis New Orleans Louisana November, 2014(2014)

引用 41|浏览73
暂无评分
摘要
Even the careful GPU programmer can inadvertently introduce data races while writing and optimizing code. Currently available GPU race checking methods fall short either in terms of their formal guarantees, ease of use, or practicality. Existing symbolic methods: (1) do not fully support existing CUDA kernels; (2) may require user-specified assertions or invariants; (3) often require users to guess which inputs may be safely made concrete; (4) tend to explode in complexity when the number of threads is increased; and (5) explode in the face of thread-ID based decisions, especially in a loop. We present SESA, a new tool combining Symbolic Execution and Static Analysis to analyze C++ CUDA programs that overcomes all these limitations. SESA also scales well to handle non-trivial benchmarks such as Parboil and Lonestar, and is the only tool of its class that handles such practical examples. This paper presents SESA's methodological innovations and practical results.
更多
查看译文
关键词
GPU,CUDA,Parallelism,Symbolic Execution,Formal Verification,Virtual Machine,Taint Analysis,Data Flow Analsis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要