What is CUDA like? What is it for? What are the benefits? And how to start?
NickName:PedroC88 Ask DateTime:2011-03-07T00:27:32

What is CUDA like? What is it for? What are the benefits? And how to start?

I am interested in developing under some new technology and I was thinking in trying out CUDA. Now... their documentation is too technical and doesn't provide the answers I'm looking for. Also, I'd like to hear those answers from people that've had some experience with CUDA already.

Basically my questions are those in the title:

What exactly IS CUDA? (is it a framework? Or an API? What?)

What is it for? (is there something more than just programming to the GPU?)

What is it like?

What are the benefits of programming against CUDA instead of programming to the CPU?

What is a good place to start programming with CUDA?

Copyright Notice:Content Author:「PedroC88」,Reproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/5211746/what-is-cuda-like-what-is-it-for-what-are-the-benefits-and-how-to-start

Answers
Victor Nicollet 2011-03-06T16:45:20

CUDA brings together several things:\n\n\nMassively parallel hardware designed to run generic (non-graphic) code, with appropriate drivers for doing so.\nA programming language based on C for programming said hardware, and an assembly language that other programming languages can use as a target.\nA software development kit that includes libraries, various debugging, profiling and compiling tools, and bindings that let CPU-side programming languages invoke GPU-side code.\n\n\nThe point of CUDA is to write code that can run on compatible massively parallel SIMD architectures: this includes several GPU types as well as non-GPU hardware such as nVidia Tesla. Massively parallel hardware can run a significantly larger number of operations per second than the CPU, at a fairly similar financial cost, yielding performance improvements of 50× or more in situations that allow it. \n\nOne of the benefits of CUDA over the earlier methods is that a general-purpose language is available, instead of having to use pixel and vertex shaders to emulate general-purpose computers. That language is based on C with a few additional keywords and concepts, which makes it fairly easy for non-GPU programmers to pick up. \n\nIt's also a sign that nVidia is willing to support general-purpose parallelization on their hardware: it now sounds less like \"hacking around with the GPU\" and more like \"using a vendor-supported technology\", and that makes its adoption easier in presence of non-technical stakeholders.\n\nTo start using CUDA, download the SDK, read the manual (seriously, it's not that complicated if you already know C) and buy CUDA-compatible hardware (you can use the emulator at first, but performance being the ultimate point of this, it's better if you can actually try your code out)",


More about “What is CUDA like? What is it for? What are the benefits? And how to start?” related questions

What is CUDA like? What is it for? What are the benefits? And how to start?

I am interested in developing under some new technology and I was thinking in trying out CUDA. Now... their documentation is too technical and doesn't provide the answers I'm looking for. Also, I'd...

Show Detail

What are the benefits of encapsulation?

I understand that there a lot of great answers on SO on this subject but I want to know is the benefits of purely encapsulation. But the answers out there always introduce the benefits of information

Show Detail

What is benefits of using NodeJS

What are benefits of using nodeJS as running environment for react. P.S I’ve seen project that uses react front, which is sending request on same port to node and after that node was sending reques...

Show Detail

What are the benefits of using WCF?

We currently just utilize soap webservices for all our communication but have been thinking about moving to WCF instead. What are the benefits of using it over an asmx service? If we do go with a WCF

Show Detail

What are the different types of indexes, what are the benefits of each?

What are the different types of indexes, what are the benefits of each? I heard of covering and clustered indexes, are there more? Where would you use them?

Show Detail

What are the benefits (and drawbacks) of a weakly typed language?

I'm a big fan of PHP and it's obviously a very weakly-typed language. I realize some of the benefits include the general independence of changing variable types on the fly and such. What I'm wonde...

Show Detail

What is a CUDA context?

Can anyone please explain or refer me some good source about what is a CUDA context? I searched CUDA developer guide and I was not satisfied with it. Any explanation or help will be great.

Show Detail

CUDA: What is scattered write?

Various CUDA demos in the CUDA SDK refer to "scattered write". What is this scattered write and why is it so great? In contrast to what does it stand?

Show Detail

What are the benefits of abstract classes?

i have researched the topic of abstract classes. And I am not sure, if I understand the sense of this construct. Is it right, that abstract classes are only control structures in OOP, respectively ...

Show Detail

What compilers support CUDA

I found some problem with Visual Studio. My project that use openMP multithreading was twice slow on Visual Studio 2010, than on Dev-C++ , Now I wrote my other project that uses CUDA technology , I...

Show Detail