tema 2.1 arquitecturas streaming y cauce grÁfico …david miraut andrés procesadores grá cos y...

69
Curso 2013 / 14 Procesadores Grácos y Aplicaciones en Tiempo Real Profesores: David Miraut y Óscar D. Robles © GMRV 2005-2014 Febrero 2014 David Miraut Andrés Procesadores Grácos y Aplicaciones en Tiempo Real 2013/14 1/34 1 / 72 Escuela Técnica Superior de Ingeniería Informática Máster en Informática Gráfica, Juegos y Realidad Virtual TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO CLÁSICO

Upload: others

Post on 05-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Curso 2013 / 14

Procesadores Grácos y Aplicaciones en Tiempo Real

Profesores: David Miraut y Óscar D. Robles

© GMRV 2005-2014 – Febrero 2014

David Miraut Andrés Procesadores Grácos y Aplicaciones en Tiempo Real 2013/14 1/34

1/ 72

Escuela Técnica Superiorde Ingeniería Informática

Máster en Informática Gráfica,Juegos y Realidad Virtual

TEMA 2.1ARQUITECTURASSTREAMING Y

CAUCE GRÁFICO CLÁSICO

Page 2: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Historia de las tarjetas gráficasIntroducción al cauce graficoArquitecturas streamingEvolución y procesadores streamingEl cauce gráfico en profundidadRelación entre el cauce gráfico y la GPULectura recomendadaBibliografía

ÍNDICE

T y productos oodas las marcas mencionad s as trasparenciasen est están registradas por

as compañías, y su uso es de sus respectivcarácter descriptivo con fines docentes.

cParte de las tablas y gráficos están basados en las presentaciones de y GPGPU streaming computing de NVidia y ATI-AMD, y en loslibros mencionados en la bibliografía

NOTAS:

Page 3: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

HISTORIA DE LOS PROCESADORES

GRÁFICOS DE CONSUMO(TARJETAS GRÁFICAS)

El mítico PONG de Atari (1974)

NOTAS:De la anterior: En el cálculo en NO tiempo real nosotros programamos con total libertad, de hecho se suelen hacer los “shaders”/funciones de acuerdo con las estructuras y efectos que queremos representar (efectos de desplazamiento en la geometría, modificaciones del comportamiento de la luz sobre la superficie, cálculo del volumen y de la luz al atravesarlo... )Mientras que en tiempo real, estos “shaders” deben programarse de acuerdo con el punto en el que se encuentran dentro del cauce gráfico, hay una cierta libertad pero está acotada por el tipo de datos que podemos hacer fluir en ese cauce

Page 4: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (I)

La idea es :muy antigua

Los ordenadores personales de los años 80 ya contaban con procesadores separados y específicos para el tratamiento de gráficos: Atari QT...

En aquella época había gran diferencia y rivalidad entre consolas y ordenadores de 8 bits

Los PCs “ganaron” la batalla gracias a la reducción de precios que supuso su arquitectura abierta, pero no porque tuvieran mejores prestaciones gráficas (como el ), Atari o los Amstrad ni fueran más fáciles de utilizar (como los Apple). Ni siquiera el producto nacional (DragonPC) logró una mínima aceptación.

Pero en aquella época las necesidades eran diferentes (2D, 256 colores...)

NOTAS:

Sumergirse en el mundo de las tarjetas gráficas da un poco de vértigo -- como dice Manuel Ujaldón-- porque es un terreno en contínua metamorfosis.

Os recomiendo encarecidamente su libro, es el mejor (y el único) del que disponemos no sólo en español, sino en cualquier lengua, hasta donde yo sé :-)

Page 5: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (II)

Las tarjetas crecían en prestaciones lentamente

Hercules, EGA, VGA (modo X)...

La evolución trajo consigo la guerra de las SuperVGA: Mayor resolución y más colores Pero cada era completamente distintodriver

El stadard VESAno aprovechaba

todas las características

Los ordenadores no estaban concebidos para el entretenimiento, sino para aplicaciones ofimáticas, pero unos cuantos “apasionados” se empeñaron

Ultima VIThe Stigian Abyss

WolfStein 3D(John Carmack)

Demoscene

mem. no linealaspect ratio 4:3

compromiso entre resolución/colores

...

Un caos para los desarrolladores

de juegos

Raycasting

286

NOTAS:

Page 6: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (III)

La visión de 3DFX supuso una revolución, irrumpió en el mercado con tarjetas de tal calidad que barrió literalmente a todos los competidores

Pero los procesadores de la época eran muy limitados para generar imágenes de calidad en tiempo real.

Las fases en la creación de gráficos 3D quedaron bien definidas(Renderman) y se hicieron esbozos simplificados en el mundode los Pcs (los inicios de OpenGL)

nVIDIA no tuvo otro remedio que adquirir 3DFX, mediante una OPA, para sobrevivir. Absorvió a su enemigo y aprovecho el know-how y sus ingenieros para ponerse en la punta de lanza.

ATI ha hecho un esfuerzo notable

NOTAS:

(no eran programables, sólo aceleraban parte del cauce)

Page 7: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (III)

La visión de 3DFX supuso una revolución, irrumpió en el mercado con tarjetas de tal calidad que barrió literalmente a todos los competidores

Pero los procesadores de la época eran muy limitados para generar imágenes de calidad en tiempo real.

Las fases en la creación de gráficos 3D quedaron bien definidas(Renderman) y se hicieron esbozos simplificados en el mundode los Pcs (los inicios de OpenGL)

nVIDIA no tuvo otro remedio que adquirir 3DFX, mediante una OPA, para sobrevivir. Absorvió a su enemigo y aprovecho el know-how y sus ingenieros para ponerse en la punta de lanza.

ATI ha hecho un esfuerzo notable

Nuevas alianzas: ATI-AMDnVIDIA y los tablets

Intel en el mundo de las GPUsMicrosoft y la arquitectura unificada

Tarjetas aceleradoras (AGEIA,CausticTwo..) y su “absorción”

NOTAS:

Page 8: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (IV)

OpenGL: Segal y Akeley ‘99Reyes: Cook/Carpenter/Catmull ‘87 Renderman: Upstill ‘90, Apodaca y Gritz ‘00Programabilidad y representación: Shade trees: Cook ‘84 Pipeline programable: Olano ‘98 RenderMan en OpenGL: Peercy ‘00 OpenGL con streams: Owens ‘00 Lenguajes de Shading en tiempo real: Proudfoot ‘01 Smash: McCool ‘01 (API ligeramente basado en OpenGL)

NOTAS:

En el vídeo de la semana se habla largo y tendido de esto y muchas otras cosas.

Page 9: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (IV)

SHADERS

Page 10: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo corresponden

a las series de

Nvidia ó ATI

No confundir generación con serie

Sistemas puramente software (que requerían grandes máquinas)

Utilizaban visualizadores vectorialesEl framebuffer era muy caro ( 20k$)Simuladores de vuelo para combate (militar)

Al no ser HW ni squiera se suele tener en cuenta a la hora de contarlo, pero fue un precedente importante

