I think I probably read the news at the time it was actually news, but glossed over it because it seemed boring at the time… CUDA is an Nvidia technology that, in short, allows people to write code to use their video cards for number-crunching, not just drawing pixels. This seemed absurd without knowing too much about video cards, but it seems that GPUs are a fairly different environment from normal CPUs. Namely, they’re meant for massively-parallel workflows.

The people who seem to really be loving this are security folks and distributed cracking teams. This post on Offensive Security (affiliated with the BackTrack Linux distro) describes the configuration they’re using on a normal PC with an Nvidia card, and getting “10-15x” the throughput of a decent CPU in brute-forcing MD5 hashes.

Distributed (over the Internet) cracking of keys is nothing new, but it seems that there’s an interesting field developing in which CUDA+Internet is being leveraged to create what are ultimately among the most powerful “supercomputers” in the world.

I wonder what else this technology could be used for. Folding@Home comes to mind as one… Actually, I would wager that Photoshop would do extremely well using a GPU as a graphics processor, versus a normal video card.

4 thoughts on “CUDA

  1. The smiley does seem a little too demonic.

    It turns out that Photoshop, at least CS4, also takes advantage of this. (Now if only I had a powerful graphics card and Photoshop CS4…)

    The Snow Leopard disk mentions OpenCL, a framework allowing the use of both CPUs and GPUs… I’m hoping it’s widely adopted.

  2. GPUs are what make desktop video games so good. An Xbox 360 has several GPUs and game creators are always looking to take advantage of them. They place threads across all of them to gain parallelism and performance.
    Since Windows Vista, Windows has taken a lot more advantage of GPUs for helping with the user interface of the OS as well.

Leave a Reply

Your email address will not be published. Required fields are marked *