Aceleradores gráficos. Su impacto en el bus del sistema.mdoallo/descargas/video-20081110.pdf ·...

12
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.

Transcript of Aceleradores gráficos. Su impacto en el bus del sistema.mdoallo/descargas/video-20081110.pdf ·...

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áficoTodo 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