TiempoReal

NOTAS:

¿Por qué tanta insistencia con la historia?En primer lugar para saber qué ha ocurrido, dónde estamos y hacia donde nos movemos

En segundo lugar, y casi más importante: Este campo avanza a una velocidad realmente meteórica, de un año para otro casi hay que tirar las transparencias y esperemos que ATI-AMD no me dé un susto a mitad de cuatrimestre. <es una forma de poder reciclar las transparencias>

Por ello hay mucha información en Internet, en los artículos y en los pocos libros que hay, que ha quedado ya obsoleta. Y tenemos que ser consciente de ello para poder discernir y no confundir conceptos que ya han cambiado. Es esencial mirar la fecha de publicación de un artículo y ser muy crítico con lo que en ellos se cuenta, para no hacernos una idea equivocada.

Generación “cero”: Sistemas SÓLO SW

http://www.referenceforbusiness.com/history2/59/Evans-Sutherland-Computer-Corporation.html

Evans and Sutherland SP1(mediados de los años 70)

Page 11: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo corresponden

a las series de

Nvidia ó ATI

No confundir generación con serie

Vértices: Transfomación, Clipping y proyecciónRasterización: Interpolación de colores (en lineas y puntos)Fragmentos: Se sobreescribe

Época: entre 1982 y 1987

Es la forma en la que en las presentaciones de SGI suelen explicar la evolución de los gráficos por ordenador

TiempoReal

NOTAS:

Ya se hacen los cálculos con coma flotante, no sólo con precisión fija (aritmética entera) como estábamos obligados cuando todo era SW

Artículo histórico:Jim Clark, “The Geometry Engine: A VLSI Geometry System for Graphics”, SIGGRAPH ’82

En la podemos ver que los segmentos más alejados se atenuaban en su teteracolor, para que pareciera más lejano. (la tetera nos puede servir para apreciar los avances tecnológicos)

Primera Generación: Gráficos alámbricos

Sólo podía hacerse en estaciones de trabajo ( ) muy workstationspotentes de la época

Page 12: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo confundir generación con serie

Segunda Generación: Polígonos con colores sólidos sombreados

Vértices:Rasterización: Interpolación de profundidad (triángulos)Fragmentos: Buffer de profundidad, color blending

Época: 1987 - 1992

Cálculo de iluminación

TiempoReal

NOTAS:

Sólidos / primitivas “rellenas” Hardware de rasterización y rellenado de polígonosIluminación por vérticeSombreado Goraud (suave)

Sólo estaciones de trabajo

Page 13: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo confundir generación con serie

Tercera Generación: Mapeado de Texturas

Vértices: Trasformación de las coordenadas de texturaRasterización: Interpolación de las coord. de texturaFragmentos: Evaluación de la textura y antialiasing

Época: 1992-2000

TiempoReal

NOTAS:

Ya podemos aplicar texturas por fragmento !!

Page 14: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo confundir generación con serie

Cuarta Generación Programabilidad:

Sombreado (shading) programable

Modelado Basado en imagen

Convergencia de los gráficos y el procesado deseñal en otras señalesSuperficies curvas

TiempoReal

2001 Programabilidad

2002 Punto Flotante

2004 - 2005 Ejecución condicional

NOTAS:

Ya tenemos hardware de consumo: tarjetas gráficas que se pueden comprar

Page 15: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo confundir generación con serie

Quinta Generación Evaluación Global:

TiempoReal

Ray tracing: visibilidad e integración

Photon Mapping, True Shadows, Path Tracing...

NOTAS:

Page 16: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA (PRE)HISTORIA DE LOS PROCESADORES GRÁFICOS (V)

Se suelen distinguir en las GL-machines:5 generacionesNo confundir generación con serie

Quinta Generación Evaluación Global:

TiempoReal

Ray tracing: visibilidad e integración

Photon Mapping, True Shadows, Path Tracing...

Hay que tener muy en mente, la evolución y sobretodo el objetivo

hacia el que nos movemos para las decisiones que secomprender

reflejan en la arquitectura de las GPUs

NOTAS:

Page 17: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA LÍNEA ENTRE TIEMPO REAL Y OFFLINE RENDERING...

Se mueve cada vez más deprisa :-)

NOTAS:

Generational ImprovementsPerformance• Triangles/second (geometry)• Pixels/second (rasterization)Features• Hidden surface elimination, texturemapping, antialiasing …Quality• Bits of resolution, filtering …

Page 18: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LA LÍNEA ENTRE TIEMPO REAL Y OFFLINE RENDERING...

NOTAS:

Pero queda mucho camino por recorrer...

“Reality is 80 million polygons.” – Alvy Ray Smith, Pixar

Page 19: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

REPASO DELCAUCE GRÁFICO

Proceso de generación de imágenes mediante modelado geomético

( ) Existen otras formas de generar imágenes fotorrealistas1

que se verán en la asignatura TAG3D

NOTAS:

Page 20: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PIPELINE ó CAUCE GRÁFICO (I)

Vamos a estudiar los pasos del proceso de síntesis dede gráficos por ordenador más extendido en la actualidad: el cauce gráfico

Todos sabemos ó intuimos que los artístas “esculpen” sus modelos en programas CAD y que al final esto se convierte en imágenes y animaciones realistas (e interactivas si estamos en un juego)

De la descripción de unaescena 3D: polígonos queforman la superficie de losobjetos, materiales, luces...

A una representación2D convincente desdeun determinado puntode vista

(3D Total)

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 21: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PIPELINE ó CAUCE GRÁFICO (I)

Vamos a estudiar la serie de pasos del proceso de síntesis dede gráficos por ordenador más extendido en la actualidad: el cauce gráfico

Todos sabemos ó intuimos que los artístas “esculpen” sus modelos en programas CAD y que al final esto se convierte en imágenes y animaciones realistas (e interactivas si estamos en un juego)

De la descripción de unaescena 3D: polígonos queforman la superficie de losobjetos, materiales, luces...

A una representación2D convincente desdeun determinado puntode vista

(3D Total)

Pero... ¿Qué hay en medio?

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 22: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PIPELINE ó CAUCE GRÁFICO (II)

Hoy día, el que proceso de generación de imágenes sintéticassigue el pipeline o cauce gráfico es maduro y , bien definidoy este estandar se ha reflejado en las principales APIs gráficas (como ) e influye fuertemente en las arquitecturas de OpenGL las modernas .tarjetas gráficas

El cauce gráfico es el conjunto de transformaciones y procesadosde imagen que se realiza a los elementos que definen la escenahasta llegar a la imagen resultante final.

Este cauce , cada una de las se divide en etapas de procesado cuales toma como entrada la salida de la anterior, de ahí el símil con un cauce, ya que los datos (no las instrucciones)

fluyen en su interior.

etapa 1etapa 2

etapa 3

(como trozos de tubería)

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 23: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PIPELINE ó CAUCE GRÁFICO (III)

El nombre de viene de un concepto de arquitectura,pipelineya que las tareas en las que se divide son lo suficientemente independientes como para realizarse en .paralelo (segmentación)

