Blogia
Blog de Ibercivis

GPUs?

Nos preguntais en algunos comentarios por las GPUs. Lo estamos mirando pero no me decido. Las ventajas son claras. Los inconvenientes, el que necesita desarrollo aparte --no es tan trivial como decir gcc -target cuda-- y el que habria que ver cuantos participantes estan dispuestos a que las usemos... sobre todo por la noche cuando estan durmiendo y pongamos los ventiladores a todo tren. Un dato de interes seria saber cuantos apagan BOINC para jugar y cuantos lo dejan funcionando; precisamente el hecho de que los juegos usen sobre todo la GPU nos permite estar calculando mientras el usuario esta saltando de asesinato en asesinato por Venecia (bueno, vale, ese no esta para PC). En cambio, lo que es seguro es que como nos pongamos a usar la GPU en medio de un salto y se pare el juego a la siguiente nos echan.

Otra cuestion es como de realista es nuestra base de GPUs disponibles. De los 5098 ordenadores que se conectaron la semana pasada, 164 anunciaban tener CUDA ready para boinc y 55 anunciaban ATIs. El problema puede estar en que solo las versiones de BOINC mas recientes anuncian la disponibilidad de GPU. Podriamos lanzar una workunit especifica para comprobarlo de forma mas fiable.

19 comentarios

new balance -

Stars are less than the place of darkness! Smile more places are less trouble! There is a lonely place! Less lonely when the mood is good! When I'm in a good mood all good! Let us forget all the troubles! Every day happy!

Alejandro Rivero -

Personalmente no me parece mala idea lo de pedir voluntarios para cualquier tarea cientifica, sea programar, encuestar, contar asteroides o recoger garrapatas. Y podemos ayudar a un grupo de investigacion a buscar esos voluntarion, no solo desde el blog. Aunque a mi me parece que es una iniciativa mas amplia que la supercomputacion. Hay casos de necesidades tecnicas no solo para GPUs sino para paginas web de algun grupo, para bases de datos, para busquedas sociologicas, de todo. He visto gente de humanidades diseñando tipos de letra para alfabeto iberico y bases de datos para tablillas cuneiformes.

Federico -

No sere yo quien diga que es facil lo de programar porque no tengo ni idea pero quiza teniendo en cuenta los miles de usuarios frikis de los ordenadores que procesamos vuestras unidades quiza se nos podria pedir ayuda en ese caso.

Igual hay por ahi alguien a quien le interese hace un programa de ese tipo como trabajo de universidad o como reto o ayuda a un proyecto cientifico. Incluso ofrecer algun pequeño premio, no seria la primera vez que ofrecieseis premios y seguro que algo mas se os puede ocurrir.

No se que datos le harian falta para programar esa aplicacion pero creo que el confirmar que la falta de codigo para las GPUs es debido a un problema de personal o administrativo de contratacion pone el asunto en otra dimension.

Creo que una entrada en el blog pidiendo ayuda para programar una aplicacion que saque partido de las GPUs no seria un mal comienzo. Si es posible con un link desde la pagina principal del proyecto.

Enfin, de verdad espero que el asunto no quede olvidado. Hay mucha capacidad desperdiciada por ahi.

Alejandro Rivero -

Federico, el problema es que con las leyes de ahora los grupos de investigacion no suelen tener dinero para contratar programadores. Lo normal es que el programa lo haga algun becario del grupo, y la beca solo puede ser del tema que investiguen, lo que les impide contratar ingenieros. Ese becario no tiene por que saber ni papa de GPUs y prefiere usar librerias y codigo conocido, claro.
Nosotros, al ser un centro bastante mixto, podemos contratar o becar ingenieros, pero no demasiados. Asi que no podemos hacerles desde cero los programas a los equipos de investigacion, podemos portar un programa de linux a mac o windows, pero poco mas.
Si a mi me viene un grupo de investigacion con el programa para GPUS+Boinc, entonces hecho, no problem, se hacen los test y se lanza.

