Speculative Execution of Parallel Programs with Precise Exception Semantics on GPUs

被引:2
|
作者
Hayashi, Akihiro [1 ]
Grossman, Max [1 ]
Zhao, Jisheng [1 ]
Shirako, Jun [1 ]
Sarkar, Vivek [1 ]
机构
[1] Rice Univ, Dept Comp Sci, Houston, TX 77005 USA
关键词
!text type='JAVA']JAVA[!/text;
D O I
10.1007/978-3-319-09967-5_20
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
General purpose computing on GPUs (GPGPU) can enable significant performance and energy improvements for certain classes of applications. However, current GPGPU programming models, such as CUDA and OpenCL, are only accessible by systems experts through low-level C/C++ APIs. In contrast, large numbers of programmers use high-level languages, such as Java, due to their productivity advantages of type safety, managed runtimes and precise exception semantics. Current approaches to enabling GPGPU computing in Java and other managed languages involve low-level interfaces to native code that compromise the semantic guarantees of managed languages, and are not readily accessible to mainstream programmers. In this paper, we propose compile-time and runtime technique for accelerating Java programs with automatic generation of OpenCL while preserving precise exception semantics. Our approach includes (1) automatic generation of OpenCL kernels and JNI glue code from a Java-based parallel-loop construct (forall), (2) speculative execution of OpenCL kernels on GPUs, and (3) automatic generation of optimized and parallel exception-checking code for execution on the CPU. A key insight in supporting our speculative execution is that the GPU's device memory is separate from the CPU's main memory, so that, in the case of a mis-speculation (exception), any side effects in a GPU kernel can be ignored by simply not communicating results back to the CPU. We demonstrate the efficiency of our approach using eight Java benchmarks on two GPU-equipped platforms. Experimental results show that our approach can significantly accelerate certain classes of Java programs on GPUs while maintaining precise exception semantics.
引用
下载
收藏
页码:342 / 356
页数:15
相关论文
共 50 条
  • [31] A TRUE CONCURRENCY SEMANTICS FOR PARALLEL PROGRAMS
    KAPUS, T
    HORVAT, B
    PUCKO, M
    MICROPROCESSING AND MICROPROGRAMMING, 1993, 39 (2-5): : 143 - 146
  • [33] Speculative computations in or-parallel tabled logic programs
    Rocha, R
    Silva, F
    Costa, VS
    LOGIC PROGRAMMING, PROCEEDINGS, 2004, 3132 : 254 - 268
  • [34] Parallel Strategies for the Execution of Top-k Queries with MaxScore on GPUs
    Gaioso, Roussian
    Guardia, Helio
    Gil-Costa, Veronica
    Senger, Hermes
    2019 31ST INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD 2019), 2019, : 104 - 111
  • [35] Runtime Exception Detection in Java']Java Programs Using Symbolic Execution
    Kadar, Istvan
    Hegedus, Peter
    Ferene, Rudolf
    ACTA CYBERNETICA, 2014, 21 (03): : 331 - 352
  • [36] STUDY OF A PARALLEL INFERENCE MACHINE FOR PARALLEL EXECUTION OF LOGIC PROGRAMS
    YAOQING, G
    CHENGZHENG, S
    SHOUREN, H
    LECTURE NOTES IN COMPUTER SCIENCE, 1990, 457 : 143 - 153
  • [37] AN AND-PARALLEL EXECUTION MODEL OF LOGIC PROGRAMS
    SCHWINN, B
    BARTH, G
    LECTURE NOTES IN COMPUTER SCIENCE, 1986, 213 : 289 - 300
  • [38] Loop Invariant Symbolic Execution for Parallel Programs
    Siegel, Stephen F.
    Zirkel, Timothy K.
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2012, 7148 : 412 - 427
  • [39] Parallel execution of logic programs by load sharing
    Lin, Z
    JOURNAL OF LOGIC PROGRAMMING, 1997, 30 (01): : 25 - 51
  • [40] Efficient parallel execution of irregular recursive programs
    Prechelt, L
    Hänssgen, SU
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2002, 13 (02) : 167 - 178