[ACTUALIZACIÓN] Ya se puede volver a utilizar perfectamente el paquete opencl-mesa-git del repositorio dado. Resulta que en mesa habían cambiado al modelo de ICD para poder tener diferentes implementaciones de OpenCL a la vez instaladas y por eso ahora el paquete se llamaba libMesaOpenCL.so. Pero el mantenedor del repositorio se había olvidado de modificar el PKGBUILD para añadir la dependencia de libcl, que es el cargador de ICD. Me puse en contacto con él y los paquetes ya están arreglados y funcionan.
Notad que ahora ya no proveen los headers de OpenCL, así que si queremos compilar código de OpenCL necesitaremos instalar también opencl-headers. Si no lo hacemos, tendremos que comprobar el soporte de OpenCL con alguna aplicación que sepamos que lo utiliza.
Notad también que el PKGBUILD que aparece en el repositorio todavía (28/10/13) no es el actualizado. [FIN DE LA ACTUALIZACIÓN]
Tanto en nuestras casas como en nuestras aulas u oficinas, utilizar un mobiliario de calidad y confortable es básico para poder trabajar de la mejor forma posible. Así pues, ¿Qué hacemos con, por ejemplo, una mesa que nos sea incómoda? La tiramos y la cambiamos:
Y la cambiamos ┬─┬ノ( ゜-゜ノ)
Pues precisamente vamos a hacer esto mismo con nuestra mesa, la
única diferencia es que no será una mesa física, sino que son los
drivers mesa los que vamos a cambiar.
Lo que queremos es poder aprovechar, o al menos servir como beta-testers
del soporte de OpenCL en tarjetas gráficas AMD con nombres tan
simpáticos como "Evergreen" o "Southern Islands". Y además, como
regalo nos llevamos el ser beta-testers también de clang y llvm,
¡son todo ventajas!
Al menos esto era lo que yo quería: Probar el soporte de OpenCL en
la tarjeta gráfica... por aquello de aprender y tal. Que al menos
uno tiene la intención de cumplir todo lo que pueda con sus propósitos
de año nuevo.
Supondremos que tenemos un sistema Arch, actualizado y en un equipo
con una tarjeta gráfica adecuada. Si utilizamos
abs
para echarle un ojo al PKGBUILD de mesa, podremos ver que no
tiene la flag de '--enable-opencl'. Por tanto, se nos presentan
dos alternativas, la difícl y la fácil.
La difícil sería modificar el PKGBUILD para añadir la flag necesaria
, compilar e instalar. ¿Y esto es complicado? Bueno... si solo fuese
esto no lo sería, pero aparecen dos problemas. El primero es que
se necesita el paquete libclc para compilar mesa con OpenCL, y ese
hay que obtenerlo desde el AUR. Supongamos que resolvemos este pequeño
percance y tenemos nuestro flamante paquete listo para ser instalado.
¿Qué podría ir mal ahora? Por ejemplo... conflictos con varios
paquetes ya instalados.
Llegados a este punto, uno ya se cansa y quiere mandar a la porra a
la pobre mesa, al OpenCL y la tarjeta gráfica, menos mal que siempre
queda la salida fácil.
La forma fácil de hacer todo esto consiste en utilizar un repositorio
con paquetes ya preparados para ser instalados y preparados para
que resuelvan los conflictos ellos solitos.
[mesa-git]Le pedimos a pacman que actualice sus repositorios:
Server = http://pkgbuild.com/~lcarlier/$repo/$arch
sudo pacman -SyyE instalamos opencl-mesa-git
sudo pacman -S opencl-mesa-git
Esperamos a que termine todo, reiniciamos por si acaso y listos.
Ahora solo queda comprobar que todo funcione. A esto nos ayudará
Tom Stellard, uno de los desarrolladores de mesa y que tiene un
pequeño repositorio con tests para OpenCL.
Nos vamos a nuestro directorio de trabajo/frikeo y clonamos su repositorio con git:
git clone http://cgit.freedesktop.org/~tstellar/opencl-example/Nos movemos al mismo y compilamos todo con make:
cd opencl-example && makeAhora probamos los tests:
./run_tests.sh
Si al final obtenemos un "71 passes, 0 fails" felicidades,
tienes OpenCL instalado y funcionando (al menos experimentalmente)
Si no, primero asegúrate de estar utilizando una de las tarjetas soportadas
o si no, pon un bug.
Como nota importante: El soporte todavía es experimental e
incompleto, tampoco empecéis a decir que X cosa no funciona porque
todavía queda mucho trabajo por hacer.
Espero que os haya sido útil, si tenéis algún problema no dudéis
en preguntar, ¡quizás hasta os pueda ayudar! En un futuro
trataré de hacer algún post sobre OpenCL, explicando lo que es y
como hacer pequeños programitas con él.
Mi hilo en los foros de Arch preguntando esto mismo: Arch Forums
No hay comentarios:
Publicar un comentario