Back to articles
Volume: 28 | Article ID: art00012
Image
Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang/LLVM
  DOI :  10.2352/ISSN.2470-1173.2016.1.VDA-487  Published OnlineFebruary 2016
Abstract

Parallel processing using GPUs provides substantial increases in algorithm performance across many disciplines. As a result serial algorithms are commonly translated to parallel algorithms written in CUDA or OpenCL. To perform this translation a user must first overcome various barriers to entry. These obstacles change depending on the user but in general may include learning to program using the chosen API, understanding the intricacies of parallel processing and optimization, and other issues such as the upkeep of two sets of code. Such barriers are experienced by both experts and novices alike. Leveraging the unique source to source transformation tools provided by Clang/LLVM we have created a tool to generate CUDA from C++. Such transformations reduce obstacles experienced in developing GPU software and can increase efficiency and revision speed regardless of experience. This manuscript details a new open source, cross platform tool, togpu, which performs source to source transformations from C++ to CUDA. We present experimentation results using common image processing algorithms. The tool lowers entrance barriers while preserving a singular code base and readability. Enhancing the GPU developer workflow through providing core tooling affords users immediate benefits — and facilitates further developments — to improve high performance, parallel computing.

Subject Areas :
Views 34
Downloads 10
 articleview.views 34
 articleview.downloads 10
  Cite this article 

Matthew Marangoni, Thomas Wischgoll, "Paper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang/LLVMin Proc. IS&T Int’l. Symp. on Electronic Imaging: Visualization and Data Analysis,  2016,  https://doi.org/10.2352/ISSN.2470-1173.2016.1.VDA-487

 Copy citation
  Copyright statement 
Copyright © Society for Imaging Science and Technology 2016
72010604
Electronic Imaging
2470-1173
Society for Imaging Science and Technology