|09-10-12, 07:20 PM||#1|
Join Date: Jun 2009
What Is CUDA?
You may not realize it, but GPUs are good for much more than videogames and scientific research. In fact, there is a good chance that your daily life is being affected by GPU computing.
Mobile applications rely on GPUs running servers in the cloud. Stores use GPUs to analyze retail and web data. Web sites use GPUs to more accurately place ads. Engineers rely on them incomputer-aided engineering applications. Accelerated computing using GPUs continues to expand at an astounding rate.
No longer is it something that the high-performance computing (HPC) community takes sole advantage of. The benefits are moving mainstream.
Even with this broad and expanding interest, as I travel across the United States educating researchers and students about the benefits of GPU acceleration, I routinely get asked the question 'what is CUDA?'
Most people confuse CUDA for a language or maybe an API. It is not.
It is much more than that. CUDA is a parallel programming model and architecture that makes using a GPU for general purpose computing simple and elegant. The developer still programs in the familiar C, C++, Fortran, or an ever expanding list of supported languages, and incorporates extensions of these languages in the form of a few basic keywords.
These keywords let the developer express massive amounts of parallelism and direct the compiler to the portion of the application that maps to the GPU.
A simple example of code is shown below, written first in plain 'C' and then in 'C with CUDA extensions.'
Learning how to program using the CUDA parallel programming model is easy. We have webinars and self-study exercises at the CUDA Developer Zone website.
In addition to toolkits for C, C++, and Fortran, there are tons of libraries optimized for GPUs and other programming approaches such as the OpenACC directive based compilers.
Check it out. And be sure to let us know how you're using CUDA to advance your work.