Monday, May 17, 2010

Hello World!

Welcome to CudaCrunch, your window into the world of a fledgling CUDA developer. I am in fact a student of computer science at Marshall University. Well that's all well and good but what in the world is CUDA anyways? CUDA, or Compute Unified Device Architecture, is a technology being developed by Nvidia to solve a little problem with modern computers.
In the past if you wanted to build a faster computer you simply made a faster CPU. This was usually accomplished by adding more transistors to a processor and increasing the clock speed. There is even a fancy law to predict this growth called Moore's law. It states that the number of transistors that can be cheaply placed on a processor will double every 20 months. This law is breaking down and not really true anymore. This size of the transistor is so small that it can't really get any smaller. So what do we do?
Well, we play video games! Seriously, Nvidia began as a high performance video card manufacturer. They produced a new type of computation device called the GPU, or Graphics Processing Unit, that was sold to PC Gamers! They weren't the only company on the block and still have competitors but they are responsible for CUDA so they are all I will talk about here.
So, what does a GPU do differently than a CPU. Well lots of things, but to keep it simple lets just think of it like this. A GPU is just a bunch of processors on a single chip. We can't put more transistors in the processor, but we can put more processors on the the chip! Through some clever engineering that I don't completely understand, ...yet, we can produce applications that can use all of these compute devices at the same time in parallel.
This new fact is good for scientist and the like. Parallel processing allowed computers to draw the complex 3D scenes in a video games up to 60 times per second! Now that is great and I have a lot of fun playing video games, but it seems like a waste to use all that power just for entertainment. Hence CUDA, the way to use all that power for computing complex problems. It is allowing us to have something as powerful as a modern supercomputer contained in something the size of a small workstation.
The following posts will be a window into my new job as a CUDA programmer. I hope you all can learn as I do and help me out when you see me getting confused or lost. =)

1 comment:

  1. Stephen, this is totally above my head. I'm sure some of your "nerdy" friends will appreciate it. Let Nathan and Justin know about it.

    ReplyDelete