c++ - tutorial - hola mundo en cuda
¿Por qué no se puede encontrar libcudart.so.4 al compilar los ejemplos de CUDA en Ubuntu? (8)
LD_LIBRARY_PATH está muy desaprobado. Puede arruinar otros programas y otros pueden restablecerlo. Solo se debe utilizar para anular temporalmente las rutas permanentes con fines de prueba (no tome mi palabra, googlee).
En su lugar, agregue una línea con su directorio cuda lib en /etc/ld.so.conf, después de cualquier línea existente.
Por ejemplo, si instaló en / usr / local / cuda, deberá agregar
32 bits: / usr / local / cuda / lib
64 bits: / usr / local / cuda / lib64
Guarde y ejecute ldconfig. Esto debería solucionar el problema de forma permanente.
Los enlaces simbólicos probablemente ya estén configurados por la instalación. Si no, añádalos como aconsejó Alex.
Nota: Recibí errores haciendo referencia a / lib, pero necesitaba agregar lib64 para corregirlos.
Estoy tratando de ejecutar mis ejemplos de Cuda SDK, pero me aparece el siguiente error:
./bandwidthTest: error while loading shared libraries:
libcudart.so.4: cannot open shared object file:
No such file or directory
¿Por qué puedo compilar el ejemplo con éxito, pero no ejecutarlo? ¿Hay alguna manera de especificar la ruta a la biblioteca de tiempo de ejecución de CUDA manualmente?
tratar:
32 bits: sudo ldconfig /usr/local/cuda/lib
64 bits: sudo ldconfig /usr/local/cuda/lib64
aclamaciones
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
o si está ejecutando cuda-5.0 en una máquina de 64 bits
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64
cree un archivo nvidia_settings.conf en /etc/ld.so.conf.d/ y agregue la ruta a las librerías en el archivo nvidia_settings.conf
/usr/local/cuda/lib64
/usr/local/cuda/lib
Ahora para actualizar los cambios, ejecute el siguiente comando:
sudo ldconfig
Primero estos que necesita es concatenar las rutas a los binarios y bibliotecas de CUDA. Esto se hace simplemente agregando las siguientes líneas a su archivo .bashrc.
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=:/usr/local/cuda/lib64
Si está utilizando un sistema operativo de 32 bits, cambie lib64 a lib
En segundo lugar, debe haber algunos archivos de objetos compartidos instalados en / usr / lib o / usr / lib64, dependiendo de su sistema operativo. Estos archivos de objeto deben estar contenidos en un directorio llamado "nvidia". Los dos archivos que nos preocupan son los nombres libcuda.so.drivernumber y libOpenCL.so.somenumber. Para diferenciar entre los archivos de objetos compartidos reales solo use ls -l
. Los enlaces simbólicos mostrarán a qué se están vinculando.
Como root, ejecute los siguientes comandos:
ln -s /usr/lib64/nvidia/libcuda.so.somenumber /usr/lib64/libcuda.so
ln -s /usr/lib64/nvidia/libOpenCL.so.somenumber /usr/lib64/libOpenCL.so
Eso debería permitirle compilar todas las fuentes en el SDK.
A partir de Cuda 5.5 y Ubuntu 12.04 / 12.10, el comando anterior se convierte (observe los cambios en el directorio Ubuntu y Cuda) para 64 bits
ln -s /usr/local/cuda/lib64/libcuda.so.5.5 /usr/lib/libcuda.so.5.5
Es decir, las carpetas lib en Ubuntu a partir de 12.04 son lib32 y lib; el 64 es implícito, y cuda 5.5 y superior ahora se instala en un directorio diferente.
1 error al cargar bibliotecas compartidas: libcudart.so.6.0: no se puede abrir el archivo de objeto compartido: No existe ningún archivo o directorio
32-bit: sudo ldconfig /usr/local/cuda/lib
64-bit: sudo ldconfig /usr/local/cuda/lib64
(refiérase a: http://blog.csdn.net/shenchong721/article/details/21529295 )
¡Funciona para mi!
el sistema encuentra la biblioteca con la herramienta ld. como dice la respuesta principal, 64-bit: sudo ldconfig / usr / local / cuda-xx / lib64 ;; xx es la biblioteca de cuda
En mi caso, estaba ejecutando una aplicación usando MPI. El error fue:
libcudart.so.7: cannot open shared object file
CUDA se instaló correctamente en todos los nodos. Además, como en las respuestas anteriores, las variables $ PATH y $ LD_LIBRARY_PATH apuntaban al binario y a las bibliotecas, respectivamente.
Pasar $ PATH y $ LD_LIBRARY_PATH en el comando MPI resolvió el problema.
mpirun -x PATH=$PATH -x LD_LIBRARY_PATH=$LD_LIBRARY_PATH ...