A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.

Slides:



Advertisements
Similar presentations
DSPs Vs General Purpose Microprocessors
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Lecture 6: Multicore Systems
Instructor Notes We describe motivation for talking about underlying device architecture because device architecture is often avoided in conventional.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
GPUs. An enlarging peak performance advantage: –Calculation: 1 TFLOPS vs. 100 GFLOPS –Memory Bandwidth: GB/s vs GB/s –GPU in every PC and.
Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow Wilson W. L. Fung Ivan Sham George Yuan Tor M. Aamodt Electrical and Computer Engineering.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
Status – Week 243 Victor Moya. Summary Current status. Current status. Tests. Tests. XBox documentation. XBox documentation. Post Vertex Shader geometry.
Many-Core Programming with GRAMPS Jeremy Sugerman Kayvon Fatahalian Solomon Boulos Kurt Akeley Pat Hanrahan.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Hybrid PC architecture Jeremy Sugerman Kayvon Fatahalian.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Comparison of Modern CPUs and GPUs And the convergence of both Jonathan Palacios Josh Triska.
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.
GPGPU platforms GP - General Purpose computation using GPU
What is Concurrent Programming? Maram Bani Younes.
Simultaneous Multithreading: Maximizing On-Chip Parallelism Presented By: Daron Shrode Shey Liggett.
Lecture#14. Last Lecture Summary Memory Address, size What memory stores OS, Application programs, Data, Instructions Types of Memory Non Volatile and.
1 The Performance Potential for Single Application Heterogeneous Systems Henry Wong* and Tor M. Aamodt § *University of Toronto § University of British.
Computer Graphics Graphics Hardware
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
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.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
Programming Concepts in GPU Computing Dušan Gajić, University of Niš Programming Concepts in GPU Computing Dušan B. Gajić CIITLab, Dept. of Computer Science.
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Processor Architecture
CENTRAL PROCESSING UNIT. CPU Does the actual processing in the computer. A single chip called a microprocessor. Composed of an arithmetic and logic unit.
GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.
EKT303/4 Superscalar vs Super-pipelined.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Lecture.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Ray Tracing using Programmable Graphics Hardware
Timothy G. Rogers Daniel R. Johnson Mike O’Connor Stephen W. Keckler A Variable Warp-Size Architecture.
Computer Architecture Lecture 24 Parallel Processing Ralph Grishman November 2015 NYU.
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.
My Coordinates Office EM G.27 contact time:
Fast and parallel implementation of Image Processing Algorithm using CUDA Technology On GPU Hardware Neha Patil Badrinath Roysam Department of Electrical.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Processor Level Parallelism 1
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
Computer Graphics Graphics Hardware
GPU Architecture and Its Application
A Level Computing – a2 Component 2 1A, 1B, 1C, 1D, 1E.
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
CS427 Multicore Architecture and Parallel Computing
The Graphics Rendering Pipeline
Vector Processing => Multimedia
Simulation of computer system
Graphics Processing Unit
Coe818 Advanced Computer Architecture
Fine-grained vs Coarse-grained multithreading
Computer Graphics Graphics Hardware
Introduction to Heterogeneous Parallel Computing
6- General Purpose GPU Programming
CSE 502: Computer Architecture
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker

Contents What is a GPU and Why do we need it? The Graphics Processing Pipeline Shader Programming Characteristics and Challenges GPU Architecture GPU vs CPU Architecture GPU on Chip Memory Convergence of CPUs and GPUs

What is a GPU? GPU stands for Graphics Processing Unit A GPU is the main chip inside a computer which calculates and generates the positioning of graphics on a computer screen Today’s graphical needs requires high performance GPUs to compute the required hundreds of gigaflops (FLoating point Operations Per Second) of modern day applications

Graphics Processing Pipeline Graphics systems need to have an appropriate balance between: – maximising performance – maintaining an expressive but simple interface for describing the graphics computations Graphics processing pipeline is the method adopted by application programming interfaces Direct3D and OpenGL to maintain this balance

Pipeline Diagram

Shader Programming Shader programming is used in transformation effects in graphics such as generating facial expression, under water effects, soap bubbles etc. Shader functions are used during the processing stages of pipeline processing; vertex, primitive and fragment processing. The Shader function is a C-Like function (High-level language), they operate on a single input-entity and serially produce multiple output-entity records.

Characteristics and Challenges Opportunities for parallelism – Graphics computing there is vast potential areas for parallelism – However dynamic and fine grained dependencies complicates programming the parallelism – Fixed-function stages requires waiting until other functions have been processed creating parallelisation difficulties – dynamic memory addresses makes pre-fetching input data difficult Instruction stream sharing – Simultaneous shader invocations means GPU core designs need to take into account algorithms for multiple pipeline scheduling Extreme Variations in Pipeline Load – Applications need to alter the configuration of the pipelines to accommodate different types of graphics

GPU Architecture GPUs contain multiple cores that utilise hardware multithreading and SIMD (Single Input, Multiple Data ). Having multiple cores and using SIMD processing means that GPUs have ALOT of Arithmetic Logic Units (ALU) GPUs utilize a wider SIMD width over CPUs, GPUs tend to have a width compared to a the SIMD width of 4 chosen by CPU designers These wider SIMD allow cores to be packed densely with ALUs

GPU and CPU Architecture comparison

GPU On Chip Memory The huge parallelism of the GPU architecture lays a heavy burden on memory and bandwidth of data transmission, prompting GPU designers to implement high bandwidth with a cost of high latency data access. GPUs however only have small read-only caches, which only purpose is to filter requests from the memory controller and reduce bandwidth on main memory. GPUs do contain large on chip storage to hold entity streams, execution contexts and thread data.

GPU and CPU Convergence The parallel nature of graphics processing has allowed the design of GPUs to execute large numbers of operations all in parallel CPUs still have to handle the serial nature of many programs existing today, so can't commit to full time massive parallelism As programmers are now likely to start developing programs which can be processed on massively parallel levels, the architectures of GPU and CPUs will eventually converge

Summary GPUs are Graphics processing units designed to bring bright and lively images to our screens GPUs need to strike a balance between maximising performance and maintaining an expressive but simple interface GPUs operate using shader Programming to construct the graphical data into pixels on the screen GPUs operate on a massively parallel level containing multiple cores and SIMD width with small cache space to minimise thrashing and reduce bandwidth on main memory Technological differences between GPUs and CPUs will ultimately fade away when software is developed to utilise these massively parallel chip designs