Federico -

Flipo. El tipo de preguntas que os haceis para valorar si mereceria la pena sacar adelante el procesamiento por GPU, dado que la gente podria apagar el ordenador por la noche o cerrar Boinc cuando juega, es delirante. La ventaja es tal que elimina de raiz cualquier necesidad de hacer estudios de ese tipo.

Ya me gustaria pasar my GPU a este proyecto

Encuestas Elecciones -

Una GPU está altamente segmentada, lo que indica que posee gran cantidad de unidades funcionales. Estas unidades funcionales se pueden dividir principalmente en dos: aquéllas que procesan vértices, y aquéllas que procesan píxeles. Por tanto, se establecen el vértice y el píxel como las principales unidades que maneja la GPU.

Enrique -

La verdad es que hay pocos proyectos que utilicen CUDA y aun menos que usen las ATI.

En mi caso como en el de muchos otos tras leer foros de BOINC pongo mi grafica a disposicion de proyectos que no me apetecen mucho tan solo porque no hay mas opciones.

Lo mas impreionante es que esos proyectos que no me llaman tanto la atencion pero que se llevan mi GPU salen enormemente beneficiados por la capacidad de calculo de la grafica.

En mis resultados mis proyectos de CPU con un Q9550 7/24 representan un 1.28%, el resto se lo lleva Milkyway con mi ATI... Si saliese un proyecto medico, pasaria mi GPU sin pensarlo 1 segundo, lo estoy deseando desde hace tiempo. Si, ademas fuese un proyecto espanol, aun me gustaria mas.

Francisco -

Desde casi el principio, hay librerías portadas a cuda como CUBLAS y CUFFT, además se están empezando a portar otras librerías como LAPACK(MAGMA).
http://icl.cs.utk.edu/magma/

Alejandro -

No, pero puede que haya otra salida: que a medida que las librerias estandar, como lapack, se compilen para usar GPUS, no sea necesario plantearse otra cosa que programar en tu lenguaje favorito. Al igual que ahora no programas para la FPU.

luis -

Y no hay manera de recompilar codigo directamente para gpus (como se nota que lo digo desde la ignorancia). Creo que para programacion con CUDA nos os valen becarios o gente en practica, no es por abusar de ellos, pero siempre sale un dios de la programación cada muchos estudiantes

Chulma -

Para manu:

Collatz si que permite utilizar Nvidia o ATI para procesar.

Para Alejandro Rivero:

Si de verdad os interesa procesar por GPU (además de CPU) preparar el código para que funcione en OpenCL, que lo utilizarán tanto Nvidia como ATI.

Por cierto, en GPUGRID han conseguido optimizar el código para GPU multiplicándolo por 27 con respecto a usar GPU.

En Milkyway han conseguido optimizando el código esto:

En cálculos de doble precisión:

Nvidia GeForce GTX 285 - 17 veces más rápida que un AMD Phenom II 940 X4 3.0*
ATI HD5870 - 109 veces más rápida que un AMD Phenom II 940 X4 3.0*

En cálculos de simple precisión:

Nvidia GeForce GTX 285 - 132 veces más rápida que un AMD Phenom II 940 X4 3.0*
ATI HD5870 - 676 veces más rápida que un AMD Phenom II 940 X4 3.0*

*más rápido que un core del citado procesador

Un saludo

galle -

muchos de los que usamos gpus trabajamos en proyectos que realmente nos dejan indiferentes... personalmente trabajo en collatz porque es el único proyecto que me usa las dos gpus de mi 295gtx sin petarme las tareas...
si ibercivis tuviera aplicación para cuda muchos migraríamos con tal de saber que gastamos 200W en algo mínimamente útil

eso si, escribir y perfeccionar el código va a ser complicado...

pineo -

Creo q si sacais aplicaciones para GPU mucha gente migrará a Ibercivis. Actualmente no hay muchos proyectos q soporten GPU. Yo estoy computando para GPUGRID y la verdad es q no son muchos usuarios pero la potencia global es equiparable a la q tienen grandes proyectos

