Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Advertisements

Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
Real-Time Stereo Matching on Programmable Graphics Hardware Liang Wei.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Computer Graphics Graphics Hardware
Tranlators. Machine Language The lowest-level programming languageprogramming language Machine languages are the only languages understood by computers.languagescomputers.
GPU Architecture and Programming
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
Introduction to OpenGL  OpenGL is a graphics API  Software library  Layer between programmer and graphics hardware (and software)  OpenGL can fit in.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
CENTRAL PROCESSING UNIT. CPU Does the actual processing in the computer. A single chip called a microprocessor. Composed of an arithmetic and logic unit.
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.
Ray Tracing using Programmable Graphics Hardware
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS The GPU.
Computer Architecture Lecture 24 Parallel Processing Ralph Grishman November 2015 NYU.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
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.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
How to use a Pixel Shader CMT3317. Pixel shaders There is NO requirement to use a pixel shader for the coursework though you can if you want to You should.
Computer Graphics Graphics Hardware
Unit 2 Technology Systems
These slides are based on the book:
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
GPU Architecture and Its Application
Why don’t programmers have to program in machine code?
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Advanced Architectures
Chapter 10: Computer systems (1)
Our Graphics Environment
Hardware and Software Hardware refers to the physical devices of the computer system e.g. monitor, keyboard, printer, RAM etc. Software is a set of programs,
Distributed Processors
Mobile App Development
What is GPU? how does it work?
Computer Graphics Lecture 32
Topic: Difference b/w JDK, JRE, JIT, JVM
Introduction
Parallel Processing - introduction
The Operating System Nick Sims.
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Spatial Analysis With Big Data
Introduction to Parallelism.
Graphics Processing Unit
Deferred Lighting.
Introduction to OpenGL
Phnom Penh International University (PPIU)
Chapter 6 GPU, Shaders, and Shading Languages
From Turing Machine to Global Illumination
CS 286 Computer Organization and Architecture
GRAPHICS PROCESSING UNIT
Introduction to Computer Graphics with WebGL
Graphics Processing Unit
What is Concurrent Programming?
1.1 The Characteristics of Contemporary Processors, Input, Output and Storage Devices Types of Processors.
What is Concurrent Programming?
Computer Graphics Graphics Hardware
PROCESSES & THREADS ADINA-CLAUDIA STOICA.
CS 286 Computer Organization and Architecture
UMBC Graphics for Games
Understand the interaction between computer hardware and software
Introduction to OpenGL
Lecture 20 Parallel Programming CSE /27/2019.
Operating System Overview
CSE 502: Computer Architecture
Multicore and GPU Programming
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

Our Graphics Environment Landscape Rendering

Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other programs  The level of parallelism (as enabled by the number of CPU cores) is relatively low  GPU—massively parallel, set up for high-speed graphics  All modern high-performance graphics systems use massively parallel GPUs  How do the CPU and GPU communicate? Slow data bus

Standard CPU process execution  A 4-core CPU could run up to 4 processes simultaneously  Each of the apps in this example may have many execution threads (processes), but at least 4 could run at the same time  Each process reads and writes information to system memory using the system bus

GPU hardware environment  The GPU is massively parallel (possibly thousands of cores)  It has its own memory store and data bus

Programming on the CPU  We write a program in some language (like Java)  An interpreter or compiler translates our code to machine language  The CPU reads our machine code and performs actions  Read and write memory, control other hardware, etc.  The CPU talks to system memory along the system bus

Programming on the GPU  Each GPU core is a computing unit, just like each CPU core  In our world of GPU computing, each GPU core will get the same set of instructions as all other GPU cores  But not necessarily at the same instant!  This is called SIMD computing (single instruction stream, multiple data stream)  As you will discover, parallel programming is interesting!

How do the CPU and GPU interact?  All of our programs begin execution on the CPU  We will call that part of our program ‘the client’  The CPU ‘launches’ the parts of our program that do rendering on the GPU  We will refer to the GPU as ‘the server’  In almost all of our programs, we will occassionally need to move data from the CPU to the GPU  This is very slow! Do this as few times as possible!!

What does a GPU program look like?  Each part of a GPU program is called a ‘shader’  Different types of shaders are used for different parts of the ‘programmable pipeline’ on the GPU  Our first programs will only have vertex and fragment shaders  Others can have geometry, tessellation, and compute shaders  In the end, we want to store numeric color data in the on-screen framebuffer

In practice…  A vertex shader usually sets the rendered position of an object  A fragment shader usually sets the color values for the pixels overlapped by the rendered object

The on-screen framebuffer The on-screen framebuffer holds a numeric representation of the image The display controller reads the framebuffer, pixel by pixel, and tells the monitor how to set the color of each display element

Thinking about GPU programming: vertices  Assume you want to draw a rectangle like this:  You can safely assume that each vertex will be assigned its own, independent ‘vertex’ processor  Each vertex’s processor can be anywhere on the GPU  Each vertex is independent  There is no ‘edge processing’ here  Edges are a result of rendering

Thinking about GPU programming: fragments  The on-screen framebuffer is a set of pixels that stores the color of each portion of a rendered image  We will refer to these portions as pixels  A pixel holds a number representing a color  Each pixel’s color number is determined by its own independent ‘fragment’ processor  Essentially, each fragment’s RGB value ends up in the corresponding pixel of the on-screen framebuffer

A rendered shape  The display controller reads the framebuffer and renders the color corresponding to the RGB pixel value (using 0 and 1 in this example for simplicity) at the appropriate display element on the monitor

Advantages of GPU programming  Any shader program (vertex, fragment, etc.) runs simultaneously and independently on each processor  Each processor runs the same program but does so on different data  Processors generally don’t communicate with or wait for any other processors  They can, if you really want them to, but you will pay a speed penalty…