Automatic Parallelization of GPU Applications Using OpenCL

Lizandro D. Solano-Quinde, Brett M. Bode, Arun K. Somani

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Graphics Processing Units (GPUs) have been successfully used to accelerate scientific applications due to their computation power and the availability of programming languages that make more approachable writing scientific applications for GPUs. However, since the programming model of GPUs requires offloading all the data to the GPU memory, the memory footprint of the application is limited to the size of the GPU memory. Multi-GPU systems can make memory limited problems tractable by parallelizing the computation and data among the available GPUs. Parallelizing applications written for running on single-GPU systems can be done (i) at runtime through an environment that captures the memory operations and kernel calls and distributes among the available GPUs, and (ii) at compile time through a pre-compiler that transforms the application for decomposing the data and computation among the available GPUs. In this paper we propose a framework and implement a tool that transforms an OpenCL application written to run on single-GPU systems into one that runs on multi-GPU systems. Based on data dependencies and data usage analysis, the application is transformed to decompose data and computation among the available GPUs. To reduce the data transfer overhead, computation-communication overlapping techniques are utilized. We tested our tool using two applications with different data transfer requirements, for the application with no data transfer requirements, a linear speedup is achieved, while for the application with data transfers, the computation-communication overlapping reduces the communication overhead by 40%.

Original languageEnglish (US)
Title of host publicationProceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015
EditorsAlberto Sanchez, Carlos Monsalve, Zenon Chaczko
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages276-283
Number of pages8
ISBN (Electronic)9781479975884
DOIs
StatePublished - Oct 1 2015
EventAsia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015 - Quito, Pichincha, Ecuador
Duration: Jul 14 2015Jul 16 2015

Publication series

NameProceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015

Other

OtherAsia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015
CountryEcuador
CityQuito, Pichincha
Period7/14/157/16/15

Keywords

  • GPU
  • OpenCL
  • Program Transformation

ASJC Scopus subject areas

  • Artificial Intelligence
  • Computer Networks and Communications
  • Computer Science Applications
  • Control and Systems Engineering

Fingerprint Dive into the research topics of 'Automatic Parallelization of GPU Applications Using OpenCL'. Together they form a unique fingerprint.

  • Cite this

    Solano-Quinde, L. D., Bode, B. M., & Somani, A. K. (2015). Automatic Parallelization of GPU Applications Using OpenCL. In A. Sanchez, C. Monsalve, & Z. Chaczko (Eds.), Proceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015 (pp. 276-283). [7287032] (Proceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/APCASE.2015.56