CU2CL: A CUDA-to-OpenCL Translator for Multi- and Many-Core Architectures

The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all general-purpose GPU (GPGPU) applications. In spite of this, the...

Full description

Saved in:
Bibliographic Details
Published in:2011 IEEE 17th International Conference on Parallel and Distributed Systems pp. 300 - 307
Main Authors: Martinez, G., Gardner, M., Wu-chun Feng
Format: Conference Proceeding
Language:English
Published: IEEE 01.12.2011
Subjects:
ISBN:1457718758, 9781457718755
ISSN:1521-9097
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all general-purpose GPU (GPGPU) applications. In spite of this, the framework is available only on NVIDIA GPUs, traditionally requiring reimplementation in other frameworks in order to utilize additional multi- or many-core devices. On the other hand, OpenCL provides an open and vendor-neutral programming environment and runtime system. With implementations available for CPUs, GPUs, and other types of accelerators, OpenCL therefore holds the promise of a "write once, run anywhere" ecosystem for heterogeneous computing. Given the many similarities between CUDA and OpenCL, manually porting a CUDA application to OpenCL is typically straightforward, albeit tedious and error-prone. In response to this issue, we created CU2CL, an automated CUDA-to-OpenCL source-to-source translator that possesses a novel design and clever reuse of the Clang compiler framework. Currently, the CU2CL translator covers the primary constructs found in CUDA runtime API, and we have successfully translated many applications from the CUDA SDK and Rodinia benchmark suite. The performance of the automatically translated applications via CU2CL is on par with their manually ported counterparts.
AbstractList The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system. For years, CUDA has been the de facto programming environment for nearly all general-purpose GPU (GPGPU) applications. In spite of this, the framework is available only on NVIDIA GPUs, traditionally requiring reimplementation in other frameworks in order to utilize additional multi- or many-core devices. On the other hand, OpenCL provides an open and vendor-neutral programming environment and runtime system. With implementations available for CPUs, GPUs, and other types of accelerators, OpenCL therefore holds the promise of a "write once, run anywhere" ecosystem for heterogeneous computing. Given the many similarities between CUDA and OpenCL, manually porting a CUDA application to OpenCL is typically straightforward, albeit tedious and error-prone. In response to this issue, we created CU2CL, an automated CUDA-to-OpenCL source-to-source translator that possesses a novel design and clever reuse of the Clang compiler framework. Currently, the CU2CL translator covers the primary constructs found in CUDA runtime API, and we have successfully translated many applications from the CUDA SDK and Rodinia benchmark suite. The performance of the automatically translated applications via CU2CL is on par with their manually ported counterparts.
Author Martinez, G.
Gardner, M.
Wu-chun Feng
Author_xml – sequence: 1
  givenname: G.
  surname: Martinez
  fullname: Martinez, G.
  email: mystal@vt.edu
  organization: Dept. of Comput. Sci., Virginia Tech, Blacksburg, VA, USA
– sequence: 2
  givenname: M.
  surname: Gardner
  fullname: Gardner, M.
  email: mkg@vt.edu
  organization: Virginia Tech, Biacksburg, VA, USA
– sequence: 3
  surname: Wu-chun Feng
  fullname: Wu-chun Feng
  email: wfeng@vt.edu
  organization: Dept. of Comput. Sci., Virginia Tech, Blacksburg, VA, USA
BookMark eNotjDtPwzAYRY0oEk3pysLiP-Diz4lfbJHLI1KqItHMlXFsERSSynGH_nsiwXDvucPRzdBiGAeP0D3QDQDVj5V5L7cfG0YBNoW6QmstFZVC84LPfY0ymIcEJblaoCVwBkRTLW9RNk3flDKac7pElWmYqZ9wiU2zLUkayf7kB1PjQ7TD1Ns0Rhzm7M596gi2Q4t3drgQM0aPy-i-uuRdOkc_3aGbYPvJr_-5Qs3L88G8kXr_WpmyJh0DnohSFmxgeeF0KKzmkvoANLTSC6nASSECFc4KKUA7Ja1oQSj4nB3OwTORr9DD32_nvT-eYvdj4-UogAHTkP8C3PpNKg
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/ICPADS.2011.48
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9780769545769
0769545769
EndPage 307
ExternalDocumentID 6121291
Genre orig-research
GroupedDBID 23M
29O
6IE
6IF
6IH
6IK
6IL
6IM
6IN
AAJGR
AAWTH
ABLEC
ADZIZ
ALMA_UNASSIGNED_HOLDINGS
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IEGSK
IPLJI
OCL
RIE
RIL
RNS
ID FETCH-LOGICAL-i215t-88a1af234c9f4a9570ef10fd7e6781c766f06ca67619c87a6d1681bf10551e263
IEDL.DBID RIE
ISBN 1457718758
9781457718755
ISICitedReferencesCount 34
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000299395900039&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 1521-9097
IngestDate Wed Aug 27 03:46:13 EDT 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-i215t-88a1af234c9f4a9570ef10fd7e6781c766f06ca67619c87a6d1681bf10551e263
OpenAccessLink https://vtechworks.lib.vt.edu/bitstreams/511c5d1a-75bd-4f13-bd6f-64dc98c2cb45/download
PageCount 8
ParticipantIDs ieee_primary_6121291
PublicationCentury 2000
PublicationDate 2011-Dec.
PublicationDateYYYYMMDD 2011-12-01
PublicationDate_xml – month: 12
  year: 2011
  text: 2011-Dec.
