Computer graphics & visualization GP-GPU. computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS SOFTWARE.
Advertisements

Kayvon Fatahalian, Jeremy Sugerman, Pat Hanrahan
Sven Woop Computer Graphics Lab Saarland University
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
A many-core GPU architecture.. Price, performance, and evolution.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
GPU Tutorial 이윤진 Computer Game 2007 가을 2007 년 11 월 다섯째 주, 12 월 첫째 주.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 April 4, 2013 © Barry Wilkinson CUDAIntro.ppt.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
Interactive Visualization of Volumetric Data on Consumer PC Hardware: Introduction Daniel Weiskopf Graphics Hardware Trends Faster development than Moore’s.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Dec 31, 2012 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Computer Graphics Graphics Hardware
Geometric Objects and Transformations. Coordinate systems rial.html.
GPU Shading and Rendering Shading Technology 8:30 Introduction (:30–Olano) 9:00 Direct3D 10 (:45–Blythe) Languages, Systems and Demos 10:30 RapidMind.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Cg Programming Mapping Computational Concepts to GPUs.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac GPU  Precision, Power, Programmability –CPU: x60/decade, 6 GFLOPS,
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
The programmable pipeline Lecture 3.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
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.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
MSIM 842 VISUALIZATION II INSTRUCTOR: JESSICA R. CROUCH 1 A Particle System for Interactive Visualization of 3D Flows Jens Krüger Peter Kipfer.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
Geometry processing on GPUs Jens Krüger Technische Universität München.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Mapping Computational Concepts to GPUs Mark Harris NVIDIA.
Dynamic Geometry Displacement Jens Krüger Technische Universität München.
Ray Tracing by GPU Ming Ouhyoung. Outline Introduction Graphics Hardware Streaming Ray Tracing Discussion.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 © Barry Wilkinson GPUIntro.ppt Oct 30, 2014.
Computer Graphics Graphics Hardware
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 July 12, 2012 © Barry Wilkinson CUDAIntro.ppt.
GPU Architecture and Its Application
Chapter 1 An overview on Computer Graphics
Chapter 1 An overview on Computer Graphics
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
Graphics Processing Unit
Computer Graphics Graphics Hardware
Ray Tracing on Programmable Graphics Hardware
RADEON™ 9700 Architecture and 3D Performance
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Graphics Processing Unit
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

