• DocumentCode
    228657
  • Title

    Practical Symbolic Race Checking of GPU Programs

  • Author

    Peng Li ; Guodong Li ; Gopalakrishnan, Ganesh

  • Author_Institution
    Sch. of Comput., Univ. of Utah, Salt Lake City, UT, USA
  • fYear
    2014
  • fDate
    16-21 Nov. 2014
  • Firstpage
    179
  • Lastpage
    190
  • Abstract
    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.
  • Keywords
    C++ language; graphics processing units; parallel architectures; program diagnostics; C++ CUDA program; CUDA kernel; GPU program; Lonestar; Parboil; SESA; static analysis; symbolic execution; symbolic race checking; thread-ID based decision; Concrete; Graphics processing units; History; Indexes; Instruction sets; Kernel; Schedules; CUDA; Data Flow Analsis; Formal Verification; GPU; Parallelism; Symbolic Execution; Taint Analysis; Virtual Machine;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Computing, Networking, Storage and Analysis, SC14: International Conference for
  • Conference_Location
    New Orleans, LA
  • Print_ISBN
    978-1-4799-5499-5
  • Type

    conf

  • DOI
    10.1109/SC.2014.20
  • Filename
    7013002