■ 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!