Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/12/2015, à 12:49

bird12358

Cuda erreur lors de l'utilisation

Bonjour,

Je travaille sur cuda et qt que j'utilise comme IDE. J'ai la version 5.5 de cuda

J'ai donc trouvé un .pro sur internet que j'ai modifié:

#-------------------------------------------------
#
# Project created by QtCreator 2013-04-17T16:30:33
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = QtCuda
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp


# This makes the .cu files appear in your project
OTHER_FILES +=  ./cuda_interface.cu

# CUDA settings <-- may change depending on your system
CUDA_SOURCES += ./cuda_interface.cu
CUDA_SDK = /usr/include/   # Path to cuda SDK install
CUDA_DIR = /usr/lib/nvidia-cuda-toolkit            # Path to cuda toolkit install

# DO NOT EDIT BEYOND THIS UNLESS YOU KNOW WHAT YOU ARE DOING....

SYSTEM_NAME = unix         # Depending on your system either 'Win32', 'x64', or 'Win64'
SYSTEM_TYPE = 32            # '32' or '64', depending on your system
CUDA_ARCH = sm_21           # Type of CUDA architecture, for example 'compute_10', 'compute_11', 'sm_10'
NVCC_OPTIONS = --use_fast_math


# include paths
INCLUDEPATH += $$CUDA_DIR/include

# library directories
QMAKE_LIBDIR += /usr/lib/nvidia-cuda-toolkit/lib #/usr/lib/i386-linux-gnu #$CUDA_DIR/lib/

CUDA_OBJECTS_DIR = ./


# Add the necessary libraries
CUDA_LIBS = -lcuda -lcudart

# The following makes sure all path names (which often include spaces) are put between quotation marks
CUDA_INC = $$join(INCLUDEPATH,'" -I"','-I"','"')
#LIBS += $$join(CUDA_LIBS,'.so ', '', '.so')
LIBS += $$CUDA_LIBS

# Configuration of the Cuda compiler
CONFIG(debug, debug|release) {
    # Debug mode
    cuda_d.input = CUDA_SOURCES
    cuda_d.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
    cuda_d.commands = $$CUDA_DIR/bin/nvcc -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda_d.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda_d
}
else {
    # Release mode
    cuda.input = CUDA_SOURCES
    cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
    cuda.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda
}

DISTFILES += \
    cuda_interface.cu

La compilation se passe bien mais le probleme c'est que lorsque je lance le programme il me dit:

error while loading shared libraries: libcudart.so.4: cannot open shared object file

La commande ldd sur mon programme me donne:

ldd QtCuda 
	linux-gate.so.1 =>  (0xb77d4000)
	libcudart.so.4 => not found
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb76c2000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7514000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb74ce000)
	/lib/ld-linux.so.2 (0xb77d5000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb74b1000)

Ce que je ne comprends pas c'est que j'utilise cuda 5.5 et pas cuda 4 alors pourquoi veut-il libcudart.so.4?


Quelqu'un pourrait-il me donner des pistes?

D'avance merci.

Hors ligne

#2 Le 26/12/2015, à 19:59

claudius01

Re : Cuda erreur lors de l'utilisation

Bonsoir,

Peux-tu lancer la commande suivante pour voir dans ton système les librairies de cuda et leurs liens:

$ find /usr -follow -name "libcudart.so*" \;

NB1: Ton problème ressemble à: Why can't libcudart.so.4 be found when compiling the CUDA samples under Ubuntu?

NB2: A l'occasion, tu peux définir / compléter LD_LIBRARY_PATH avec le répertoire contenant libcudart.so.4 si trouvée naturellement...

Hors ligne