CFP last date
16 December 2024
Reseach Article

Auto Conversion of Serial C Code into Cuda-C-Code for Faster Execution Utilizing GPU

by Dipak V. Patil
International Journal of Applied Information Systems
Foundation of Computer Science (FCS), NY, USA
Volume 9 - Number 7
Year of Publication: 2015
Authors: Dipak V. Patil
10.5120/ijais2015451430

Dipak V. Patil . Auto Conversion of Serial C Code into Cuda-C-Code for Faster Execution Utilizing GPU. International Journal of Applied Information Systems. 9, 7 ( September 2015), 7-10. DOI=10.5120/ijais2015451430

@article{ 10.5120/ijais2015451430,
author = { Dipak V. Patil },
title = { Auto Conversion of Serial C Code into Cuda-C-Code for Faster Execution Utilizing GPU },
journal = { International Journal of Applied Information Systems },
issue_date = { September 2015 },
volume = { 9 },
number = { 7 },
month = { September },
year = { 2015 },
issn = { 2249-0868 },
pages = { 7-10 },
numpages = {9},
url = { https://www.ijais.org/archives/volume9/number7/817-2015451430/ },
doi = { 10.5120/ijais2015451430 },
publisher = {Foundation of Computer Science (FCS), NY, USA},
address = {New York, USA}
}
%0 Journal Article
%1 2023-07-05T19:00:30.608383+05:30
%A Dipak V. Patil
%T Auto Conversion of Serial C Code into Cuda-C-Code for Faster Execution Utilizing GPU
%J International Journal of Applied Information Systems
%@ 2249-0868
%V 9
%N 7
%P 7-10
%D 2015
%I Foundation of Computer Science (FCS), NY, USA
Abstract

The primary accusative of this implementation is to expand the use of NVIDIA Graphics Processing Units (GPUs) to accelerate the all-purpose applications outside the graphics arena. CUDA is a programming language particularly designed for parallel computation to work. Now a day, C programming is glaringly used in industries to develop general purpose applications. Normally, a C program instruction executes sequentially and do not support data parallel computation, it increases the time complexity of a program. CUDA renders C like interface, configured for programming NVIDIA GPU which supports parallel computation of different parts of same instructions on different cores of GPU. For ordinary programmers it is very sticky to write CUDA programs because it involves various irksome tasks. Today, most of the machines come with NVIDIA graphics card which contains GPU having numerous processing cores. It is mainly used during execution of gaming, graphics and image processing kind of applications. It remains otiose during execution of general-purpose applications which results into surplus time. To properly employ the potential of available GPU cores on graphics cards for accelerating execution of applications outside graphics domain, the system implemented here provides an automatic tool that converts the directive based sequential C program and generates equivalent parallel CUDA program which will significantly enhance the speed of execution of program with help of parallel processing support. The C programmers can use this tool to enhance the speed of execution of their applications by transforming their directive based C code to CUDA C code. This tool provides simple user interface and helps to enhance the performance of the system.

References
  1. Tian Yi David Han, Tarek S. Abdelrahman, hiCUDA: High- Level GPGPU Programming, IEEE Transactions on Parallel and Distributed Systems, Vol. 22, No. 1, January 2011.
  2. I. Buck et al., GPUs: Stream Computing on Graphics Hardware, Proc. ACM SIGGRAPH, 2004.
  3. S. Ryoo et al., Optimization Principles and Application Performance Evaluation of a Multithreaded GPU Using CUDA, Proc. Symp. Principles and Practice of Parallel Programming, pp.73-82, 2008.
  4. C. Liao et al., Effective Source-to-Source Outlining to Support Whole Program Empirical Optimization, Proc. Int’l Workshop Languages and Compilers for Parallel Computing, Oct. 2009.
  5. NVIDIA,NVIDIA GeForce 8800 GPU Architecture Overview, Nov. 2006
  6. NVIDIA, NVIDIA CUDA C Programming Guide v4.2, CUDA-C Programming Guide.pdf, April. 2012.
  7. S.Z. Ueng et al., CUDA-lite: Reducing GPU Programming Complexity, Proc. Int’l Workshop Languages and Compilers for Parallel Computing, pp. 1-15, 2008.
  8. J. Fabri, Automatic Storage Optimization, Proc. Symp. Compiler Construction, pp. 83-91, 1979.
  9. The Portland Group, CUDA Fortran Programming Guide and Reference, Release 2012.
  10. S. Lee, S.J. Min, and R. Eigenmann, OpenMP to GPGPU: A Compiler Framework for Automatic Translation and Optimization, Proc. Symp. Principles and Practice of Parallel Programming, 2009.
  11. The Portland Group, PGI Fortran and C Accelerator Programming Model, Dec 2008.
  12. C.K. Luk, S. Hong, and H. Kim, Qilin: Exploiting Parallelism on Heterogeneous Multiprocessors with Adaptive Mapping, Proc. Int’l Symp. Microarchitecture, pp.45-55, 2009.
  13. M.M. Baskaran et al., A Compiler Framework for Optimization of affine loop Nests For GPGPUs, 2008.
  14. Leonardo Dagum and Ramesh Menon, OpenMP: An industry standard API for shared memory programming, IEEE Computational Science and Engineering, January-March 1998.
  15. Stone, J.E., Gohara, D., Guochun Shi, OpenCL: A Parallel Programming Standard for Heterogeneous Computing Systems, Computing in Science and Engineering, Vol. 12, Issue 3, pp. 66-73, May 2010.
  16. NVIDIA, CUDA Programming Model Overview, NVIDIA Corporation, 2008
  17. Tian Yi David Han, Directive-Based General-Purpose GPU Programming, master’s thesis, Univ. of Toronto, Sept. 2009.
Index Terms

Computer Science
Information Sciences

Keywords

Parallel Computing Serial Computing CUDA GPU HPC