Algo parecido a cómo organizamos la colada cuando volvemosde viaje y tenemos que poner varias lavadoras:

lavar lavarsecar secar secarplanchar planchar plancharplegar plegar plegar

lavar

lavar

secar planchar plegar

secar planchar plegar

secar planchar plegar

Hacer tres tandas de lavadoras es más rápido y aprovechamos mejor los recursos si lo organizamos en paralelo

divide y vencerás

Un Pentium IV apenas tiene 30-40 etapas en su pipeline hipersegmentado, una GeForce3 tiene entre 600 y 800 depediendo del camino que tome el flujo de datos

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 24: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

DIVISIÓN CONCEPTUAL del CAUCE

Cada autor divide conceptualmente según su propio criterio(en general se da más relevancia en el esquema a las etapas de transformaciones, aunque todas son igual de importantes)

Modelado

Aplicación Geometría Rasterizado

Selecciónde vista

Divisiónpor w

(perspectiva)Representaciónlibro de

S.R.Buss

libro deT. Akenine

cada una de estas etapas es también un pipeline en sí mismaGPU Gems2

R. Fernando

Aplicación

Comandos

Geometría

Rasterización

Texturas

Fragmentos

Visualización

En esta parte de la asignatura vamosa profundizar y ver cómo se implementanen el hardware gráfico cada una de las etapas. Pero es indispensable una buenacomprensión de las mismas, por lo queno dudéis en preguntar cualquier cosaen RA ó PGATR

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 25: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (I)

Tenemos una serie de etapas bien definidas en las que la información “fluye” en orden de unas a otras

Evidentemente todo puede hacerse por softwareen procesadores de PC tradicionales, pero esmucho menos eficiente

Pipeline gráfico ultra-simplificado:

Tres etapas principalesentran vérticesordenados

obtenemospíxeles

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Aplicación Transformación Rasterizado Sombreado

Memoria de video

(Texturas)

Estado gráfico

Vértices3D

Triángulosproyectados(vértices 2D)

Fragmentos(pre-píxeles)

Píxeles finales(color, profundidad)

Render a texturaGPU

Page 26: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (II)ETAPA DE TRANSFORMACIÓN

Transforma las coordenadas de los vértices de los objetosde su sistema local a su respectiva proyección 2D

Espaciodel

Objeto

Espacio del

Mundo

Espaciode la

cámara

Espacio Visualizable

Espaciode la

Ventana

3D 2D

Además se calcula la iluminación en cada vértice

Imágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 27: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (III)ETAPA DE TRANSFORMACIÓN

Tenemos muchos vértices y sus posiciones (en principio)no dependen unas de otras perfectamente paralelizable

Estas transformaciones han de ser muy flexibles y adaptarse a las necesidades, no sólo un puñado de patrones fijos debería ser programable

Iluminación por vértices

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

AplicaciónImágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

NOTAS:

Page 28: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (IV)ETAPA DE RASTERIZADO

Convierte la representación geométrica (vértices)a una representación de imagen (fragmentos)

Los fragmentos pueden verse como píxeles “en potencia”

Fragmento = píxel + datos asociados(color, profundidad, pincel...)(potencial)

Interpola las cantidades calculadas en cada vérticea lo largo de los “píxeles”

Rasterizado

Vértices Fragmentos

No es programable, por ahora...

NOTAS:

Falta la , pero eso lo veremos al hablar de la arquitectura etapa de geometríaunificada

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 29: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (V)ETAPA DE SOMBREADO

Básicamente, se calcula el color de cada pixel

Han de leerse imágenes de texturas (arrays de memoria)

Estas texturas llevan todo tipo de información (color difuso sobre la superficie, normales, brillo...)

Suele haber más pixeles que vértices, y las operaciones son más complejas

Ha de ser muy flexible: programable

Es una tarea fácilmente paralelizable

Mayor número de procesadores de fragmentos

Ya no tenemos el límite en el número de fuentes de luz, ni ningún otro...

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 30: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ETAPAS del CAUCE GRÁFICO (V)ETAPAS DE ELIMINACIÓN DE DATOS

Al fluir los datos en el cauce, no sólo son transformados de unos tipos a otros, sino que además su volumen se multiplica.

Podemos imaginarlo como una reacción química en cadena.

Muchos de estos datos de una etapa a lano son necesarios siguiente, y conviene eliminarlos tan pronto como sea posible para no aumentar el coste computacional por su procesado

Así tendremos numerosos test entre etapas, para dejar pasar sólo aquellos elementos que nos interesen

test

NOTAS:

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Page 31: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ARQUITECTURASSTREAMING

(ó CIRCULANTES)

DIFERENCIAS CON EL MODELO VON

NEUMANN

( ) En español se suele utilizar el término “circulante” en lugar 1

de flujo, para distinguirlo de otras nociones de arquitectura

NOTAS:

Page 32: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

INTRODUCCIÓN

A pesar del vertiginoso aumento de rendimiento en las GPUs su diagrama de bloques general hasta laapenas cambiaron

llegada de la arquitectura unificada ( )

( ) Aún después de la introducción de la Arquitectura Unificada parte de las etapas del cauce se implementan mediante unidades funcionales dispuestas según el modelo streaming

1

1

Refleja la buena cimentación de la arquitectura. La base es óptima escalable en muchos aspectos y por eso también es

Práctica en su interiorinexistencia de cuellos de botella(de existir, la arquitectura hubiera cambiado hace mucho tiempo)

Facilita su análisis, y nos permite hacer un estudio general basándonos en los modelos comerciales

de la actualidad

NOTAS:

Page 33: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

MODELO DE VON NEUMANN

Tradicionalmente los PCs han seguido el modelo de Von Neumannen el que las instrucciones se almacenan como datos y sus operadores definen la forma en que se localizan dentro del HW

Esto situa el del PC en el cuello de botella accesoa memoria, así las optimizaciones en la arquitecturase han concentrado en reducir la latencia del accesoindividual a los datos (pero no en maximizar su ancho de banda)

NOTAS:

Page 34: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

MODELO DE VON NEUMANN

Tradicionalmente los PCs han seguido el modelo de Von Neumannen el que las instrucciones se almacenan como datos y sus operadores definen la forma en que se localizan dentro del HW

Esto situa el del PC en el cuello de botella accesoa memoria, así las optimizaciones en la arquitecturase han concentrado en reducir la latencia del accesoindividual a los datos (pero no en maximizar su ancho de banda)

Ejemplo del Itanium 2:

area del chip(podemos considerarlo proporcional a los transistores dedicados a cada tarea)

6’5%

Una docena de ALUs para aritmética entera un par de FPUs para coma flotante

Control, comunicaciones, caché...

NOTA: Esta comparación no es muy justa porqueel procesador Itanium tiene una arquitectura EPIC -poco común-, pero nos sirve para tener un idea respecto a un procesador que está por encima de la media en capacidad de cálculo)

NOTAS:

Page 35: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

¿DÓNDE ESTÁ EL TRUCO? (I)

Los procesadores tradicionales (PCs) son casi todo memoria caché

