Gpu

18
GPU - Graphics Processing Unit Corso di Sistemi Paralleli Luigi La Torre - 744581 13 Giugno 2012

description

GPU

Transcript of Gpu

Page 1: Gpu

GPU - Graphics Processing UnitCorso di Sistemi Paralleli

Luigi La Torre - 74458113 Giugno 2012

Page 2: Gpu

Outline

Introduzione Evoluzione nel tempo Hardware GPU

Fermi Kepler

Conclusioni

Page 3: Gpu

Introduzione - 1

Progettata per scaricare e accelerare il rendering 2D/3D dalla CPU

Architettura core SIMD Core operano a frequenze basse Centinaia di core Unità programmabile

I principali vendor NVDIA AMD

Page 4: Gpu

Introduzione - 2

CPU vs GPU

Page 5: Gpu

Introduzione - 3

Motivazioni

Page 6: Gpu

Evoluzione nel tempo - 1

1980: Chip TTL IBM: Intel 8088 Silicon Graphics Inc. (SGI)

1990: 0 Generazione II Generazione

RealityEngine (SGI) Voodoo (3dfx) GeForce256 (NVIDIA), Radeon 7500 (ATI): nasce

il termine GPU (1999). “Fixed Function” pipeline

Page 7: Gpu

Evoluzione nel tempo - 2

2000: III Generazione VII Generazione

GeForce 3 - Pipeline semi programmabili: Shaders GeForce FX, Radeon 9700 - Pipeline

programmabili completamente GeForce 8 - Processore altamente parallelo.

Streaming Multiprocessor Architettura Fermi (NVIDIA): Prima GPU

progettata per GPGPU 2010 e oltre:

Architettura Kepler APU (Accelerated Processig Unit): CPU + GPU

Page 8: Gpu

Hardware GPU

N multiprocessori con M core ciascuno

SIMD - Ogni core condivide un Istruction Unit con altri core in un multiprocessore

Page 9: Gpu

Hardware GPU - Memorie (Modello Cuda) - 1

Global Memory Memoria più grande. Fino a

4 GB Alto bandwidth (GB/s) Latenza molta alta

Local Memory Poco spazio di memoria Accessibile solo da un

streaming processor Lenta come Global Memory

Shared Memory 16 KB condivisi da un

multiprocessor Memoria veloce Può essere considerata

come una cache L1

Page 10: Gpu

Hardware GPU - Memorie (Modello Cuda) - 2

Constant Memory 64 KB solo lettura per

tutti i blocchi Abbastanza lenta Latenza piuttosto alta,

se dati non in cache Texture Memory

Solo lettura per ogni blocco

Lenta come Global Memory

Utilizzata per l’interpolazione lineare delle immagini

Page 11: Gpu

Architettura Fermi - 1

512 CUDA core

4 GPC (Graphic Processing Cluster)

16 SM 768 KB L2

Cache 4 Raster

Engine 1581 GFLOPs 244 W

Page 12: Gpu

Architettura Fermi - 2

32 CUDA core Operazioni di Shading e

geometria, oltre ai calcoli puramente computazionali e fisici

16 KB L1 Cache 4 SFU (Special Function

Units) Gestiscono le istruzioni di

interpolazione 2 Warp Scheduler PolyMorph Engine

Gestisce l’output, tessellation

Page 13: Gpu

Tessellation - Esempio

Page 14: Gpu

Architettura Kepler

1536 CUDA core 4 GPC 8 SMX 512 KB L2 Cache 4 Raster Engine 3090 GFLOPs 195 Watt

Page 15: Gpu

Architettura Kepler - SMX

192 CUDA core 64KB L1 Cache 32 SFU PolyMorph Engine 2.0 4 Warp Scheduler

Page 16: Gpu

Fermi vs Kepler

Miglioramento Performance/Watt

Fermi Kepler

# Transistor 3 miliardi 3,54 miliardi

CUDA core 512 1536

Core clock 772 Mhz 1006 Mhz

GFLOPs 1581 3090

TDP 244 W 195 W

Page 17: Gpu

Conclusioni

GPU è passato da specifici single core, pipeline “Fixed Function” esclusivamente per la grafica a un set di core paralleli e altamente programmabili

Core GPU in continuo aumento