Cuda en Fedora

Hace poco me enrolé en el curso de Programación paralela con CUDA en Udacity (cs344), y decidí que para probar mis cosas y cacharrear, sería interesante instalarme las herramientas de desarrollo con CUDA en mi portátil.

Afortunadamente, éste monta GPUs nVIDIA, y puedo utilizarlo para este propósito.

Hace poco, instalé Fedora 18 en él, y también hace poco, nVIDIA actualizó CUDA a la versión 5.

Hay muchos blogs explicando como utilizar CUDA 4.2 y GCC 4.6 (que eran incompatibles en su momento), pero no tantos que digan como tener hoy CUDA 5.

Así que empecemos:

Por ciertos motivos, yo ya tenía instalado el driver propietario de nvidia para Xorg.

Si no, pues deberéis de instalarlo. Para ello, resulta cojonudo el uso de los repositorios de RPMFusion (non-free).

Una vez conseguido, os deberéis de descargar el binario ejecutable con el instalador de CUDA de la web de NVidia (aquí).

Cuando lo instaléis, NO instaléis el controlador de pantalla (si quereis seguir estando dentro de la gestion de paquetes de yum [y sí que quereis]). El resto, donde queráis. Yo particularmente, instalé cuda en /opt/cuda.

Una vez terminado, si intentais utilizarlo, el compilador de nvidia (nvcc) os dirá que tenéis una versión de GCC demasiado actualizada. Y es que CUDA 5 aún no funciona con versiones superiores a GCC 4.6 (y yo no he conseguido hacerlo funcionar).

La opción más sencilla (para no tener que compilar GCC) para mi fue instalarme los paquetes de compatibilidad de GCC 3.4, que afortunadamente están en el repositorio de fedora y se llaman compat-gcc-34 y compat-gcc-34-c++

Una vez instalados, para que CUDA los utilice, hacedles un symlink:

#!/bin/bash
CUDAPATH=/opt/cuda
CUDABIN=$CUDAPATH/bin
ln -s /usr/bin/gcc34 $CUDABIN/gcc

Y ya está, ya podeis compilar cosas con CUDA.