La unidad de procesamiento grfico o GPU (acrnimo del ingls graphics processing
unit) es un coprocesador dedicado al procesamiento de grficos u operaciones de coma flotante, para aligerar la carga de trabajo del procesador central en aplicaciones como los videojuegos y o aplicaciones 3D interactivas. De esta forma, mientras gran parte de lo relacionado con los grficos se procesa en la GPU, la unidad central de procesamiento (CPU) puede dedicarse a otro tipo de clculos (como la inteligencia artificial o los clculosmecnicos en el caso de los videojuegos) Una unidad de procesamiento grfico (GPU), tambin a veces llamado unidad de procesamiento visual (VPU), es un organismo especializado del circuito electrnico diseado para manipular rpidamente y alterar la memoria para acelerar la creacin de imgenes en una memoria intermedia de trama destinada a la salida a una pantalla zado por Nvidia en 1999, que comercializa la GeForce 256 como "primera" GPU "del mundo, o unidad de procesamiento grfico, un procesador de un solo chip integrado con la transformacin, la iluminacin, la configuracin de tringulos / recorte, y motores de renderizado que son capaz de procesar un mnimo de 10 millones de polgonos por segundo Diferencias con la CPU[editar] Si bien en un computador genrico no es posible reemplazar la CPU por una GPU, hoy en da las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua (ms de 500MHz). Pero la potencia de las GPU y su veloz ritmo de desarrollo reciente se deben a dos factores diferentes. El primer factor es la alta especializacin de las GPU, ya que al estar pensadas para desarrollar una sola tarea, es posible dedicar ms silicio en su diseo para llevar a cabo esa tarea ms eficientemente. Por ejemplo, las GPU actuales estn optimizadas para clculo con valores en coma flotante, predominantes en los grficos 3D. Por otro lado, muchas aplicaciones grficas conllevan un alto grado de paralelismo inherente, al ser sus unidades fundamentales de clculo (vrtices y pxeles) completamente independientes. Por tanto, es una buena estrategia usar la fuerza bruta en las GPU para completar ms clculos en el mismo tiempo. Los modelos actuales de GPU suelen tener cientos de procesadores shader unificados que son capaces de actuar como vertex shaders, y como pixel shaders, o fragment shaders. De este modo, una frecuencia de reloj de unos 600 MHz-1 GHz (el estndar hoy en da en las GPU de ms potencia), es muy baja en comparacin con lo ofrecido por las CPU (3,8-4 GHz en los modelos ms potentes, no necesariamente ms eficientes), se traduce en una potencia de clculo mucho mayor gracias a su arquitectura en paralelo. Una de las mayores diferencias con la CPU estriba en su arquitectura. A diferencia del procesador central, que tiene una arquitectura de von Neumann, la GPU se basa en el Modelo Circulante. Este modelo facilita el procesamiento en paralelo, y la gran segmentacin que posee la GPU para sus tareas Arquitectura de la GPU[editar] Una GPU est altamente segmentada, lo que indica que posee gran cantidad de unidades funcionales. Estas unidades funcionales se pueden dividir principalmente en dos: aqullas que procesan vrtices, y aqullas que procesan pxeles. Por tanto, se establecen el vrtice y el pxel como las principales unidades que maneja la GPU. Adicionalmente, y no con menos importancia, se encuentra la memoria. sta destaca por su rapidez, y va a jugar un papel relevante a la hora de almacenar los resultados intermedios de las operaciones y las texturas que se utilicen. Inicialmente, a la GPU le llega la informacin de la CPU en forma de vrtices. El primer tratamiento que reciben estos vrtices se realiza en el vertex shader. Aqu se realizan transformaciones como la rotacin o el movimiento de las figuras. Tras esto, se define la parte de estos vrtices que se va a ver (clipping), y los vrtices se transforman en pxeles mediante el proceso de rasterizacin. Estas etapas no poseen una carga relevante para la GPU. Donde s se encuentra el principal cuello de botella del chip grfico es en el siguiente paso: el pixel shader. Aqu se realizan las transformaciones referentes a los pxeles, tales como la aplicacin de texturas. Cuando se ha realizado todo esto, y antes de almacenar los pxeles en la cach, se aplican algunos efectos como el antialiasing, blending y el efecto niebla. Otras unidades funcionales llamadas ROP toman la informacin guardada en la cach y preparan los pxeles para su visualizacin. Tambin pueden encargarse de aplicar algunos efectos. Tras esto, se almacena la salida en el frame buffer. Ahora hay dos opciones: o tomar directamente estos pxeles para su representacin en un monitor digital, o generar una seal analgica a partir de ellos, para monitores analgicos. Si es este ltimo caso, han de pasar por un DAC, Digital-Analog Converter, para ser finalmente mostrados en pantalla. Programacin de la GPU[editar] Al inicio, la programacin de la GPU se realizaba con llamadas a servicios de interrupcin de la BIOS. Tras esto, la programacin de la GPU se empez a hacer en el lenguaje ensamblador especfico a cada modelo. Posteriormente, se introdujo un nivel ms entre el hardware y el software, con la creacin de interfaces de programacin de aplicaciones(API) especficas para grficos, que proporcionaron un lenguaje ms homogneo para los modelos existentes en el mercado. La primera API usada ampliamente fue el estndar abierto OpenGL (Open Graphics Language), tras el cual Microsoft desarroll DirectX. Tras el desarrollo de API, se decidi crear un lenguaje ms natural y cercano al programador. CMO SE ACELERAN LAS APLICACIONES CON LAS GPUS El clculo acelerado en la GPU ofrece un rendimiento sin precedentes ya que traslada las partes de la aplicacin con mayor carga computacional a la GPU y deja el resto del cdigo ejecutndose en la CPU. Desde la perspectiva del usuario, las aplicaciones simplemente se ejecutan ms rpido.
LA CPU FRENTE A GPU Una forma sencilla de entender la diferencia entre la CPU y la GPU es comparar la forma en que procesan las tareas. Una CPU consta de unos cuantos ncleos optimizados para el procesamiento secuencial de las instrucciones, mientras que la GPU se compone de miles de ncleos, ms pequeos y eficientes, diseados para manejar mltiples tareas de forma simultnea.
Las GPUs poseen miles de ncleos que procesan las cargas de trabajo de forma paralela y muy eficiente.
La era pre-GPU Las cosas han cambiado mucho desde que los ordenadores domsticos empezaron a implantarse en nuestros hogares, all por la dcada de los 80. El hardware se sustenta sobre las mismas bases de la arquitectura von Neumann, si bien sta ha evolucionado de forma muy notable y los sistemas actuales son ahora mucho ms complejos. Arquitectura de Von Neumann (va Wikipedia) El tro de componentes que plante John von Neumann eran tres: ALU, memoria y entrada/salida, refirindose a mecanismos que procesan, almacenan y reciben/envan la informacin, respectivamente. Interpretando la arquitectura en un equipo actual equivaldra a tener slo un procesador, un disco, un teclado y una pantalla. Evidentemente un sistema moderno est formado por muchos ms elementos, y entre ellos la tarjeta grfica se ha convertido en uno de los actuales componentes fundamentales. Los orgenes En los primeros ordenadores el procesador central CPU, central processing unit era el encargado de gestionar y procesar todo tipo de informacin. Desde los datos que el usuario quera operar hasta por supuesto el sistema operativo, y con l su interfaz. Si bien aquellos primeros sistemas utilizaban interfaces basadas en texto, con la llegada de las primeras interfaces grficas el nivel de exigencia creci no slo en el propio sistema operativo, si no tambin en muchas de las aplicaciones que empezaban a surgir por la poca. Programas CAD o videojuegos, por ejemplo, requeran muchos ms recursos para funcionar correctamente. Llegados a este punto, los diseadores de sistemas se basaron en un componente que ya exista para evolucionarlo y hacerlo crecer. Los coprocesadores matemticos o FPU floating-point unit eran utilizados en muchos sistemas para acelerar el procesamiento de datos. Pueden entenderse como un segundo procesador, si bien algunas de las diferencias respecto de las CPU son muy claras: no pueden tener acceso a los datos directamente (debe ser la CPU la que gestione este apartado) o ejecutan un juego de instrucciones mucho ms sencillo pensado para tratar datos en coma flotante. CPU Intel 386 y coprocesador Intel 387 (va Wikipedia) La definicin de procesador de propsito general ya la habamos utilizado anteriormente. Este tipo de procesadores son los ms comunes y la CPU es el ejemplo ms habitual. Utilizan registros y juegos de instrucciones genricos que pueden hacer operaciones de lo ms diverso. Un dato importante para el tema que vamos a tratar es que las CPU no operaban directamente con datos en punto flotante, si no que realizaban una conversin previa que implicaba un gasto en recursos y, por tanto, tiempo. Por ello, los coprocesadores matemticos eran importantes ya que ellos s podan procesar este tipo de datos. Los coprocesadores matemticos fueron el punto de partida para, aos ms tarde, el nacimiento de las GPU Con la llegada de las por entonces nuevas interfaces se vio que muchas de las operaciones grficas que procesaba la CPU se podan plantear como operaciones de punto flotante. La pantalla es, al fin y al cabo, una matriz de NxM pxeles en la que cada uno de ellos requiere de una alta carga matemtica para generar el color concreto a mostrar en cada momento. Varias operaciones por segundo para cada pxel, y varios miles para procesar todos los pxeles de la pantalla. Las exigencias continuaron creciendo, y los sistemas de la poca disponan de CPU y una FPUoptativa que termin convirtindose en fundamental: los coprocesadores matemticos evolucionaron hacia las GPU, al ser el componente ms eficiente a la hora de procesar y determinar el aspecto grfico de todo tipo de software. Las primeras tarjetas grficas Los coprocesadores matemticos siguieron evolucionando y mejorando, y empezaron a montarse en tarjetas individuales. Mediante este formato podan disponer de un mayor espacio para crear chips ms grandes, con ms transistores y circuitera y mejores conexiones energticas, que eran capaces de ofrecer una mayor capacidad de proceso. NVidia GeForce 256 en su anlisis en AnandTech en 1.999 No fue hasta 1.999 cuando NVidia acu el trmino GPU, Graphics Processing Unit, para sustituir a las anteriores tarjetas de vdeo. Tras unas exitosas RIVA TNT2 presentaron la NVidia GeForce 256, y para promocionarla pusieron gran nfasis en las posibilidades grficas que aportaba a nuestro equipo. Los videojuegos, ganando cada vez ms adeptos, fueron una de las claves para que los diseadores de las GPU fueran incrementando su rendimiento ao tras ao. Ms unidades de proceso que CPU, pero ms sencillas: la arquitectura de las GPU Los coprocesadores primero y las tarjetas grficas despus plantearon una arquitectura hardware muy diferente de las utilizadas en las CPU. Nos olvidamos de la conocida x86 ya que los requisitos eran diferentes (operaban diferentes tipos de datos y la salida de los resultados era el monitor, no la memoria), y por ello el diseo deba ser otro. Arquitectura Kepler de NVidia En una GPU tambin tendremos unidades de proceso (tradicionalmente Unified Shaders o Stream Processors), memoria (que hace las veces de memoria RAM, como un sistema de almacenamiento temporal para apoyar al procesamiento de los datos) y entrada/salida. Las GPU tambin tienen sus propias libreras (las ms conocidas son OpenGL y DirectX) para que los desarrolladores programen el software. Una GPU contiene cientos o miles de pequeos procesadores, con lo que su potencial para procesar algoritmos paralelos es muy superior al de unaCPU Un aspecto fundamental de las actuales GPU son esos Unified Shaders, los pequeos procesadores. Estos son muy sencillos (ejecutan un conjunto de instrucciones muy concreto que realizan operaciones aritmticas bsicas) pero su crecimiento en cantidad en cada nueva generacin es significativo: la GeForce 256 de 1.999 tena un total de 4, mientras en las actuales tarjetas grficas lo habitual es encontrarnos con entre 1.000 y 4.000, aproximadamente. Por ejemplo, NVidia GTX 780 Titiene 2.688 Unified Shaders y AMD 7990 sube la apuesta a 4.096 (a razn de 2.048 para cada uno de sus dos ncleos). Estos Unified Shaders son los que procesan la informacin grfica, y a priori cuantos ms tengamos ser mejor para la capacidad de proceso de la GPU. Este factor es importante en videojuegos, pero fundamental para uno de los usos que ms estn creciendo en los ltimos aos: GPGPU, General-purpose computing on graphics processing units. GPGPU, presente y futuro de la computacin Los sistemas crecen, pero lo hacen debido a lo que tanto los desarrolladores como los usuarios finales van exigiendo. Los videojuegos y su calidad grfica son la prueba ms palpable de este incremento en las capacidades de proceso, pero el uso que le damos a las GPU tambin ha cambiado para adaptarse a otras posibilidades. SLI de dos NVidia GTX 690 GPGPU es el trmino que se utiliza para designar las tareas de propsito general, tpicamente pensadas para ser procesadas en una CPU, pero que se aprovechan del potencial de la GPUpara ejecutarse en ella. Dado que los procesadores grficos son mucho ms eficientes en cierto tipo de operaciones, los resultados se obtendrn ms rpidamente. El problema de la GPGPU es precisamente que no todas las tareas tienen que ser ms eficientes en una GPU. stas estn especializadas en tareas altamente paralelizables cuyos algoritmos puedan subdividirse, procesarse por separado para luego unir los subresultados y tener el resultado final. Tpicamente son problemas cientficos, matemticos o simulaciones (este tema ya lo tratamos ennuestra entrevista a Manuel Ujaldn), aunque un ejemplo mucho ms popular es la problemtica deminar Bitcoins. GPGPU consiste en ejecutar procesos tpicamente orientados a la CPU, pero en la GPU Los bitcoins se han ganado la confianza de muchos al ser dinero relativamente fcil de ganar. Para un usuario final, la tarea para conseguir un bitcoin (o una fraccin suya) es tan sencilla como ejecutar un programa y esperar. Dependiendo de la capacidad de nuestro ordenador tardar ms o menos, y podremos obtener beneficios dependiendo del consumo energtico del equipo. Al fin y al cabo es un problema con base econmica, donde los beneficios finales dependern de los ingresos (los bitcoinsganados) menos los gastos (energticos y de tiempo invertido). Lo que en este caso nos interesa de los bitcoins es la ciencia que hay detrs de ellos. Se trata de unproblema criptogrfico que hace uso del algoritmo SHA-256. El usuario tendr que ejecutar este algoritmo sobre mltiples cadenas alfanumricas de forma repetida hasta que el resultado sobre una de ellas sea vlido, y entonces ganar una fraccin de bitcoin. A la vista de que minar bitcoins es una tarea altamente paralelizable y basada en operaciones matemticas bsicas (el algoritmo SHA-256 es pblico y puede consultarse en Wikipedia; podemos dedicar los ncleos de la GPU para procesar varias cadenas simultneamente), su clculo a travs deGPGPU es la mejor opcin existente. Existen mltiples manuales, tutoriales y documentos sobre cmo montar un buen equipo para bitmining, todos ellos basados en los siguientes principios: Hacer uso de una muy CPU bsica, si puede ser de tipo ULV Ultra Low Voltage mejor. No ms de 2 o 4 GB de memoria RAM. Un dispositivo de almacenamiento de pequeas dimensiones. Si puede ser SSD para ahorrar energa, mejor. Una configuracin de varias tarjetas grficas para usar en GPGPU. Tpicamente se utiliza CrossFire X de AMD. Una buena fuente de alimentacin, importante para dotar de energa a tres o cuatro tarjetas grficas simultneamente. Por qu AMD? La razn para ello es bastante sencilla: disponen de un mayor nmero de Stream Processors, de forma que pueden procesar mayor cantidad de informacin simultneamente. Una parte del MareNostrum, el supercomputador del BSC A priori podemos pensar que cuanto ms potente sea una GPU ser mejor para nuestros intereses. Sin embargo, existe una clave fundamental que es el consumo energtico, algo que no solemos tener en cuenta pero que es imprescindible a la hora de determinar los beneficios finales. Tened en cuenta que un equipo de varias GPU trabajando simultneamente puede alcanzar una potencia cercana a los 1.000 vatios que, operando las 24 horas del da, supondr un fuerte desembolso econmico. Las grficas en el entorno domstico Ya hemos mencionado que el mundo de los videojuegos es el principal impulsor de la potencia de las tarjetas grficas actuales. Sin embargo, en los ltimos aos estamos viviendo un importante cambio de rumbo que va a seguir afectando y cambiando el sector durante los prximos aos. Son las GPUintegradas o IGP (Integrated Graphics Processor), ya existentes en las CPU tanto de Intel como deAMD en prcticamente todas sus gamas.
Las IGP nacen tras un estancamiento de los requisitos grficos del software y por el crecimiento del ecosistema Web: pginas y juegos a travs de un navegador. A da de hoy slo los juegos ms exigentes y cierto software profesional requieren el uso de una tarjeta grfica dedicada que, si bien es significativamente ms potente que una IGP, sta ltima ofrece un rendimiento suficiente para tareas cotidianas. En otras palabras: sistema operativo, navegador web, ofimtica o software de gestin son aplicaciones cuya carga grfica es muy baja, y no es necesario tener una dedicada para disfrutar de una buena experiencia en su uso. Una IGP ser suficiente. Como referencia vamos a remitirnos a uno de los anlisis que hemos realizado en un ordenador porttil. Por ejemplo el del Alienware 14 que publicamos el pasado mes de octubre, y donde realizamos una comparativa con el potencial de su chip grfico dedicado (NVidia GTX 765M) e integrado (Intel HD Graphics 4600), ambos de gama media. Los resultados al completo los podis leer en el artculo de anlisis, y aqu nos limitaremos a resumir aquellos datos. Teniendo en cuenta el rendimiento de ambos chips grficos en videojuegos los resultados muestran una media del 410% ms de rendimiento a favor de la NVidia. Con los grficos integrados Intel la experiencia en esos juegos es pauprrima (en la mayora de los casos por debajo de los 30 fps, el lmite entre buena y mala experiencia), pero el uso del sistema operativo, navegador y aplicaciones bsicas es excelente y no difiere en nada de lo que nos encontramos con la grfica NVidia. La tendencia de las IGP es seguir evolucionando, ofrecer un rendimiento creciente en cada nueva generacin e incluso robarle algo de protagonismo a los grficos dedicados en los juegos ms punteros. Las tarjetas grficas dedicadas seguirn existiendo, pero quedarn cada vez ms relegadas a su uso en videojuegos muy punteros, a aplicaciones de corte profesional y para los que busquen la mejor experiencia existente.
Estas IGP son muy interesantes para el usuario medio, pero traen consigo ciertas ventajas y desventajas. A saber: Ventajas: menor consumo general, menor temperatura de funcionamiento general, potencia creciente y cada vez ms representativa, menor espacio fsico ocupado. Desventajas: est limitada fsicamente (en tamao disponible en el SoC, calor generado en un chip encapsulado donde se encuentran CPU y GPU), imposibilidad de poder cambiar la IGP (y tener que cambiar el conjunto CPU+GPU al completo). El futuro de las GPU a nivel domstico pasa por que los grficos integrados gocen de mayor protagonismo en cada nueva generacin. Sus evoluciones estarn limitadas por cuestiones fsicas (espacio, calor generado) y es por ello que El mercado de las GPUdomsticas est en pleno proceso de cambio. Las grficas dedicadas seguirn existiendo, pero estarn cada vez ms limitados al software ms exigente y al GPGPU cada salto generacional en el tamao del transistor (el proceso de fabricacin, actualmente liderado por Intel y sus 22 nanmetros que darn el salto a los 14 nanmetros con Broadwell a lo largo de 2014) ser vital, ya que se trata de meter lo mismo en menos espacio (o pensando de forma anloga, meter ms en el mismo espacio). Tambin hay nuevas tecnologas que pretendenrevolucionar el mercado de los grficos domsticos, como por ejemplo hUMA de AMD prevista tambin para 2014: CPU y la IGP podrn acceder al mismo espacio de memoria para as mejorar el rendimiento del conjunto. En definitiva, el mercado de los grficos domsticos est en pleno proceso de cambio. LasIGP pueden parecer una vuelta al pasado (cuando tenamos GPU integradas en el chipset) pero la evolucin de la tecnologa ha hecho que sean una brillante idea pensada para una gran mayora de usuarios. Los grficos dedicados seguirn existiendo pero estarn cada vez ms limitados a un uso en videojuegos y aplicaciones profesionales, con especial importancia en su uso como GPGPUesencial en ciertos mbitos.