Monday, April 19, 2010

What is CUDA: Compute Unified Device Architecture

CUDA ( Compute Unified Device Architecture) is a parallel computing architecture developed by NVIDIA. CUDA is the computing engine in NVIDIA graphics processing units or GPUs that is accessible to software developers through industry standard programming languages. CUDA architecture shares a range of computational interfaces with two competitors -the Khronos Group's Open Computing Language and Microsoft's DirectCompute. Third party wrappers are also available for Python, Fortran, Java and MATLAB.

The latest drivers all contain the necessary CUDA components. CUDA works with all NVIDIA GPUs from the G8X series onwards, including GeForce, Quadro and the Tesla line. NVIDIA states that programs developed for the GeForce 8 series will also work without modification on all future Nvidia video cards, due to binary compatibility. CUDA gives developers access to the native instruction set and memory of the parallel computational elements in CUDA GPUs.

WHY CUDA?

CUDA has several advantages over traditional general purpose computation on GPUs (GPGPU) using graphics APIs.

   1. Scattered reads – code can read from arbitrary addresses in memory.
    2. Shared memory – CUDA exposes a fast shared memory region (16KB in size) that can be shared amongst threads. This can be used as a user-managed cache, enabling higher bandwidth than is possible using texture lookups
    3. Faster downloads and readbacks to and from the GPU
    4. Full support for integer and bitwise operations, including integer texture lookups.



KNOW MORE ABOUT CUDA...

No comments: