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 条
  • [21] Locality-Aware Task-Parallel Execution on GPUs
    Hbeika, Jad
    Kulkarni, Milind
    [J]. LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2016, 2017, 10136 : 250 - 264
  • [22] ORGANIZATION OF THE PIPELINE EXECUTION OF PARALLEL PROGRAMS
    RYZHKOV, AP
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 1985, 11 (01) : 20 - 27
  • [23] SUPPORTING REVERSE EXECUTION OF PARALLEL PROGRAMS
    PAN, DZ
    LINTON, MA
    [J]. SIGPLAN NOTICES, 1989, 24 (01): : 124 - 129
  • [24] Parallel execution of prolog programs: A survey
    Gupta, G
    Pontelli, E
    Ali, KAM
    Carlsson, M
    Hermenegildo, MV
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2001, 23 (04): : 472 - 602
  • [25] VISUALIZING PARALLEL EXECUTION OF FORTRAN PROGRAMS
    SZELENYI, F
    ZECCA, V
    [J]. IBM JOURNAL OF RESEARCH AND DEVELOPMENT, 1991, 35 (1-2) : 270 - 282
  • [26] A SPECULATIVE EXECUTION SCHEME OF MACROTASKS FOR PARALLEL-PROCESSING SYSTEMS
    YAMANA, H
    YASUE, T
    ISHII, Y
    MURAOKA, Y
    [J]. SYSTEMS AND COMPUTERS IN JAPAN, 1995, 26 (06) : 1 - 15
  • [27] Parallel execution time prediction of the multitask parallel programs
    Wu, Rongteng
    Sun, Jizhou
    Chen, Jinyan
    [J]. PERFORMANCE EVALUATION, 2008, 65 (10) : 701 - 713
  • [28] Optimization Technology of The Speculative Thread Execution Base on Parallel particle
    Yang Hong-bin
    Xu Zhen-kun
    Wu Yue
    [J]. 2011 AASRI CONFERENCE ON ARTIFICIAL INTELLIGENCE AND INDUSTRY APPLICATION (AASRI-AIIA 2011), VOL 2, 2011, : 1 - 5
  • [29] A TRUE CONCURRENCY SEMANTICS FOR PARALLEL PROGRAMS
    KAPUS, T
    HORVAT, B
    PUCKO, M
    [J]. MICROPROCESSING AND MICROPROGRAMMING, 1993, 39 (2-5): : 143 - 146