|
The CUDA Toolkit is a C language development environment for CUDA-enabled GPUs.
In a matter of a few years, the programmable graphics processor unit has
developed into an absolute computing workhorse. With multiple cores driven by very high memory bandwidth, today's GPUs offer incredible resources for both graphics and non-graphics processing.
The main reason behind such an evolution is that the GPU is specialized for compute-intensive, highly parallel computation – exactly what graphics rendering is about – and therefore is designed such that more transistors are devoted to data processing rather than data caching and flow control.
The CUDA development environment includes:
· nvcc C compiler
· CUDA FFT and BLAS libraries for the GPU
· Profiler
· gdb debugger for the GPU (alpha available in March, 2008)
· CUDA runtime driver (now also available in the standard NVIDIA GPU driver)
· CUDA programming manual
The CUDA Developer SDK provides examples with source code to help you get started with CUDA. Examples include:
· Parallel bitonic sort
· Matrix multiplication
· Matrix transpose
· Performance profiling using timers
· Parallel prefix sum (scan) of large arrays
· Image convolution
· 1D DWT using Haar wavelet
· OpenGL and Direct3D graphics interoperation examples
· CUDA BLAS and FFT library usage examples
· CPU-GPU C- and C++-code integration
· Binomial Option Pricing
· Black-Scholes Option Pricing
· Monte-Carlo Option Pricing
· Parallel Mersenne Twister (random number generation)
· Parallel Histogram
· Image Denoising
· Sobel Edge Detection Filter
· MathWorks MATLAB Plug-in
Here are some key features of "CUDA":
· Standard C programming language enabled on a GPU
· Unified hardware and software solution for parallel computing on CUDA-enabled NVIDIA GPUs
· CUDA compatible GPUs range from lower power notebook GPUs to high performance, multi-GPU systems
· CUDA-enabled GPUs support the Parallel Data Cache and Thread Execution Manager
· Standard numerical libraries for FFT (Fast Fourier Transform) and BLAS (Basic Linear Algebra Subroutines)
· Dedicated CUDA driver for computing
· Optimized direct upload and download path from the CPU to CUDA-enabled GPU
· CUDA driver interoperates with OpenGL and DirectX graphics drivers
· Support for Linux 32/64-bit and Windows XP 32/64-bit operating systems
· Direct driver and assembly level access through CUDA for research and language development
|