Tecnología

GPGPU, una idea alucinante [actualizado]

·

La técnica GPGPU (General Purpose computing on Graphics Processing Units) lleva muy poco tiempo en el mercado, y aunque su despegue es aún muy lento (y no acabo de ver porqué) parece evidente que está destinada a convertirse en todo un éxito. Y se lo merece. Hace mucho ya que se sabe que la potencia de los procesadores gráficos es muy superior a la de los procesadores de propósito general. Así, las GPUs de las nuevas ATI Radeon HD 4870 o las NVIDIA GTX 280 disponen de micros que dejan a la altura del betún a cualquier Intel Core Quad Extreme, y no digamos ya a micros dual-core modestitos.

Esta diferencia en potencia bruta era conocida, pero no aprovechable en la práctica: la GPU, para gráficos y listo, era el lema. Sin embargo, NVIDIA comenzó a poner en práctica la idea y saltó a la palestra con CUDA, un conjunto de herramientas de programación que permiten «adaptar» código de aplicaciones convencionales para que estas se puedan ejecutar en una GPU. AMD/ATI está tratando de hacer lo propio con su «Close To Metal«, mucho menos evolucionado y que está acompañado de desarrollos más prometedores, entre los que destaca sobre todos OpenCL, en el que Apple ha tenido mucho que decir.

Sea como fuere, la idea del procesamiento GPGPU es tan sencilla como increíble: poder utilizar la dantesca potencia bruta de las GPUs para procesar todo tipo de tareas convencionales, y no sólo juegos. Los primeros desarrollos CUDA ya demuestran esta potencia, y yo he probado recientemente uno, Badaboom,(este es el enlace de descarga directo de NVIDIA, con el autoinstalable de 7,90 MB) un conversor de vídeo muy limitado en opciones pero que demuestra de lo que estamos hablando.

Con este programa es posible convertir una película de DVD a formatos MP4 (perfectos para mi iPhone) en tiempos asombrosamente reducidos. Yo hice la prueba con la película «Camino a la Perdición«, que dura casi dos horas. Cogí el DVD, lo pasé a disco duro con DVDShrink, y luego cargué ese «DVD en disco» en Badaboom, que es una de las opciones recomendables para esta tarea. Después de elegir el formato y algún parámetro más, ¿sabéis lo que tardó en convertir la película gracias a mi GeForce 9600GT?

20 minutos.

¡20 minutos! Con suerte, el mismo proceso realizado por la CPU (no lo he hecho en mi Intel Core 2 Duo E8400, pero esa era la idea) llevaría, más o menos, 120 minutos, ya que la tasa de conversión de estos micros es casi casi la de «tiempo real», es decir, 25 fps, que equivalen a convertir la película en un tiempo idéntico al que dura ese film. Si con Badaboom podemos reducir ese tiempo 6 veces y la herramienta aún no está del todo pulida, no quiero ni imaginar lo que nos depara el futuro.

Actualización (14/10/2008): Manuel ha hecho la comparativa completa en su blog y ha llegado a la misma conclusión que yo, aunque en realidad la diferencia no es tanta como yo pensaba: mientras que la codificación de la película Iron Man de DVD a H.264 ha tardado 25 minutos con BadaBoom, con su Core 2 Duo 6300 le ha tardado 46 minutos usando el programa AVS Video Converter 6. Aún así, la diferencia es importante, ¿no creéis?

Lo cierto es que Badaboom no es lo que se dice una herramienta demasiado completa: no da soporte a formatos muy importantes, y las posibilidades de personalización de la compresión son casi nulas. De hecho, también lo indican así en AnadTech (son tan listos como yo), por lo que si la cosa avanza pronto deberíamos tener un software mucho más pulido y potente. Y aunque así no fuera, yo no me preocuparía demasiado: no creo que los desarrolladores tarden demasiado en darse cuenta de que sus aplicaciones pueden «volar» gracias al uso de la GPU.

Iros preparando, que la cosa promete.


Incognichollos

