Simulee: Detecting CUDA Synchronization Bugs via Memory-Access Modeling

被引:15
|
作者
Wu, Mingyuan [1 ]
Ouyang, Yicheng [1 ]
Zhou, Husheng [2 ]
Zhang, Lingming [2 ]
Liu, Cong [2 ]
Zhang, Yuqun [1 ]
机构
[1] Southern Univ Sci & Technol, Shenzhen, Guangdong, Peoples R China
[2] Univ Texas Dallas, Dallas, TX USA
基金
中国国家自然科学基金; 美国国家科学基金会;
关键词
DATA RACES; PERFORMANCE; OPENCL;
D O I
10.1145/3377811.3380358
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
While CUDA has become a mainstream parallel computing platform and programming model for general-purpose GPU computing, how to effectively and efficiently detect CUDA synchronization bugs remains a challenging open problem. In this paper, we propose the first lightweight CUDA synchronization bug detection framework, namely Simulee, to model CUDA program execution by interpreting the corresponding LLVM bytecode and collecting the memory-access information for automatically detecting general CUDA synchronization bugs. To evaluate the effectiveness and efficiency of Simulee, we construct a benchmark with 7 popular CUDA-related projects from GitHub, upon which we conduct an extensive set of experiments. The experimental results suggest that Simulee can detect 21 out of the 24 manually identified bugs in our preliminary study and also 24 previously unknown bugs among all projects, 10 of which have already been confirmed by the developers. Furthermore, Simulee significantly outperforms state-of-the-art approaches for CUDA synchronization bug detection.
引用
收藏
页码:937 / 948
页数:12
相关论文
共 4 条
  • [1] Toddler: Detecting Performance Problems via Similar Memory-Access Patterns
    Nistor, Adrian
    Song, Linhai
    Marinov, Darko
    Lu, Shan
    [J]. PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), 2013, : 562 - 571
  • [2] Memory-Access Optimization of Parallel Molecular Dynamics Simulation via Dynamic Data Reordering
    Kunaseth, Manaschai
    Nomura, Ken-ichi
    Dursun, Hikmet
    Kalia, Rajiv K.
    Nakano, Aiichiro
    Vashishta, Priya
    [J]. EURO-PAR 2012 PARALLEL PROCESSING, 2012, 7484 : 781 - 792
  • [3] AccMon: Automatically detecting memory-related bugs via program counter-based invariants
    Zhou, P
    Liu, W
    Fei, L
    Lu, S
    Qin, F
    Zhou, YY
    Midkiff, S
    Torrellas, J
    [J]. MICRO-37 2004: 37TH ANNUAL INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, PROCEEDINGS, 2004, : 269 - 280
  • [4] SafeDrop: Detecting Memory Deallocation Bugs of Rust Programs via Static Data-flow Analysis
    Cui, Mohan
    Chen, Chengjun
    Xu, Hui
    Zhou, Yangfan
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (04)