GPU Computing

Hace unos días supe de la mano de @joseluisbriz en una de sus clases que, pese a que nos sorprenda ver ordenadores multi-core de propósito general con 4 núcleos y doble hilo de ejecución como los nuevos i7 de Intel, no estamos hablando de un número bárbaro de núcleos por CPU ya que actualmente nVidia está montando hasta 448 núcleos por GPU en sus nuevos procesadores gráficos destinados a cálculos de alto rendimiento, como el último modelo Tesla C2050/C2070.

Podríamos pensar que el hecho de que se incluyan más de 400 núcleos por GPU podría tratarse de un producto inalcanzable para los usuarios de a pie, pero nada más lejos de la realidad. Vale, es cierto que si nos fijamos en el Tesla C2050 tendríamos que desembolsar unos 2000€, ¿pero qué pasa con otras tarjetas de menor envergadura? Si echamos un vistazo a una Nvidia GT 440, que actualmente está en el mercado por menos de 100€ vemos que tiene 144 núcleos en su GPU. Asombroso.

¿Pero de qué nos puede servir esto? Es cierto que los procesadores gráficos crecen a mayor velocidad que las CPU en relación a número de núcleos, así que Nvidia decidió explotar esta realidad y lanzar en 2007, el SDK de programación CUDA, con el que podemos desarrollar algoritmos destinados a ejecutarse en GPU mediante una sintáxis muy similar a la de C. Este tipo de programación tiene varios inconvenientes frente a la programación general para CPU y es que las GPU tienen algunas limitaciones a la hora de ejecutar ciertos códigos como, recursividad, número de parámetros dinámico, etc. De modo que seguimos necesitando la CPU para realizar ejecutar los algoritmos.

CUDA ofrece una interfaz de desarrollo que abstrae al programador de en qué sitio se está ejecutando cada parte del algoritmo de manera que las partes secuenciales del algoritmo las ejecutará la CPU, mientras que las partes que puedan ejecutarse de forma paralela se realizarán en la GPU, aprovechando así su capacidad para lanzar muchísimos hilos de ejecución aprovechando varios núcleos de la GPU exprimiendo así la potencia de cálculo en paralelo que pueden ofrecer los procesadores gráficos.

En definitiva este era un mundo del cual poco me había informado desde que supe del proyecto SETI@Home para encontrar vida extraterrestre gracias a la computación distribuída y el aprovechamiento de la GPU, pero esta es otra historia de la que hablaré en otro momento. Mientras tanto, os diré que no deberíamos perder este asunto de vista porque muy probablemente las aplicaciones se empiecen a programar para aprovechar tanto la CPU como la GPU.

Podéis encontrar más información en los siguientes links:

Actualización:

En la keynote que presentó Nvidia en la Nvidia’s Technical GPU Conference, se mostró el roadmap previsto por la compañía y se vió que los sucesores de Fermi (con 512 núcleos por GPU en la actualidad) serán Kepler yMaxwell llegando a cuatriplicar los GFLOPS por Watio en los próximos 2 años. Una pasada.

Ya tengo mi nuevo Medion Akoya Mini

El día de nochevieja celebramos un cotillón privado en el cual yo me encargué de poner la música. El caso es, que por mucho que lo intentamos, al final un cubata fue a parar al teclado de mi portatil, esto hizo que en a penas un minuto el teclado dejara de funcionar y 10 minutos más tarde, el portatil se había apagado, el diagnóstico: “Placa cortocircuitada y arreglo demasiado caro para el portatil del que estábamos hablando”.

Tenía que comprarme un portatil y la idea de un netbook de 10” me parecía buena, principalmente porque se ajustaba más a mi presupuesto. Aunque es cierto que me planteaba si el netbook iba a poder dar el mismo rendimiento y la misma usabilidad que un portatil de 15”, además las personas de mi alrededor opinaban que un netbook nunca podía suplir a un portatil de verdad. Se equivocaban, un netbook parecía la solución perfecta a lo que buscaba.

Al final me hice con los servicios de un Medion Akoya Mini, clon del MSI Wind, que dispone de un procesador Intel Atom N270 1.6Ghz, 1GB de RAM y 160GB de HD como puntos fuertes. ¡Qué acierto!, sus 10” y la resolución de 1024×600 son suficiente para trabajar unas horas. Su peso, de poco más de 1kg, lo hace extremadamente portable, de hecho, todos los días se viene a clase conmigo y no en su maletín, sino en mi bandolera, aquella en la que antes sólo llevaba los apuntes y un estuche, aunque es cierto que le he comprado una funda de neopreno.

Su punto debil, la batería, con tan sólo 3 celdas, su autonomía se limitaba a unas 2:30 horas. En mi opinión un portatil además de movilidad tiene que ofrecer autonomía es por eso por lo que me he comprado una batería de 6 celdas que promete una duración de casi 5 horas, y encima por 35€. Cuando me llegue, haré unas pruebas, que publicaré, para ver si tiene la capacidad indicada.

Teniendo todo esto en cuenta, la compra de un netbook es todo un acierto, además, si vas a desplazarte a una segunda casa donde necesitas un ordenador, puedes conectar un monitor mucho más grande a la salida VGA, y con un ratón y un teclado externos tienes un gran entorno de trabajo, aunque siempre limitados a la capacidad del ordenador, que nadie piense que va a poder renderizar la ciudad de New York en autocad.

Personalmente, soy de la opinión de que un ordenador no es sólo trabajo, es por eso por lo que he instalado algunos juegos para ver qué tal van en el ordenador, por ahora he instalado el Longest Journey y el Commandos 3, y funcionan muy bien, los próximos serán, emuladores tipo SNES, GTA 3, Red Alert’s, Desperados, etc. Ya veis que su potencia no es tan limitada como a primera vista pudiera parecer. Según los vaya probando publicaré cual es su rendimiento en mi Medion Akoya Mini.

Espero que todo esto sirva para orientar a todas aquellas personas que aún tengan dudas sobre estos pequeñines que están apareciendo en el mercado, para los que todavía necesiten saber más, que estén atentos porque prometo publicar distintas reviews y cosas que le vaya haciendo a mi Medion Akoya.