Computer Graphics Hardware An Overview



Similar documents
GPGPU Computing. Yong Cao

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

GPU Architecture. Michael Doggett ATI

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

Introduction to GPGPU. Tiziano Diamanti

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Lecture Notes, CEng 477

QCD as a Video Game?

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

Introduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1

Introduction to Computer Graphics

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

L20: GPU Architecture and Models

1. INTRODUCTION Graphics 2

Touchstone -A Fresh Approach to Multimedia for the PC

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

Radeon HD 2900 and Geometry Generation. Michael Doggett

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) mzahran@cs.nyu.edu

Optimizing AAA Games for Mobile Platforms

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Introduction to GPU Programming Languages

NVIDIA GeForce GTX 580 GPU Datasheet

Low power GPUs a view from the industry. Edvard Sørgård

OpenGL Performance Tuning

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

How To Teach Computer Graphics

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

HETEROGENEOUS HPC, ARCHITECTURE OPTIMIZATION, AND NVLINK

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

Graphical Processing Units to Accelerate Orthorectification, Atmospheric Correction and Transformations for Big Data

Image Synthesis. Transparency. computer graphics & visualization

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

Next Generation GPU Architecture Code-named Fermi

Writing Applications for the GPU Using the RapidMind Development Platform

LBM BASED FLOW SIMULATION USING GPU COMPUTING PROCESSOR

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Lecture 11: Multi-Core and GPU. Multithreading. Integration of multiple processor cores on a single chip.

Stream Processing on GPUs Using Distributed Multimedia Middleware

How To Use An Amd Ramfire R7 With A 4Gb Memory Card With A 2Gb Memory Chip With A 3D Graphics Card With An 8Gb Card With 2Gb Graphics Card (With 2D) And A 2D Video Card With

Graphical displays are generally of two types: vector displays and raster displays. Vector displays

SAPPHIRE TOXIC R9 270X 2GB GDDR5 WITH BOOST

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

Performance Optimization and Debug Tools for mobile games with PlayCanvas

How To Build An Ark Processor With An Nvidia Gpu And An African Processor

Real-Time Graphics Architecture

A Short Introduction to Computer Graphics

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Application. EDIUS and Intel s Sandy Bridge Technology

Parallel Programming Survey

GPUs Under the Hood. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

This Unit: Putting It All Together. CIS 501 Computer Architecture. Sources. What is Computer Architecture?

GPU File System Encryption Kartik Kulkarni and Eugene Linkov

Optimizing GPU-based application performance for the HP for the HP ProLiant SL390s G7 server

GeoImaging Accelerator Pansharp Test Results

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

GPU Computing with CUDA Lecture 2 - CUDA Memories. Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile

GPGPU accelerated Computational Fluid Dynamics

Graphical Processing Units to Accelerate Orthorectification, Atmospheric Correction and Transformations for Big Data

A Crash Course on Programmable Graphics Hardware

Technical Brief. Quadro FX 5600 SDI and Quadro FX 4600 SDI Graphics to SDI Video Output. April 2008 TB _v01

Accelerating Intensity Layer Based Pencil Filter Algorithm using CUDA

Dynamic Resolution Rendering

NVIDIA GeForce GTX 750 Ti

Accelerating CFD using OpenFOAM with GPUs

Infrastructure Matters: POWER8 vs. Xeon x86

Real-time Visual Tracker by Stream Processing

HPC with Multicore and GPUs

General Purpose Computation on Graphics Processors (GPGPU) Mike Houston, Stanford University

Binary search tree with SIMD bandwidth optimization using SSE

~ Greetings from WSU CAPPLab ~

Texture Cache Approximation on GPUs

Interactive Level-Set Deformation On the GPU

QuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Technical Specifications

Emerging storage and HPC technologies to accelerate big data analytics Jerome Gaysse JG Consulting

The Future Of Animation Is Games

Communicating with devices

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Advanced Rendering for Engineering & Styling

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

E6895 Advanced Big Data Analytics Lecture 14:! NVIDIA GPU Examples and GPU on ios devices

GPU Parallel Computing Architecture and CUDA Programming Model

INTRODUCTION TO RENDERING TECHNIQUES

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Intel Graphics Media Accelerator 900

Hardware design for ray tracing

SAPPHIRE VAPOR-X R9 270X 2GB GDDR5 OC WITH BOOST

Introduction to GPU Architecture

Chapter 2 Parallel Architecture, Software And Performance

Transcription:

Computer Graphics Hardware An Overview

Graphics System Monitor Input devices CPU/Memory GPU

Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and a picture) consists of discrete pixels, and each pixel has a small display area x y video controller A Frame buffer DAC

Frame Buffer Frame buffer: the memory to hold the pixel properties (color, alpha, depth, stencil mask, etc) Properties of a frame buffer that affect the graphics performance: Size: screen resolution Depth: color level 1 bit/pixel: black and white 8 bits/pixel: 256 levels of gray or color pallet index 24 bits/pixel: 16 million colors Speed: refresh speed

A (way too) simple graphics system Frame buffer can be part of the main memory Scan Controller CPU Main Memory Frame buffer System bus Problem?

Dedicated memory Video memory: On-board frame buffer: much faster to access Scan Controller Frame buffer CPU Main Memory System bus