Esta es una selección con las mejores ofertas tecnológicas actualizadas casi diariamente, como expliqué aquí. Aunque estés en un post «antiguo» las ofertas son de última hora, los Incognichollos los actualizo aparte. También puedes seguir los Incognichollos en Twitter o en el nuevo canal de Telegram 🙂 . Aprovecha, que no suelen durar mucho tiempo.

  • OnePlus 7: la evolución del 6T con 6,41?, Snapdragon 855, 8 GB de RAM, mininotch, 256 GB de capacidad (uauh), cámara dual 48+5, 3700 mAh de batería, huella en pantalla. Está a 437,49 euros en AliExpress.
  • Lenovo Yoga 920: un convertible de 13,9 pulgadas con un Core i5-8250U, 8 GB de RAM, 256 GB SSD y Windows 10. Estupendo a este precio, 749,98 euros en Amazon.
  • Auriculares Sennheiser Momentum 2.0: diadema ajustable, micrófono incorporado, diseño chulísimo y una calidad de sonido top según dicen las críticas. Nunca los había visto tan baratos, 108 euros en Amazon Alemania, envío incluido.
  • Altavoz Bluetooth Xiaomi Square Box II: un altavoz portátil con tecnología Bluetooth 4.2, micrófono, manos libres, cancelación de ruido, 1200 mAh, autonomía 10 horas, incluye entrada de minijack de 3,5 mm. Está a 21 euros en Banggood con el código e2db5f
  • Huawei Honor Band 4: con pantalla AMOLED de 0,95?, monitor de sueño, soporte de natación (reconoce distintas brazadas), hasta 50 m de profundidad, lector de frecuencia cardíaca. Muy chula por 24,90 euros en Banggood con el código BGHWBand4es.
  • Xiaomi Mi Band 4: la nueva pulsera cuantificadora con pantalla AMOLED 0,95?, hasta 50 m profundidad y 5 ATM, sensor cardíaco, comandos de voz, notificaciones, brutal por 30,9 euros en AliExpress.
  • OnePlus 7 Pro: el súper teléfono a tope: 6,67 pulgadas a 90 Hz (dicen que son la pera), 8 GB de RAM, 256 GB de capacidad, cámara triple (48+16+8), cámara frontal retráctil 16 MP, lector de huella en apntalla, 4.000 mAh. Está a 657 euros en GearBest.
  • Medion Ultrafino S6445: un ultrabook de 15,6? FullHD con un Core i3-8145U, 8 GB de RAM y 256 GB de capacidad, teclado QWERTY español, Windows 10 Home. Todo por 399,99 euros en Amazon, estupendo.
  • Monitor gaming ASUS MG248QR: con 24 pulgadas y resolución 1080p, pero sobre todo con soporte de tasa de 144 Hz. Fantástico por 239,99 euros en Amazon (299 en PCComponentes).
  • SSD Samsung 2 TB: una unidad SSD con esta capacidad y a este precio es tela. Velocidades de 550 MB/s, está a 195 euros en Amazon Francia, envío incluido.
  • Portátil ASUS VivoBook S14: un 14? Ful HD con un Core i5-8265U, 8 GB de RAM, 256 GB de SSD, teclado español y Windows. El touchpad es además teclado numérico. Está a 499,99 euros en Amazon.
  • Mando Sony DualShock 4 para PS4: el mando en versión 2, inalámbrico, color negro, está a 37,99 euros en Amazon.
  • Windows 10 Pro: una licencia para el sistema operativo de Microsoft. Te la mandan por correo junto a algunas instrucciones. Está a 3 euros en Amazon.
  • Xiaomi Mi 9: si queréis el telefonazo de Xiaomi, atentos. Pantalla de 6,39 euros sin marcos, Snapdargon 855, 6 GB de RAM, 64 GB de capacidad, cámara triple de 48+16+12 MP, está a 384,74 euros en Banggood con el código BG6M9128.
  • iPhone X 256 GB: el telefonazo de Apple del año pasado sigue siendo un gran terminal. 5,8?, Apple A11 Bionic, 3 GB de RAM, 256 GB de capacidad, cámara dual de 12 MP, está a 899 euros en Amazon (1.089 precio normal).
  • OPPO Realme X: el rival a batir en gama media rompedora. Tremendo, 6,53? sin marcos, Snapdragon 710, 4 GB de RAM, 64 GB de capacidad, cámara dual 48+5, cámara frontal periscópica, 3765 mAh, lector de huellas en pantalla. Brutal por 236,45 euros en Banggood.
  • Xiaomi Redmi Note 7: 6,3» Snapdragon 660, 4 GB de RAM, 128 GB de capacidad (ampliables vía MicroSD), 4.000 mAh, minijack y cámara dual de 48+5 MP realmente estupendo por 180,95 euros en Banggood con el código BG5RN74. La versión de 3/32 está a 141 euros en AliExpress, y la de 4/64 está a 163 euros en Banggood con el código BG5RN7.
  • iPad Air (2019): atentos a la nueva versión de la tableta con pantalla de 10,5? y el potente procesador A12 Bionic, además de cámara de 8 MP y 256 GB de capacidad. A tope por 591,06 euros en Amazon (719 en Apple).
  • Xiaomi Mi 9 SE: y la versión compacta: 5,97 pulgadas, Snapdragon 712, 6 GB de RAM, 64 GB de capacidad, triple cámara (48+12+16), lector de huella en pantalla, está a 266,61 euros en Banggood con el cupón 5BGM96SE. Brutal.
  • Portátil HP Pavilion 15-bc450ns: un equipo de 15,6? Full HD con un Core i5-8300H, 8 GB de RAM, 1 TB de HDD, 128 GB SSD (uauh) y GeForce GTX 1050 (uauh!), sin Windows (hay incognichollo ahí de 1,5 euros para resolver). Está a 629,99 euros en Amazon.
  • Unidad SSD Lexar 120 GB: modelo SATA 6 GB/s, hasta 550 MB/s de velocidad de lectura, fantástico como complemento para tu PC o portátil sobre todo a este precio mísero: 21,29 euros en Amazon. La versión de 240 GB, a 36,19 euros.
  • Asus ZenFone 6: el nuevo telefonazo de Asus con pantalla sin marcos de 6,4 pulgadas, 6 GB de RAM, 64 GB de capacidad y esa cámara desplegable dual que funciona tanto como frontal como trasera. Está a 477 euros en GearBest
  • Xbox One S Digital + 3 juegos: la consola de Microsoft sin unidad de Blu-ray incluye un mando y Minecraft, Sea of Thieves y Forza Horizon 3. Está a 175 euros en AliexpressPlaza con el código «plazaoff«. Envío desde España, 2 años garantía.
  • HP Noteboook 15: portátil de 15,6 pulgadas HD (1366×768, el único fallito), CPU AMD A9-9425 (tipo Celeron), 12 GB de RAM, 256 GB de SSD, Windows 10, teclado español. Modesto en CPU y pantalla pero muy bien lo demás, el precio mola: 449,99 euros en Amazon.
  • Tablet Amazon Fire 7: la renovada tableta de Amazon con mejor procesador y sobre todo con el doble de capacidad que el modelo de 2017. La versión de 16 GB (ampliable vía microSD) está a tan solo 69,99 euros en Amazon.
  • Bolígrafo Xiaomi Mijia Pen + 3 recambios: el boli de 0,5 mm con tecnología suiza (o eso dicen) que enamora. Yo ya he comprado varios, y la verdad es que molan, y por este precio, más. El boli + tres recambios sale por 3,41 en AliExpress.

