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 条
  • [1] iGPU: Exception Support and Speculative Execution on GPUs
    Menon, Jaikrishnan
    de Kruijf, Marc
    Sankaralingam, Karthikeyan
    [J]. 2012 39TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA), 2012, : 72 - 83
  • [2] Data-Centric Execution of Speculative Parallel Programs
    Jeffrey, Mark C.
    Subramanian, Suvinay
    Abeydeera, Maleen
    Emer, Joel
    Sanchez, Daniel
    [J]. 2016 49TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO), 2016,
  • [4] Globally Precise-restartable Execution of Parallel Programs
    Gupta, Gagan
    Sridharan, Srinath
    Sohi, Gurindar S.
    [J]. ACM SIGPLAN NOTICES, 2014, 49 (06) : 181 - 192
  • [5] Precise exception semantics in dynamic compilation
    Gschwind, M
    Altman, E
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2002, 2304 : 95 - 110
  • [6] Processor verification with precise exceptions and speculative execution
    Sawada, J
    Hunt, WA
    [J]. COMPUTER AIDED VERIFICATION, 1998, 1427 : 135 - 146
  • [7] Software Pipelined Execution of Stream Programs on GPUs
    Udupa, Abhishek
    Govindarajan, R.
    Thazhuthaveetil, Matthew J.
    [J]. CGO 2009: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, PROCEEDINGS, 2009, : 200 - 209
  • [8] Spice: Speculative Parallel Iteration Chunk Execution
    Raman, Easwaran
    Vachharajani, Neil
    Rangan, Ram
    August, David I.
    [J]. CGO 2008: SIXTH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, PROCEEDINGS, 2008, : 175 - 184
  • [9] A Speculative Parallel Execution Model for Apache Spark
    Wang, Zhoukai
    Zhao, Yinliang
    [J]. PROCEEDINGS OF 2018 IEEE 9TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS), 2018, : 84 - 89
  • [10] EFFICIENT EXECUTION OF PROGRAMS WITH STATIC SEMANTICS
    BECKER, G
    MURRAY, NV
    [J]. SIGPLAN NOTICES, 1995, 30 (04): : 51 - 60