PublicationDecade 2010
PublicationTitle 2011 IEEE 17th International Conference on Parallel and Distributed Systems
PublicationTitleAbbrev icpads
PublicationYear 2011
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0020350
ssib026767514
ssj0000669466
Score 2.016005
Snippet The use of graphics processing units (GPUs) in high-performance parallel computing continues to become more prevalent, often as part of a heterogeneous system....
SourceID ieee
SourceType Publisher
StartPage 300
SubjectTerms abstract syntax tree
Clang
compiler
CUDA
Graphics processing unit
Instruction sets
Kernel
Libraries
Memory management
OpenCL
Programming
Runtime
source-to-source translation
Title CU2CL: A CUDA-to-OpenCL Translator for Multi- and Many-Core Architectures
URI https://ieeexplore.ieee.org/document/6121291
WOSCitedRecordID wos000299395900039&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV27bsIwFLUo6sDUB1R9y0PHusROYifdolBUJIqQWiQ25PghIVWhgtDvr68TKEOXbnGyWLZzz_V9nIPQQ2xNyFMdElEIiFYxRRKlKLGWAyIEhSgiLzYhJpNkPk-nLfS474UxxvjiM_MEjz6Xr1dqC6GyPrBdMWhVPxKC171au7PDPPFYkxGsrTAH6vT95QsyaJ471ZckAB1gh0axcKbZecw77qdmHDfsjjRI-6N8mg3ea65PEAk60GDxEDQ8-d_kT1Hvt5cPT_codYZapjxHJzsxB9z82100ymcsHz_jDOezQUaqFYFak3yMPZp9wt0cOwcX-45dgmWp8ZszJCR388DZQTpi00Oz4ctH_koanQWydIBfkSSRVFoWRiq1kUxjERhLA6uFcUhGleDcBlxJDhEPlQjJNeXO27WgrUkN4-EFaper0lwi7D6G1MGiTkLpkC4qlIxNqqPCFM7VCdkV6sLKLL5qKo1FsyjXf7--QR0fwvXVI7eoXa235g4dq-9quVnf-_3_ATkWpLA
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1Na8IwGH4RN9hObtOx7-Ww4zKbfiTtbqVOlFURpuBN0jQBYdShdb9_SVqdh112a1oIIaTv8-b9eB6Ap0BJj0a5h1nGTLTKFTgUgmClqEEEJ2OZb8Um2HgczufRpAHP-14YKaUtPpMv5tHm8vOV2JpQWdewXbmmVf0o8PU8VbfW7vS4lnqszglWdpga8vT99cvk0Cx7qi1KMISAp8QPmDbO2mfesT_V46DmdyRO1B0mk7j3UbF9GpmgAxUWC0L91v-Wfwad324-NNnj1Dk0ZHEBrZ2cA6r_7jYMk5mbpK8oRsmsF-NyhU21SZIii2ef5naOtIuLbM8uRrzI0UibEpzodaD4ICGx6cCs_zZNBrhWWsBLDfklDkNOuHI9X0TK51HAHKmIo3ImNZYRwShVDhWcmpiHCBmnOaHa31VGXZNIl3qX0CxWhbwCpD96RANjHnpcY52fCR7IKPczmWlnx3OvoW12ZvFVkWks6k25-fv1I5wMpqN0kQ7H77dwagO6tpbkDprleivv4Vh8l8vN-sGehR8F96f3
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2011+IEEE+17th+International+Conference+on+Parallel+and+Distributed+Systems&rft.atitle=CU2CL%3A+A+CUDA-to-OpenCL+Translator+for+Multi-+and+Many-Core+Architectures&rft.au=Martinez%2C+G.&rft.au=Gardner%2C+M.&rft.au=Wu-chun+Feng&rft.date=2011-12-01&rft.pub=IEEE&rft.isbn=9781457718755&rft.issn=1521-9097&rft.spage=300&rft.epage=307&rft_id=info:doi/10.1109%2FICPADS.2011.48&rft.externalDocID=6121291
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1521-9097&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1521-9097&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1521-9097&client=summon