Pentium III Transistores 28,1 M

GeForce 6800 222 M Transistores

Aunque existen y juegan cachésun papel importante, están orientadas a texturas y la mayor parte del chip se utiliza para lógica computacional muy específica para un flujo de datos

Bueno en tareas de controlMalo en procesado de grandes cantidades de datos

(384 M trts en GeForce 7900)

NOTAS:

Page 36: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

MODELO DE VON NEUMANN

Tradicionalmente los PCs han seguido el modelo de Von Neumannen el que las instrucciones se almacenan como datos y sus operadores definen la forma en que se localizan dentro del HW

Esto situa el del PC en el cuello de botella accesoa memoria, así las optimizaciones en la arquitecturase han concentrado en reducir la latencia del accesoindividual a los datos (pero no en maximizar su ancho de banda)

En la última década este modelo se ha aferrado al paralelismode datos para poder permanecer vigente en este contexto, medianteinstrucciones SIMD como las orientadas a multimedia (MMX...)

Las , a pesar de tener unos operadores muyaplicaciones gráficassencillos son difíciles de programar en tiempo real debido al

que hay que procesar.gran volumen de información

Cualquier arquitectura basada en el patrón convencional resulta claramente insostenible: es necesario redefinir el modelo de computación

NOTAS:

Page 37: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

MODELO de STREAMING

Si el cuello de botella está en los datos, ¿por qué desplazamoslas instrucciones por el cauce segmentado del procesador y obligamos a que los datos vayan a su encuentro?

Parece más lógico que sean loslos que fluyan por ese cauce, que son la masa crítica del problema, y datos salir a la caza

de los operadores (instrucciones) que son pocos y simples.(en el contexto de las aplicaciones gráficas)

DATOS

DATOSDATOS

DATOS

DATOS

DATOS

RUT CNI CIONES

RUT CNI CIONES

RUT CNI CIONES

Así le damos “la vuelta” al embudo

Colocando la parte más ancha en el lado de los datosy dejando en el estrecho a las instrucciones, que como en el caso de las GPUs serán cableadas directamente sobre el HW (digamos que es como si lo configuraramos)

NOTAS:

Page 38: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (I)

Veamos más en detalle esta nueva forma de plantear el problema

Conjuntos de datos no conexos ni uniformes Complejos diagrama de control en función de los resultados que se van obteniendo

Antes: Proc. Tradicional Ahora: Modelo de Streams

Streams (Flujos)Conjuntos de datos con una estructura bien definidaTodos los datos streams

KernelsSus son streams entradas/salidas Toda operación sobre losstreams se define/expresa como kernel

Nombre explicativo

Se pueden encadenar

NOTAS:

Aquí se puede hacer el símil con los procesadores sistólicos.Haciendo hincapié en las diferencias de complejidad, enrutamiento de datos y “latidos”

Page 39: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (II)

stream kernel stream

Tenemos :dos tipos de “paralelismo”

El propio pipeline hace que muchas tareas se ejecuten en paralelo

Se puede operar con muchos elementos del stream en paralelo

La :comunicación es muy eficiente

Localidad entre el productor yel consumidorPatrón de acceso a memoriamuy predecible:

Se optimiza para la producción de muchos elementos no la salida de uno soloProcesar muchos elementos a la vez “esconde” la latencia

el tráfico de memoria

(insistiremos y veremos en profundidad estos conceptos más adelante)

Minimizamos

NOTAS:

Page 40: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (III)EL PASADO: HARVEST Y PIXELFLOW

Veamos unos ejemplos ilustrativos de arquitecturas streamingdel mundo académico (donde más se ha investigado hasta la llegada de las GPUs)

Primer precendente (años 50)Trataba grandes volumenes de datos encriptados como flujo, contaba con un coprocesador especializado para este tipo de operaciones

Harvest (IBM 7950)

PixelPlanes (Universidad North Carolina)El nombre refleja la forma en la que trabaja la arquitectura

(años 80)http://en.wikipedia.org/wiki/Harvest_(computer)

Procesador central calcula los vértices

y la geometría

Matriz de coprocesadores asociados uno a uno a píxeles de la pantalla, que disponen de unos pocos bytes de memoria local para procesar los atributos de cada píxel

http://www.cs.unc.edu/~pxfl/

NOTAS:

Puede considerarse la primera arquitectura streaming, como variante del supercomputador Strech dentro de un proyecto del ministerio de Defensa Norteamericano (DARPA)

Por cierto, la noche pasada me encontré una presentación muy curiosa de ATI (cuando todavía era ATI) llamada “CPU y GPU una convivencia dificil”, en la que decían que las GPUs no eran arquitecturas streaming, es la primera vez que lo veo, pero la presentación estaba hecha con saña y no le haría demasiado caso, también decían que nunca podrían unirse CPU y GPU al ser puntos de vista arquitecturales radicalmente diferentes y ahí tenemos el Fusión de AMD (nombre en clave Swift) y la iniciativa de Intel

--> se trata de un procesador multinúcleo que lleva el nombre en clave de , Larrabeeque consta de 16 núcleos con 4 hilos de ejecución cada uno. Estará basado en la arquitectura x86 aunque incluirá instrucciones especificas de las GPUs por lo que el software actual seria compatible con el sin apenas modificacion. Se espera que cada chip alcance rendimientos de 1 TeraFlop y se espera comercializar en 2009-2010. En

http://www.elpais.com/articulo/tecnologia/chips/Intel/lanzara/2010/llevaran/tecnologia/UPC/elpeputec/20070726elpcibtec_3/Tes

continúa

Page 41: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (IV)EL PRESENTE: MERRIMAC Y CHEOPS

Merrimac e Imagine (Stanford)

Menos unidades de procesamiento que tareas

Organización multiplexadaen el tiempoCada etapa es completamente programable

Stanford Imagineprocesador de streams de

its para 32b procesado de señal, imagen y gráficos (2001)

Chip de 16x16mm (Texas Instruments)21 millones de transistores y 288 MhzRendimiento global del sistema: · 11’8 GFLOPS en aritmetica de 32 bits · 23 GFLOPS en aritmetica de 16 bits

26% ALUs

16% bancos de registros anexos

interfaz de memoria,interfaz de red, enrutado de datos, unidad decontrol...

NOTAS:

Hubo 4 primeras generaciones de Pixel Planes 4ª--> 40.000 trainagulos/sg5ª + bus interconexión 640MB/s-->2 Millones triag/sgTodo desemboco en la aparición del PixelFlow en 1992

Imagine (0’18 micras y menos de 10 vatios de consumo )

de la pga anterior

Page 42: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (IV)EL PRESENTE: MERRIMAC Y CHEOPS

Merrimac e Imagine (Stanford)

Menos unidades de procesamiento que tareas

Organización multiplexadaen el tiempoCada etapa es completamente programable

Stanford Imagineprocesador de streams de

its para 32b procesado de señal, imagen y gráficos (2001)

SDRAM

SDRAM

SDRAM

SDRAM

CPUCONTROLADOR CIRCULANTE

(control del flujo de datos e intrucciones)

