SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Graphics Processing Unit

DHAN V SAGAR
CB.EN.P2CSE13007
Introduction
It is a processor optimized for 2D/3D graphics, video,
visual computing, and display.
It is highly parallel, highly multi threaded multiprocessor
optimized for visual computing.
It provide real-time visual interaction with computed
objects via graphics images, and video.
History
●

Up to late 90's
– No GPUs
– Much simpler VGA controller
● Consisted of
– A memory controller
– Display generator + DRAM
● DRAM was either shared with CPU
or private
History
●

By 1997
– More complex VGA controllers
● Incorporated 3D accelerating functions in
hardware
– Triangle set up and rasterization
– Texture mapping and shading
A combination of shapes(Lines, polygons, letters, …)
into an image consisting of individual pixels
History
●

By 2000
– Single chip graphics processor incorporated
nearly all functions of graphics pipeline of
high-end workstations
● Beginning of the end of high-end
workstation market
– VGA controller was renamed Graphic
Processing Units
Current Trends
Well defined APIs
Open GL:
Open standard for 3D graphics programming
Web GL:
Open GL extension for web
DirectX:
Set of MS multimedia programming interfaces
(Direct3D for 3D graphics)
Can implement novel graphics algorithms
Use GPUs for non-conventional applications
Current Trends

Combining powers of CPU and GPU - heterogeneous
architectures
GPUs become scalable parallel processors
Moving from hardware-defined pipelining architectures to
more flexible programmable architectures
Architechture Evolution

Memory

CPU

floating point co-processors
attached to microprocessors.

Graphic
s card

Interest to provide hardware
support for displays

Display

Led to graphics processing units
(GPUs)
GPUs with dedicated pipelines
Input stage

Vertex shader
stage
Graphi
cs
memor
y

Geometry
shader stage

Frame
buffer

Rasterizer
stage
Pixel shading
stage

Graphics chips generally had a
pipeline structure
individual stages performing
Specialized operations, finally
leading to loading frame buffer for
Display
Individual stages may have access
to graphics memory for storing
intermediate computed data.
PROGRAMMING GPUS

•

•

•

Will focus on parallel computing applications
Must decompose problem into set of parallel
computations
Ideally two-level to match GPU organization
Example
Small Small
array array

Data are in
big array

Small
array

Small Small
array array

Tiny

Tiny

Tiny

Tiny
GPGU and CUDA
GPGU
●

General-Purpose computing on GPU

●

Uses traditional graphics API and graphics pipeline
CUDA

●

Compute Unified Device Architecture

●

Parallel computing platform and programming model

●

Invented by NVIDIA

●

Single Program Multiple Data approach
CUDA
➢

➢

➢

CUDA programs are written in C
Within C programs, call SIMT “kernel” routines that are
executed on GPU

Provides three abstractions
➢
➢
➢

Hierarchy of thread groups
Shared memory
Barrier synchronization
Cont..
CUDA
●

●

●

Lowest level of parallelism – CUDA Thread
Compiler + Hardware can gang 1000s of CUDA threads
together leads to various levels of parallelism within the
GPU
MIMD,SIMD,Instruction level Parallelism
Single Instruction, Multiple Thread (SIMT)
Conventional C Code
// Invoke DAXPY
dapxy(n,2.0,x,y);
// DAXPY in C
void daxpy(int n,double a,double *x, double *y)
{
for (int i=0;i<n;++i)
y[i] = a*x[i] + y[i];
}
Corresponding CUDA Code
// Invoke DAXPY with 256 threads per Thread Block
_host_
int nblocks = (n+255)/256;
daxpy<<<nblocks,256>>>(n,2.0,x,y);
//DAXPY in CUDA
_device_
Void daxpy(int n,double a,double *x, double *y)
{
int i = blockIdX.x*blockDim.x+threadIdx.x;
if(i<n) y[i]=a*x[i]+y[i];
}
●
Cont...
●

_device_ (OR) _global_

●

_host_

●

●

---

functions of GPU

--- functions of the system processor

CUDA variables declared in the _device_ are allocated to
the GPU Memory,which is acessable by all the multithreaded
SIMD processors

Function call syntax for the function uses GPU is
name<<<dimGrid,dimBlock>>>(..parameterlist..)

●

GPU Hardware handles Threads
●

●

Threads are blocked together and executed in group of
32 threads – Thread Block
The hardware that executes a whole block of threats is
called a Multithreaded SIMD Processor
Reference
http://en.wikipedia.org/wiki/Graphics_processing_unit
http://www.nvidia.com/object/cuda_home_new.html
http://computershopper.com/feature/200704_the_right_gpu_for_you
http://www.cs.virginia.edu/~gfx/papers/pdfs/59_HowThingsWork.pdf
http://en.wikipedia.org/wiki/Larrabee_(GPU)#cite_note-siggraph-9
http://www.nvidia.com/geforce
“Larrabee: A Many-Core x86 Architecture for Visual Computing”, Kruger and
Westermann, International Conf. on Computer Graphics and Interactive Techniques,
2005
“ An Analytical Model for a GPU Architecture with Memory-level and Thread-level
Parallelism Awareness”Sunpyo Hong,Hyesoon Kim
Thank You..

Contenu connexe

Tendances

Tendances (20)

Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit ppt
 
graphics processing unit ppt
graphics processing unit pptgraphics processing unit ppt
graphics processing unit ppt
 
Graphics processing unit
Graphics processing unitGraphics processing unit
Graphics processing unit
 
Introduction to parallel computing using CUDA
Introduction to parallel computing using CUDAIntroduction to parallel computing using CUDA
Introduction to parallel computing using CUDA
 
Introduction to GPU Programming
Introduction to GPU ProgrammingIntroduction to GPU Programming
Introduction to GPU Programming
 
Graphics card
Graphics cardGraphics card
Graphics card
 
Graphics Processing Unit - GPU
Graphics Processing Unit - GPUGraphics Processing Unit - GPU
Graphics Processing Unit - GPU
 
Graphics card ppt
Graphics card pptGraphics card ppt
Graphics card ppt
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)
 
GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)GPU Architecture NVIDIA (GTX GeForce 480)
GPU Architecture NVIDIA (GTX GeForce 480)
 
GPU
GPUGPU
GPU
 
Introduction to CUDA
Introduction to CUDAIntroduction to CUDA
Introduction to CUDA
 
GRAPHIC CARD
GRAPHIC CARDGRAPHIC CARD
GRAPHIC CARD
 
Cuda
CudaCuda
Cuda
 
Graphics Processing Unit by Saurabh
Graphics Processing Unit by SaurabhGraphics Processing Unit by Saurabh
Graphics Processing Unit by Saurabh
 
Graphic card
Graphic cardGraphic card
Graphic card
 
GPU Programming
GPU ProgrammingGPU Programming
GPU Programming
 
NVIDIA CUDA
NVIDIA CUDANVIDIA CUDA
NVIDIA CUDA
 
Lec04 gpu architecture
Lec04 gpu architectureLec04 gpu architecture
Lec04 gpu architecture
 
Deep learning: Hardware Landscape
Deep learning: Hardware LandscapeDeep learning: Hardware Landscape
Deep learning: Hardware Landscape
 

Similaire à GPU - An Introduction

Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
Arka Ghosh
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
Arka Ghosh
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
Arka Ghosh
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
Arka Ghosh
 
Pycon2014 GPU computing
Pycon2014 GPU computingPycon2014 GPU computing
Pycon2014 GPU computing
Ashwin Ashok
 
19564926 graphics-processing-unit
19564926 graphics-processing-unit19564926 graphics-processing-unit
19564926 graphics-processing-unit
Dayakar Siddula
 
CUDA by Example : The Final Countdown : Notes
CUDA by Example : The Final Countdown : NotesCUDA by Example : The Final Countdown : Notes
CUDA by Example : The Final Countdown : Notes
Subhajit Sahu
 
Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08
Angela Mendoza M.
 

Similaire à GPU - An Introduction (20)

GPU Programming with Java
GPU Programming with JavaGPU Programming with Java
GPU Programming with Java
 
Cuda
CudaCuda
Cuda
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Cuda intro
Cuda introCuda intro
Cuda intro
 
Vpu technology &gpgpu computing
Vpu technology &gpgpu computingVpu technology &gpgpu computing
Vpu technology &gpgpu computing
 
Pycon2014 GPU computing
Pycon2014 GPU computingPycon2014 GPU computing
Pycon2014 GPU computing
 
GPGPU programming with CUDA
GPGPU programming with CUDAGPGPU programming with CUDA
GPGPU programming with CUDA
 
Cuda
CudaCuda
Cuda
 
lecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptxlecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptx
 
19564926 graphics-processing-unit
19564926 graphics-processing-unit19564926 graphics-processing-unit
19564926 graphics-processing-unit
 
Gpu
GpuGpu
Gpu
 
CUDA by Example : The Final Countdown : Notes
CUDA by Example : The Final Countdown : NotesCUDA by Example : The Final Countdown : Notes
CUDA by Example : The Final Countdown : Notes
 
S0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cudaS0333 gtc2012-gmac-programming-cuda
S0333 gtc2012-gmac-programming-cuda
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript
 
Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.
 
Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08
 
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4  Maximizing the utilization of GPU resources on-premise and in the cloudPart 4  Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloud
 
qCUDA-ARM : Virtualization for Embedded GPU Architectures
 qCUDA-ARM : Virtualization for Embedded GPU Architectures  qCUDA-ARM : Virtualization for Embedded GPU Architectures
qCUDA-ARM : Virtualization for Embedded GPU Architectures
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 

GPU - An Introduction

  • 1. Graphics Processing Unit DHAN V SAGAR CB.EN.P2CSE13007
  • 2. Introduction It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multi threaded multiprocessor optimized for visual computing. It provide real-time visual interaction with computed objects via graphics images, and video.
  • 3. History ● Up to late 90's – No GPUs – Much simpler VGA controller ● Consisted of – A memory controller – Display generator + DRAM ● DRAM was either shared with CPU or private
  • 4. History ● By 1997 – More complex VGA controllers ● Incorporated 3D accelerating functions in hardware – Triangle set up and rasterization – Texture mapping and shading A combination of shapes(Lines, polygons, letters, …) into an image consisting of individual pixels
  • 5. History ● By 2000 – Single chip graphics processor incorporated nearly all functions of graphics pipeline of high-end workstations ● Beginning of the end of high-end workstation market – VGA controller was renamed Graphic Processing Units
  • 6. Current Trends Well defined APIs Open GL: Open standard for 3D graphics programming Web GL: Open GL extension for web DirectX: Set of MS multimedia programming interfaces (Direct3D for 3D graphics) Can implement novel graphics algorithms Use GPUs for non-conventional applications
  • 7. Current Trends Combining powers of CPU and GPU - heterogeneous architectures GPUs become scalable parallel processors Moving from hardware-defined pipelining architectures to more flexible programmable architectures
  • 8. Architechture Evolution Memory CPU floating point co-processors attached to microprocessors. Graphic s card Interest to provide hardware support for displays Display Led to graphics processing units (GPUs)
  • 9. GPUs with dedicated pipelines Input stage Vertex shader stage Graphi cs memor y Geometry shader stage Frame buffer Rasterizer stage Pixel shading stage Graphics chips generally had a pipeline structure individual stages performing Specialized operations, finally leading to loading frame buffer for Display Individual stages may have access to graphics memory for storing intermediate computed data.
  • 10. PROGRAMMING GPUS • • • Will focus on parallel computing applications Must decompose problem into set of parallel computations Ideally two-level to match GPU organization
  • 11. Example Small Small array array Data are in big array Small array Small Small array array Tiny Tiny Tiny Tiny
  • 12. GPGU and CUDA GPGU ● General-Purpose computing on GPU ● Uses traditional graphics API and graphics pipeline CUDA ● Compute Unified Device Architecture ● Parallel computing platform and programming model ● Invented by NVIDIA ● Single Program Multiple Data approach
  • 13. CUDA ➢ ➢ ➢ CUDA programs are written in C Within C programs, call SIMT “kernel” routines that are executed on GPU Provides three abstractions ➢ ➢ ➢ Hierarchy of thread groups Shared memory Barrier synchronization
  • 15. CUDA ● ● ● Lowest level of parallelism – CUDA Thread Compiler + Hardware can gang 1000s of CUDA threads together leads to various levels of parallelism within the GPU MIMD,SIMD,Instruction level Parallelism Single Instruction, Multiple Thread (SIMT)
  • 16. Conventional C Code // Invoke DAXPY dapxy(n,2.0,x,y); // DAXPY in C void daxpy(int n,double a,double *x, double *y) { for (int i=0;i<n;++i) y[i] = a*x[i] + y[i]; }
  • 17. Corresponding CUDA Code // Invoke DAXPY with 256 threads per Thread Block _host_ int nblocks = (n+255)/256; daxpy<<<nblocks,256>>>(n,2.0,x,y); //DAXPY in CUDA _device_ Void daxpy(int n,double a,double *x, double *y) { int i = blockIdX.x*blockDim.x+threadIdx.x; if(i<n) y[i]=a*x[i]+y[i]; } ●
  • 18. Cont... ● _device_ (OR) _global_ ● _host_ ● ● --- functions of GPU --- functions of the system processor CUDA variables declared in the _device_ are allocated to the GPU Memory,which is acessable by all the multithreaded SIMD processors Function call syntax for the function uses GPU is name<<<dimGrid,dimBlock>>>(..parameterlist..) ● GPU Hardware handles Threads
  • 19. ● ● Threads are blocked together and executed in group of 32 threads – Thread Block The hardware that executes a whole block of threats is called a Multithreaded SIMD Processor
  • 20. Reference http://en.wikipedia.org/wiki/Graphics_processing_unit http://www.nvidia.com/object/cuda_home_new.html http://computershopper.com/feature/200704_the_right_gpu_for_you http://www.cs.virginia.edu/~gfx/papers/pdfs/59_HowThingsWork.pdf http://en.wikipedia.org/wiki/Larrabee_(GPU)#cite_note-siggraph-9 http://www.nvidia.com/geforce “Larrabee: A Many-Core x86 Architecture for Visual Computing”, Kruger and Westermann, International Conf. on Computer Graphics and Interactive Techniques, 2005 “ An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness”Sunpyo Hong,Hyesoon Kim