【24h】

Practical Symbolic Race Checking of GPU Programs

机译:GPU程序的实用符号竞赛检查

获取原文

摘要

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程序员也可能在编写和优化代码时无意间引入了数据竞争。当前可用的GPU竞赛检查方法在形式上的保证,易用性或实用性方面均达不到要求。现有的符号方法:(1)不完全支持现有的CUDA内核;(2)可能需要用户指定的断言或不变式;(3)经常需要用户猜测哪些输入可以安全地具体化;(4)容易爆炸。当线程数量增加时,复杂性增加;(5)面对基于线程ID的决策(尤其是在循环中),其爆炸性增长。我们介绍SESA,这是一种将符号执行和静态分析相结合的新工具,可以分析克服所有这些限制的C ++ CUDA程序。 SESA还可以很好地扩展以处理诸如Parboil和Lonestar之类的重要基准,并且是同类中唯一处理此类实际示例的工具。本文介绍了SESA的方法创新和实践成果。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号