Debugging GPU Stream Programs Through Automatic Dataflow Recording and Visualization

被引:2
|
作者
Hou, Qiming [1 ]
Zhou, Kun [2 ]
Guo, Baining [1 ]
机构
[1] Tsinghua Univ, Beijing, Peoples R China
[2] Zhejiang Univ, Hangzhou, Zhejiang, Peoples R China
来源
ACM TRANSACTIONS ON GRAPHICS | 2009年 / 28卷 / 05期
关键词
GPGPU; Stream Programming; Debugging; Interrupt;
D O I
10.1145/1618452.1618499
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a novel framework for debugging GPU stream programs through automatic dataflow recording and visualization. Our debugging system can help programmers locate errors that are common in general purpose stream programs but very difficult to debug with existing tools. A stream program is first compiled into an instrumented program using a compiler. This instrumenting compiler automatically adds to the original program dataflow recording code that saves the information of all GPU memory operations into log files. The resulting stream program is then executed on the GPU. With dataflow recording, our debugger automatically detects common memory errors such as out-of-bound access, uninitialized data access, and race conditions - these errors are extremely difficult to debug with existing tools. When the instrumented program terminates, either normally or due to an error, a dataflow visualizer is launched and it allows the user to examine the memory operation history of all threads and values in all streams. Thus the user can analyze error sources by tracing through relevant threads and streams using the recorded dataflow. A key ingredient of our debugging framework is the GPU interrupt, a novel mechanism that we introduce to support CPU function calls from inside GPU code. We enable interrupts on the GPU by designing a specialized compilation algorithm that translates these interrupts into GPU kernels and CPU management code. Dataflow recording involving disk I/O operations can thus be implemented as interrupt handlers. The GPU interrupt mechanism also allows the programmer to discover errors in more active ways by developing customized debugging functions that can be directly used in GPU code. As examples we show two such functions: assert for data verification and watch for visualizing intermediate results.
引用
收藏
页码:1 / 11
页数:11
相关论文
共 50 条
  • [21] A type system for the automatic distribution of higher-order synchronous dataflow programs
    Delaval, Gwenael
    Girault, Alain
    Pouzet, Marc
    ACM SIGPLAN NOTICES, 2008, 43 (07) : 101 - 110
  • [22] A Sampling Based Strategy to Automatic Performance Tuning of GPU Programs
    Feng, Wilson
    Abdelrahman, Tarek S.
    2017 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW), 2017, : 1342 - 1349
  • [23] Debugging Nondeterministic Failures in Linux Programs through Replay Analysis
    Majeed, Shakaiba
    Ryu, Minsoo
    SCIENTIFIC PROGRAMMING, 2018, 2018
  • [24] Automatic Parallelization of Programs via Software Stream Rewriting
    Tao, Tao
    Plaisted, David
    2022 IEEE 36TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2022), 2022, : 541 - 551
  • [25] JaVis: A UML-based visualization and debugging environment for concurrent Java']Java programs
    Mehner, K
    SOFTWARE VISUALIZATION, 2002, 2269 : 163 - 175
  • [26] STATIC AND QUASI-STATIC COMPOSITIONS OF STREAM PROCESSING APPLICATIONS FROM DYNAMIC DATAFLOW PROGRAMS
    Ersfolk, Johan
    Roquier, Ghislain
    Lund, Wictor
    Mattavelli, Marco
    Lilius, Johan
    2013 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING (ICASSP), 2013, : 2620 - 2624
  • [27] AUTOMATIC SYNTHESIS OF TTA PROCESSOR NETWORKS FROM RVC-CAL DATAFLOW PROGRAMS
    Boutellier, J.
    Silven, O.
    Raulet, M.
    2011 IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS (SIPS), 2011, : 25 - 30
  • [28] A Real-Time Stream Recovery Scheme for Recording IPTV Programs
    Lin, Chung-Jung
    Liu, Chi-Shi
    Huang, Yin-Hwa
    Hsu, Chun-Wei
    2015 17TH ASIA-PACIFIC NETWORK OPERATIONS AND MANAGEMENT SYMPOSIUM APNOMS, 2015, : 238 - 243
  • [29] Automatic Mapping for OpenCL-Programs on CPU/GPU Heterogeneous Platforms
    Moren, Konrad
    Goehringer, Diana
    COMPUTATIONAL SCIENCE - ICCS 2018, PT II, 2018, 10861 : 301 - 314
  • [30] Automatic Dataflow Model Extraction from Modal Real-Time Stream Processing Applications
    Geuns, Stefan J.
    Hausmans, Joost P. H. M.
    Bekooij, Marco J. G.
    ACM SIGPLAN NOTICES, 2013, 48 (05) : 143 - 152