AlexeyAB / darknet

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )
http://pjreddie.com/darknet/
Other
21.66k stars 7.96k forks source link

compile error: undefined reference to cudnn (Ubuntu 16.04) #5398

Open Jason-cs18 opened 4 years ago

Jason-cs18 commented 4 years ago

Hi @AlexeyAB, I try to compile darknet as described in readme.md (How to compile on Linux, using cmake). But I often get the error (CMakeFiles/uselib.dir/build.make:152: recipe for target 'uselib' failed) because of undefined reference to cudnn. I installed cudnn and copy cudnn.h ... as described in nvidia-cudnn-install. Could you give me some suggestions to resolve this error?

Environment: ubuntu 16.04, opencv 3.3.1, cuda 10.0, cudnn 7.3.1 Screen Shot 2020-04-29 at 13 28 27

Error: (dl) root@21b192787fb8:/Code_jason/Cheetah/darknet/build-release# make [ 49%] Built target dark [ 50%] Linking CXX executable uselib /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: warning: libcudnn.so.7, needed by libdark.so, not found (try using -rpath or -rpath-link) /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: warning: libcurand.so.10.0, needed by libdark.so, not found (try using -rpath or -rpath-link) /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: warning: libcublas.so.10.0, needed by libdark.so, not found (try using -rpath or -rpath-link) /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: warning: libcuda.so.1, needed by libdark.so, not found (try using -rpath or -rpath-link) /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnCreate@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnCreatePoolingDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnCreateConvolutionDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnDestroyConvolutionDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnSetPooling2dDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnDestroyFilterDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnConvolutionBackwardData@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnCreateFilterDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to curandGenerateUniform@libcurand.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnGetConvolutionForwardWorkspaceSize@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnGetConvolutionForwardAlgorithm@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnSetConvolutionGroupCount@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to curandSetPseudoRandomGeneratorSeed@libcurand.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocublasSetStream_v2@libcublas.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnGetConvolutionBackwardFilterWorkspaceSize@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocublasSgemm_v2@libcublas.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnBatchNormalizationForwardTraining@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnDestroyTensorDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnCreateTensorDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnSetStream@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnSetFilter4dDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnDestroyPoolingDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnGetConvolutionBackwardDataAlgorithm@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnGetConvolutionBackwardDataWorkspaceSize@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnBatchNormalizationBackward@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnConvolutionForward@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnConvolutionBackwardFilter@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnGetConvolutionBackwardFilterAlgorithm@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnSetConvolution2dDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocublasCreate_v2@libcublas.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to cudnnGetErrorString@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocudnnSetTensor4dDescriptor@libcudnn.so.7' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to curandCreateGenerator@libcurand.so.10.0' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference tocuCtxGetCurrent' /usr/local/miniconda3/envs/dl/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: libdark.so: undefined reference to `cudnnSetConvolutionMathType@libcudnn.so.7' collect2: error: ld returned 1 exit status CMakeFiles/uselib.dir/build.make:152: recipe for target 'uselib' failed make[2]: [uselib] Error 1 CMakeFiles/Makefile2:126: recipe for target 'CMakeFiles/uselib.dir/all' failed make[1]: [CMakeFiles/uselib.dir/all] Error 2 Makefile:149: recipe for target 'all' failed make: *** [all] Error 2

awaisbajwaml commented 4 years ago

@YanLu-nyu can you please make sure you have reviewed the compatibility matrix

https://docs.nvidia.com/deeplearning/sdk/cudnn-support-matrix/index.html

Jason-cs18 commented 4 years ago

@YanLu-nyu can you please make sure you have reviewed the compatibility matrix

https://docs.nvidia.com/deeplearning/sdk/cudnn-support-matrix/index.html

Of course, my nvidia card is Geforce RTX 2080 Ti (Turing 7.5). As described in the compatibility matrix, the corresponding version of cuda is 10.0.x and cuDNN is v7.3.1-v7.5.0. Screen Shot 2020-04-29 at 17 55 25 CUDA version: 10.0.1 Screen Shot 2020-04-29 at 17 56 34 cuDNN version: 7.3.1 Screen Shot 2020-04-29 at 17 57 50 To verify cuDNN installation, I test tensorflow-example (tf.Session()) with GPU and show there is no error. Screen Shot 2020-04-29 at 18 01 15

Jason-cs18 commented 4 years ago

@awaisbajwaml I have checked versions of cuda and cudnn but these were correct (turning 7,5 - cuda 10.0.1 - cudnn 7.3.1). Do you have other suggestions about undefined reference?

awaisbajwaml commented 2 years ago

@YanLu-nyu not sure if you still have that issue, I would highly suggest you to upgrade to CUDA 11