graphics processing units (gpus) - iuma - ulpgcnunez/clases-micros-para-com/m… · web...

28

Upload: others

Post on 22-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción
Page 2: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Índice

1. Introducción.........................................................................................................................3

2. Historia.................................................................................................................................4

3. Pipeline gráfico.....................................................................................................................5

3.1 Vertex Shading.............................................................................................................5

3.2 Geometry Shading........................................................................................................7

3.3 Rasterization.................................................................................................................8

3.4 Píxel Shading................................................................................................................9

4. Arquitectura.......................................................................................................................10

5. Programación de la GPU.....................................................................................................11

5.1 DirectX........................................................................................................................12

5.2 OpenGL.......................................................................................................................12

6. GPGPU................................................................................................................................13

7. Nvidia.................................................................................................................................14

8. AMD...................................................................................................................................16

9. Benchmarks........................................................................................................................17

10. Bibliografía..........................................................................................................................20

2Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 3: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

1. Introducción

Las GPUs (Graphics Processing Units) son procesadores diseñados especialmente para instrucciones de procesado de gráficos y operaciones en coma flotante. Tienen como fin liberar carga de la CPU para que esta pueda dedicarse a otros fines.

Las aplicaciones que más críticas son en este aspecto son normalmente videojuegos y las de diseño asistido por ordenador (CAD).

En la actualidad, cualquier ordenador de sobremesa que vaya a ser usado para estos fines requiere de una buena tarjeta gráfica (tarjeta donde el principal componente es la GPU, acompañada de memoria RAM dedicada y un puerto de comunicaciones, normalmente PCIExpress), la cuál además puede llegar a ser el componente más caro de la computadora.

Con la creciente demanda de mejora en calidad y realismo de los modelos 3D ha ido creciendo también la potencia gráfica de las GPUs y por consiguiente su consumo, siendo importante así disponer de una fuente de alimentación que sea capaz de alimentar a la vez toda la estación de trabajo/ocio.

En el mercado de procesadores gráficos nos encontramos con tres importantes fabricantes: Intel, Nvidia y AMD. Aunque Intel controle algo más del 50% de GPUs en el mercado, si descartamos las soluciones integradas (de bajo rendimiento) nos queda que el mercado se lo dividen las otras dos empresas. En el tercer trimestre de 2010 Nvidia lidera el mercado de sobremesa (58.80% contra 41%) mientras que en los portátiles es AMD quien destaca (61.90% contra 38.10%). En el mercado global están muy igualadas (Nvidia 49.60%, AMD 50.30%).

3Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 4: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

2. Historia

En los años 70 aparecieron los primeros procesadores gráficos. Prácticamente no tenían posibilidad de procesado gráfico más allá de posicionar imágenes en el espacio de la pantalla y control de modo texto y gráfico. El nombre de los primeros chips eran ANTIC y CTIA en las computadores de 8-bit de Atari.

Durante los 80s, el Commodore Amiga fue el primer ordenador (de amplio mercado) en incluir blitter (coprocesador que es capaz de hacer transferencias de bloques de datos con el fin de simular movimientos de imágenes) en su hardware de video. Por otro lado el 8514 de IBM fue la primera tarjeta gráfica en incluir primitivas 2D en hardware.

A lo largo de los 90s aparecieron nuevas APIs para variedad de tareas para ejecutar en las GPUs, como WinG para Windows 3.X y luego DirectDraw para los juegos en 2D de Windows 95. A mediado de los 90s comenzaron a aparecer tarjetas aceleradoras 3D. Al principio las que aparecían eran tarjetas sólo para dicha aceleración lo cual hacía desaparecer las mejoras 2D de las antiguas tarjetas. Luego comenzaron a aparecer chips donde integraban 2D, 3D y video en un único dado. También apareció en esta década OpenGL, una de las principales APIs usadas en la actualidad para programar funciones sobre la GPU. Pasado un tiempo Microsoft se acercó a los desarrolladores de hardware y comenzó a enfocarse en la publicación de versiones de DirectX, la otra API más usada hoy en día. También apareció en esta década la primera tarjeta en implementar T&L, una tarea que consiste en transformar un objeto tridimensional en una imagen 2D dibujando solo aquellos vértices visibles desde el punto del observador y el cálculo del color de cada píxel según la luz, la GeForce 256 (NV10) de Nvidia.

