1
Computer Graphics
Marco Tarini
Lezione 2: hardware ergo triangoli
Università dell’Insubria
Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2011/12
1
Hardware specializzato per il rendering
• "GPU GPU GPU": GPU
– Graphics Processing Unit – La CPU della scheda video – Instruction Set specializzato!
• Architettura a pipeline pipeline pipeline pipeline
– a "catena di montaggio"
• Modello di computazione SIMD SIMD SIMD SIMD
– sfrutta l'alto grado di parallelismo insito nel problema
• Possiede la propria propria propria propria memoria RAM a bordo – "RAM CPU" vs "RAM GPU"
– grandi copie di memoria da una all'altra dispendiose
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Visione di insieme:
2
Hardware specializzato per il rendering
• principali produttori:
– NVidia e ATI
(e Intel, AMD - schede integrate)
– supercomp: SUN
• potenza di calcolo – migliaia di GFlops!
• bus molto performante – e.g. PCI-express: ~
16 GB/sM a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Visione di insieme:
3
Hardware dedicato alla grafica : storia – ~25 anni:
• dalla metà degli '80 (e.g.: SGI Iris - 1986)
– dalla metà dei '90, la fiaccola passa dai mainframes ai PC
– progressi enormi
• nella efficienza
– più di "Moore’s Law": ~2.4x ~2.4x ~2.4x ~2.4x / year / year / year / year invece di ~1.6 / year ~1.6 / year ~1.6 / year ~1.6 / year
• nella funzionalità
– aumentano i task che è possibile demandare all'HW spec.
– filosofia di fondo rimasta la stessa
• paradigma di rendering:
basato principalmente su rasterizzazione di triangoli
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 4
Hardware dedicato alla grafica : storia
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
(ed ecco il perchè del GP GPU General Purpose Computation on GPU )
5• aumento potenza: Giga FLOPs CPU CPU CPU CPU
• Transistors:
<20% ALU
>80% control
più flessibilità
GPU GPU GPU GPU
• Transistors
~90% ALU
~10% control
più potenza!
CPU vs GPU
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a CONTROL ALU ALU
ALU ALU
CHACHE
1.4 G transistors 1 TeraFLOP
2
Hardware dedicato alla grafica : storia
• aumento potenza
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Virtua Virtua Fighter Fighter
(SEGA) (SEGA) 50K triangles/sec 50K triangles/sec
Dead or Alive 3 Dead or Alive 3 ((Tecmo Tecmo Corp., Xbox) Corp., Xbox) 100M triangles/sec 100M triangles/sec
Dawn Dawn (NVIDIA) (NVIDIA) 250M
250M triangles/sec triangles/sec
1995 1995
1995 1995 2001 2001 2001 2001 2008 2008 2008 2008
7
Hardware dedicato alla grafica : storia
• HW supported…
transform and lighting
• HW supported…
polygon fill
• HW supported…
attribute interpolation
• HW supported…
texture mapping
• HW supported…
per-pixel shading
• HW supported…
alpha blending
• HW supported…
fog computation
• HW supported…
Z-buffers
• HW supported…
bump-mapping
• HW supported…
environment mapping (“Cube-maps”)
• HW supported…
stencil buffers (per pixel masks)
• HW supported…
color transform matrices
• HW supported…
multiple texture accesses
• HW supported…
texture filtering (MIP-maps)
• HW supported…
on-the-fly retesselation
• HW supported…
dependent texturing
• …
• Programmable HW Programmable HW Programmable HW Programmable HW
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
• aumento capabilities
8
Hardware specializzato per il rendering
• Vantaggio: efficienza efficienza efficienza efficienza
• instruction set specializzato
– (computazioni più comuni sono hard-wired)
• computazioni in parallelo:
1. fra CPU e GPU
» rendering demandato alla scheda grafica
» resto dell'applicazione libera di utilizzare la CPU e RAM base
2. a volte: fra GPU distinte (es. più schede sullo stesso BUS) 3. fra le fasi del pipeline (vanno tutte in parallelo) 4. dentro ogni fase del pipeline (più sottoprocess. per fase) 5. instruction level: operazioni operano su vettori di 4 operandi
• Svantaggio: rigidità rigidità rigidità rigidità
• scelta quasi obbligata dell'approccio al rendering utilizzato
• ... quali approcci al rendering?
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 20