configurando LD_LIBRARY_PATH para CUDA


12

Al instalar el kit de herramientas CUDA, las siguientes instrucciones se imprimen en la consola.

Asegúrese de que su LD_LIBRARY_PATH para distribuciones de Linux de 64 bits incluya /usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib

O

Para distribuciones de Linux de 64 bits, agregue /usr/local/cuda-5.0/lib64 y /usr/local/cuda-5.0/lib a /etc/ld.so.conf y ejecute ldconfig como root

El siguiente código /etc/profileno tuvo efecto.

if [ -z "$LD_LIBRARY_PATH" ]; then    
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

Es decir, reiniciar y emitir echo $LD_LIBRARY_PATHmostró que la variable no estaba definida.

Para probar la sugerencia alternativa, agregué las dos líneas al archivo /etc/ld.so.confpara que mi archivo se vea así

include /etc/ld.so.conf.d/*.conf 
/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Entonces emití:

sudo ldconfig

luego

echo $LD_LIBRARY_PATH

Aún así, la variable de entorno no se estableció. ¿Cómo cumplo con las instrucciones de instalación de CUDA que se muestran arriba?


1
ldconfig no establece LD_LIBRARY_PATH, incluye las bibliotecas de una manera diferente.
w4etwetewtwet

Respuestas:


17

Agregue un archivo con la .confextensión /etc/ld.so.conf.d/ que contenga las rutas a las bibliotecas y luego ejecute ldconfig. Asegúrese de establecer los permisos y la propiedad del archivo para que coincida con los otros archivos en el directorio.

Esta es una solución de todo el sistema en lugar de la solución específica para el usuario de modificar .bashrc.

En mi sistema hice nvidia.confen /etc/ld.so.conf.d/. El archivo contiene las líneas:

/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Si crea el archivo como sudoentonces, sus permisos deberían ser buenos, pero mi nvidia.confes propietario / grupo raíz y rw-r - r-- (o 644).


1
Esto no parece funcionar. ldconfig no establece $ LD_LIBRARY_PATH.
Nick

1
Según tengo entendido, soluciona el problema de tal manera que no es necesario establecer la variable de ruta. Entonces, si "no funciona" significa que la variable no está establecida, entonces seguro. Si "no funciona" significa que CUDA no está funcionando, entonces se necesita más información sobre su problema, ya que esto habilitó (y continúa habilitando) el desarrollo de CUDA en mi configuración.
Logan Mayfield

Estoy seguro de que funciona para algunas cosas, el programa que estaba tratando de compilar quiere usar $ LD_LIBRARY_PATH, que probablemente no sea la mejor práctica, ¡significa que necesito configurarlo!
Nick

10

Pon lo siguiente en .bashrc.

if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

Creo que el método preferido es crear un archivo .conf. Lo describí en mi respuesta a continuación.
Logan Mayfield
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.