Desde el 2000 hasta la actualidad, con la mejora de OpenGL y DirextX, las GPUs han ido añadiendo funcionalidad a sus capacidades. Ahora cada píxel puede procesarse con un pequeño programa e incluso pintarlo con texturas, así como cada vértice puede modificarse con pequeñas tareas antes de proyectarse sobre la pantalla. La Nvidia GeForce 3 (NV20) fue la primera GPU en introducir funcionalidad programable. La ATI Radeon 9700 fue la primera en introducir soporte para bucles y operaciones en coma flotante complejas.

En la actualidad, el paralelismo de las GPUs está consiguiendo que para muchas aplicaciones se comience a usar a dichos coprocesadores en lugar de la CPU. Esta tendencia se conoce como GPGPU (General Purpose Computing on GPU) y se usa mucho para tratamiento digital de imágenes, álgebra lineal y estadística.

4Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 5: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Vertex Shading

Geometry Shading Rasterization Pixel/Fragment

Shading

3. Pipeline gráfico

La acción básica que realiza la GPU consiste en un conjunto de tareas que va desde la entrada de un modelo 3D hasta la generación de la imagen que se muestra en la pantalla. En general, esto es lo que hará la GPU siempre, por lo que es lógico que debido a su especialización, es un dispositivo optimizado para ello y por lo tanto llega a ser mucho más rápido que una CPU.

3.1 Vertex Shading

Comprenden el conjunto de funciones y tareas que tienen como fin modificar (y no crear) las propiedades de los Vertex (vértices) de los polígonos del modelo 3D. En general, modificará su posición y su luminosidad en función de la fuente de luz.

A continuación vamos a observar algunos efectos que se pueden conseguir en este punto del procesado.

a) Supongamos que tenemos como entrada, un cuadrado dibujado en el plano XY, y con un grosor (plano Z) despreciable, con la textura de la bandera de la UE.

5Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 6: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

b) Como primer procesado de vértices, para simular el viento, haremos que la posición de la bandera en el eje Z, forme un seno respecto a su posición en el eje X, formando como olas. (Pos.z  = sin( Pos.x+angle);).

c) Como vemos, esta simple operación, escrita en una línea, ya implica una gran cantidad de operaciones en coma flotante, ya que en realidad se realiza sobre cada uno de los vértices del modelo. Aunque ha quedado un efecto curioso, sería ideal que también ondulase en función del eje Y con otra frecuencia, por ejemplo la mitad. (Pos.z += sin( Pos.y/2+angle);).

6Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 7: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

d) Esta nueva modificación hace la bandera algo más realista. Por otro lado, da la sensación de estar suelta, pues se mueve igual por todo el cuerpo. Para arreglarlo, vamos a reducir los movimientos por el eje izquierdo, haciendo parecer que está amarrada a un mástil. (Pos.z *= Pos.x *0.09f;).

Si además, en las instrucciones vistas anteriormente, pusiésemos una dependencia temporal, podríamos generar movimiento.

3.2 Geometry Shading

Tiene como finalidad generar nuevos vértices para darle un orden más de realismo a la escena, sin necesidad de sobrecargar demasiado el procesado. La función más común que se usa es el Tessellation. En resumen, se trata de simplificar el modelo 3D, de forma que el proceso de Vertex Shading se haga ligero, por ejemplo, simplificando un camino empedrado, por un simple rectángulo en el suelo con una textura de piedras mapeado, para luego en el Geometry Shading generar su relieve.

7Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 8: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Si se intentase conseguir este mismo efecto, sin el Tessellation, la solución sería usar como modelo 3D directamente el suelo empedrado con todos los vértices que vemos en la imagen superior. Esto conllevaría a que el procesado de Vertex se hiciera más complejo, ya que se incrementaría (y mucho) su número. Es importante hacer notar, que solo sirve para dar relieve estático, ya que se lleva a cabo después del Vertex Shading (que es donde se pueden mover los vértices).

