ultima tutorial para mundo hola ejemplos c++ unix ubuntu cuda gpu-programming

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 ...