inte

rfaz

con

m

emor

ia p

rinc

ipal

Banco de registros

streaming(SRF)

Ejecución del kernel

Microcontrolador

De instrucciones

De datos

De tareasParalelismo:

OtrosClientesStreaming

ALU Cluster

ALU Cluster

ALU Cluster

JERARQUÍA DE MEMORIA

2’1 Gbytes/sg.(tipo AGP)

25’6 Gbytes/sg.(inter-cluster)

435 Gbytes/sg.(intra-cluster)

8 bloques aritméticos operando bajo paralelismo SIMD, donde dentro de cada uno de ellos hay 6 ALUs como procesador VLIW

SIMD = Una sóla instrucción múltiples datosVLIW = Very Long Instruction Word

NOTAS:

En el dibujo se pueden ver los distintos anchos de banda y formas de paralelismoEs aritmética de 16 bits.

Page 43: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (IV)EL PRESENTE: MERRIMAC Y CHEOPS

Merrimac e Imagine (Stanford)

NOTAS:

Page 44: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (V)EL PRESENTE: MERRIMAC Y CHEOPS

Merrimac e Imagine (Stanford)

Menos unidades de procesamiento que tareas

Organización multiplexadaen el tiempoCada etapa es completamente programable

Es el núcleo del Stanford

StreamingSupercomputer

Stanford Merrimacprocesador de streams 64bits para

computación científica (2004)

En el año 2003 comenzó una nueva arquitectura en la que se trata de explotar la escalabilidadSe trata de maximizar la localidad mediante una y jerarquía de registrosreducir el ancho de banda necesario en un orden de magnitud (ó más)Chip de 124 mm (2004) a 1GHzProcesador MIPS64128 GFLOPS200 FPUs1000 pin BGAInterfaz a 16 chips DRAM 20 GB/s

NOTAS:

Page 45: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (VI)EL PRESENTE: MERRIMAC Y CHEOPS

Cheops (MIT)Se trata de una arquitectura de y compacta para streaming modularla adquisición, procesamiento y visualización de video digitalEn lugar de utilizar muchas CPUs y descomponer espacial o temporalmente las secuencias de video para aprovechar el paralelismo de datos, Cheops abstrae un conjunto de operaciones coputacionalmente intensivas (16 y 24 bits) que pueden ejecutarse de forma simultánea en modelo streamingAdemás cuenta con un procesador tipo Von Neumann que controla el conjunto y se encarga de las operaciones de 32 bitsEl diseño modular favorece la escalabilidad del sistema, con tres tipos de módulos: procesamiento entrada/memoria salida Dos tipos de buses. memoria de píxeles y de datos y control (100 MB/s) (32 MB/s)

El diseño está pensado de manera que es muy fácil reutilizar los datos procesados

http://web.media.mit.edu/~wad/cheops_CSVT/cheops.html

Los tres tipos de modulos conectados por busesDiagrama simplificado del proc.

(sin tener que comenzar otro proceso de renderizado como en las GPUs actuales)

8’5 GFLOPS (sostenido)12’8 GFLOPS (pico)

NOTAS:

Recuerda un poco al Cell que habréis visto con Marta

Page 46: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (VII)ALTERNATIVAS EN SILICIO: VIRAM y RAW

VIRAM (Berkeley)Para tratar de minimizar el problema del “muro de memoria” (la diferencia entre la capacidad de cálculo y velocidad del procesador y la memoria) se

para minimizar la latencia integra el procesador dentro del área de memoriay aumentar el ancho de banda.

Toda la memoria es un inmeso banco de registros

Tiene importantes en consumo energético, venjajas disipación, coste y área de integración(NEC ha implementado algo muy parecido en la memoria eRAM de la XBoX 360)

2 unidades de procesamiento vectorial 128 bits, que se pueden desdoblar en 4 de 64 bits u 8 de 32 bits

200 Mhz

3’2 GFLOPS en aritmética de 32 bits

32 registros de 128 bits

13MB de memoria principal

http://iram.cs.berkeley.edu/kozyraki/project/ee241/midterm/report.html

NOTAS:

sólo 200MHz y alcanza 3’2 GFLOPs

¿por que no introducir algunas tareas en la propia memoria? En realidad ya tenemos unas pocas, pero esto se puede sofisticar.Normalmente los texels están comprimidos sin pérdidas en memoria, y los tenemos que coger al menos de 4 en 4 (por el filtrado bilineal), de ahí que se almacene en forma de curva de Peano.

Page 47: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (VIII)ALTERNATIVAS EN SILICIO: VIRAM y RAW

Más unidades de procesamiento que tareas

Cada “celda” es prograble

Los streams conectan “celdas”

Organización en tareas enparalelo

Montañas de ALUs y registros

“Cables” pequeños y programables

MIT RAW

Tile processing: consiste en colocar varios procesadores en el área de silicio dispuestos como en azulejosuna pared, interconecatdos por una red con la misma de topología 2Dbaja latencia (dos estáticas y dos

)configurables

Incluye en cada chip 16 procesadores RISC con FPU y caché de 128 KB

Paralelismo de datos, a nivel de ins-trucción y optimizaciones streaming

4’8 GFLOPS pico

200 Mhz

IBMCell

Ej. El proc. Cell tb. tiene más unidades de proc. que tareas

Las variantes de bajo coste (clusters de GPUs) se verán más adelante

NOTAS:

de nuevo esto nos recuerda bastante a las matrices de procesadores sistólicos4’8 GFLOPs con 200 Mhz, no está mal

Page 48: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROCESADORES DE STREAMS (IX)

La diferencia fundamental nuestro caso la : en es especializaciónLa correspondencia entre las tareas de la síntesis de gráficosy los conjuntos de procesadores en el procesador de la GPU

ATI Flipper 51 M trans.

Organización de tareasen paralelo

Una tarea a cada (conjunto de)

unidades de procesamiento

Las unidades están cableadas de forma fija

Comunicación eficienteArquitectura pensada “sólo” para gráficosTenemos tipos dedossub-procesadores especializados

NOTAS:

Page 49: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

EL CAUCE GRÁFICO EN PROFUNDIDAD

Veamos un poco más en detalle el proceso de generación de imágenes desde el punto de vista del programador y su implementación en HW

NOTAS:

Page 50: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROC. GENERACIÓN IMG. (I) DE DE APLICACIÓN GRÁFICA & APIs

La lista de vértices y sus atributos, los valores iniciales de todos ellos, las operaciones a realizar y las texturas a aplicar se describen en la capa SW mediante un programa convencional (C, C++...) que incluye una serie de llamadas a un API (Application Program interface)

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

PIPELINE ó CAUCE GRÁFICO (I)

Vamos a estudiar los pasos del proceso de síntesis dede gráficos por ordenador más extendido en la actualidad: el cauce gráfico

Todos sabemos ó intuimos que los artístas “esculpen” sus modelos en programas CAD y que al final esto se convierte en imágenes y animaciones realistas (e interactivas si estamos en un juego)

De la descripción de unaescena 3D: polígonos queforman la superficie de losobjetos, materiales, luces...

