Automatic Parallelization of GPU Applications Using OpenCL

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...

Descripción completa

Detalles Bibliográficos
Autor: Solano Quinde, Lizandro Damian
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2015
País:Ecuador
Institución:Universidad de Cuenca
Repositorio:Repositorio Universidad de Cuenca
OAI Identifier:oai:dspace.ucuenca.edu.ec:123456789/29244
Acceso en línea:https://www.scopus.com/inward/record.uri?eid=2-s2.0-84959361463&doi=10.1109%2fAPCASE.2015.56&partnerID=40&md5=d7c419381a7c08bab3a2f634f29bc02c
http://dspace.ucuenca.edu.ec/handle/123456789/29244
Access Level:acceso abierto
Palabra clave:Gpu
Opencl
Program Transformation
id EC_be44bf86c099772ffef8bfff24fd48b0
oai_identifier_str oai:dspace.ucuenca.edu.ec:123456789/29244
network_acronym_str EC
network_name_str Ecuador
repository_id_str
spelling Automatic Parallelization of GPU Applications Using OpenCLSolano Quinde, Lizandro DamianGpuOpenclProgram TransformationGraphics 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%.QuitoINSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS INC.2018-01-11T16:47:50Z2018-01-11T16:47:50Z2015-07-14info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdf9781479975884https://www.scopus.com/inward/record.uri?eid=2-s2.0-84959361463&doi=10.1109%2fAPCASE.2015.56&partnerID=40&md5=d7c419381a7c08bab3a2f634f29bc02chttp://dspace.ucuenca.edu.ec/handle/123456789/2924410.1109/APCASE.2015.56Proceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015reponame:Repositorio Universidad de Cuencainstname:Universidad de Cuencainstacron:UCUENCAen_USinfo:eu-repo/semantics/openAccess2020-08-01T01:15:53Zoai:dspace.ucuenca.edu.ec:123456789/29244Institucionalhttp://dspace.ucuenca.edu.ec/Universidad públicahttps://www.ucuenca.edu.ec/http://dspace.ucuenca.edu.ec/oai.Ecuador...opendoar:41862020-08-01T01:15:53Repositorio Universidad de Cuenca - Universidad de Cuencafalse
dc.title.none.fl_str_mv Automatic Parallelization of GPU Applications Using OpenCL
title Automatic Parallelization of GPU Applications Using OpenCL
spellingShingle Automatic Parallelization of GPU Applications Using OpenCL
Solano Quinde, Lizandro Damian
Gpu
Opencl
Program Transformation
title_short Automatic Parallelization of GPU Applications Using OpenCL
title_full Automatic Parallelization of GPU Applications Using OpenCL
title_fullStr Automatic Parallelization of GPU Applications Using OpenCL
title_full_unstemmed Automatic Parallelization of GPU Applications Using OpenCL
title_sort Automatic Parallelization of GPU Applications Using OpenCL
dc.creator.none.fl_str_mv Solano Quinde, Lizandro Damian
author Solano Quinde, Lizandro Damian
author_facet Solano Quinde, Lizandro Damian
author_role author
dc.subject.none.fl_str_mv Gpu
Opencl
Program Transformation
topic Gpu
Opencl
Program Transformation
description 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%.
publishDate 2015
dc.date.none.fl_str_mv 2015-07-14
2018-01-11T16:47:50Z
2018-01-11T16:47:50Z
dc.type.none.fl_str_mv info:eu-repo/semantics/publishedVersion
info:eu-repo/semantics/article
format article
status_str publishedVersion
dc.identifier.none.fl_str_mv 9781479975884
https://www.scopus.com/inward/record.uri?eid=2-s2.0-84959361463&doi=10.1109%2fAPCASE.2015.56&partnerID=40&md5=d7c419381a7c08bab3a2f634f29bc02c
http://dspace.ucuenca.edu.ec/handle/123456789/29244
10.1109/APCASE.2015.56
identifier_str_mv 9781479975884
10.1109/APCASE.2015.56
url https://www.scopus.com/inward/record.uri?eid=2-s2.0-84959361463&doi=10.1109%2fAPCASE.2015.56&partnerID=40&md5=d7c419381a7c08bab3a2f634f29bc02c
http://dspace.ucuenca.edu.ec/handle/123456789/29244
dc.language.none.fl_str_mv en_US
language_invalid_str_mv en_US
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS INC.
publisher.none.fl_str_mv INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS INC.
dc.source.none.fl_str_mv Proceedings - 2015 Asia-Pacific Conference on Computer-Aided System Engineering, APCASE 2015
reponame:Repositorio Universidad de Cuenca
instname:Universidad de Cuenca
instacron:UCUENCA
instname_str Universidad de Cuenca
instacron_str UCUENCA
institution UCUENCA
reponame_str Repositorio Universidad de Cuenca
collection Repositorio Universidad de Cuenca
repository.name.fl_str_mv Repositorio Universidad de Cuenca - Universidad de Cuenca
repository.mail.fl_str_mv .
_version_ 1869000028968714240
score 15.300719