Supongamos que tenemos una cuerda colgando y balanceándose. Se podría generar los movimientos, suponiendo que la cuerda se comporta como un cilindro (pocos vértices), para luego darle el relieve de la trenza (que multiplicaría el cómputo).

Un ejemplo en vivo, alternando el tessellation podemos verlo en: http://www.youtube.com/watch?v=bkKtY2G3FbU.

8Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 9: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

3.3 Rasterization

Consiste en transformar el modelo 3D en una imagen mapeada sobre píxeles. En general este proceso se divide en dos partes:

Clipping (recorte)

Una vez que los vértices son transformados a sus localizaciones 2D previstas, algunas de esas localizaciones pueden quedar fuera de la ventana de visualización, o del área de la pantalla en la cual los pixeles pueden ser representados. Clipping es el proceso de cortar los polígonos de manera que ocupen el área visible.

Conversión de escaneo

El paso final en el proceso de rasterización tradicional es rellenar los polígonos 2D que ahora están en el plano de imagen. El primer problema a considerar es si dibujar o no un determinado píxel. Para que un píxel sea renderizado, este debe estar dentro de un triángulo y no debe estar oculto, o bloqueado por otro píxel. Hay varios algoritmos para rellenar los píxeles dentro de un triángulo, el más popular de ellos es el algoritmo de línea de escaneo. Al ser difícil saber si el motor de rasterización dibujará todos los píxeles de adelante hacia atrás tiene que haber alguna manera de asegurarse que los píxeles cerca del observador no están siendo superpuestos por píxeles más lejanos. Un z-buffer es la solución más común. El z-buffer es una disposición 2D que corresponde al plano de imagen que almacena un valor de profundidad para cada píxel. Cada vez que un píxel es dibujado, este actualiza el z-buffer con su valor de profundidad. Cada nuevo píxel debe verificar su valor de profundidad con el valor de z buffer antes de ser dibujado. Los píxeles más cercanos son dibujados mientras que los más lejanos son descartados.

3.4 Píxel Shading

La función de este último proceso es modificar el color de cada píxel. Para que esto sea útil, es importante conocer información que nos aportarán el Vertex Shader y Geometry Shader, como por ejemplo información de luminosidad y su dirección, o de texturas.

El píxel shader básicamente lo que hará es mapear una textura sobre la proyección 2D del modelo, y a su vez modificar dicho valor de color en función de su luminosidad, entre otros posibles efectos.

9Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 10: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

4. Arquitectura

Atendiendo al pipeline seguido en el proceso de renderizado (proceso de transformación del modelo 3D hasta conseguir la imagen representada en la pantalla) se pueden sacar varias conclusiones:

a) Segmentación: Existen diferentes etapas claramente diferenciadas en el proceso, por lo que es lógico que a nivel hardware también sean visibles en la arquitectura.

b) Paralelismo: Cada instrucción a ejecutar debe realizarse numerosas veces, para cada vértice o píxel, sin dependencia entre ellos, lo cual permite directamente paralelizar entre ellos. Este tipo de procesado se conoce como SIMD (Single Instruction Multiple Data), es decir, ejecutar una instrucción a un conjunto más o menos grande.

c) Coma flotante: En el procesado de vértices, existen transformaciones entre el modelo 3D y su proyección sobre el plano de visión. Recordando trigonometría esto implica multiplicación por senos y cosenos, los cuales trabajan con muchos decimales siendo necesario el uso de este tipo de operaciones. En el caso de píxeles ocurre igual con los efectos de luminosidad.

Antiguamente existían físicamente Vertex Processors y Pixel Processors, de forma que los valores entraban en la primera fase, y cuando se terminaban de ejecutar pasaban a la segunda, etc, formándose una ejecución lineal. Sin embargo en los “últimos tiempos” se ha visto que esto puede llegar a ser muy poco eficiente, debido a que existen casos en los que el proceso es muy exigente en el proceso de Vertex Shading (cuando hay una gran

10Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 11: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

cantidad de vértices) y otras en los que lo es en Pixel Shading. Es por esto que actualmente todas las GPUs hacen uso de bloques que ejecutan operaciones en coma flotante y son programables (en concreto realizan “a*b + c”, es decir, multiplicación y acumulación, en doble precisión), haciéndose llamar Unified Shaders. Estos bloques son reutilizables, y pueden ser usados para todos los anteriores shaders, generándose una ejecución circular.

