Sunday, February 22, 2009

NVIDIA and CUDA: Advantages and Disadvantages

CUDA is NVIDIA's latest attempt at harnessing the full potential of their GPU's by allowing programs to be offloaded from the CPU to the GPU, leading to extreme increases in processing power. CUDA uses a form of the C language to preform its processes. More information about CUDA can be found at CUDA Zone.

Advantages of CUDA:
  • Huge increase in processing power over conventional CPU processing. Early reports suggest speed increases of 10x to 200x over CPU processing speed.
  • Researchers can use several GPU's to preform the same amount of operations as many servers in less time, thus saving money, time, and space.
  • C language is widely used, so it is easy for devolopers to learn how to program for CUDA.
  • All graphics cards in the G80 series and beyond support CUDA.
  • Harnesses the power of the GPU by using parallel processing; running thousands of simultanious reads instead of single, dual, or quad reads on the CPU.
Disadvantages of CUDA
  • Limited user base- Only NVIDIA G80 and onward video cards can use CUDA, thus isolating all ATI users.
  • Speeds may be bottlenecked at the bus between CPU and GPU.
  • Developers still sceptical as to whether CUDA will catch on.
  • Mainly developed for researchers- not many uses for average users.
  • System is still in development