[b]What is CUDA[/b]
CUDA allows you to take advantage of the many parallel processors available on your GPU which can give you much greater speed in your programs if properly used.
CUDA is only available on newer nVidia GeForce, Quadro, and Tesla GPU's.
Just to show you how fast this is I used a CUDA enabled rar password cracker on 64 processors, the results:
Without CUDA: 79 passwords per second
With CUDA: 720 passwords per second (around 9x faster)
[b]What you could do with CUDA[/b]
CUDA runs best when doing complex computations so I've come up with a few ideas where CUDA could be used.
* Partical physics, I think this would be great if someone could make a falling sand game using CUDA
* Fast file encryption
* Brute force password decryption
* File compression and decompression
* etc
I think CUDA has many uses which should be taken advantage of, what do you think ?
Eh, I'd wait for OpenCL to hit the road for something a little more interoperable.
There's no point in using CUDA. OpenCL has been standardized and Nvidia is testing a driver now.
CUDA/CTM were mistakes, basically. Nvidia/ATi ran ahead and did their own thing before the rest of the industry put standards in place. They're stuck supporting them for the moment, but there's no telling when they'll suddenly drop it.
[QUOTE=ROBO_DONUT;16353260]There's no point in using CUDA. OpenCL has been standardized and Nvidia is testing a driver now.
CUDA/CTM were mistakes, basically. Nvidia/ATi ran ahead and did their own thing before the rest of the industry put standards in place. They're stuck supporting them for the moment, but there's no telling when they'll suddenly drop it.[/QUOTE]
They aren't going to drop it. It isn't like it is hardware or something, they can easily integrate them both into their drivers for unified shader pipelines and just leave it there.
I've done some stuff with CUDA before, and it is pretty fun to work with. However, CUDA is not a good solution for all problems. There are still things CPU does better than GPGPU, like operating conditionally on data, and branch predictions, and OpenCL is no exception. The GPU operates on reams and reams of data the same way simultaneously (SIMD) so this makes it very fast for parallelizeable problems, but not problems where control flow depends on the value of particular data it is operating on, or even worse, problems where control flow depends on the value of some other data (since there is no guarantee that the data is even computed yet. This severely undercuts our loop-unrolling abilities!)
So I think the data-independent stuff like particle physics and encryption and stuff are great problems for the GPU to solve. Just nothing that requires sorting or tree traversal or anything like that. I built a ray tracer utilizing CUDA a while ago, but it didn't offer a huge speedup since there is still a huge number of conditionals with raytracing. I parallelized finding the intersection points of a ray with all the triangle planes I was testing against. I just had to send this data all back to the CPU to determine which one was the closest intersection within the triangle.
Sorry, you need to Log In to post a reply to this thread.