Esta

tendencia puede observarse en la serie GeForce de Nvidia, observando la evolución desde la GF6800 a la GF8800:

11Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 12: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

5. Programación de la GPU

En sus comienzos, al igual que ocurría con las CPUs, las GPUs se programaban en lenguaje ensamblador. Aunque para las primeras aplicaciones de entorno gráfico esto era aceptable, con la modernización de los entornos gráficos y por supuesto de los videojuegos, esta opción se hace inviable. Es por ello que a lo largo del tiempo han ido apareciendo APIs para facilitar el trabajo a los desarrolladores. Este proceso ha ido en conjunto entre fabricantes y programadores, ya que tanto Nvidia como AMD (en su momento ATI) han ido mejorando sus productos con el fin de compatibilizar sus chips con las APIs usadas en el mercado.

Las librerías más usadas en este entorno son DirectX (en concreto una parte llamada Direct3D) y Open GL.

5.1 DirectX

12Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Ejecución lineal en la GeForce 6800

Ejecución circular en la GeForce 8800

Page 13: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Es la librería de funciones que Microsoft proporciona para facilitar la programación de videojuegos para la plataforma de Microsoft Windows. Está compuesta de diferentes APIs como por ejemplo:

Direct3D: utilizado para el procesamiento y la programación de gráficos en tres dimensiones (una de las más utilizadas de DirectX).

Direct Graphics: para dibujar imágenes en dos dimensiones y para representar imágenes en tres dimensiones.

DirectInput: para procesar datos del teclado, mouse, joystick y otros controles para juegos.

La más importante es Direct3D, la cual está disponible tanto en sistemas Windows de 32 y 64 bits como en Xbox y Xbox360.

En noviembre de 2008 se presentó la versión Direct3D 11 (correspondiente a DirectX 11), aunque llegó a los usuarios en 2009 con Windows 7. Su principal innovación fue una mejora en el tessellation. En su anterior versión, Direct3D 10, se añadieron los Geometry Shaders, y una función Stream Out, que permitía guardar los resultados de estos, para poder realizar tareas de varias pasadas. En Direct 3D 9, entre otras mejoras, se añadió una nueva versión del HLSL (High Level Shader Language), un lenguaje de alto nivel para la programación de shaders, muy similar a Cg (C for graphics) de Nvidia, ya que fueron desarrollados en conjunto.

5.2 OpenGL

Esta otra API (Open Graphics Library) es un estándar abierto y multiplataforma. Fue desarrollado por Silicon Graphics Inc (SGI) en 1992, y se usa ampliamente en ámbitos profesionales como pueden ser CAD, películas de animación, simulación de vuelo, etc. En el ámbito de los videojuegos también compite con Direct3D, aunque es la clara perdedora en este aspecto. En este aspecto se puede afirmar que Microsoft ha hecho todo lo posible para divulgar Direct3D, donde la salida de Xbox y Xbox360 haciendo uso de esta API y facilitando por ello la portabilidad a PC ha sido un duro golpe a OpenGL.

Por otro lado, OpenGL tiene la ventaja de ser multiplataforma, es decir, que cualquier código hecho con esta API podrá ser portada de Windows a sistemas basados en Unix como pueden ser GNU/Linux, Open Solaris o Mac OS X.

Otra ventaja es su mecanismo de extensiones, permitiendo a cada driver añadir funcionalidades que periódicamente son estandarizadas por la ARB (OpenGL Architecture Review Board). Direct3D sin embargo es un sistema más cerrado y también más estable.

OpenGL también tiene su propio lenguaje estándar de alto nivel para la programación de shaders, llamado GLSL (OpenGL Shadin Language). Además el lenguaje Cg de Nvidia puede compilarse sobre OpenGL.

13Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 14: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

6. GPGPU

Una de las nuevas tendencias en el mundillo de las GPUs es lo que se conoce como General Purpose Computing on GPU, es decir, hacer uso de la relativamente nueva programabilidad que permiten los shaders de los nuevos chips para realizar procesos que no tienen por qué ser procesado gráfico. Para aplicaciones científicas o de simulación, este tipo de programación es de mucha utilidad gracias al paralelismo de las GPUs.

