Article | REF: TE5990 V2

General purpose computing on graphics processor. From rendering to massively parallel computing

Author: Dominique HOUZET

Publication date: August 10, 2016, Review date: September 27, 2023

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


Overview

Français

ABSTRACT

This article focuses on the architecture and the programming of graphics cards in order to perform computing. First is described the development of processors to parallelism, and the graphics card to the general purpose programming and massively parallel computing.  The main architectures of graphics cards and software tools available for programming them are described. A more detailed description of NVIDIA CUDA programming language and associated libraries is performed, followed by an example of programming and optimization. Finally, an overview of the results and possible technical developments is given.

Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.

Read the article

AUTHOR

 INTRODUCTION

The evolution of graphics cards in recent years has been characterized by massive parallelism and programming genericity.

Increased parallelism has enabled rendering throughput to be increased both by multiplying the frequency of images generated and by increasing their size. Genericity has facilitated the emergence of new real-time rendering effects, thanks to programmable components such as programmable pixel shader units.

These two factors combined have made today's graphics cards very attractive for intensive calculations that go beyond visual rendering. The peak power of one of the new cards exceeds that of certain supercomputers for a price of a few hundred euros! This is the emergence of a new technique known as GPGPU (General-Purpose Computation on Graphics Processing Units) programming.

The GPGPU is supported by graphics card manufacturers such as NVIDIA and ATI/AMD, who see it as a new market for their products. They have introduced high-level languages and development environments that make it easily accessible to non-specialists. Today, GPGPU massively parallel computing is developing in supercomputers, desktop computers and embedded systems alike. The evolution of computer processors is also moving towards parallelism. Today's GPGPU techniques are gradually becoming the basis for tomorrow's PC programming. This is already possible with OpenCL (Open Computing Language), which is designed to be portable between CPU (Computer Processor Unit) and GPU (Graphic Processor Unit).

This article provides the keys to understanding how graphics processors can be used to increase the useful computing power of computers, with a particular focus on the issue of parallelism. Parallelism imposes strong constraints on programming and algorithms to take full advantage of GPU hardware architectures. The first section looks at the evolution of GPGPU-enabled graphics processors. In the second part, a description of current architectures enables the reader to grasp the qualities and limitations of graphics processors for parallel computing. The third part describes the main programming languages for GPGPU computing. A concrete example in the fourth section will give the reader an idea of what is at stake with these techniques, and help him or her to understand what kind of computing can be carried out with a good return on investment. The final section describes future developments that will bring about greater convergence between CPUs and GPUs, as well as developments in the software layer with a view to standardizing programming to ensure the portability of developments.

You do not have access to this resource.

Exclusive to subscribers. 97% yet to be discovered!

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


The Ultimate Scientific and Technical Reference

A Comprehensive Knowledge Base, with over 1,200 authors and 100 scientific advisors
+ More than 10,000 articles and 1,000 how-to sheets, over 800 new or updated articles every year
From design to prototyping, right through to industrialization, the reference for securing the development of your industrial projects

This article is included in

Signal processing and its applications

This offer includes:

Knowledge Base

Updated and enriched with articles validated by our scientific committees

Services

A set of exclusive tools to complement the resources

Practical Path

Operational and didactic, to guarantee the acquisition of transversal skills

Doc & Quiz

Interactive articles with quizzes, for constructive reading

Subscribe now!

Ongoing reading
General-purpose computing on graphics cards