Characterizing and Detecting CUDA Program Bugs

05/06/2019
by   Mingyuan Wu, et al.
0

While CUDA has become a major parallel computing platform and programming model for general-purpose GPU computing, CUDA-induced bug patterns have not yet been well explored. In this paper, we conduct the first empirical study to reveal important categories of CUDA program bug patterns based on 319 bugs identified within 5 popular CUDA projects in GitHub. Our findings demonstrate that CUDA-specific characteristics may cause program bugs such as synchronization bugs that are rather difficult to detect. To efficiently detect such synchronization bugs, we establish the first lightweight general CUDA bug detection framework, namely Simulee, to simulate CUDA program execution by interpreting the corresponding llvm bytecode and collecting the memory-access information to automatically detect CUDA synchronization bugs. To evaluate the effectiveness and efficiency of Simulee, we conduct a set of experiments and the experimental results suggest that Simulee can detect 20 out of the 27 studied synchronization bugs and successfully detects 26 previously unknown synchronization bugs, 10 of which have been confirmed by the developers.

READ FULL TEXT
research
05/06/2019

Charactering and Detecting CUDA Program Bugs

While CUDA has become a major parallel computing platform and programmin...
research
01/28/2023

Characterizing and Detecting WebAssembly Runtime Bugs

WebAssembly (abbreviated WASM) has emerged as a promising language of th...
research
01/20/2023

Blind Spots: Automatically detecting ignored program inputs

A blind spot is any input to a program that can be arbitrarily mutated w...
research
03/06/2020

Memory-Safety Challenge Considered Solved? An Empirical Study with All Rust CVEs

Rust is an emerging programing language that aims at preventing memory-s...
research
11/17/2020

Automatic Microprocessor Performance Bug Detection

Processor design validation and debug is a difficult and complex task, w...
research
09/08/2023

Locating Buggy Segments in Quantum Program Debugging

When a bug is detected by testing a quantum program on a quantum compute...
research
07/16/2020

Detecting Optimization Bugs in Database Engines via Non-Optimizing Reference Engine Construction

Database Management Systems (DBMS) are used ubiquitously. To efficiently...

Please sign up or login with your details

Forgot password? Click here to reset