GPU & GPGPU COMPUTING
RAJAN PANIGRAHI
Reg . No .: 0801227609 6 th Sem . CSE
welcome
GPU :- Graphics Processing Unit GPGPU :- General Purpose Computing On GPU
the world's first GPU
August 31, 1999 marked the introduction of the graphics processing unit (GPU) for the PC industry the NVIDIA GeForce 256
Rival ATI released its first GPU the ATI Radeon 9700 in 1st October 2002
block diagram
GPU IGP
physical architecture & interfacing
DVI S-Video VGA
Universal AGP Slot
The graphics card contains the following elements:
Processor Memory Graphics BIOS RAMDAC (digital to analog converter) Display Connector (VGA, DVI, S-Video) Motherboard Interface (AGP or PCI-E)
GPU & IGP
There are mainly two types of graphics processing devices are used 1. GPU: It has a separate graphics processor other than the CPU and an
additional memory
2. IGP: It does not have extra memory and shares the systems
main memory
Nvidia GeForce GTX 480 GPU
Intel GMA, Intel HD Series IGP
Nvidia
nForce IGP
hybrid
Hybrid GPUs use both the GPU & IGP in the system. It can work in 3 different modes : 1.On-Board IGP mode : Only IGP is used, GPU is not in use to save power 2.Discrete mode : Only GPU is used, IGP is not used 3.Hybrid mode : Both the GPU & IGP are used to increase performance
multi GPU
In a Multi GPU system more than one GPU can be used on a single system. Two most common implementation of Multi GPU are Nvidia SLI ( scalable link interface ) & ATI CrossFire. Cross Manufacturer Multi GPU also can be implemented on some supported motherboards. One of them is Hybrid PhysX technology which is a nonofficial one.
top manufacturers & their technologies
Nvidia :
Gaming GPU
IGP
Supercomputing
CAD & DCC
Mobile Devices
3D Vision
Stream Processing or GPGPU
AMD
:
Physics Engine
Hardware Video Decoding
Power Saving for Notebooks
(formerly ATI)
Gaming GPU
New AMD Radeon Series
Workstations
Multi GPU
Multi Monitor Widescreen
Stream Processing or GPGPU
common devices other than computers having GPU
Gaming Consoles :
550 MHz NVIDIA/SCEI RSX
Sony Play Station 3
Sony Play Station 2
Apple Devices :
Graphics Synthesizer 147.456 MHz
Microsoft X - Box 360 500 MHz ATI Xenos
Nintendo Wii ATI Hollywood
Mobile Phones :
Apple iPod Touch PowerVR MGX
Apple iPad PowerVR SGX543MP
Nokia N900 PowerVR SGX 530
Apple iPhone 4 Apple A4 PowerVR SGX 535
Sony Ericsson Xperia Play Adreno 205
use of GPU in different fields
Gaming & 3D application Servers & Workstations Computer aided designing Animation, Motion Reality & Cinematography Advanced Hacking techniques Visual Simulations & Vehicle training Research like molecular designing Numerical Weather Prediction Astrophysics Quantum Mechanics Bioinformatics Ray Tracing Cryptography Cloth simulation, Fluid flow Fast Fourier Transform
softwares explicitly depend on GPU
Nvidia Gelato (discontinued ) MATLAB AutoCAD, MAYA Adobe Photoshop CS5* Adobe Flash Professional Adobe Premiere Pro Corel WinDVD PowerDVD 10* Cyberlink MediaEspresso* ArcSoft Media Converter Windows Explorer (Aero Features)* Windows Media Player 12* Windows Media Center* Internet Explorer 9 Nero Vision (only supports Nvidia CUDA) Xilisoft Video Converter Ultimate*
(windows os based)
performance factors of a GPU
ROPs: Number of raster operators in the device Bus interfaces & bandwidth: AGP, PCI-E Number of Shader Operators in the device Pixel Filtrate Texel Filtrate Memory Type & size: GDDR, GDDR3, GDD5 GPU & Memory Clock Rates RAMDAC Speed Supporting APIs like OpenGL 4.1, DirectX 11 OpenCL 1.1, Direct Compute 5.0
GPU-Z (software) displaying details of a typical GPU
terms closely related to GPU
Pixel Texel Vertex Triangles & polygons Transform Lightning Texture Mapping Alpha-Blending Shaders Pixel Shader Vertex Shader Texture Filtering Point Bilinear Trilinea r Rendering ROPs Pixel Filtrate Texel Filtrate Frame Buffer
terms closely related to GPU
(demonstrated )
AntiAliasing
terms closely related to GPU
(demonstrated )
Anisotropic Filtering :
2x
4x
8x
16x
terms closely related to GPU
(demonstrated )
Mip-Mapping :
GPGPU
GPGPU is the technique of using a GPU, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the CPU. It is made possible by the addition of programmable stages and higher precision arithmetic to the rendering pipelines, which allows software developers to use stream processing on nongraphics data. A stream is simply a set of records that require similar computation. It provides data parallelism. GPUs are stream processors, thats why they can easily calculate parallel data. SIMD (Single Instruction Multiple Data) methodology is used here instead of SISD (Single Instruction Single Data) which is generally used in CPU. The reason behind using GPU as an co-processor is, it can increase the execution speed up to 6x faster than a traditional CPU in certain cases.
most common implementations of GPGPU
Nvidia CUDA :
ATI FireStream :
hardware video decoding & transcoding
Nvidia :
Hardware Video Decoding Using GPU
Video Transcoding Using GPU
ATI :
Hardware Video Decoding Using UVD & Video Transcoding Using GPU
different APIs
DirectX Microsoft OpenGL- Silicon Graphics OpenCL - Khronos Group BrookGPU Stanford University Group DirectCompute Microsoft RISpec Pixar Glide 3dfx Voodoo Graphics WebGL used to display webpages using GPU
SDKs & languages
Nvidia developed Compute Unified Device Architecture (CUDA) technologies and CUDA SDK for its GPGPU implementation on CUDA enabled graphics solutions. Programmers use 'C for CUDA' compiled through a PathScale Open64 C compiler to code algorithms for execution on the GPU. AMD introduced its FireStream & AVIVO technologies & their SDK to implement GPGPU on AMD Radeon Graphics Solutions. The SDK includes Brook+ an AMD hardware optimized version of the Brook language developed by Stanford University itself a variant of the ANSI C. Third party wrappers are also available for Python, Perl, FORTRAN, Java, Ruby, Lua, MATLAB and IDL, and native support exists in Mathematica.
conclusio n
The GPU is not just for playing 3D intense videogames or for those who create intense graphic contents but is a crucial component that is critical to the PC's overall system speed & performance. But still more than 90% of todays computer market doesnt have a dedicated GPU in their system & the performance of the entire system is compromised. Thats why every computer system or PC should have a good GPU to maintain the systems overall performance at least for the current evolution of the computer industry.
thank you