Preguntas frecuentes
CONSULTA:
Al ejecutar el script find_mem_usage.sh, el shell de Linux responde que el comando nvcc no está:
./find_mem_usage.sh: line 9: nvcc: command not found
SOLUCIÓN:
Lo que sucede es que no te encuentra la ruta (path) del compilador de CUDA (nvcc), porque olvidamos colocarla dentro del script find_mem_usage.sh. El comando which nvcc te dice en qué ruta está, que en el caso de la instalación de la máquina tijola es /usr/local/cuda/bin/nvcc. Y ahora tienes que sustituir la cadena de caracteres nvcc del fichero find_mem_usage.sh por su path íntegro, esto es, /usr/local/cuda/bin/nvcc.
Otra solución al problema consiste en informar a nuestro shell de Linux de las rutas en las que debe buscar automáticamente cualquier nuevo comando y librería que queramos utilizar. Estas rutas se coleccionan en las variables de entorno $PATH (para los comandos) y $LD_LIBRARY_PATH (para las librerías). Para ampliarlas con la nueva ruta del compilador nvcc y sus librerías, debemos ejecutar desde nuestro shell de Linux las dos sentencias siguientes:
export PATH=$PATH:/usr/local/cuda/bin (para los comandos)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib (para las librerías)
Si quieres que esta configuración quede ya establecida cada vez que inicies una nueva sesión en dicha máquina, puedes incorporar esos dos comandos al fichero de inicialización de tu Shell (.cshrc para C Shell, .bashrc para Bourne Shell, .profile para SuSE Linux, ...).
CONSULTA:
En el paso 3 de la última práctica (directorio lab3.1-matrixmul del producto de matrices), al ejecutar el comando cat cuda_profile_0.log me sale este error:
NV_Error: Failed to open profile config file: ./profile_config
NV_Error: Profiler initialization failed.
SOLUCIÓN:
No es un error lo que sale, sino el contenido del fichero cuda_profile_0.log (el comando cat muestra el texto del fichero, que tiene ese mensaje de error). Te está indicando que no tienes el fichero profile_config en el directorio en el que lanzas el programa. Debes copiarlo de otros directorios que sí lo tienen, como los que se utilizan en el paso 5 de los ejercicios de la suma por reducción. Para ello, basta ejecutar, desde el directorio lab3.1-matrixmul, el comando:
cp ../lab1.2-reduction.1/profile_config .
Si ahora vuelves a ejecutar tu programa CUDA, el fichero cuda_profile_0.log debería contener la información deseada.