Instalación, configuración, pruebas y herramientas

Resumen de cómo instalar el entorno de cuda, herramientas y librerías, configuración del entorno y ejecución de los ejemplos del SDK de NVIDIA.

Instalación de todos los elementos necesarios

Instalando driver

Descargar de la página oficial de Nvidia

Posible problema si se usaba anteriormente el driver libre nouveau.

Solución:

Poner nouveau en blacklist añadiendo a /etc/modprobe.d/blacklist.conf

blacklist nouveau

Añadir en los parametros del kernel rdblacklist=nouveau editando el fichero /etc/grug.conf

Reiniciar sin entorno gráfico, arrancando en init 3

Cuando arranque el boot editar la entrada poniendo un 3 al final, es la segunda.

Ejecutar sh driver.run el driver bajado de la pagina de nvidia.

Instalando Toolkit

Descargar el Toolkit de la pagina oficial de Nvidia, actualmente están disponibles versión 4.0.

Ejecutar sh toolkit.run

Instaldo en por defecto /usr/local/cuda

Añadir al PATH

PATH + /usr/local/cuda/bin LD_LIBRARY_PATH + /usr/local/cuda/lib64:/usr/local/cuda/lib

Instalando LAPACK

Descargarlo de la página oficial de Nvidia.

Ejecutar sh cula_linux64.run

Instalado por defecto en /usl/local/cula

Añadir al PATH

CULA_ROOT=/usr/local/cula

CULA_INC_PATH=$CULA_ROOT/include

CULA_BIN_PATH_64=$CULA_ROOT/bin

CULA_LIB_PATH_64=$CULA_ROOT/lib64

PATH + $CULA_BIN_PATH_64

LD_LIBRARY_PATH + $CULA_LIB_PATH_64

Instalando ejemplos y SDK

Descargar de la página oficial de Nvidia

Instalado en /usr/local/cuda/NVIDIA_GPU_Computing_SDK

Para tener todo lo necesario en las variables de entorno puedes editar tu .bashrc

export CUDA_ROOT=/usr/local/cuda

export CUDA_BIN=$CUDA_ROOT/bin

export CUDA_LIB=$CUDA_ROOT/lib64:$CUDA_ROOT/lib

export CULA_ROOT=/usr/local/cula

export CULA_INC_PATH=$CULA_ROOT/include

export CULA_BIN_PATH_64=$CULA_ROOT/bin

export CULA_LIB_PATH_64=$CULA_ROOT/lib64

export PATH=$PATH:$CUDA_BIN:$CULA_BIN_PATH_64

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_LIB:$CULA_LIB_PATH_64

Compilando ejemplos

Una buena práctica para comprobar que tenemos todo bien instalado es compilar los ejemplos que nos ofrecen, en el sdk.

Para poder compilar todos los ejemplos es necesario que este instalado openGL.

Si la versión instalada del CUDA toolkit 4.0, no está soportado gcc 4.5 o mayor por tanto es necesario tener instalada una versión menor. A la hora de compilar puede seleccionarse el compilador usando el flag: –compiler-bindir <ejecutable_gcc>

Nos haremos una copia privada del contenido de la carpeta /usr/local/cuda/NVIDIA_GPU_Computing_SDK

Una vez que tienes la copia en la carpeta C, están todos los ejemplos.

Si tenemos una máquina de 32 bits, valdrá con hacer make pero make x86_64=1 para compilar en versión de 64 bits

Posible problema:

El makefile que trae no funciona hay que usar otro en Fedora 14 posible error explicado

http://forums.nvidia.com/index.php?showtopic=191263

Probando el debugger

El Toolkit nos ofrece un debugger llamado cuda-gdb.

Se usa de la misma forma que el gdb.

Para usarlo añadir el flag -G al compilar.

CUIDADO!!!: ESTE FLAG HACE MUCHO MAS LENTA LA EJECUCION Y PUEDE DAR TIEMPOS DE EJCUCION INESPERADOS

Usando este flag para compilar una aplicación CUDA se fuerza no que no haya optimizaciones -O0. El compilador incluirá información de debugging de todas las variables locales en el ejecutable.

Posible problema:

Si sólo tenemos una trajeta gráfica, la GPU que usamos para cómputo es la misma que se usa para el entorno gráfico. En este caso obtendremos este mensaje al intentar ejecutar la aplicación en el depurardor:

error: All CUDA devices are used for X11 and cannot be used while debugging.

La solución sería para la X y usar en modo texto desde un terminal. Una forma de hacerlo es arrancar la máquina en nivel 3 (init 3: arranca sin entorno gráfico).

Una vez que la maquina está arrancada si intentamos ejecutar algún ejecutable cuda, obtendremos un error que nos idicara que no hay ningún dispositvo cuda.

Por tanto hay que montar el dispositvo, una forma de hacerlo es startx y una vez que esta las X arrancadas tirarlas con control C

Configurando el Visual Profiler

Para poder ejecutar el profiler, tendremos que actualizar nuestra variable LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<CudaToolkitDir>/computeprof/bin

Una vez hecho ejecutaremos el profiler con /usr/local/cuda/computeprof/bin/computeprof

Añadir al compilar –profile o -pg.

Libreria cuPrintf

Existe una librería llamada cuPrintf desarrolada por NVIDIA, la cual permite hacer impresiones desde un kernel.

Ejemplo básico de uso:

#include "cuPrintf.cu"

   

__global__ void testKernel(int val){

        cuPrintf("Value is: %d\n", val);

}

int main(){

        cudaPrintfInit();

        testKernel<<< 2, 3 >>>(10);

        cudaPrintfDisplay(stdout, true);

        cudaPrintfEnd();

        return 0;

}

Observaciones:

La llamada cuPrintf sólo permite un máximo de 10 párametros y 12 bytes como máximo, de modo que los %s pueden desbordarlo.

La librería sobrecarga la mucho, por lo que afecta mucho al rendimiennto. Usar sólo para depurar.

 
proyectos/gopac/casos/guiabasica.txt · Última modificación: 2012/10/08 17:58 (editor externo)
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki