corso di informatica grafica a.a. 2010-2011 dicgim – university of palermo dipartimento di...

18
Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura delle GPU e Pipeline di Rendering Prof. Roberto Pirrone 22 marzo 2011

Upload: fiorenza-cozzolino

Post on 02-May-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica

Architettura delle GPU e

Pipeline di Rendering

Prof. Roberto Pirrone

22 marzo 2011

Page 2: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Sommario

Pipeline di rendering

Cenni storici sui controllori grafici

Implementazione della pipeline di rendering

Pipeline logica programmabile

Pipeline mappata sul processore

Architetture dei sistemi GPU

Cenni alla programmazione delle GPU

22 marzo 2011

Page 3: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Pipeline di rendering22 marzo 2011

Page 4: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Cenni storici sui controllori grafici

Video and Graphics Array controller - VGA

(<1990)Controllore di una memoria DRAM chiamata framebuffer e generatore di segnali (RAMDAC) collegato direttamente al video

Basato sul principio della grafica vettoriale

Implementa l’aritmetica intera indicizzata

1990 – 1997 circaSi aggiungono funzioni al controllore VGA• Gestione triangoli• Rasterizzazione triangoli• Shading

22 marzo 2011

Page 5: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Cenni storici sui controllori grafici22 marzo 2011

Page 6: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Cenni storici sui controllori grafici

Anni 2000Chip integrato che incorpora praticamente tutti gli elementi di una pipeline di rendering

Nasce la Graphics Processing Unit (GPU)

> 2005GPU con implementazione dell’aritmetica in virgola fissa e mobile

GPU programmabili • API di alto livello (OpenGL, Direct3D)• shaders delle geometrie, dei vertici e dei pixel

22 marzo 2011

Page 7: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Cenni storici sui controllori grafici22 marzo 2011

Variante: Architettura UMA (Unified Memory Architecture)CPU e GPU condividono la stessa DDR2 RAM

Page 8: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Architettura GPU Unificata di base

Adesso (>2008 circa)Da luogo a differenti implementazioni tutte compatibili “verso l’alto”

I processori sono massicciamente paralleli e multithread• Streaming Processors (SP) a flusso continuo• Gli SP sono organizzati in Streaming

Multiprocessors (SM)• La memoria è condivisa due livelli

– Dentro lo SM tra gli SP– Tramite rete di interconnessione tra gli SM

• Soluzione scalabile

22 marzo 2011

Page 9: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Pipeline mappata su schiera di processori22 marzo 2011

Adesso (>2008 circa)

L’esecuzione degli shaders viene mappata sulla “schiera di processori unificati”

Page 10: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Architettura di una GPU unificata22 marzo 2011

NVIDIA GeForce 8800

Arch. TESLA

112 SP14 SM1 SP 96 threadDRAM 64 bit

Page 11: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Programmazione Grafica

Tre livelliAPI grafiche• OpenGL• Direct3D

Linguaggi di shading• GLSL• HLSL• Cg

API di programmazione diretta dei core SP• CUDA• OpenCL

22 marzo 2011

Page 12: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

API grafiche

Sono API di alto livello che definiscono logicamente la pipeline di rendering

L’applicazione si sviluppa definendo i vari stadi con primitive di alto livello

I dettagli sono nascosti allo sviluppatore e gestiti dalle API

22 marzo 2011

Page 13: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Linguaggi di shading

Gestiscono i tre tipi di shaderShader dei vertici• Mappano la posizione dei vertici dei triangoli nello

schermo, modificando posizione, colore e orientamento

Shader delle geometrie• Lavorano sulla base di primitive geometriche (ad

es. interi triangoli) definite come insiemi di vertici; le modificano ovvero ne aggiungono di nuove

Shader dei pixel (o dei frammenti)• Dipingono il pixel sullo schermo e gestiscono gli

artefatti visivi

22 marzo 2011

Page 14: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Linguaggi di shading

Gli shader sono programmati a “a flusso continuo” cioè su sequenze ininterrotte di dati; l’I/O è implicito

Le strutture di dati su cui operano consentono un elevato parallelismo e quindi possono essere lanciati più thread dello stesso shader

Hanno primitive per operazioni trigonometriche e su matrice, interpolazione, filtraggio …

22 marzo 2011

Page 15: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Linguaggi di shading22 marzo 2011

Shader Cg per environment mapping

Page 16: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Programmazione dei core SP

Sono API per programmazione general purpose su GPU

GPGPU: General Purpose computing on GPU

Il problema viene parallelizzato mappandolo sull’architettura

Il programmatore CUDA scrive una procedura detta kernel che istanzia tante esecuzioni di thread paralleli

22 marzo 2011

Page 17: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Programmazione CUDA

I thread sono organizzati gerarchicamente in blocchi 1D, 2D o 3D i quali sono organizzati in griglie 1D, 2D o 3D

Il mapping dipende dai core SP disponibili ed è scelto dal programmatore

22 marzo 2011

Page 18: Corso di Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Architettura

Corso di Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Programmazione CUDA22 marzo 2011

Calcola n valori in parallelo con n thread organizzatiin blocchi da 256 thread ciascuno