Abstract :
Summary form only given. NVIDIA´s CUDA architecture provides a powerful platform for writing highly parallel programs. By providing simple abstractions for hierarchical thread organization, memories, and synchronization, the CUDA programming model allows programmers to write scalable programs without the burden of learning a multitude of new programming constructs. The CUDA architecture can support many languages and programming environments, including C, Fortran, OpenCL, and DirectX Compute. In this tutorial, I will provide an overview of modern GPU processor design and its implications for successful parallel programming models. I will present the programming model adopted by the CUDA architecture, and demonstrate how this is exposed in the C/C++ language. Finally, I will sketch some techniques for implementing common data-parallel algorithms in the CUDA model.
Keywords :
C++ language; computer graphic equipment; coprocessors; parallel algorithms; parallel architectures; parallel programming; C; C++ language; DirectX Compute; Fortran; GPU processor design; NVIDIA CUDA architecture; OpenCL; data parallel algorithms; hierarchical thread organization; parallel computing; parallel programming; synchronization;