Graphics Processing Unit

Slides:



Advertisements
Similar presentations
Computer Graphics Prof. Muhammad Saeed. 2 Hardware ( Graphic Cards ) II Hardware II Computer Graphics 1 August 2012.
Advertisements

COMPUTER GRAPHICS SOFTWARE.
Is There a Real Difference between DSPs and GPUs?
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Prepared 5/24/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
A Crash Course on Programmable Graphics Hardware Li-Yi Wei 2005 at Tsinghua University, Beijing.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
Presentation by David Fong
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Raghu Machiraju Slides: Courtesy - Prof. Huamin Wang, CSE, OSU
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
Under the Hood: 3D Pipeline. Motherboard & Chipset PCI Express x16.
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
Translate the following message:
Computer Graphics Graphics Hardware
Nick Sims Like a motherboard, a graphics card is a printed circuit board that houses a processor and RAM.
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.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
Hardware. Make sure you have paper and pen to hand as you will need to take notes and write down answers and thoughts that you can refer to later on.
The Guts. CPU CPU Socket The CPU is generally a 2 inch ceramic square with a silicon chip located inside. The chip usually about the size of a thumbnail.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
Chapter 2 content Basic organization of computer What is motherboard
Computer Graphics Graphics Hardware
Transformer for your computer
GPU Architecture and Its Application
Computer systems is a 10-credit unit
Graphics Processor Graphics Processing Unit
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
- Introduction - Graphics Pipeline
Bus Systems ISA PCI AGP.
Week 2 - Friday CS361.
What is GPU? how does it work?
Basic Computer Hardware & Software
A Crash Course on Programmable Graphics Hardware
ASSEMBLY LANGUAGE FOR INTEL-BASED COMPUTERS,
Graphics Processing Unit
Phnom Penh International University (PPIU)
Chapter 6 GPU, Shaders, and Shading Languages
Drill Translate the following message:
Microcomputer Architecture
From Turing Machine to Global Illumination
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
GRAPHICS PROCESSING UNIT
Models and Architectures
Graphics Processor Graphics Processing Unit
Models and Architectures
Models and Architectures
Introduction to Computer Graphics with WebGL
McGraw-Hill Technology Education
Graphics Processing Unit
Models and Architectures
Windows Virtual PC / Hyper-V
Computer Graphics Graphics Hardware
Models and Architectures
Computer Graphics Introduction to Shaders
McGraw-Hill Technology Education
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Graphics Processing Unit
McGraw-Hill Technology Education
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

Graphics Processing Unit

Introduction A Graphics Processing Unit (GPU) is a microprocessor that has been designed specifically for the processing of 3D graphics. The processor is built with integrated transform, lighting, triangle setup/clipping, and rendering engines, capable of handling millions of math-intensive processes per second. GPUs form the heart of modern graphics cards, relieving the CPU (central processing units) of much of the graphics processing load.

Why GPU? To provide a separate dedicated graphics resources including a graphics processor and memory. To relieve some of the burden of the main system resources, namely the Central Processing Unit, Main Memory, and the System Bus, which would otherwise get saturated with graphical operations and I/O requests.

What is a GPU? A Graphics Processing Unit or GPU (also occasionally called Visual Processing Unit or VPU) is a dedicated processor efficient at manipulating and displaying computer graphics . Like the CPU (Central Processing Unit), it is a single-chip processor.

HOWEVER, The abstract goal of a GPU, is to enable a representation of a 3D world as realistically as possible. So these GPUs are designed to provide additional computational power that is customized specifically to perform these 3D tasks.

GPU vs CPU A GPU is tailored for highly parallel operation while a CPU executes programs serially. For this reason, GPUs have many parallel execution units , while CPUs have few execution units . GPUs have significantly faster and more advanced memory interfaces as they need to shift around a lot more data than CPUs. GPUs have much deeper pipelines (several thousand stages vs 10-20 for CPUs).

BRIEF HISTORY Fifth-Generation GPUs First-Generation GPUs Up to 1998; Nvidia’s TNT2, ATi’s Rage, and 3dfx’s Voodoo3;DX6 feature set. Second-Generation GPUs 1999 -2000; Nvidia’s GeForce256 and GeForce2, ATi’s Radeon7500, and S3’s Savage3D; T&L; OpenGL and DX7;Configurable. Third-Generation GPUs 2001; GeForce3/4Ti, Radeon8500, MS’s Xbox; OpenGL ARB, DX7/8; Vertex Programmability + ASM Fourth-Generation GPUs 2002 onwards; GeForce FX family, Radeon 9700; OpenGL+extensions, DX9; Vertex/Pixel Programability + HLSL; 0.13μ Process, 125M T/C, 200M T/S. Fifth-Generation GPUs - GeForce 8X:DirectX10.

