Aceleradores gráficos. Su impacto en el bus del sistema.

Anuncio
Aceleradores gráficos. Su impacto en el bus del sistema.
Conceptos básicos
Controladora de video tradicional en modo gráfico
Buffer de video en placas ISA se ubica en el rango de posiciones de memoria comprendido entre 0xA0000 y 0xBFFFF, su tamaño máximo es 128 KB.
Aceleradores gráficos
Los aceleradores gráficos son la evolución de las tarjetas gráficas, se trata de hardware que incorpora microchips a medida (o ASIC) el cual posee la capacidad de realizar operaciones matemáticas especiales generalmente utilizadas en el procesamiento de imágenes. Lo que antes se hacía por software ahora se hace por software con ayuda de hardware dedicado. Y cada vez más ayuda. Podríamos hablar de un micro­código para las placas aceleradoras.
La evolución de los aceleradores gráficos es tal que su capacidad de procesamiento incluso supera a la capacidad del propio procesador central del sistema. Aceleración 2D
Llenado de figuras
Trazado de líneas
Transparencia (canal alfa)
Sprites
Texturas
Fuentes de texto
Mover y rotar imágenes
Glosario 3D
Mapas de textura: Mapas de bits que se pueden transformar para dotar a la imagen de realismo.
Manejo de la Iluminación (Lighting): Cálculo del color del elemento a partir de la luz disponible en la escena elemento por elemento.
Buffer de profundidad: Almacena las coordenadas de los vertices y su relación con el observador.
Coordenadas proyectivas: Representación de elementos tridimensionales en cuatro coordenadas para evitar el uso de divisiones.
GPU: Graphics processing unit.
Rendering: Proceso de aplicación de un relieve a un cuerpo de tres dimensiones, considerando la textura, la iluminación, la posición del observador.
Pipeline input: La mayoría de los sistemas asume que todo se puede construir a partir de elementos básicos (triángulos). Procesándolos por medio de transformaciones simples como: Rotación, traslación, escala. Son varios procesos en paralelo.
Camera simulation: Llevar los elementos de la escena (3D) al plano de la pantalla
Rasterization: Ubicar el elemento en la pantalla, asociarlo a un pixel.
Texture mapping: Técnica para agregar realismo a la imagen, imágenes que ajustan el color de cada pixel.
Evolución
Las GPU’s han evolucionado desde implementaciones de hardware específico a hardware programable.
Las funciones fijas que hacían transformaciones de modelos en vértices (vertex) y/o texturado de pixels han sido reemplazadas por arreglos de procesadores, denominados shaders, en forma optimizada.
Los programadores utilizan estos shaders para realizar multiplicación de matrices, exponenciación, cálculos de raíz cuadrada, transformaciones y cálculos de iluminación.
Los shaders son programados en lenguajes como por ejemplo: Assembler, Cg, GLSL, HLSL.
Procesamiento 3D: Modelado de escenas
Consiste en representar todos los objetos mediante conjuntos de triángulos, formados por “vértices” (vertex)
Uso de algoritmos matemáticos
Se comienza agregando triángulos hasta representar superficies muy complejas.
Traslación
Rotación
Multiplicación
Cálculo de la Iluminación y punto del observador
Y continúa con Rasterización (determinación de superposiciones de píxeles de diferentes polígonos en la imagen), luego Texturado (aplicar texturas mediante mapas de bits) y el Calculo de superficies ocultas.
Originalmente llevado a cabo mediante un pipeline de Hardware que implementaba en forma secuencial todos estos procesos tomando como entrada un “stream” o “flujo continuo” de vertex
Nuevo enfoque, Multiprocesamiento
Se utiliza una “grilla” de Unidades de Procesamiento multipropósito (UPs) agrupados en “clusters”
Cualquiera de ellos puede implementar cualquiera de las antes mencionadas “etapas” del “pipeline” gráfico
Cada uno de ellos cuenta con memoria cache propia, unidades de punto flotante y de Captura de Texturas (Texture Fetch)
GeForce 9800 GX2: Acelerador gráfico ejemplo
256 Stream Processors
Core Clock: 600 Mhz
Shader Clock: 1500 Mhz
Memory Clock: 1000 Mhz
Memory Amount: 1GB
Memory Interface: 512 bits
Memory Bandwidth: 128 GB/sec
Texture Fill Rate: 76,8 billion/sec
Conclusión: Necesidad de ancho de banda con la memoria y storage.
Presentado el GPU nos queda una pregunta, cómo impacta la alta capacidad de procesamiento de los aceleradores gráficos en la arquitectura de la PC. Analicemos el impacto en el sistema.
El impacto del acelerador gráfico en el bus PCI

Peripheral Component Interconnect

Paralelo

Arbitraje por interrupción

Load­Store Architecture (via PCI Configuration Space) 

Memory, I/O, Config
PCI Power Management 
Parity and ECC
Evolución del bus PCI

Inicialmente propuesto por Intel, PCI v1.0 en 1991

Special Interest Group (PCI­SIG) presenta PCI 2.0 en 1993



32 bits Throughput @ 33 MHz: 133 MB/sec
Versión 2.1 fue aprobada en 1995