A una representación2D convincente desdeun determinado puntode vista

(3D Total)

OpenGL y DirectX

La CPU ejecuta el programa y como resultado de las llamadas a la API, se colocan las texturas en la memoria de video y se envía el microcódigo que programa las operaciones a realizar en la GPU. Después el procesador gráfico puede recibir la lista de vértices y ejecuta sobre el flujo de datos la secuencia de operaciones para la generación de las imágenes.

Atributos de entrada para vértices Atributos de salida para vértices Nº

Nombre Descripción Formato Nombre Descripción Formato 0 OPOS Posición (x,y,z,w) HPOS Posición (x,y,z,w) 1 WGHT Peso (w,0,0,1) COL0 Color prim. frontal (r,g,b,a) 2 NRML Vector normal (x,y,z,1) COL1 Color sec. frontal (r,g,b,a) 3 COL0 Color primario (r,g,b,a) BFC0 Color prim. trasero (r,g,b,a) 4 COL1 Color secundario (r,g,b,1) BFC1 Color sec. trasero (r,g,b,a) 5 FOGC Coord. de niebla (f,0,0,1) FOGC Coord. se niebla (f,*,*,*) 6 DIFF Luz difusa A0 Dir. Indir. Paráms. 7 SPEC Luz especular - (Sin usar) 8 TEX0 Coord. Textura 0 (s,t,r,q) TEX0 Coord. Textura 0 (s,t,r,q) 9 TEX1 Coord. Textura 1 (s,t,r,q) TEX1 Coord. Textura 1 (s,t,r,q) 10 TEX2 Coord. Textura 2 (s,t,r,q) TEX2 Coord. Textura 2 (s,t,r,q) 11 TEX3 Coord. Textura 3 (s,t,r,q) TEX3 Coord. Textura 3 (s,t,r,q) 12 TEX4 Coord. Textura 4 (s,t,r,q) TEX4 Coord. Textura 4 (s,t,r,q) 13 TEX5 Coord. Textura 5 (s,t,r,q) TEX5 Coord. Textura 5 (s,t,r,q) 14 TEX6 Coord. Textura 6 (s,t,r,q) TEX6 Coord. Textura 6 (s,t,r,q) 15 TEX7 Coord. Textura 7 (s,t,r,q) TEX7 Coord. Textura 7 (s,t,r,q)

Veamos un poco las APIs que vamos a utilizar

NOTAS:

Page 51: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

APIs/INTEFACES: OpenGL

Para poder utilizar la GPU para representar los gráficos primero hay que cargar una serie de programas en su interior, subir las texturas a memoria, los descriptores de la geometría...

Las más populares son y DirectX:OpenGL

Bajo nivelEs una especificación, no exactamente una APIHay implementaciones en muchos S.O. multiplataformaNo tiene “cosas escondidas”De la mano de Silicon GraphicsCiertos estudios de software tienen clara preferencia Tiene versiones “light” para plataformas móviles

SIGGRAPH ‘10Presentación OpenGL 4.0

NOTAS:

Page 52: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

APIs/INTEFACES: DirectX

WindowsVistaDx10

PeleaShadermodels

Alto nivelEs practicamente una plataforma de desarrolloLa API 3D es sólo una parte Sólo funciona en plataformas Microsoft (Windows, XBoX)CerradoPuede cambiar mucho de una versión a otraMuy popular en la industría de los videojuegosPor ahora, tiene menos sobrecarga del” driver” que OpenGL a la hora de utilizar intensivamente las GPUs

Venta de montones

de tarjet.

Muchos intereses económicos de por medio...

NOTAS:

Page 53: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

ETAPAS del CAUCE GRÁFICO (II)ETAPA DE TRANSFORMACIÓN

Transforma las coordenadas de los vértices de los objetosde su sistema local a su respectiva proyección 2D

Espaciodel

Objeto

Espacio del

Mundo

Espaciode la

cámara

Espacio Visualizable

Espaciode la

Ventana

3D 2D

Además se calcula la iluminación en cada vértice

Imágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

Transformación

PROC. GENERACIÓN IMG. (II) DE DE AGRUPACIÓN DE VÉRTICES

Con los vértices se componen líneas o triángulos (la primitiva básica)

2 vértices píxeles 1 línea3 vértices píxeles en el área del triángulo

A grosso modo, cuanto mayor sea el número de polígonos, más realismo tendrán los objetos de la escena y podremos representar objetos más complejos (veremos trucos para mejorar la calidad utilizando muy pocos polígonos)

Prmitiva OpenGL Significado

GL_POINTS Cada vértice es un punto individual.

GL_LINES Cada par de vértices constituye una línea recta.

GL_LINE_STRIP Los vértices forman una secuencia de segmentos.

GL_LINE_LOOP Sobre el anterior, une el último vértice con el primero.

GL_TRIANGLES Con cada tres vértices consecutivos compone un triángulo.

GL_TRIANGLE_STRIP Igual que el anterior, pero con triángulos adyacentes.

GL_TRIANGLE_FAN Idem, pero con triángulos adyacentes con vértice común.

GL_QUADS Con cada cuatro vértices se compone un polígono.

GL_QUAD_STRIP Igual que el anterior, pero con polígonos adyacentes.

GL_POLYGON Los vértices describen un polígono convexo.

tetera con pocos polígonostetera con más polígonos

Los 10 tipos de primitivas que se pueden especificar en OpenGL una vez definida la lista de vértices

NOTAS:

Page 54: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

ETAPAS del CAUCE GRÁFICO (II)ETAPA DE TRANSFORMACIÓN

Transforma las coordenadas de los vértices de los objetosde su sistema local a su respectiva proyección 2D

Espaciodel

Objeto

Espacio del

Mundo

Espaciode la

cámara

Espacio Visualizable

Espaciode la

Ventana

3D 2D

Además se calcula la iluminación en cada vértice

Imágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

Transformación

PROC. GENERACIÓN IMG. (II) DE DE AGRUPACIÓN DE VÉRTICES

Prmitiva OpenGL Significado

GL_POINTS Cada vértice es un punto individual.

GL_LINES Cada par de vértices constituye una línea recta.

GL_LINE_STRIP Los vértices forman una secuencia de segmentos.

GL_LINE_LOOP Sobre el anterior, une el último vértice con el primero.

GL_TRIANGLES Con cada tres vértices consecutivos compone un triángulo.

GL_TRIANGLE_STRIP Igual que el anterior, pero con triángulos adyacentes.

GL_TRIANGLE_FAN Idem, pero con triángulos adyacentes con vértice común.

GL_QUADS Con cada cuatro vértices se compone un polígono.

GL_QUAD_STRIP Igual que el anterior, pero con polígonos adyacentes.

GL_POLYGON Los vértices describen un polígono convexo.

Los 10 tipos de primitivas que se pueden especificar en OpenGL una vez definida la lista de vértices

Puntos Bucle cerrado de líneas Tira de lineas

v4

v4v4

v0v0

v0

v3

v3

v3

v5

v5

v5

v1v1

v1 v6

