Clase 16

Anuncio
■ 
Se pueden considerar cuatro generaciones de
tarjetas gráficas:
●  1ª generación (antes de 1987) realizaba imágenes
del tipo wireframe. Operaciones de Vértices
consistían en transformaciones, proyecciones y
clipping. En cuanto a los fragmentos, estos eran
sobre escritos.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
●  2ª generación (entre 1987 y 1992) realizaba imágenes con
sólidos sombreados. Las operaciones de vértices se
aumentaron para considerar el cálculo de la iluminación. El
proceso de rastering consideraba la profundidad
(interpolación en profundidad) y los fragmentos
consideraban el buffer de profundidad y la mezcla de
colores.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
●  3ª generación (entre 1992 y 2000) realizaba imágenes
considerando la adición de texturas. Las operaciones de
vértices se aumentaron para considerar el cálculo de las
texturas. El proceso de rastering consideraba el mapeo de
texturas y los fragmentos consideraban la evaluación de
texturas y antialiasing.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
●  4ª generación (desde 2000) incorpora la posibilidad de
programar la tarjeta en la región de vértices y de
fragmentos. Implementa la línea de ensamblado gráfica.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
Históricamente el hardware gráfico ha servido
como
●  Un framebuffer simple.
●  Calculadora de transformaciones de vértices y de
color de píxeles.
En la actualidad ya queda poco hardware no
programable.
■  Un GPU moderno implementa una línea de
renderizado 3D o pipeline 3D.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Iluminación
Transformaciones
de Vista
Transformaciones
de Proyecciones
Esta es la secuencia de
operaciones para generar la
imagen 2D de una primitiva
3D
Restricciones
(Clipping)
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo
Iluminación
Transformaciones
de Vista
Transformaciones
de Proyecciones
Restricciones
(Clipping)
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Iluminación
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo.
Iluminar con respecto a los modelos de
iluminación y reflexión.
Transformaciones
de Vista
Transformaciones
de Proyecciones
Restricciones
(Clipping)
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo.
Iluminación
Iluminar con respecto a los modelos de
iluminación y reflexión.
Transformaciones
de Vista
Transformar al sistema de coordenadas
3D de la cámara
Transformaciones
de Proyecciones
Restricciones
(Clipping)
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo.
Iluminación
Iluminar con respecto a los modelos de
iluminación y reflexión.
Transformaciones
de Vista
Transformar al sistema de coordenadas
3D de la cámara
Transformaciones
de Proyecciones
Transformar al sistema de coordenadas
2D de la pantalla
Restricciones
(Clipping)
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo.
Iluminación
Iluminar con respecto a los modelos de
iluminación y reflexión.
Transformaciones
de Vista
Transformar al sistema de coordenadas
3D de la cámara
Transformaciones
de Proyecciones
Transformar al sistema de coordenadas
2D de la pantalla
Restricciones
(Clipping)
Recortar las primitivas que se encuentran
fuera de la visión de la cámara
Conversión de
Barrido
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Primitivas Geométricas 3D
Transformaciones
del Modelo
Las primitivas geométricas 3D se transforman al
sistema de coordenadas 3D del mundo.
Iluminación
Iluminar con respecto a los modelos de
iluminación y reflexión.
Transformaciones
de Vista
Transformar al sistema de coordenadas
3D de la cámara
Transformaciones
de Proyecciones
Transformar al sistema de coordenadas
2D de la pantalla
Restricciones
(Clipping)
Recortar las primitivas que se encuentran
fuera de la visión de la cámara
Conversión de
Barrido
Dibujar los píxeles necesarios
Imagen
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Estados Gráficos
Procesador
Vertex
de
Vértices
Processor
Aplicación
Vértices
(3D)
CPU
Ensamblado
& Rasterización
Iluminación
Vértices
(2D)
Fragmentos
(pre-píxels)
GPU
■ 
■ 
Pixel
Procesador
Processor
de Píxeles
Memoria de
Video
(Texturas)
Píxeles
Finales
(Color, Profundidad)
Render-a-textura
Procesador Programable de Vértices
Procesador Programable de Fragmentos (Píxeles)
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
q  Ensamblador
q  Cg, HLSL, GLSL
Édgar Garduño Ángeles!
Aplicación
Aplicación
Comandos
Comandos
Geometría
Geometría
Rastering
Rastering
Textura
Textura
Fragmentos
Fragmentos
Despliegue
Despliegue
C. Computación, I.I.M.A.S!
■ 
■ 
■ 
■ 
NVidia Fundada en 1993.
1997: RIVA.
1998: RIVA TNT.
1999: GeForce 256 (NV10).
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Iluminación y transformaciones.
■  Double Data Rate (DDR) y Synchronous Data
Rate (SDR).
■  Compatible con HDTV.
■  Alpha-blending en hardware.
■  4 pipelines de píxeles a 120 MHz.
■  Tasa de rellenado: 480 Megapíxeles/segundo.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
GeForce 2 GTS:
● 
● 
● 
● 
● 
■ 
Duplico la tasa de rellenado de píxeles.
Cuadriplico la tasa de rellenado de texturas.
Incremento la velocidad del reloj.
Texturas múltiples.
S3TC, MPEG-2, FSAA
GeForce 2 MX
●  Disminuyó en dos la pipeline de píxeles, lo que la hizo efectiva
con respecto a costos.
●  Twinview.
●  Compatibilidad con Apple Macs.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Sin Anti-Aliasing
Édgar Garduño Ángeles!
Con Anti-Aliasing
C. Computación, I.I.M.A.S!
■ 
■ 
■ 
■ 
Agosto 2000: GeForce2 Ultra.
Noviembre 2000: GeForce2 Go.
Diciembre 2000: NVIDIA adquiere
3DFX.
Enero 2001: Apple selecciona GeForce2
MX como la solución de gráficos de alta
gama para la Power Mac G4.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
GeForce3
■ 
● 
● 
● 
● 
● 
● 
● 
Núcleo a 240 MHz.
Núcleo a 500 MHz.
57 millones de transistores.
46-76 Gigaflops.
Tecnología de Vertex shader.
Tecnología de Pixel shader.
Arquitectura de Memoria LightSpeed.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
GeForce4 Ti (NV25) y MX (NV17). La tarjeta Ti
poseía las siguientes características:
●  Versiones 4200, 4400, 4600 y 4800.
●  63 millones de transistores.
●  El chip con un reloj a 225-300 MHz.
●  La memoria con un reloj a 500-650 MHz.
●  75-100 millones de vértices/segundo.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Geforce FX (NV30)
■ 
● 
● 
● 
● 
● 
● 
16 variaciones para diferentes rangos de
precios.
125 millones de transistores.
8 píxeles/clock.
16 texturas/unidad.
Interfaz de memoria de 128 bits.
Capacidad para 128 MB/256 MB de memoria.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
GeForce 6 series (NV40 )
● 
● 
● 
● 
● 
● 
● 
● 
● 
Versiones: 6200.
6600 GT y Ultra.
6800 GT, Ultra, y Ultra Extreme.
Velocidad del reloj para el núcleo a 450 MHz.
Reloj de la memoria a 600 MHz.
6 4-wide fp32 vector MADDs/ clock cycle vertex shader units.
16 4-wide fp32 vector MADDs/ clock cycle pixel shader units.
Arquitectura super scalar que permite 16 líneas de trabajo (pipes).
Motor CineFX3.0.
Todas las operaciones se llevan a cabo por componente en precisión
FP32.
200 Gigaflops (La tarjeta Itanium lo hacia a 6.4 Gigaflops)
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
■ 
Paralelismo Masivo.
Escalabilidad.
● 
■ 
Poder de cómputo
● 
● 
■ 
Tarjetas de costos menores poseían menos líneas
de producción (pipes) y menos unidades de
vertex shader.
222 millones de transistores.
Primera en tener compatibilidad 100% con las
especificaciones de DirectX 9 de Microsoft.
Dynamic Branching en píxel shaders.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Ayuda a detectar si un píxel necesita
sombreado.
■  El flujo de instrucciones se maneja en grupos
de píxeles.
■  Especifica granularidad por rama (el número
de píxeles consecutivos que toman la misma
rama).
■  Mejor distribución de los bloques de píxeles
entre los diferentes motores de cuadriláteros.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
7800 GT
■ 
$449.
■ 
7 unidades para
vértices.
■ 
20 pipelines para
píxeles.
■ 
Velocidad del reloj a
400 MHz.
■ 
Velocidad del reloj
de memoria a 500
MHz.
Édgar Garduño Ángeles!
■ 
■ 
■ 
■ 
■ 
7800 GTX
$600.
8 unidades para
vértices.
24 pipelines para
píxeles.
Velocidad del reloj a
430 MHz.
Velocidad del reloj
de memoria a 600
MHz
C. Computación, I.I.M.A.S!
302 millones de transistores.
■  200 Gigaflops de operaciones de
multiplicación/suma por segundo.
■  Precisión de punto flotante de 128-bit a lo
largo de toda la línea de producción (pipeline).
■  Tasa de Rellenado: 10.3 Gigatexels.
■  860 millones de vértices/s.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
La G70 utiliza 24 unidades ALU y la NV40
16.
■  Ambas usan el mismo tamaño de registro de
archivo.
■  Ambas utilizan los mismos muestreadores
(samplers) de textura pero cuando se cargan
texturas grandes en preparación para filtrar, los
muestreadores de la G70 tienen menos latencia
cuando cargan esas texturas de la memoria.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Framebuffer.
■  Texturas.
■  Procesador de Fragmentos.
■  Procesador de Vértices.
■  Interpoladores.
■  GeForce 7800 (G70) soporta 128 bits a lo
largo de toda la línea de producción.
■ 
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
El procesador de fragmentos también soporta:
●  Medios puntos flotantes de 16-bits.
●  Punto fijo de 12-bits.
●  Estos pueden ofrecer mas velocidad que los de 32-bits en
algunos productos.
■ 
Framebuffer/texturas también soporta:
●  Gran variedad de formatos de punto fijo (por ejemplo, el
formato clásico de 8-bits por componente).
●  Estos formatos usan menos ancho de banda en memoria
que FP32.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Los GPUs son procesadores de flujo (stream)
que poseen varias unidades programables de
procesamiento que se conectan por medio de
flujos de datos.
Framebuffer
Fragment
Processor
Framebuffer
Operations
Vertex
Processor
Assembly &
Rasterization
Application
Textures
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
■ 
■ 
Tienen acceso a memoria mucho más restringido.
Solo asigna/libera memoria antes de los cálculos.
Acceso limitado a memoria durante los cálculos
(kernel):
●  En Registros en las operaciones de lectura/escritura.
●  No existe acceso a memoria local.
●  En memoria global solo se puede leer y solo se puede
escribir al final (dirección pre-calculada).
●  No existe acceso a disco.
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
Los GPUs almacenan datos en
●  Buffer de vértices
●  Framebuffer.
VS 3.0 GPUs
●  Texturas.
Buffer de
Vértices
Édgar Garduño Ángeles!
Texturas
Procesador
de Vértices
Rasterizer
Procesador
de Fragmentos
Framebuffer(s)
C. Computación, I.I.M.A.S!
■ 
GPUs son veloces:
●  Itanium: 6.4 Gflops.
●  GeForceFX 7800: 200 Gflops.
●  GPUs incrementan su velocidad cada vez más
rápido.
●  CPUs: crecimiento anual alrededor de 1.5 veces
(alrededor de 60 veces por década).
●  GPUs: crecimiento anual mayor a 2 veces (un
crecimiento mayor a 1,000 veces por década).
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
■ 
■ 
■ 
Édgar Garduño Ángeles!
La versión móvil de la tarjeta
7800 GTX.
Implementa todo lo que se se
tenia en la versión de escritorio.
Puede seleccionar entre x1 y x16
carriles de PCI Express.
Utiliza PowerMizer 6.0, lo cual le
permite a este chip operar en la
misma carcaza que el chip 6800.
C. Computación, I.I.M.A.S!
Año
Producto
Tasa
Triang
Tasa Tex
1998
Riva ZX
3m
100m
1999
Riva TNT2
9m
350m
2000
GeForce2 GTS
25m
664m
2001
GeForce3
30m
800m
2002
GeForce Ti 4600
60m
1200m
2003
GeForce FX
167m
2000m
2004
GeForce 6800 Ultra
170m
6800m
2005
GeForce 7800 GTX
215m
6800m
2006
GeForce 7900 GTX
260m
15600m
2007
GeForce 8800 Ultra
306m
39200m
Año
Producto
1984 Iris 2000
1988 GTX
1992
RealityEngine
1996
InfiniteReality
Tasa
ZTri
Tasa
Zbuf
1k
100k
135k
40m
2m
380m
12m
1000m
SGI
NVidia
Crecimiento Anual Superior a 1.5 (Ley de Moore)
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Computer Architecture: A Quantitative Approach
John L. Hennessy, David A. Patterson
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
GPU
GPU
CPU
Édgar Garduño Ángeles!
Courtesy Naga Govindaraju
C. Computación, I.I.M.A.S!
Stream processors
128
Peak floating-point performance
400+ GFLOPS
Memory
768 MB
Memory bandwidth
103.7 GB/sec
Triangle rate (vertex rate)
306 million/sec (est)
Texture fill rate (fragment rate)
39.2 billion/sec
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
CUDA cores
3072
Base Clock
915 MHz
Boost Clock
1,019 MHz
Stream processors
128
Peak floating-point performance
400+ GFLOPS
Memory
4,096 MB (2,048 MB per GPU) GDDR5
Memory Speed
6.0 Gbps
Memory bandwidth
384 GB/sec
Triangle rate (vertex rate)
306 million/sec (est)
Texture fill rate (fragment rate)
234 billion/sec
OpenGL®
4.2
Multiple Displays
4
Maximum Digital Resolution
2560 × 1600
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Linear Interpretation
of vertex lighting
values
vertex shaders can be used
to move/animate verts
Vertex Shaders are both Flexible and Quick
Édgar Garduño Ángeles!
Slide from NVidia
C. Computación, I.I.M.A.S!
Each pixel is calculated
individually
Pixel shaders have limited or no knowledge of neighbouring pixels
Édgar Garduño Ángeles!
Slide from NVidia
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
Édgar Garduño Ángeles!
C. Computación, I.I.M.A.S!
■ 
El Alto Rendimiento
se logra a través de
●  Especialización
●  Sin dependencia de
datos
●  Eficiente pre-fetching
●  Poco cache
Édgar Garduño Ángeles!
Paralelismo de Tareas
●  Paralelismo
Paralelismo de Datos
Geometría
Geometría
Rastering
Rastering
Textura
…
Textura
Fragmentos
Fragmentos
Despliegue
Despliegue
C. Computación, I.I.M.A.S!
Procesadores de
ensamblado de función fija
Procesador
paralelo
programable por
la aplicación
Application
Application
Data Assembler
this was missing
Setup / Rstr / ZCull
Vtx Thread Issue
Prim Thread Issue
Frag Thread Issue
Vertex assembly
SP
SP
TF
SP
SP
TF
L1
SP
TF
L1
SP
SP
SP
SP
TF
L1
L1
L2
FB
SP
TF
TF
L1
L2
FB
SP
SP
TF
L2
FB
SP
SP
TF
L1
FB
Primitive assembly
Primitive operations
Rasterization
(fragment assembly)
L2
NVIDIA GeForce 8800
Édgar Garduño Ángeles!
SP
Operaciones sobre el
L1
L1
framebuffer de
función fija
L2
FB
SP
Thread Processor
Vertex operations
L2
FB
Fragment operations
Framebuffer
OpenGL Pipeline
C. Computación, I.I.M.A.S!
6 vertex units
One big parallel
rasterizer
16 texture units
mipmap
filtering
Tex
Tex
Tex
Tex
Tex
Tex
V
V
V
V
V
V
rasterizer
F F F F F F F F F F F F F F F F
16 fragment units
cross-bar
16 raster operation units
z buffer, framebuffer
Screen-locked
Édgar Garduño Ángeles!
r r r r r r r r r r r r r r r r
o o o o o o o o o o o o o o o o
p p p p p p p p p p p p p p p p
C. Computación, I.I.M.A.S!
Total:
250 operations per vertex
150operations per fragment
520Mhz
160-220
Mtransistors
Peak pixel fill:
8.3GPixel/sec
Peak texture:
8.3GTexel/sec
-> 120GFlops
+ 41.6 GFlops in
Fragment shader
Memory: 256 bit,
1.2GHz ->36GB/s
V
7 interpolants
150 ops/vertex
25 ops/fragment
V
V
V
V
rasterizer
prefetching
Tex
Tex
Tex
Tex
Tex
Tex
F F F F F F F F F F F F F F F F
Trilinear:
100 op/frag/tex
1/per pipe clock
Blending, z-buffer
25 op/frag
Édgar Garduño Ángeles!
V
cross-bar
r r r r r r r r r r r r r r r r
o o o o o o o o o o o o o o o o
p p p p p p p p p p p p p p p p
C. Computación, I.I.M.A.S!
Video Memory
AGP
transfer
limited
System
Memory
Geometry
On-Chip Cache Memory
Vertex
Shading
(T&L)
pre-TnL
cache
Commands
post-TnL cache
CPU
Triangle Setup
setup
limited
Rasterization
raster
limited
texture b/
w
limited
CPU
limited
Textures
texture
cache
Frame Buffer
frame buffer b/w limited
Édgar Garduño Ángeles!
vertex
transform
limited
MIT EECS 6.837, Cutler and
Durand
Fragment
Shading
and
Raster
Operations
fragment
shader
limited
54
C. Computación, I.I.M.A.S!
Descargar