Alejandro Rivero -

Chulma, no me lo cuestiono, simplemente voy adaptando el calendario. Es muy facil -y es lo que no es serio- decir "vamos a hacer GPUs", lo que hay que hacer es ponerse a ello. Mi primera pregunta era si las 164 maquinas que anuncian CUDA van a estar disponibles para ellos. La otra pregunta es si los investigadores tran o no codigo para CUDA, esto depende de cada subproyecto. No es lo mismo un porting a multiples OS, que eso se lo hacemos nosotros a los investigadores, que un porting a CUDA.
No solo de CUDA vive BOINC; quizas seria mas interesante hacer un release para sistemas semi-interpretados (python, pero estamos pensando tambien en LLVM/LLI) y dejar que sean las librerias de estos sistemas las que usen la GPU cuando este disponible. Llegariamos al mismo sitio con mas generalidad, dado que entonces una aplicacion se podria ejecutar en todas las maquinas y no solo las 160 disponibles.

manu -

Os informo de que si quereis hacer un test gpu teneis que aseguraros de que el cliente boinc fue instalado con la configuracion por defecto,si se modifica en la instalacion podria ser que no se jecutase la tarea aun teniendo todo correcto,la solucion es desistalar y reistalar boinc con la configuracion por defecto de instalacion y despues modificar lo pertinente en preferencias dentro del menu de boinc.
Hacer un videotutorial y colgarlo en la web es lo mejor,desde la comprobacion gpu,drivers y software a la instalacion paso a paso de boinc.

manu -

Nunca se debe renunciar al computo por cpu,simplemente se complementa con la gpu.

Lo mejor de 2 mundos.

Lo que teneis actualmente para computo por gpu es especializado en nvidia/ps3 o ati pero no conozco ninguna que posea ambas gpus funcionando,se supone que opengl y directcompute

http://www.nvidia.com/object/cuda_get.html
http://www.nvidia.com/object/directcompute.html
http://www.nvidia.com/object/fortran.html
http://www.nvidia.com/object/cuda_home.html# copilara los codigos de nvidia y ati en un solo codigo,actualemnte estan en version 3.0 cuda beta,se supone que despues se podria hacer con las gpus de ambos fabricantes simultaneamente tareas.

Para nvidia actualmente hay bastantes apliaciones.De tener algo en ibercivis para gpu tendreis que orientar al cliente en como debe instalar boinc,que tarjetas graficas le sirven y que drivers y software le acompañan para poder trabajar con gpu.

Proyectos
http://grib.imim.es/projects/

Tambien es importante informar al cliente que el uso de gpu usa mas energia electrica y el metodo de activar y desactivar la funcion gpu por si necesita los recursos graficos para uso propio.

Decir que las tareas arduas y pesadas de 12 horas o mas de calculo gpu por ordenador se dan con hasta 7 a 9 dias para realizar el computo por tarea y que se envian muy pocas unidades de tareas gpu por usuario pues consumen muchos recursos y tiempo,que no de tareas de cpu convencionales,puedes conputar en un servidor de 2 cpu 16 tareas cpu y 2 tareas gpu y en una worstation 8 tareas cpu y 4 tareas gpu.En destock sobremesa otro tanto igual dependiendo del ordenador.

En el caso de nvidia quien mas os puede asesorar en soporte y programacion en España
http://www.azken.com/


Saludos

Chulma -

Que a día de hoy algún proyecto cuestione procesar por GPU, es para pensarse dos veces si el proyecto es serio o no.
Y para no perder tiempo, sacar la versión para OpenCL.
Pensar que ya hay quien solo procesa por GPU.

Un saludo

taita -

rapidez,puntos y que el servidor no falle=atraccion de usuarios que disponen de graficas.

Y que el tiempo de entrega sea mas acorde y no abarque todo el boinc para el.

Saludos

Manuel -

Las ventajas son claras: rapidez en el proceso.

Lo esperamos.....