¿Quieres recibir un correo de aviso cuando publique nuevas entradas?

Standard

19 comentarios en “GPGPU, una idea alucinante [actualizado]

  1. edge dice:

    Tu idea es como la de muchos: creer que las GPU son muy superiores a las CPU. Siendo sinceros, sí son superiores, pero porque están optimizados.

    Si te fijas, verás que todo lo que sea instrucciones multimedia o cálculo intensivo (muy parecidos) vuelan literalmente, pero son peores en interrupciones (acceso a todo lo que es el hardware, coordinación…).

    Hace poco me preguntaron por qué no se hacían ordenadores sólo con «nvidias» o «atis» (porque leyeron cosas como esta). Te animo a un artículo en el que lo expliques.

  2. nnarayann dice:

    Jeje, nada más que decir. Sólo que la verdad nunca se me hubiera ocurrido que se podría usar una GPU para otra cosa que no fuera para lo que están hechas y ahora que leo esto suena bastante lógico.

    En este mundillo se tiende siempre a optimizar todo al máximo y a no desperdiciar recursos, y esta era una potencia que estaba «desaprovechada», se podría decir, hasta ahora.

    Buen artículo!!.

  3. Josechu dice:

    Wenas… tengo una nvidia 8600GT, y no puedo utilizar el Badaboom… me dice que no tengo un sistema compatible CUDA… solo funciona con serie 9000 o que? Gracias

  4. gualfire dice:

    No os fiéis del Badaboom, está muy, muy verde. Yo tengo una geforce 8400M GS, que es compatible con CUDA (probado en linux). Pues he instalado en Vista dos versiones beta de badaboom y no logro que funcione. He probado como entradas DVD, «carpeta dvd», y fichero, y en ninguno de los casos consige arrancar la codificación, el programa se queda sin responder y hay que forzar su cierre.

  5. edge dice:

    ¡La leche, y yo que comentaba justo con el propósito contrario!

    Perdón si te he ofendido, comentaba con el interés de que expusieses un artículo informal (es lo que me gusta de tu blog) con las ventajas e inconvenientes reales de ambas vertientes.

    Y lo de Tesla no lo conocía ni de oídas, la primera noticia que tengo es esta.

    Caray, espero que tu último artículo no venga por mi.

  6. Las gráficas han dado un salto BRUTAL en los últimos años… aún recuerdo mi vieja S3 por PCI, a la que sustituí por una Asus con el Riva 128 en AGP… luego vino una Voodoo 4 (que aún funciona y tengo guardada), más tarde una Geforce 4 MX 440, una ATI 9600XT (que me vendieron como Pro y resultó ser superior… 😀 ), otra ATI 1950Pro (gran tarjetón que guardo como oro en paño) y por ultimo una NVidia 9600GT (la Asus Glaciator)…

    Y cuando me pongo a pensar en los juegos que ejecutaba en cada una, es para flipar con la evolución que han llevado a cabo…

    La idea de usar la GPU para algo más que los gráficos es sencillamente genial, y de hecho ya se empiezan a ver ejemplos en los que se usa una vieja gráfica para Físicas con Physx por su potencia aprovechable…

    Y ahora esto, usar la GPU para tareas del día a día en el PC… una forma de aprovechar mejor el HW que ya tenemos.

    Tan solo me queda una duda con tu ejemplo… cuando dices que pasaste la película a MP4, ¿a qué formato fue? ¿h.264? ¿DivX? ¿Xvid?…

    Lo digo porque me has despertado el gusanillo… 😀 … y como también tengo una 9600GT, estaba pensando en hacer yo también la comparativa entre este programa y pasar a DivX un DVD usando el DVDX en mi C2D 6300…

    Sobre que las GPUs den patadas a las CPUs… no lo voy a poner en duda, aunque como son arquitecturas distintas las comparativas no son fáciles. Estaría bien ver una comparativa del mismo sistema con CPU y con GPU… con tareas del día a día, por ver las diferencias…

    Un saludo. 🙂

  7. LC dice:

    Voy a dar una de cal y otra de arena, intentando ser lo mas educado posible.

    Javipas, eres sabio, porque rectificar es de sabio y lo has hecho con Edge, felicidades.

    Pero creo que deberias de investigar un poco mas el tema de las gráficas. Yo si conocia, algo, lo de Tesla y te digo mas o menos como Edge, las gráficas tienen mucha potencia en calculo numérico con cierto tipo de números, no sabria decirte ahora si con enteros o con coma flotante, obviamente, si en un proceso se utilizan ese tipo de números pues la gráficas ganan. Supongo que te acordaras cuando a los procesadores centrales no hacian los calculos rapiditos y se les ponia un coprocesador matemático, en definitiva un hard especializado en cálculos, y obviamente, si se escribia un programa para usar el «copro», pues volaba, comparado con la cpu principal, tambien puedes hacer programas aprovechando ciertos juegos de instrucciones de las cpu principales, aquello de las mmx, los sse o como se llamen, pero no se hace mucho, porque hay que empezar a preguntar al hard que tipo de instrucciones soporta, crear distinto código en función del juego de instrucciones especiales que usen, en fin, un follón.

    Por otra parte ten en cuenta que tu procesador central, cuando le dices que te pase la «peli» a mp4, esta haciendo bastante mas cosas aparte de esto, en el caso de la gráfica supongo que no hace solo lo de la peli pero casi.
    Cuando dicen que el código esta optimizado es cierto, tambien es verdad como tu lo dices, adaptado, si lo prefieres, pero es que esta adaptación es pensando en las especificadiones del hardware que tiene debajo, o sea, la gráfica y su especialización en cierto tipo de cálculos y su arquitectura. Probablemente esta adaptación sea a medias entre el programador y el compilador, a ti te parece C, vamos es C, pero el compilador (no creo que sea un interprete), hara virguerias para adaptarlo a código de la gráfica, o sea, que lo optimiza.

    En hard siempre se da la lucha entre especializacion y generalizacion, una máquina que se apoyó en la especializacion fue el Amiga y ahi lo tienes, muerto de asco, (te vendo mi Amiga 500), eso si, increible lo que hacia, llegaron los pc con su «cutre-hard» generalista y se lo comieron. En las consolas, la ps3 es un poco mas especializada y por tanto mas dificil de programar y la xbox 360 se la esta merendando con un hard mas general (PPC(+ o -) y grafica). Lo mismo paso, si no me equivoco, con la sega dreamcast y las consola de su generación, por eso te digo que siempre ocurre. Al final lo que ha pasado es que estas especialidades se integran en la cpu, y por lo tanto, pasa a generalizarse y se acabo el problema. En la actualidad no se que ocurrira por que el hard de las gráficas es tan potente que no se si volverá a pasar.

    Un saludo.

  8. Por ahí anda un programa que usa tarjetas Nvidia para acelerar la búsqueda de contraseñas. No tengo el enlace a mano, pero salió en kriptopolis. Lo que no me quedó claro es si usan cuda, pero los tipos logran incluso usar varias tarjetas en paralelo y dejan muy atrás a un Core Duo.

  9. Chemahm dice:

    Hola, creeis que seria factible sacar password WPA con el progrema «elcomsoft password recovery «, y varias GTX280 en SLI? Segun la pagina de elcomsoft con este software y usando las Nvidia se pueden sacar.

    ¿Algun documento o prueba de que esto es posible?, toy buscando pero no encuentro nada.

    Un saludo

  10. Pues haré la prueba, cuenta con ello… en cuanto me quite un marrón del curro.

    Sobre lo que comenta LC, efectivamente las arquitecturas son distintas… y las GPUs ganan en manejo de coma flotante por todas las unidades shader que montan. Por eso lo ideal sería un PC con CPU y otro con GPU y una buena tanda de test que pasarles… 😀

    Sobre lo del Amiga… no estoy de acuerdo, más que por la especialización, yo creo que al Amiga se lo cargaron por el enfoque que le dieron. Del Amiga recuerdo que te lo vendían para ‘jugar’ (aunque pudiese hacer más), y del PC que te lo vendían para trabajar (más serio).

    Además, en el mundo PC empezó a haber un gran desarrollo… del 8088 pasamos al 8086, de ahí al 286 y un año o dos ya estábamos en el 386… y al poco los 486, que en comparación con los primeros PCs eran mucho más potentes.

    Si el Amiga se hubiese enfocado para más que juegos, buscando un uso profesional, y hubiese mejorado tanto su HW en tan poco tiempo, otro gallo le hubiese cantado…

  11. Manuel, genial tu comparativa, enhorabuena, la enlazo en el post para actualizarlo. La verdad es que la CPU tarda bastante menos de lo que pensaba, pero aún así, ahorras la mitad de tiempo. ¡Buen trabajo!

  12. Hago un inciso tardío del comentario de JaviPas del 10 de Octubre de 2008 (perdón por el retraso) {

    El proceso de «traducción» de un lenguaje de alto nivel (pongamos C/C++) se lleva a cabo por un conjunto de procesadores de lenguaje y herramientas que a grosso modo se pueden dividir en:

    1. El preprocesador: se encarga de parsear el código fuente y resuelve las macros, defines, includes (librerías estáticas), inlines, que puede haber.

    2. El compilador: se encarga de traducir a código ensamblador nativo de la arquitectura el código de alto nivel. En este proceso, se realizan optimizaciones, reordenaciones de código, desenrrollado de bucles, sin alterar el significado semántico obviamente. La salida es el código objeto (instrucciones binarias).

    3. El linkador: se encarga de recoger todos los ficheros objeto (código objeto), introducir los stubs para acceso en tiempo de ejecución a librerías dinámicas y crear el ejecutable.
    }

    Moraleja: el compilidador SI que optimiza código para la GPU.

    Ala, a pasarlo bien.

Comentarios cerrados