v6

v2

v2v2

v8v7

Líneas independientes

v4

v0

v3

v5

v1v6

v2

v7

Triángulos independientes

Tira de triángulos

Abanico de triángulos(Triangle Fan)

v4

v4

v4

v0

v0

v0

v3

v3

v3

v5

v5

v1

v1

v1

v6

v2

v2

v2

Quads independientes

Tira de Quads

Polígono

v4

v4

v4

v0

v0

v0

v3

v3

v3

v5

v5

v1

v1

v1

v6

v6

v2

v2

v2

v7

v7

NOTAS:

Page 55: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

ETAPAS del CAUCE GRÁFICO (II)ETAPA DE TRANSFORMACIÓN

Transforma las coordenadas de los vértices de los objetosde su sistema local a su respectiva proyección 2D

Espaciodel

Objeto

Espacio del

Mundo

Espaciode la

cámara

Espacio Visualizable

Espaciode la

Ventana

3D 2D

Además se calcula la iluminación en cada vértice

Imágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

Transformación

PROC. GENERACIÓN IMG. (III) DE DE TRANSFORMACIÓN EN EL ESPACIO 3D

Se aplican las matrices de rotación y traslación 3D, utilizando el punto devista para calcular la profundidad de los objetos en la escena.

También pueden definirse uno o varios focos de que aporten realismo, es en este punto en el que se suele calcular -tradicionalmente- la intensidad de la luz en cada punto, e igualmente se “proyectan” las sombras en estaetapa del renderizado.

Rotación

Traslación

NOTAS:

Page 56: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROC. GENERACIÓN IMG. (IV) DE DE ACOTACIÓN AL ÁREA VISIBLE EN PANTALLA

ETAPAS del CAUCE GRÁFICO (V)ETAPAS DE ELIMINACIÓN DE DATOS

Al fluir los datos en el cauce, no sólo son transformados de unos tipos a otros, sino que además su volumen se multiplica.

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Podemos imaginarlo como una reacción química en cadena.

Muchos de estos datos de una etapa a lano son necesarios siguiente, y conviene eliminarlos tan pronto como sea posible para no aumentar el coste computacional por su procesado

Así tendremos numerosos test entre etapas, para dejar pasar sólo aquellos elementos que nos interesen

test

Delimitación del espacio 2D visible en pantalla (clipping) y de la caravisible de cada poligono (culling).

La primera operación descarta (parcial o totalmente) los polígonos que quedan fuera del ángulo de visión definido para la imagen, y la segunda, los vértices de cada objeto que quedan ocultos tras su cara visible.

El objetivo es reducir el número de datos en el flujo, que no van a aportarinformación gráfica a la escena y agilizar las etapas siguientes

Puede apreciarse cómo sehan eliminado las carasposteriores (que quedaban tapadas) en las teteras

NOTAS:

Page 57: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

ETAPAS del CAUCE GRÁFICO (II)ETAPA DE TRANSFORMACIÓN

Transforma las coordenadas de los vértices de los objetosde su sistema local a su respectiva proyección 2D

Espaciodel

Objeto

Espacio del

Mundo

Espaciode la

cámara

Espacio Visualizable

Espaciode la

Ventana

3D 2D

Además se calcula la iluminación en cada vértice

Imágenes tomadas del libro “The Cg Tutorial - The Definitive Guide To Programmable Real-Time

”Graphics

Transformación

PROC. GENERACIÓN IMG. (V) DE DE ASOCIACIÓN A LA VENTANA DE VISUALIZACIÓN

Las coordenadas x e y de cada polígono son ahora transformadas a coordenadas en la pantalla (dependiendo de la posición de la cámara y las dimensiones de la ventana de visualización). la coordenada z permanece invariable y se utilizará en rasterizado con el algoritmo z-buffer

Una vez transformados y proyectados los vértices (y cálculadas sus áreas visibles) sus coordenadas espaciales son definitivas. Acabamos con los vértices y comenzamos a procesar los fragmentos (píxeles en potencia)

NOTAS:

Page 58: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROC. GENERACIÓN IMG. (VI) DE DE CREACCIÓN DE FRAGMENTOS DE LA IMAGEN

ETAPAS del CAUCE GRÁFICO (IV)ETAPA DE RASTERIZADO

Convierte la representación geométrica (vértices)a una representación de imagen (fragmentos)

Los fragmentos pueden verse como píxeles “en potencia”

Fragmento = píxel + datos asociados(color, profundidad, pincel...)(potencial)

Interpola las cantidades calculadas en cada vérticea lo largo de los “píxeles”

Rasterizado

Vértices Fragmentos

No es programable, por ahora...

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

En el rasterizado se convierte cada punto, línea y polígono 3D en una matriz 2D de puntos donde se guarda información del color y profundidad

Dependiendo de la resolución de la pantalla se colocan los vértices y seinterpolan las áreas de los polígonos que contienen en memoria

Tenemos dos áreas de memoria en las que se realiza esta transformación:Los bufferes y sus implicaciones en la arquitectura se verán en detalle en

.vid.el tema de mem

Color buffer ó back buffer es una matriz cuyas elementos son ternas RGB (y un cuarto elemento -alfa- para la trasparencia), que definen el color para cada uno de los puntos 2D del polígono transformado

Z-buffer o buffer de profundidad es otra matriz en la que se guarda información de profundidad y se determina si los polígonos quedan total o parcialmente tapados por otros

Buffer de color + Buffer de profundidad = Frame Buffer

El algoritmo es tan sencillo como mantener en el frame buffer los datos del fragmento cuya coordenada z sea la más próxima al punto de vista de la escena, y se actualiza cuando se haya uno que puede estar delante de ellos. si se utilizan trasparencias (canal alfa) la operación deja de ser conmutativa y haya que procesar primero los objeto opacos y tener cierto cuidado con el orden de atrás hacia adelante del resto.

NOTAS:

Page 59: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROC. GENERACIÓN IMG. (VII) DE DE PEGADO DE TEXTURAS

ETAPAS del CAUCE GRÁFICO (V)ETAPA DE SOMBREADO

Básicamente, se calcula el color de cada pixel

Han de leerse imágenes de texturas (arrays de memoria)

Estas texturas llevan todo tipo de información (color difuso sobre la superficie, normales, brillo...)

Suele haber más pixeles que vértices, y las operaciones son más complejas

Ha de ser muy flexible: programable

Es una tarea fácilmente paralelizable

Mayor número de procesadores de fragmentos

Ya no tenemos el límite en el número de fuentes de luz, ni ningún otro...

Transformación

Etapas:

DivisionConceptualy Funcional

Rasterizado

Sombreado

Introducción

Aplicación

Se recubre la superficie de cada objeto, pegándole a cada polígono proyectado la textura que añade realismo a su aspecto externo. El mapa de texturas debe transformarse de forma acorde con el ángulo, tamaño y posición de los polígonos a los se va a adherir.

Este complejo proceso se verá en la asignatura de y en Rendering Avanzadolas prácticas de esta asignatura desde el punto de vista de síntesis de texturas.