Graphics Accelerator Graphics Memory/ Frame buffer A dedicated processor for graphics processing Graphics Processor Scan Controller CPU Main Memory System bus

Graphics Bus Interface PCI based technology Graphics Memory/ Frame buffer Graphics Processor Scan Controller Other Peripherals PCIe (8 GB/s) System Bus CPU Main Memory

Graphics Accelerators

What do GPUs do? Graphics processing units (GPUs) are massively parallel processors Process geometry/pixels and produce images to be displayed on the screen Can also be used to perform general purpose computation (via CUDA/OpenGL) Evolved from simple video scan controllers, to special purpose processors that implement a simple pipeline with fixed graphics functionality, to complex many-core architectures that contain several deep parallel pipelines The latest GPU (Kepler GK110) contains 15x192 cores and 7.1 billions transistors A graphics card can easily have more than 2GB of video memory

CPUs vs. GPUs (2005)

nvidia G80 GPU (2006) 128 streaming floating point processors @1.5Ghz 1.5 Gb Shared RAM with 86Gb/s bandwidth 500 Gflop on one chip (single precision)

nvidia G80 GPU Application Application Data Assembler Vtx Thread Issue Setup / Rstr / ZCull Prim Thread Issue Frag Thread Issue Vertex assembly Vertex operations SP TF L1 SP SP SP SP SP SP SP SP SP SP SP SP SP SP SP TF TF TF TF TF TF TF L1 L1 L1 L1 L1 L1 L1 Th hread Process sor Primitive assembly Primitive operations Rasterization L2 L2 L2 L2 L2 L2 Fragment operations FB FB FB FB FB FB Framebuffer

nvidia Fermi GPU (2009)

nvidia Fermi GPU (2009)

nvidia Kepler GK110 (2012)

CPU/GPU Performance Gap

Why are GPU s so fast? Entertainment Industry has driven the economy of these chips? Males age 15-35 buy $10B in video games / year Moore s Law ++ Simplified design (stream processing) Single-chip designs.

Modern GPU has more ALU s

A Specialized Processor Very Efficient For Fast Parallel Floating Point Processing Single Instruction Multiple Data Operations High Computation per Memory Access Not As Efficient For Double Precision Logical Operations on Integer Data Branching-Intensive Operations Random Access, Memory-Intensive Operations

The Rendering Pipeline The process to generate two-dimensional images from given virtual cameras and 3D objects The pipeline stages implement various core graphics rendering algorithms Why should you know the pipeline? Necessary for programming GPUs Understand various graphics algorithms Analyze performance bottleneck host vertex triangle pixel memory interface processing setup processing interface

The Rendering Pipeline The basic construction three conceptual stages Each stage is a pipeline and runs in parallel Application Graphics performance is Geometry Graphics performance is determined by the slowest stage Modern graphics systems: Software hardware Rasteriazer Image

Host Interface The host interface is the communication bridge between the CPU and the GPU It receives commands from the CPU and also pulls geometry information from system memory It outputs a stream of vertices in object space with all their associated information (normals, texture coordinates, per vertex color etc) host vertex triangle pixel memory interface processing setup processing interface

Vertex Processing The vertex processing stage receives vertices from the host interface in object space and outputs them in screen space This may be a simple linear transformation, or a complex operation involving morphing effects Normals, texcoords etc are also transformed No new vertices are created in this stage, and no vertices are discarded (input/output has 1:1 mapping) host interface vertex processing triangle setup pixel processing memory interface

Triangle setup In this stage geometry information becomes raster information (screen space geometry is the input, pixels are the output) Prior to rasterization, triangles that are backfacing or are located outside the viewing frustrum are rejected Some GPUs also do some hidden surface removal at this stage host vertex triangle pixel memory interface processing setup processing interface

Triangle Setup (cont) A fragment is generated if and only if its center is inside the triangle Every fragment generated has its attributes computed to be the perspective correct interpolation of the three vertices that make up the triangle host vertex triangle pixel memory interface processing setup processing interface

Fragment Processing Each fragment provided by triangle setup is fed into fragment processing as a set of attributes (position, normal, texcoord etc), which are used to compute the final color for this pixel The computations taking place here include texture mapping and math operations Typically the bottleneck in modern applications host vertex triangle pixel memory interface processing setup processing interface

Memory Interface Fragment colors provided by the previous stage are written to the framebuffer Used to be the biggest bottleneck before fragment processing took over Before the final write occurs, some fragments are rejected by the zbuffer, stencil and alpha tests On modern GPUs, z and color are compressed to reduce framebuffer bandwidth (but not size) host vertex triangle pixel memory interface processing setup processing interface

Programmability in the GPU Vertex and fragment processing, and now triangle set-up, are programmable The programmer can write programs that are executed for every vertex as well as for every fragment This allows fully customizable geometry and shading effects that go well beyond the generic look and feel of older 3D applications host vertex triangle pixel memory interface processing setup processing interface

The Graphics Pipeline

Diagram of a modern GPU Input from CPU Host interface Vertex processing Triangle setup Pixel processing Memory Interface 64bits to memory 64bits to memory 64bits to memory 64bits to memory

(courtesy: nvidia)

(courtesy: nvidia)

(courtesy: nvidia)

(courtesy: nvidia)

(courtesy: nvidia)

The Quest for Realism (courtesy: nvidia)