Intro To Gpu & Cuda
Intro To Gpu & Cuda
What are GPUs Advantages of GPUs Vendors of GPUs Comparison of CPUs & GPUs Platform for Programming CUDA How to start working with GPUs Basic Architecture of GPU Programming guideline Some sample programs
A graphics processing unit or GPU is a specialized electronic circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. Modern GPUs are very efficient at manipulating computer graphics, and their highly parallel structure makes them more effective than general-purpose CPUs for algorithms where processing of large blocks of data is done in parallel.
Co-processor to accelerate CPUs GPUs can deliver up to a teraflop (1 trillion calculations per second) CPUs have few (two to eight) large, complex cores, while GPUs have up to a few hundred E.g NVIDIAs Tesla GPU is shipping with 240 cores
Nvidia AMD (no longer ATI) Intel Matrox Graphics PowerVR SiS
Number of cores per chip doubles every 2 years, while clock speed decreases (not increases) Need to deal with systems with millions of concurrent threads Future generation will have billions of threads!
CUDA
model Extension to C programming language Allows easy multi-threading - parallel execution on all thread processors on the GPU CUDA works on modern NVidia cards (Quadro, GeForce, Tesla) CUDA programs Compiles through NVCC
System
with at least 2GB RAM Nvidia CUDA enabled GPU CUDA Toolkit CUDA SDK NVIDIA Parallel Nsight NVIDIA Drivers Microsoft Visual Studio 2008 or 2010
http://developer.nvidia.com/cuda-downloads
http://developer.nvidia.com/content/introducing-nvidiansight-visual-studio-edition-22
15