Antiguamente, este tipo de usos se hacía en lenguaje ensamblador, o en programas de alto nivel diseñados para procesado gráfico como son HLSL, GLSL o Cg. Sin embargo, recientemente han aparecido herramientas específicas para la programación de GPUs para propósito general, alejando al programador de detalles relacionados con los gráficos y presentando una interfaz de más alto nivel.

Una de las herramientas más utilizadas es BrookGPU, desarrollada por la Universidad de Stanford, que consiste en una extensión de ANSI C.

Aunque es posible que cualquier aplicación ejecutada en una CPU puede ejecutarse en una GPU, debido a sus grandes diferencias arquitecturales, no todas van a aprovecharse de las ventajas de los chips gráficos. Las CPUs están hechos para poder acceder a memoria en cualquier dirección, facilitando así la declaración de estructuras de datos complejas y el uso intensivo de punteros. En las GPUs, se aprovechan los recursos hardware de forma que los Unified Shaders se usan como bloques para ejecutar las operaciones, las Texture Unit de donde se leen las texturas se usarán para leer los datos a procesar y el Framebuffer como interfaz de salida.

Con el creciendo uso de este tipo de aplicaciones los fabricantes no se han quedado esperando y Nvidia ha desarrollado no solo un compilador, sino un conjunto de herramientas bajo el nombre de CUDA (Compute Unified Device Architecture) para este fin. Aunque está preparado para la programación en C, con el uso de ciertos adaptadores, se pueden compilar aplicaciones escritas en Python, Perl, Fortran, Java, Ruby, Lua, MATLAB y IDL.

En el otro lado, AMD también tiene su herramienta ATI Stream. Sin embargo su lanzamiento fue acompañado de varios errores y retrasos, viendo la luz en diciembre de 2008, dando casi dos años de ventaja a sus competidores, que ya tenía su SDK preparado en febrero de 2007.

Está claro que es muy importante el soporte que están dando a este tipo de implementaciones ambos fabricantes, ya que cada vez más, todo tipo de aplicaciones hace uso de las GPUs para pequeñas tareas para las que le es rentable. Sin ir más lejos, los navegadores web ya han hecho oficial que en sus nuevas publicaciones (Google Chrome 7, Mozilla Firefox 4 y Internet Explorer 9) harán uso de aceleración GPU.

14Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 15: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

7. Nvidia

Existen varias series de gráficas de Nvidia (Tesla, Quadro, GoForce,…), sin embargo la más utilizada, la de uso doméstico para PCs de sobremesa es la GeForce. Sus últimos modelos en el mercado son la GeForce GTX 570 y la GeForce GTX 580. La diferencia entre ellas radica en la velocidad, el número de cores y el ancho de banda de memoria, ya que las tecnologías que usa son la misma al haber salido a la vez.

15Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

GeForce GTX 570

Page 16: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Como puede observarse, con la nueva política de la GPGPU, ya no se hace alusión al número de Unified Shaders de la GPU, sino que directamente se habla de CUDA Cores, ya que pueden usarse para otros fines que el procesado gráfico.

Además de las especificaciones técnicas, Nvidia también ha ido añadiendo diferentes tecnologías a sus tarjetas gráficas. Algunas de las que podemos encontrar en las últimas son:

Soporte para DirectX11: No hay nada que explicar, más que es capaz de ejecutar programas escritos con la última librería de Microsoft que fue lanzada junto a Windows 7.

Tecnología NVIDIA PhysX: Es un kit de desarrollo para llevar a cabo cálculos físicos complejos como explosiones, polvo, movimientos de personajes, etc.

NVIDIA 3D Vision Ready: Como se puede suponer del nombre, trae la visión estereoscópica al PC. Puesto que el procesado gráfico parte de un modelo 3D, es posible generar dos imágenes al rasterizar en lugar de una, usando dos observadores y poder así generar el efecto de profundidad.

NVIDIA Surround: Tecnología que permite conectar varias pantallas y hacerlas funcionar como una única de resolución mayor.

Tecnología NVIDIA SLI: Permite usar varias tarjetas en paralelo, conectadas entre sí por su puerto SLI aumentando el rendimiento.

Tecnología NVIDIA CUDA: La tecnología de Nvidia para la GPGPU gracias a la reciente programabilidad de los shaders.

Tecnología antialiasing 32x: Se trata de una tecnología avanzada para evitar los bordes dentados que suelen aparecer en el renderizado de 3D.

Tecnología NVIDIA PureVideo HD: Para descargar aún más el coste computacional sobre la CPU, los fabricantes de tarjetas gráficas han añadido decodificadores hardware en sus dispositivos de una gran cantidad de códecs de vídeo. Esto sumado a funciones de postprocesado incluido en sus drivers permiten tener un auténtico reproductor multimedia casi sin que la CPU se dé cuenta.

Soporte de PCI Express 2.0: Es algo básico que un gran cuello de botella se produce en cada comunicación que la GPU tenga que hacer con algo que esté fuera de la su placa, por lo que cualquier mejora en el bus de interconexionado es bien recibida en este aspecto.

Doble conexión DVI Dual Link: Para poder conectar a las pantallas de mayor resolución del mercado es necesaria una conexión DVI Dual Link.

16Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 17: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Compatibilidad con HDMI 1.4a: Es la interfaz de audio y vídeo digital que más se utiliza hoy en día para la conexión con cualquier aparato multimedia (reproductor Blu-Ray, sintonizador TDT, etc.).

8. AMD

Hasta octubre de 2006, el principal competidor de Nvidia era ATI, sin embargo fue comprada ese mes por AMD. Aunque hasta ahora todos los nuevos modelos de GPUs seguían guardando el nombre de ATI, su comprador ya lo ha eliminado en sus dos últimos modelos.

Entre las distintas series de tarjetas gráficas (ATI Radeon E, ATI FirePro, etc.) la destinada al mercado doméstico es la serie Radeon HD. Los dos últimos modelos que han presentado son la AMD Radeon HD 6850 y la AMD Radeon HD 6870.

Puede observarse que el número de cores es muchísimo mayor (el doble) en las tarjetas de AMD que en las de Nvidia, sin embargo, esta ventaja en número no se traduce directamente en una ventaja en la eficiencia, debido a la diferencia en las arquitecturas.

17Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 18: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

Al igual que hace Nvidia, AMD también introduce un gran número de tecnologías en sus tarjetas para ofrecer un mayor número de servicios. Algunos son:

Gráficos Eye-Definition: Incluye el soporte para la librería DirectX 11, siendo estas la segunda serie de tarjetas gráficas que lo soporta.

Tecnología de varias pantallas Eyefinity de AMD: El equivalente a NVIDIA Surround para conectar varias pantallas.

Aceleración visual EyeSpeed de AMD: El equivalente a NVIDIA PureVideo, para decodificar en hardware la mayoría de códecs de vídeo.

Tecnología HD3D de AMD: Equivalente al NVIDIA 3D Vision, permitiendo generar imágenes estereoscópicas.

Tecnología para varias GPUs CrossFireX de AMD: Equivalente al NVIDIA SLI, para unir varias tarjetas gráficas para hacerlas trabajar en paralelo.

Compatible con pantallas integradas de última tecnología: Salidas HDMI 1.4a y DVI Dual Link.

Teconlogía de gestión de energía PowerPlay de AMD: Uso eficiente de la energía para un menor consumo. Aunque es verdad que Nvidia tiene su propia

tecnología equivalente ATI es famosa por consumir, en general, menos energía que las tarjetas de Nvidia.

18Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 19: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

9. Benchmarks

Para comparar GPUs también hay diferentes formas de hacerlo. Una forma, es calcular el máximo número teórico de operaciones en coma flotante que puede realizar cada una. Esta medida describe directamente la potencia computacional de cada tarjeta, pero no tiene en cuenta todas las condiciones arquitecturales como pueden ser los retardos en la lectura/escritura o los cores desaprovechados que no llegan a usarse eficientemente. Esta medida se mide en FLOPS (Floating Operations per Second):

GPU GTX 580 GTX 570 HD 6870 HD 6850 Intel Core i7 920GFLOPS 1581 1405 2016 1488 70

Estas medidas sin embargo se alejan de la realidad, ya que es un máximo ideal que no se alcanza en el uso corriente de la GPU. Es por esto que aparecen los Benchmarks que ya nos encontrábamos en las CPUs. En general hay dos tipos, los que se hacen expresamente para medir la potencia de las tarjetas gráficas, y las que miden su capacidad usándolas sobre aplicaciones reales, en general, videojuegos.

Uno de los Benchmarks sintéticos más utilizados es el 3DMark Vantage (3DMark para DirectX 10), que da una puntuación proporcional a su rendimiento. Sin embargo, como todos los Benchmarks sintéticos, es un valor orientativo y que en algunos casos no se acerca a la realidad. Aquí podemos ver una gráfica comparando los cuatro modelos que se han presentado.

19Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 20: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

GTX 580

GTX 570

RADEON HD 6870

RADEON HD 6850

29605

26175

18372

15174

13334

11372

7794

6186

ExtremePerformance

3DMark Vantage

Los otros Benchmarks más usados son básicamente los videojuegos del mercado. Como medida de rendimiento se usa el número de cuadros (imágenes) que son capaces de generar por segundo (FPS). Es importante para todas estas medidas usar el mismo “banco de pruebas”, es decir, que se use la misma placa base, procesador, memoria, etc.

Un primer ejemplo se ha realizado para el juego Resident Evil 5, que trabaja con DirectX 10:

GTX 580

GTX 570

RADEON HD 6870

RADEON HD 6850

124.9

112.8

94.7

83

151.3

137.8

104.6

90.7

146.9

134.5

107.8

94.3

152.1

150.4

119.7

104.1

151.2

150.3

123

108.9

152.1

152.4

135.9

119.9

1440x9001440x900 (8xAA)1680x10501680x1050 (8xAA)1920x12001920x1200 (8x AA)

Resident Evil 5 (FPS)

En general puede observarse que las nuevas tarjetas de Nvidia superan con creces a las de AMD. Sin embargo, también puede observarse que incluso la peor de las GPUs, supera

20Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 21: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

con creces los 30 FPS necesarios para jugar con normalidad. En general podemos decir que las tarjetas están sobredimensionadas para este juego.

Ahora haremos el mismo estudio para un videojuego de este año (febrero de 2010), y que usa DirectX 11: Aliens vs. Predator.

GTX 580

GTX 570

RADEON HD 6870

RADEON HD 6850

108.9

94.1

74.4

61.6

86.9

74.9

58.8

48.5

70.6

60.8

47.4

38.9

63.3

55.8

43.6

35.4

52.7

44.3

33.2

28.2

43

35.9

27.1

23.1

1920x1200 (4x AA y 16x AF)1680x1050 (4xAA y 16x AF)1440x900 (4xAA y 16x AF)1920x12001680x10501440x900

Aliens vs. Predator (FPS)

Como puede observarse, sigue observándose la diferencia de rendimiento entre las tarjetas de Nvidia y las de AMD. Además, en este caso, vemos que a la máxima resolución, con los filtros de Anti-aliasing y Anisotrópico, los FPS alcanzan puntos en los que no se podrá jugar. Hay que tener en cuenta que aquí se muestra el valor medio, pero en función de lo que se esté procesando en cada momento, ese valor puede reducirse o incrementarse (no es lo mismo una escena en una calle, que en una selva, o donde algo explote).

En conclusión podemos ver que claramente las tarjetas de Nvidia son superiores en todos los sentidos a las nuevas de AMD. Por otro lado, cabe destacar que de la serie RADEON HD 6XXX aún quedan por salir varios modelos de gama superior y que podrán igualar o superar a las GTX 5XX.

21Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 22: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

10. Bibliografía

[1] Nvidia (n.d.). GeForce GTX 580. Obtenida en diciembre de 2010, http://www.nvidia.es/object/product-geforce-gtx-580-es.html

[2] Nvidia (n. d.). GeForce GTX 570. Obtenida en diciembre de 2010, http://www.nvidia.es/object/product-geforce-gtx-570-es.html