computer graphics & visualization GP-GPU

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics hardware Current performace – PlayStation 3 Current performace – PlayStation 3 CPU: Cell Prozessor (3,2 GHz) CPU: Cell Prozessor (3,2 GHz) – 512 kB L2-Cache – ~200 GFLOP/s GPU (Graphics Processing Unit) GPU (Graphics Processing Unit) – Nvidia RSX Reality Synthesizer (550 MHz, ~300 MTransistors – ~ 1,8 TFLOP/s – ~ 20 GPixels/s – ~ 2 GTriangles/s

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics hardware - history 80: simple rasterization 80: simple rasterization – Windows, lines, polygons, text-fonts 90-95: Geometry-Engines only on High-End-Workstations 90-95: Geometry-Engines only on High-End-Workstations – e.g. SGI O2 vs. Indigo2) 95: new rasterization functionality 95: new rasterization functionality – Realism by texturing, e.g: SGI Infinite Reality 98: Geometry processor (T&L) on PC-Graphics 98: Geometry processor (T&L) on PC-Graphics 2000: PC-Graphics achieves similar performance to High-End-Workstations 2000: PC-Graphics achieves similar performance to High-End-Workstations – 3D is becoming standard in Aldi-PC 2001: PC-Graphics offers new functionality 2001: PC-Graphics offers new functionality – Multitextures, Vertex- and Pixel-Shader 2002: DirectX Level 9.0 Hardware 2002: DirectX Level 9.0 Hardware – High Level Shader Languages 2006: DirectX Level 10.0 Hardware 2006: DirectX Level 10.0 Hardware – Geometry – Shader

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Trends in graphics hardware Number of transistors doubles every 6 months Advances in performance and functionality /973/989/983/999/993/009/003/01 Time (month/year) Transistors (Mi) Riva 128 (3M) GeForce3 (57M) R200 (60M) 9/ GeForceFX / ATI Radeon ATI R520

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Trends in graphics hardware Grows faster than Moores law predicts Grows faster than Moores law predicts Time Performance Network Graphics CPU

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Parallel graphics hardware Graphics hardware has always been parallel Graphics hardware has always been parallel – Internal on chip or board Multiple rasterizer serve one frame buffer Multiple rasterizer serve one frame buffer – Multi-Pipe Multiple graphics cards in one system for one or multiple displays Multiple graphics cards in one system for one or multiple displays Multiple geometry engines Multiple geometry engines – Distributed graphics Multiple knots in a connected cluster with one or multiple cards serve one or multiple displays driven by one application Multiple knots in a connected cluster with one or multiple cards serve one or multiple displays driven by one application

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics architectures State-of-the-Art GPUs State-of-the-Art GPUs – Highly parallel stream architecture Stream of vertices/fragments is processed Stream of vertices/fragments is processed Pipelined and SIMD parallel processing Pipelined and SIMD parallel processing – SIMD: single set of instructions on multiple stream elements – Specifies new rendering pipeline Additional stages a vertex or a fragment is passing through Additional stages a vertex or a fragment is passing through – Specifies new (vendor specific) OpenGL extensions – Allows for new classes of algorithms – Eventually makes programs platform dependent

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics architectures State-of-the-Art GPUs (G80)

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics architectures State-of-the-Art GPUs State-of-the-Art GPUs – Multiple (texture) render targets – Up to 2GB video memory – Floating point textures (4 x 32 Bit) – Internal computations in float /double precision – Z-cull: discards fragments (before entering the pixel pipelines) that will fail the depth test – Dynamic flow control: per-vertex/geometry/fragment specific operations (if then else) – PCIe: serial, pont2point protocol, dual channels to allow for bandwidth in both directions (upload/download) – Fix fragment-to-pixel bound, i.e. a fragment (XY) can not be written to a pixel (X´Y´) no scattering (at least not in DX/GL)– only gathering no scattering (at least not in DX/GL)– only gathering

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics architectures State-of-the-Art programmable GPUs

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Graphics architectures State-of-the-Art programmable GPUs

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group GP-GPU Water

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Displacement mapping DisplacerRendering static grid Simulation generates height field texture water surface

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware GPU memory objects GPU memory objects – Semantics can be specified for chunk of memory – Memory object can be a texture, a vertex array, a frame buffer object What was a texture render target in the current pass becomes a vertex array in the upcoming pass What was a texture render target in the current pass becomes a vertex array in the upcoming pass – Texture elements can be interpreted as vertex attributes without any copying operations (not in OpenGL) – Same effect can be achieved with vertex texture fetch, but this fetch actually slows down performance

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Example Example – Computation of height values u at vertices of a 2D grid – Starting with an initial distribution, compute evolution over time t y x h h P ij P ij+1 P ij-1 P i+1j P i+1j+1 P i+1j-1 P i-1j P i-1j+1 P i-1j-1

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Algorithm: – Load initial height values (N x xN y ) as 2D texture (sGridPrev, sGrid) – Upload fragment shader (render to sGridNew): void PerPixelSim ( float2 fragpos: TEXCOORD0, out height : COLOR0) { centerPrev = tex2D(sGridPrev, fragpos); float2 leftIndex = float2(-1.0/TexSize, 0.0); left = tex2D(sGrid, fragpos + leftIndex); // same for right, upper, lower, center height = f(left, right, upper, lower, center, centerPrev); }

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Algorithm contd.: – Simulation: Render a Quad that covers N x x N y pixels with appropriate texture coords. Render a Quad that covers N x x N y pixels with appropriate texture coords. – N x x N y fragments will be generated – Data parallel execution of fragments – Swizzle texture identifiers sGridPrev = sGrid, sGrid = sGridNew; sGridNew = sGrdPrev sGridPrev = sGrid, sGrid = sGridNew; sGridNew = sGrdPrev – Display height field in texture sGrid (texCoord = 0,0) (1,1) (0,1) (1,0)

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Algorithm contd.: – Display: Upload fragment shader (render to color buffer): Upload fragment shader (render to color buffer): void PerPixelRefract ( float2 fragpos: TEXCOORD0, out color : COLOR0) { tangent = float3(1.0, 0.0, tex2D(sGrid, fragpos + rightIndex).r - tex2D(sGrid, fragpos).r; binormal = float3(0.0, 1.0, tex2D(sGrid, fragpos + upper).r - tex2D(sGrid, fragpos).r); normal = normalize(cross(tangent, binormal)); refract = f(normal, refractionIndex); color = tex2D(sBackground, fragpos + refract); }

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group GPGPU Particle Tracing

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group GPU Partikelverfolgung

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group GPU Partikelverfolgung Input Assembler RasterizerRasterizer OutputMergerOutputMerger

computer graphics & visualization Image Synthesis – WS 07/08 Dr. Jens Krüger – Computer Graphics and Visualization Group Programmable graphics hardware Demonstration