Últimamente estamos hablando bastante de la aceleración por hardware o por GPU. Que si Internet Explorer 9 tendrá aceleración por GPU, que si Firefox usará aceleración por GPU, VLC decodifica por medio de la GPU... Pero, ¿qué es eso de la aceleración por GPU?
Realmente, esto no es algo nuevo. La aceleración por hardware se usa desde hace mucho en aplicaciones con una gran carga de gráficos, como por ejemplo, programas CAD, de diseño 3D o en videojuegos. Lo que pasa es que ahora otros programas que en un principio no trabajan tanto con gráficos, como los navegadores o reproductores de vídeo, también se están aprovechando de esta característica.
Antes de que me líes más. ¿Qué es la GPU?

Por sus siglas, la GPU es la Graphics Processing Unit, o unidad de procesamiento de gráficos. Es un chip que está en la tarjeta gráfica del ordenador, podéis ver uno en la imagen de la derecha. Normalmente, llevan un ventilador o disipador encima para evitar que se sobrecaliente.
¿Qué ventajas aporta la aceleración por GPU?
La CPU es una unidad de procesamiento general, está preparada para operaciones matemáticas y lógicas para que con ella podamos realizar casi cualquier tarea a una velocidad más que suficiente. El problema viene cuando nos metemos en programas con una carga gráfica muy grande, como pueden ser videojuegos o programas de diseño 3D. Estos programas están continuamente procesando formas y texturas, y hacerlo por medio de la CPU no suele ser muy buena idea, ya que no está específicamente diseñada para estas tareas. Para eso está la GPU, que aporta varias ventajas.
La primera y más evidente: que tenemos un procesador más. Además, este procesador está específicamente diseñado para trabajar con gráficos, con funciones específicas y una arquitectura muy basada en el procesamiento en paralelo. En pocas palabras, con la aceleración por GPU lo que hacemos es quitar trabajo a la CPU y dárselo a la GPU, que lo hará más rápido y mejor.
Hay casos de programas que usan aceleración por GPU, pero sin embargo no trabajan con formas, como por ejemplo los reproductores de vídeo. Entonces, ¿para qué usan la GPU? Resulta que algunas tarjetas gráficas soportan la decodificación por hardware. Es decir, dan la posibilidad de decodificar un vídeo por medio de un chip integrado, que lo hace más rápido y quitando carga a la CPU.
¿Y funciona de verdad?
Sí, y lo hace bastante bien. Vamos a ver algún ejemplo aquí. El primero, el que nos enseñó Ryan Gavin durante la entrevista que le hicimos. Vamos a comparar el rendimiento de IE 9 con aceleración GPU y el de otro navegador sin aceleración GPU, como por ejemplo Chrome:
Realmente impresionante, ¿verdad? Mientras que sin GPU Chrome apenas podía con 36 imágenes, con la aceleración GPU hemos podido ver cómo IE 9 manejaba hasta 256 imágenes con bastante fluidez.
Otras aplicaciones también usan la aceleración por GPU. Desde la versión CS4, Photoshop y el resto de la suite de Adobe aprovecha la potencia de la tarjeta gráfica para aumentar el rendimiento de la aplicación, sobretodo cuando trabaja con gráficos 3D. Google Earth también tiene aceleración por GPU, y, en general, todos los programas que trabajen con 3D.
También hay programas que aprovechan la capacidad de decodificación por hardware de algunas tarjetas. La última versión de VLC o el reproductor Flash, por ejemplo, son capaces de decodificar vídeo H.264 por medio de la tarjeta gráfica, mejorando mucho el rendimiento de la reproducción.
Todo esto que dices es muy bonito, pero…
Sí, claro que hay inconvenientes, pero no muchos comparados con las ventajas en rendimiento. La mayoría de los ordenadores vienen con tarjetas gráficas integradas y lo suficientemente potentes como para soportar bien la aceleración por GPU. Los usuarios apenas tendremos que hacer nada para poder usar estas características, y de hecho puede que las estés usando en bastantes programas sin darte apenas cuenta. Siempre que veas un programa con alguna opción para configurar DirectX u OpenGL está casi seguro usando la GPU (Direct3D, dentro de DirectX, y OpenGL son librerías para trabajar con gráficos en la GPU).
En resumen, la aceleración GPU es algo muy sencillo. Se trata de derivar el trabajo con gráficos a quien está especializado en ello: a la tarjeta gráfica. De esta forma, mejoramos el rendimiento por dos vías: quitando carga a la CPU y usando los procedimientos de la tarjeta gráfica, que son más rápidos y eficientes.
Hasta aquí este artículo, espero que os haya aclarado las ideas y haya servido de ayuda, y si tenéis alguna pregunta, no dudéis en exponerla aquí para que os la intentemos resolver.
Imagen | Chip GPU
Ver 52 comentarios
52 comentarios
WhisKiTo
Una pequeña nota: no tiene por qué ser exclusivamente trabajo gráfico. Las GPU ya llevan tiempo preparadas para ejecutar grandes cantidades de información 'lineal' que no necesariamente tiene que ser gráfica (dibujos, por ejemplo), sino que también pueden ser datos numéricos como tal (al fin y al cabo todo termina siendo un dato numérico, pero bueno) :)
abelnico
muy buen articulo guillermo felicidades!
xitorres
Creo que la aceleración por hardware es algo similar si no lo mismo que el usar la GPU... Pues ya que vienen al caso, en Ubuntu he tenido que desactivar la aceleración por hardware de Flash para que no se me quedará frito el navegador al maximizar.. osea que quizá no esté tan pulido el tema como parece.
einar
Car...jo!
Estos son los artículos que da gusto leer, artículos donde uno puede aprender mas.
krollian
En Mac OS X, Adobe no ha implementado Flash con aceleración por hardware usando la tarjeta gráfica.
krollian
http://es.wikipedia.org/wiki/OpenCL
krollian
http://es.wikipedia.org/wiki/OpenCL
bowser360
Muy Buen articulo, la verdad es que tenia una gran laguna en esto.
Oyagum
Jummm y yo me pregunto... si tengo el internet explorer con muchas pestañas con galerias fotograficas y luego me pongo a jugar la tarjeta perderá potencia o como va eso? ninuinuinuinu
Nahuel Siviero
mmm, pregunto lo mismo...
darknast
"En tarjetas gráficas potentes, llevan un ventilador o disipador encima para evitar que se sobrecaliente."
Hombre, todas llevan disipador, aunque sean una mierdecilla de grafica integrada llevan disipador jajaja
hann
yo que cuento con un RAdeon 9200SE y XP, ¿puedo usar estas caracteristicas?
rimobi
Interesante, los de microsoft hacen cosas mejores k los de Google esperemos k no sea una novedad y se trasforme en algo normal.... xDD
52485
Ahora a ver si hace otro de como se usan las GPU para crakear mas rapido wifi. xDDDD
55229
Muchísimas gracias! interesante totalmente, aunque sea informático siempre estas cositas se escapan (aclarar que soy de la rama de programación jajaja), ¿se supone que chrome lo implementará a corto plazo?
mvelezn
Y era ayer que usábamos vodoo de 4MB y decíamos que era la ostia...
arkmarc
oye una pregunta, esto tambien beneficiaria, bno en mi caso seria d gran ayuda, a los programas para hacer renders como 3d studio, artlantis, etc...????
toxics
Muy bien explicado contra cualquier duda. Gracias!
vigil
Otro navegador que incluye aceleración GPU es Opera, y nadie lo menciona.
55373
Por mucha GPU que uses, el cuello de botella de esta generación de HW son los buses de memoria.
zacaso
Tengo una duda que agradecería si me alcaran Si me quiero comprar un PC con Core i5 (2,26ghz) y con grafica integrada sería mejor uno con core i3 (2,13ghz) y con una nvidia de 1gb. Esque tengo esa duda, y no se si lo de la aceleración y la derivacion a las tarjetas graficas sera muy determinante.
Gracias de Antemano.
populus
Buenas... Soy usuario de Mac, me he comprado un MacBook de última generación.
El problema es que con vídeos flash se calienta horrores. Sólo con ese tipo de vídeos. Y no he instalado, aún, nada de flash. Con lo que lleva el Safari5 me sobra.
Mi duda es... ¿Si instalo un navegador que oporte aceleración por GPU notaré menos temperatura? ¿Si instalo la última versión del Adobe flash player, notaré mejora en temperaturas?
Muchas gracias. No entiendo cómo mi Macbook se calienta TANTO con este tipo de contenidos, cuando con cualquier PC antiguo y de gama baja lo reporduce sin problemas. ¿Problema de software (OS) o de Hardware (Mac)?