[3] AMD (n. d.). Tarjeta Gráfica ATI Radeon HD 6870. Obtenida en diciembre de 2010, http://www.amd.com/es/products/desktop/graphics/amd-radeon-hd-6000/hd-6870/Pages/amd-radeon-hd-6870-overview.aspx

[4] AMD (n. d.). Tarjeta Gráfica ATI Radeon HD 6850. Obtenida en diciembre de 2010, http://www.amd.com/es/products/desktop/graphics/amd-radeon-hd-6000/hd-6850/Pages/amd-radeon-hd-6850-overview.aspx

[5] X-bit labs (n. d.). “ATI Maintains Lead on Discrete GPU Market”. Obtenida en diciembre de 2010, http://www.xbitlabs.com/news/video/display/20101027211059_ATI_Maintains_Lead_on_Discrete_GPU_Market_Mercury_Research.html

[6] Ditchburn, K. (n. d.). “Vertex Shaders”. Obtenida en diciembre de 2010, http://www.toymaker.info/Games/html/vertex_shaders.html

[7] Ditchburn, K. (n. d.). “Pixel Shaders”. Obtenida en diciembre de 2010, http://www.toymaker.info/Games/html/pixel_shaders.html

[8] Medvedev, A. (n. d.). “Matrox Parhelia-512”. Obtenida en diciembre de 2010, http://ixbtlabs.com/articles/matroxparhelia512/

[9] WhisKiTo (abril de 2010). “Tessellation o teselado, una nueva tecnología para aportar realismo al mundo 3D digital”. Obtenida en diciembre de 2010, http://www.xataka.com/otros/tessellation-o-teselado-una-nueva-tecnologia-para-aportar-realismo-al-mundo-3d-digital

[10] Triolet, D. (noviembre de 2010). “Dossier: Nvidia GeForce GTX 580 & SLI”. Obtenida en diciembre de 2010, http://www.hardware.fr/articles/806-2/dossier-nvidia-geforce-gtx-580-sli.html

[11] Triolet, D. (diciembre de 2010). “Dossier: Nvidia GeForce GTX 570”. Obtenida en diciembre de 2010, http://www.hardware.fr/articles/811-2/dossier-nvidia-geforce-gtx-570.html

[12] Veciana, F (noviembre de 2010). “Artículo: NVIDIA GeForce GTX 580”. Obtenida en diciembre de 2010, http://www.noticias3d.com/articulo.asp?idarticulo=1348&pag=1

[13] Veciana, F (diciembre de 2010). “Artículo: NVIDIA GeForce GTX 570”. Obtenida en diciembre de 2010, http://www.noticias3d.com/articulo.asp?idarticulo=1361&pag=1

[14] Veciana, F (octubre de 2010). “Artículo: HIS AMD Radeon HD 6870 en CrossFireX”. Obtenida en diciembre de 2010, http://www.noticias3d.com/articulo.asp?idarticulo=1343&pag=1

[15] Veciana, F (octubre de 2010). “Artículo: HD 6850 Vs HD 5770, HD 5830 y GTX 460 1GB”. Obtenida en diciembre de 2010, http://www.noticias3d.com/articulo.asp?idarticulo=1341&pag=1

[16] Wikipedia (n. d.). “Graphics processing unit”. Obtenida en diciembre de 2010, http://en.wikipedia.org/wiki/Graphics_processing_unit

22Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC

Page 23: Graphics Processing Units (GPUs) - IUMA - ULPGCnunez/clases-micros-para-com/m… · Web viewGraphics Processing Units (GPUs)ETSIT - ULPGC01/11/2010Omar Espino SantanaBreve descripción

[17] Wikipedia (n. d.). “Rendering (computer graphics)”. Obtenida en diciembre de 2010, http://en.wikipedia.org/wiki/Rendering_(computer_graphics)

[18] Wikipedia (n. d.). “Graphics pipeline”. Obtenida en diciembre de 2010, http://en.wikipedia.org/wiki/Graphics_pipeline

[19] Wikipedia (n. d.). “Rasterisation”. Obtenida en diciembre de 2010, http://en.wikipedia.org/wiki/Rasterisation

23Graphics Processing Units (GPUs) – Microprocesadores para Comunicaciones - ULPGC