NOTAS:

Page 60: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

PROC. GENERACIÓN IMG. DE DE (VIII)MEZCLADO DE ELEMENTOS (BLENDING)

Se trata de la composición final de la escena, en la que se superponen los nuevos elementos sobre los existentes en la imagen. En esta fase se utilizanoperadores de máscara (AND & OR), filtros... Este mezclado nos permite reutilizar el renderizado parcial de la escena en los siguientes de frames una animación o juego.

La GPU realiza estas operaciones de forma ordenada y sistemática, como sise encontrara en un bucle infinito De no alterarse la lista de vértices o los atributos, tendríamos siempre la misma imagen,

pero si introducimos una variable los cambios se reflejarán de forma inmediata.

Una vez tenemos la imagen final,se envía a una zona especial de memoria donde estos datos (digitales, normalmente de 16 bits) se transforman en las señales que maneja el monitor (sea digital o analógico)

O bien se realimentan en el cauce para postprocesado

Sardegna - primavera 2006 (MomaStalker)

NOTAS:

Page 61: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Flujo de“vértices” Programa

de vértices

Flujo de vérticestransformados Ensamblado

de triángulos

Clip/Cull/Viewport

Flujo de triángulosen el espacio de pantalla

Rasterización

Flujo de fragmentossin procesar

Flujo defragmentos

Composición

Stream depíxeles

FramebufferImagen

Flujo detriángulos

Programa de fragmentos

ETAPAS del CAUCE GRÁFICO

Píxelesde colores

Listas depuntos 3D

Texturas

NOTAS:

Page 62: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

Pasos del Flujo (simplificado) Arquitectura Tarj. Gráf.

Aplicación

Comandos

Geometría

Rasterización

Texturas

Fragmentos

Visualización

Aplicación

Rasterización

Proc. deFragmentos

Visualización

Proc. Vértices

Transformación

Sombreado

¿CÓMO ENCAJA EL CAUCE EN LA GPU?

NOTAS:

Proc. Teselación

Proc. Geometría

Page 63: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

SHADERS: RECONFIGURACIÓN DEL HW GRÁFICO (I)

Llamamos a los programas que se shaders ó sombreadores“microcodifican” en los procesadores programables de la GPU

(SOMBREADORES)

Las etapas del cauce de segmentación durantefueron evolucionandola decada pasada, en la que se fueron uniéndose y separándose hasta alcanzar un punto de madurez en el que se han conformado unas

.operaciones fijas y otras programables

La programación de operaciones en esta capa firmware está en manos del programador gráfico (en lugar del fabricante como en los ejemplos mecionados con CPUs)

Estas partes programables se implementan mediante un defirmwareforma similar a una unidad de control microprogramada de los años80 (familia 80x86 de Intel) o a una CPU adaptativa de finales de los 90(procesadores Crusoe y Caruso de Transmeta).

El nombre viene de que este programa “oscurece” la función estándar que tiene asignada la segmentación estandar en esa etapa, por otra nueva anulándola para reemplazarla que se coloca en su lugar.

NOTAS:

Page 64: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

SHADERS: RECONFIGURACIÓN DEL HW GRÁFICO (II)(SOMBREADORES)

Aplicación

Comandos

Geometría

Rasterización

Texturas

Fragmentos

Visualización

Evaluación

Transformación

Iluminación

Coord. Texturas

Clipping

Direc. texturas

Filtro texturas

Regs. combiners

Niebla

Mezclado

Test Alpha, S y Z

Operadores lógicos

Evaluación

Clipping

Niebla

Mezclado

Test Alpha, S y Z

Operadores lógicos

Shaders paraVértices,

Teselación y Geometría

Shader para

Fragmentos

NOTAS:

Page 65: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

SHADERS: RECONFIGURACIÓN DEL HW GRÁFICO (III)(SOMBREADORES)

ensambladoroptimizado

para el perfilde la GPUdel usuario

traducción al HW y envío de las instrucciones a través de la API

En la próxima clase y en el laboratorio lo veremos mucho más en detalle

Sin los sombreadores, cada programador hubiera incorporado la funcionalidad que necesitara en un punto arbitratrio del cauce segmentado, y cada arquitecto hubiera comprimido o expandido el número de etapas a su voluntad y hoy tendriamos un caos de operaciones gráficas no facilmente conciliables. (como ocurría a

finales de los 90)

Nomenclatura: DirectX: Vertex Shader Pixel Shader OpenGL Vertex Program Fragment Program

NOTAS:

Page 66: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

LECTURA RECOMENDADA

No es un trabajo, peroconviene leerlo parareforzar los conceptosque hemos visto hoyy su relación con lo que habéis estudiando en Informática Gráfica

El nivel de este paperes sencillo e introductorio

http://graphics.stanford.edu/~liyiwei/courses/GPU/

NOTAS:

Page 67: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

ACTIVIDAD SEMANAL

No es un trabajo, peroconviene verlo parareforzar los conceptosque hemos visto hoyy su relación con lo que habeis estudiando en Informática Gráfica

El nivel de este vídeoes sencillo e introductorio

NOTAS:Marc Olano ha hecho muchas cosas, entre ellas, escribir el libro naraja ;-)

Programmable GPUs are increasingly powerful computational machines. While GPU shading practitioners must still choose between graphics APIs and languages, their capabilities and syntax are amazingly similar. This course presents the latest GPU shading evolution in the next generation hardware, and highlights the features, similarities and differences between the different API, language and hardware choices through a series of instructive examples and demos presented by experts from academia and industry. Unlike previous courses, this year will focus on examples and general shading techniques that could be ported from shading language to shading language, but each presented in explicit detail using one of the API/language/hardware choices to allow course participants to learn general methods while judging the differences for themselves. In addition, we highlight the distance that still exists between production and GPU shading and show the inroads GPUs have made in production rendering

Campus Virtual

Bienvenida e Introducción al Curso de GPGPU del SIGGRAPH’06

por Marc Olano

Aquellos que no tengáis todavía acceso, podéis

descargarlo de la consigna: PGATR

Page 68: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

BIBLIOGRAFÍA(De esta clase)

Capítulo

15

NOTAS:

Page 69: TEMA 2.1 ARQUITECTURAS STREAMING Y CAUCE GRÁFICO …David Miraut Andrés Procesadores Grá cos y Aplicaciones en Tiempo Real 2013/14 1/34 1/ 72 Escuela Técnica Superior de Ingeniería

RESUMEN(Ideas claves de esta clase)

Los procesadores gráficos son muy interesantes desde el punto de vista de y capacidad de cálculo programación de juegos.

Su y hace que tengan una orientación a datos especializaciónarquitectura muy especial

Implementan en su hardware el cauce gráfico

Tienen un , aunque se trata de rápido crecimiento aseguradoun mundo en , de ahí la necesidad devertiginosa evoluciónestudiar los procesadores con un espíritu crítico que nos permita adaptarnos y comprender los cambios

Su programación es muy dependiente de la arquitectura del chip gráfico, por lo que hemos de conocerla bien si queremos sacarle el máximo partido

NOTAS: