GPU - Graphics Processing Unit Corso di Sistemi Paralleli Luigi La Torre Giugno 2012
Outline Introduzione Evoluzione nel tempo Hardware GPU Fermi Kepler Conclusioni
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
Introduzione - 2 CPU vs GPU
Introduzione - 3 Motivazioni
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
Evoluzione nel tempo - 2 2000: III Generazione VII Generazione GeForce 3 - Pipeline semi programmabili: Shaders GeForce FX, Radeon 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
Hardware GPU N multiprocessori con M core ciascuno SIMD - Ogni core condivide un Istruction Unit con altri core in un multiprocessore
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
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
Architettura Fermi - 1 512 CUDA core 4 GPC (Graphic Processing Cluster) 16 SM 768 KB L2 Cache 4 Raster Engine 1581 GFLOPs 244 W
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
Tessellation - Esempio
Architettura Kepler 1536 CUDA core 4 GPC 8 SMX 512 KB L2 Cache 4 Raster Engine 3090 GFLOPs 195 Watt
Architettura Kepler - SMX 192 CUDA core 64KB L1 Cache 32 SFU PolyMorph Engine 2.0 4 Warp Scheduler
Fermi vs Kepler Miglioramento Performance/Watt FermiKepler # Transistor3 miliardi3,54 miliardi CUDA core Core clock772 Mhz1006 Mhz GFLOPs TDP244 W195 W
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
References GPU History Paper GPU History Paper Hardware GPU Hardware GPU Architettura Fermi Architettura Fermi Architettura Kepler Architettura Kepler