PCI Dual 3.3V y 5V

64 Bit slots y 66 MHz

32­Bit throughput @ 66 MHz: 266 MB/sec

64­Bit throughput @ 66 MHz: 532 MB/sec
Versión 2.3 fue aprobada en 2002

Abandona 5V, pero las PCI Duales siguen válidas
Arquitectura PCI
Identificación de slots PCI
PCI: estructura y señales

Se configura como bus de 32 ó 64 bits

49 líneas de señal obligatorias


Sistema: reloj y reset

32 líneas multiplexadas (datos y direcciones)
Líneas para interpretar y validar

Control de interfaz: coordinan envío y recepción

Arbitraje: pares de líneas dedicadas maestros­árbitro

Señales de error (ej: paridad).
PCI 64 bits: Aparecen 51 señales opcionales

Interrupción: líneas dedicadas para cada dispositivo

Soporte de caché para que se conecten al PCI

32 líneas multiplexadas (datos y direcciones) (adicionales)

Líneas de interpretación y validación 
2 líneas que permiten que 2 dispositivos PCI utilicen 64 bits.

Terminales de test: estándar IEEE 1149.1
Procesamiento de Video 3D en PCI
El impacto del acelerador gráfico en el bus AGP

Bus de alto rendimiento para controlador gráfico. (1998)

AGP reduce cuellos de botella ya que es un bus dedicado de alta velocidad.

Responde a las necesidades de las aplicaciones gráficas: Permite visibilidad directa Video­
Memoria del sistema

32 líneas multiplexadas

Alta velocidad (reloj del bus de la CPU)

AGP en el flanco ascendente como en el descendente de la señal de clock

Transmisión: 528 MB/s ó 1 GB/s
Procesamiento de Video 3D en AGP
Plataforma PCI: Arquitectura y Performance
A medida que aumentan los requerimientos de ancho de banda de bus por parte de los dispositivos, las plataformas PCI evolucionaron en una arquitectura compuesta por dos puentes: 
Norte: representado por el Hub de Memoria. (North Bridge)

Sur: representado por el Hub de E/S. (South Bridge)
Los recursos de alta performance se conectan al N.B. Los de baja performance al S.B.
Dentro de los recursos de baja performance del Hub Controlador de E/S, algunos requieren conexión de alta performance (p.ej. un CD) y otros se pueden utilizar como un segmento compartido del bus PCI (p.ej. Ethernet y SCSI)
Arquitectura PCI­X
PCI­X fue desarrollado para extender la performance de PCI.
El Bridge HOST/PCI­X representa una consolidación de los controladores de Hub en una estructura de Bridge único.
Inicialmente PCI­X simplemente incrementa la frecuencia de la línea de la señal CLK respecto de PCI con el objeto de incrementar el ancho de banda del segmento del bus. Eventualmente PCI­X DDR y QDR proveen una fuente de sincronismo para mejorar el ancho de banda del segmento. “D” y “Q” se refieren a dual y quad como múltiplos respectivamente de la señal de strobe, dentro de un mismo período de la señal CLK. El incremento en el ancho de banda del segmento del bus reduce ampliamente el número de slots de conexión de placas por cada segmento de bus.
El aumento en la performance de los PCI­X DDR y QDR resulta en interconexiones punto a punto.
Otro enfoque al problema

Los datos tienen que estar marcados, de esa forma el sistema de I/O reconocerá el tipo de tráfico

Simplificar y Homogeneizar las arquitecturas

Mantener la compatibilidad con modelo de software de PCI

Mas ancho de banda

QoS

Hot Swap
El impacto del acelerador gráfico en el bus PCIe
Diferencias entre PCI y PCIe
PCI




Paralelo
Arbitraje por Interrupción
Ancho de banda definido
No QoS
PCIe




Serie
Arbitraje por Mensajes
Ancho de banda gestionable
QoS
Justificación del uso del bus PCIe para 3D Video, según NVIDIA
“... Simply bandwidth. The fastest version of AGP supported up to 1 GB/s transfers, I believe, and it was asymmetric ­ CPU ­> GPU was full speed, but GPU ­> CPU was much, much slower. PCIe supports up to 4 GB/s bidirectional, and PCIe Gen 2 supports up to 8 GB/s bidirectional. The bandwidth directly affects the complexity of the scene that can be limited, since bandwidth limits the speed with which the host CPU can send geometry (vertices) and images (texture maps) to the GPU for processing.”
Dave Luebke, NVIDIA Research
Otras aplicación es de un acelerador gráfico
Todo lo visto sugiere que la capacidad de procesamiento disponible, sobre todo en operaciones de punto flotante, bien puede utilizarse para otros fines además de la producción de imágenes en pantalla; tal es el caso del procesamiento de señales o la computación de propósito general. Hay varios trabajos al respecto. GPGPU
Así algunas aplicaciones son:

Problemas de computación distribuida

Simulaciones de modelos físicos

Transformadas rápidas de Fourier

Procesamiento de señales de Audio

Procesamiento digital de imágenes

Decodificación y procesamiento de video
UTN­FRBA, Noviembre de 2008
Descargar