Skip to content

Graphics Processing Units & GPGPU

September 17, 2013

So GPGPU stands for General Purpose Computing on GPUs. Although this concept of using a GPU as a computation tool isn’t very popular in India, it has been a major part of research worldwide. Why do I say it is not so popular in India? Because I study in one of the Indian Institutes of Technology, and only 1 out of 10 people around me might know what GPGPU is. What everybody knows, is that you need GPUs for playing high-end graphic games.

Who can exploit this computing power? Anybody studying engineering can, WHATEVER subject he/she is majoring in. This high performance and computing power is not an option nowadays, but a necessity. It has applications in EVERY field of science or engineering ranging from Bioinformatics, to Fluid mechanics, to Finance, image processing and many more. Yes you must know the basics of programming in order to learn parallel programming.

You put in a few hundred dollars and you have a GPU with hundreds of parallel floating-point units (latest GPUs have thousands of parallel ALUs). What we’re talking about is dedicated graphics. GPUs that have their own RAM also known as the Frame Buffer (Global memory, if you already know CUDA). Nvidia and ATI (now AMD) are the 2 biggest manufacturers of GPUs, followed by Intel, which manufactures Integrated Graphics (you might have heard Intel HD series). It might sound unbelievable but the latest Kepler Architecture GPUs from Nvidia ACTUALLY have thousands of cores in them (like a quad-core CPU containing 4 cores, this one has over a thousand). What Kepler Architecture is, will be discussed in the following posts.

Parallel computation is a relatively older concept. We’re able to work with a number of different applications at the same time because even the CPU is designed to exploit thread-level and instruction-level parallelism. But implementing such parallel algorithms on GPU hardware is still a new concept. That is exactly why Nvidia provides a lot of support and help regarding GPGPU. CUDA (Compute unified device architecture) is a platform designed by Nvidia, so that you can code programs to make use of multiple computing devices (CPU as well as GPU). Although setting up your system so the compiler identifies the CUDA libraries and you can code, it is fun.

I have been studying some of the details pertaining to parallel architecture and parallel computing for around six months now. It has a wide scope in Computational Fluid Dynamics, which is my B.Tech project topic. GPUs are relatively cheap, provide about 10-100x performance rise in various applications (depending on the scope for parallelism in your algorithm) and the CUDA toolkit is for FREE!! I’ll be putting up more stuff on this……


From → GPU & GPGPU

One Comment

Trackbacks & Pingbacks

  1. CUDA for beginners | The Elancer

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: