Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Architettura delle GPU e
22 marzo 2011 Architettura delle GPU e Pipeline di Rendering Prof. Roberto Pirrone
2
Sommario Pipeline di rendering Cenni storici sui controllori grafici
22 marzo 2011 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
3
Pipeline di rendering 22 marzo 2011
4
Cenni storici sui controllori grafici
22 marzo 2011 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 circa Si aggiungono funzioni al controllore VGA Gestione triangoli Rasterizzazione triangoli Shading
5
Cenni storici sui controllori grafici
22 marzo 2011
6
Cenni storici sui controllori grafici
22 marzo 2011 Anni 2000 Chip integrato che incorpora praticamente tutti gli elementi di una pipeline di rendering Nasce la Graphics Processing Unit (GPU) > 2005 GPU 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
7
Cenni storici sui controllori grafici
22 marzo 2011 Variante: Architettura UMA (Unified Memory Architecture) CPU e GPU condividono la stessa DDR2 RAM
8
Architettura GPU Unificata di base
22 marzo 2011 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
9
Pipeline mappata su schiera di processori
22 marzo 2011 Adesso (>2008 circa) L’esecuzione degli shaders viene mappata sulla “schiera di processori unificati”
10
Architettura di una GPU unificata
22 marzo 2011 Arch. TESLA 112 SP 14 SM 1 SP 96 thread DRAM 64 bit NVIDIA GeForce 8800
11
Programmazione Grafica
22 marzo 2011 Tre livelli API grafiche OpenGL Direct3D Linguaggi di shading GLSL HLSL Cg API di programmazione diretta dei core SP CUDA OpenCL
12
API grafiche 22 marzo 2011 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
13
Linguaggi di shading Gestiscono i tre tipi di shader
22 marzo 2011 Gestiscono i tre tipi di shader Shader 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
14
Linguaggi di shading 22 marzo 2011 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 …
15
Shader Cg per environment mapping
Linguaggi di shading 22 marzo 2011 Shader Cg per environment mapping
16
Programmazione dei core SP
22 marzo 2011 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
17
Programmazione CUDA 22 marzo 2011 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
18
Programmazione CUDA Calcola n valori in parallelo
22 marzo 2011 Calcola n valori in parallelo con n thread organizzati in blocchi da 256 thread ciascuno
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.