CUDA 10.2: diferentes rutas de instalación

CUDA 10.2: diferentes rutas de instalación

Tengo un problema con respecto a la instalación de CUDA 10.2 y las librerías de cublas.

Los archivos Cuda están en /usr/local y los archivos cublas están en el archivo /usr/include.

Ahora tengo un programa, donde debo ingresar un HOME_PATH para las instalaciones de Cuda, donde encontrarlas.

Intenté vincular simbólicamente los archivos cublas a /usr/local pero el programa no puede encontrar los archivos necesarios.

¿Hay alguna manera de copiar (está protegido) los archivos cublas a /usr/local? ¿O cambiar la ruta de instalación de los archivos de cublas de alguna forma?

Muchas gracias por adelantado

cris

Respuesta1

Lo siguiente supone que comienza con un sistema Ubuntu con controladores Nvidia actuales.

CUDA es solo una aplicación, pero necesita una versión de compilador específica (frecuentemente antigua) y proporciona sus propios controladores de video (varias versiones obsoletas).
Una versión CUDA tendrá sus propios directorios para:

  • bin - para ejecutables
  • lib64 - para bibliotecas de enlaces
  • incluir - archivos del compilador

Agregar el directorio bin CUDA al comienzo de la variable de entorno PATH permite acceder a esos programas y anular los predeterminados del sistema (como en el caso de versiones anteriores de g++, gcc, ar, nm y ranlib).

Agregar el directorio CUDA lib64 al comienzo de LD_LIBRARY_PATH permitirá que esas bibliotecas (compartidas) se recojan en cargas estándar de un programa.

El directorio de inclusión de CUDA generalmente se agrega como una variable en los indicadores del compilador de archivos MAKE, por lo que el compilador puede seleccionar esos archivos. No es necesario colocar estos archivos CUDA en los directorios bin, lib e include del sistema. Las aplicaciones normalmente no hacen eso. Mantener los archivos CUDA bin, lib64 e include en un directorio de versiones de CUDA permite admitir varias versiones de CUDA simultáneamente. Simplemente tenga las modificaciones PATH y LD_LIBRARY_PATH en un script asociado para cada versión.

La única excepción a la separación de programas podría ser instalar un compilador anterior proporcionado por el sistema: CUDA 10.2 requiere gcc-8 y herramientas (ar-8, nm-8, ranlib-). Acceda al compilador antiguo a través de enlaces (gcc, ar, nm, ranlib) agregados al directorio bin de CUDA. Evite cambiar el sistema predeterminado al compilador antiguo (por ejemplo, a través de enlaces o alternativas de actualización).

Otras partes del sistema pueden fallar si se les obliga a utilizar un compilador más antiguo (piense en los controladores de vídeo). Una versión de CUDA suficientemente antigua puede requerir un compilador antiguo que no se proporciona en los repositorios estándar (piense en gcc-5 para CUDA 8.0). Debería proporcionar sus propias copias de dicho compilador y cualquier biblioteca compartida que necesite, colocándolas en los directorios bin de lanzamiento de CUDA y lib64.

Configurar la versión CUDA de esta manera es fácil, simplemente descomprima el archivo deb suministrado en la ubicación seleccionada:

dpkg-deb --extract CUDAarchive YourDirectory

Eso solía ser todo lo que se necesitaba, pero las versiones de CUDA como 10.2 acaban de hacer que el contenido del archivo deb suministrado para la versión sea más archivos deb. Tenga en cuenta los archivos deb de Nvidia no deseados para versiones anteriores, ignórelos o elimínelos y descomprima todos los archivos deb individuales. Ahora tiene un directorio de versiones de CUDA, así que configure una secuencia de comandos para modificar su RUTA y LD_LIBRARY_PATH (o si no le importan las múltiples versiones de CUDA, simplemente coloque estas modificaciones en su .profile (asumiendo que usa un shell tipo bash).

Este enfoque mantiene todos los archivos CUDA fuera del administrador de paquetes, por lo que no se realizarán actualizaciones, lo que puede ser bueno o malo según su punto de vista.

Desafortunadamente, habrá problemas si simplemente ejecuta el script "ejecutar archivo" o instala la versión deb de CUDA suministrada.

  1. Los controladores antiguos de Nvidia reemplazarán sus controladores de video actuales. Con suerte, aún podrás iniciar sesión.
  2. Reinstalar los controladores actuales de Nvidia puede provocar que se eliminen los antiguos Y TODAS SUS DEPENDENCIAS (es decir, todos los archivos CUDA). Bueno, nunca impidas que el administrador de paquetes haga su trabajo, pero puedes hacer una copia de toda tu versión CUDA, dejar que el administrador de paquetes la elimine y la restaure.

Todas estas soluciones con el administrador de paquetes finalmente darán como resultado una versión CUDA sin administrador de paquetes como se describe anteriormente.

información relacionada