Presentation is loading. Please wait.

Presentation is loading. Please wait.

May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad.

Similar presentations


Presentation on theme: "May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad."— Presentation transcript:

1 May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad & Alaa Shams

2 May 8, 2007Farid Harhad and Alaa Shams CS7080 Outline Introduction GPU Architecture GPU programming –GPU programming model –Toolkit and language Sample Code Conclusion

3 May 8, 2007Farid Harhad and Alaa Shams CS7080 Introduction The GPU on commodity video cards has evolved into extremely flexible and powerful processor. GPUs are fast : –3.0 GHz Pentium 4: 6 GFLOPs, 6 GB/Sec peak –3.0 GHz dual-core Pentium 4: 24.6 GFLOPs –GeoForceFX 6800: 53 GFLOPs, 34 GB/Sec Peak –GeoForceFX 7800: 165 GFLOPs –1066 MHz FSB Pentium Extreme Edition: 8.5 GB/s –ATI Radeo X850 XT Platinum Edition: 37.8 GB/s GPUS are getting faster and faster –CPUs: ~1.5x annual growth  ~60x per decade –GPUs: ~2.3x annual growth  ~1000x per decade

4 May 8, 2007Farid Harhad and Alaa Shams CS7080 Computational power

5 May 8, 2007Farid Harhad and Alaa Shams CS7080 Cont.

6 May 8, 2007Farid Harhad and Alaa Shams CS7080 Why are GPUs getting faster so fast? Arithmetic intensity: the specialized nature of GPUs makes it easier to use additional transistors for computation not cache Economics: multi-billion dollar video game market is a pressure cooker that drives innovation

7 May 8, 2007Farid Harhad and Alaa Shams CS7080 Flexible and Precise Modern GPUs are deeply Programmable –Programmable pixel, vertex, video engines – Solidifying high-level language support Modern GPUs support high precision – 32 bit floating point throughout the pipeline – High enough for many (not all) applications

8 May 8, 2007Farid Harhad and Alaa Shams CS7080 The Potential of GPU In short: – The power and flexibility of GPUs makes them an attractive platform for general- purpose computation – Example applications range from in-game physics simulation to conventional Computational science – Goal: make the inexpensive power of the GPU available to developers as a sort of computational coprocessor

9 May 8, 2007Farid Harhad and Alaa Shams CS7080 The Problem: Difficult To Use GPUs designed for & driven by video games – Programming model unusual – Programming idioms tied to computer graphics – Programming environment tightly constrained Underlying architectures are: – Inherently parallel – Rapidly evolving (even in basic feature set!) – Largely secret Can’t simply “port” CPU code!

10 May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Architecture Graphic PL

11 May 8, 2007Farid Harhad and Alaa Shams CS7080 Modern Graphic PL

12 May 8, 2007Farid Harhad and Alaa Shams CS7080 Transform Vertex processor (multiple in parallel) – Transform from “world space” to “image space” – Compute per-vertex lighting

13 May 8, 2007Farid Harhad and Alaa Shams CS7080 Rasterizer – Convert geometric rep. (vertex) to image rep. (fragment) Fragment = image fragment – Pixel + associated data: color, depth, stencil, etc. – Interpolate per-vertex quantities across pixels

14 May 8, 2007Farid Harhad and Alaa Shams CS7080 Shade Fragment processors (multiple in parallel) – Compute a color for each pixel – Optionally read colors from textures (images)

15 May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU programming

16 May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Programming Model Useful analogies: –Rasterization = Kernel Invocation –Texture coordinates = Computation domain –Vertex coordinates = computational range Invoking computation amounts to drawing pixels: –GPGPU invocation is commonly a full-screen quad GPUCPU Stream / Data array: Memory read Texture: Texture sampling Loop body / Kernel / AlgorithmFragment program Feedback: Array writeFeedback: render a texture

17 May 8, 2007Farid Harhad and Alaa Shams CS7080 GPU Programming Model

18 May 8, 2007Farid Harhad and Alaa Shams CS7080 Toolkits and Language High level shading languages –Cg: C for GraphicsCg: C for Graphics –HLSL: The D3D Shading LanguageHLSL: The D3D Shading Language –The OpenGL Shading LanguageThe OpenGL Shading Language GPGPU Languages –Sh - University of WaterlooSh - University of Waterloo –Brook - Stanford UniversityBrook - Stanford University CUDA SDKCUDA –Includes a C compiler and many libraries

19 May 8, 2007Farid Harhad and Alaa Shams CS7080 Sample Code

20 May 8, 2007Farid Harhad and Alaa Shams CS7080 Conclusion GPU provide the programmer with unparalleled flexibility and performance in a product line that spans the entire PC market. Utilizing the capabilities of the GPU allow the programmers to develop newer applications-either graphical or general purpose-in more efficient way.

21 References GPU Gem2 (Chapters 29 & 30) SIGGRAPH 2005 GPGPU Course http://www.gpgpu.org/ May 8, 2007Farid Harhad and Alaa Shams CS7080

22 May 8, 2007Farid Harhad and Alaa Shams CS7080 Questions? Thanks


Download ppt "May 8, 2007Farid Harhad and Alaa Shams CS7080 Overview of the GPU Architecture CS7080 Final Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad."

Similar presentations


Ads by Google