COMPONENTS OF GPU Graphics Processor Graphics co-processor  Graphics accelerator  Frame buffer  Memory  Graphics BIOS  Digital-to-Analog Converter (DAC)  Display Connector  Computer (Bus) Connector

Intel and AMD CPU

The difference……. Without GPU With GPU

The GPU pipeline The GPU receives geometry information from the CPU as an input and provides a picture as an output Let’s see how that happens… host interface vertex processing triangle setup pixel memory

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 (texture coordinates, per vertex color etc) . host interface vertex processing triangle setup pixel memory

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 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 memory

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 frustum are rejected host interface vertex processing triangle setup pixel memory

Triangle Setup (cont…..) A pixel is generated if and only if its center is inside the triangle Every pixel generated has its attributes computed to be the perspective correct interpolation of the three vertices that make up the triangle

Pixel Processing Each pixel provided by triangle setup is fed into pixel processing as a set of attributes which are used to compute the final color for this pixel The computations taking place here include texture mapping and math operations host interface vertex processing triangle setup pixel memory

Memory Interface Pixel colors provided by the previous stage are written to the framebuffer Used to be the biggest bottleneck before pixel processing took over Before the final write occurs, some pixels are rejected by the zbuffer .On modern GPUs z is compressed to reduce framebuffer bandwidth (but not size). host interface vertex processing triangle setup pixel memory

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

A parallel computing platform and programming model CUDA A parallel computing platform and programming model Developer(s) NVIDIA Corporation Initial release June 23, 2007; 8 years ago Stable release 7.5 / September 8, 2015; Operating system Windows XP and later, Mac OS X, Linux Platform Supported GPUs Type GPGPU License Freeware Website www.nvidia.com/object/cuda_home_new.html CUDA is a parallel computing platform and application programming interface (API) model created by NVIDIA. It allows software developers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing – an approach known as GPGPU. The CUDA platform is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements.

Dedicated graphics cards GPU forms Dedicated graphics cards The GPUs of the most powerful class typically interface with the motherboard by means of an expansion slot such as PCI Express (PCIe) or Accelerated Graphics Port (AGP) and can usually be replaced or upgraded with relative ease. A dedicated GPU is not necessarily removable, nor does it necessarily interface with the motherboard in a standard fashion. The term "dedicated" refers to the fact that dedicated graphics cards have RAM that is dedicated to the card's use, not to the fact that most dedicated GPUs are removable. Technologies such as SLI by Nvidia and CrossFire by AMD allow multiple GPUs to draw images simultaneously for a single screen, increasing the processing power available for graphics.

Integrated graphics solutions Integrated graphics solutions, shared graphics solutions, or integrated graphics processors (IGP) utilize a portion of a computer's system RAM rather than dedicated graphics memory. IGPs can be integrated onto the motherboard as part of the chipset, or within the same die as CPU (like AMD APU or Intel HD Graphics). On certain motherboards AMD's IGPs can use dedicated sideport memory. This is a separate fixed block of high performance memory that is dedicated for use by the GPU. As a GPU is extremely memory intensive, an integrated solution may find itself competing for the already relatively slow system RAM with the CPU, as it has minimal or no dedicated video memory.

Hybrid solutions This newer class of GPUs competes with integrated graphics in the low-end desktop and notebook markets. The most common implementations of this are ATI's HyperMemory and Nvidia's TurboCache. Hybrid graphics cards are somewhat more expensive than integrated graphics, but much less expensive than dedicated graphics cards. These share memory with the system and have a small dedicated memory cache, to make up for the high latency of the system RAM. Technologies within PCI Express can make this possible.

Stream Processing and General Purpose GPUs (GPGPU) It is becoming increasingly common to use a general purpose graphics processing unit (GPGPU) as a modified form of stream processor. This concept turns the massive computational power of a modern graphics accelerator's shader pipeline into general-purpose computing power, as opposed to being hard wired solely to do graphical operations. The two largest discrete GPU designers, ATI and Nvidia, are beginning to pursue this approach with an array of applications. GPGPU can be used for many types of embarrassingly parallel tasks including ray tracing. They are generally suited to high-throughput type computations that exhibit data-parallelism to exploit the wide vector width SIMD architecture of the GPU.

External GPU (eGPU) An external GPU is a graphics processor located outside of the housing of the computer. External graphics processors are often used with laptop computers. Laptops might have a substantial amount of RAM and a sufficiently powerful central processing unit (CPU), but often lack a powerful graphics processor (and instead have a less powerful but more energy-efficient on-board graphics chip). Therefore, it is desirable to be able to attach a GPU to some external bus of a notebook. PCI Express is the only bus commonly used for this purpose.

Conclusion Graphics Processing Unit is not a wonder that this piece of hardware is often referred to as an exotic product as far as computer peripherals are concerned. By observing the current pace at which work is going on in developing GPUs we can surely come to a conclusion that we will be able to see better and faster GPUs in the near future.

Thanks