Darknet build error on jetson tx2 with jetpack4.4

Hello,
I am contacting you because there was an error while building with make after installing darknet and yolo.

This is my Jetson setting.

  • NVIDIA Jetson TX2
  • Jetpack UNKNOWN [L4T 32.4.4]
  • NV Power Mode: MAXP_CORE_ARM - Type: 3
  • jetson_stats.service: active
  • Libraries:
  • CUDA: 10.2.89
  • cuDNN: 8.0.0.180
  • TensorRT: 7.1.3.0
  • Visionworks: 1.6.0.501
  • OpenCV: 3.4.0 compiled CUDA: YES
  • VPI: 0.4.4
  • Vulkan: 1.2.70

There was an error making in the darknet directory and below is an error message.


nvcc -gencode arch=compute_53, code=[sm_53, compute_53] -gencode arch=compute_62, code=[sm_62, compute_62] -gencode arch=compute_70,code=[sm_70,compute_70] -Iinclude/ -I3rdparty/stb/include -DOPENCV pkg-config --cflags opencv4 2> /dev/null || pkg-config --cflags opencv -DGPU -I/usr/local/cuda/include/ -DCUDNN -DCUDNN_HALF --compiler-options “-Wall -Wfatal-errors -Wno-unused-result -Wno-unknown-pragmas -fPIC -Ofast -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -DCUDNN_HALF -fPIC” -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
nvcc fatal : Option ‘–generate-code arch=compute_53’, missing code
Makefile:180: recipe for target ‘obj/convolutional_kernels.o’ failed
make: *** [obj/convolutional_kernels.o] Error 1
make: *** Waiting for unfinished jobs…

The contents of the Makefile

GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_53,code[sm_53,compute_53]
-gencode arch=compute_62,code=[sm_62,compute_62]

I’d like to get some help.

Hi,

It looks like a format issue.

Could you update the Makefile to the following and try it again?

ARCH= -gencode arch=compute_53,code[sm_53,compute_53] \
-gencode arch=compute_62,code=[sm_62,compute_62]

Thanks.

Sorry, there was no problem with the format. I think it’s missing when writing the topic.

Error message when rebuilding after build failure.

./src/convolutional_layer.c: In function ‘cudnn_convolutional_setup’:
./src/convolutional_layer.c:148:5: warning: implicit declaration of function ‘cudnnGetConvolutionForwardAlgorithm’; did you mean ‘cudnnGetConvolutionForwardAlgorithm_v7’? [-Wimplicit-function-declaration]
cudnnGetConvolutionForwardAlgorithm(cudnn_handle(),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cudnnGetConvolutionForwardAlgorithm_v7
./src/convolutional_layer.c:153:13: error: ‘CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT’ undeclared (first use in this function); did you mean ‘CUDNN_CONVOLUTION_FWD_ALGO_DIRECT’?
CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CUDNN_CONVOLUTION_FWD_ALGO_DIRECT
compilation terminated due to -Wfatal-errors.
Makefile:95: recipe for target ‘obj/convolutional_layer.o’ failed
make: *** [obj/convolutional_layer.o] Error 1
make: *** Waiting for unfinished jobs…

And I installed version opensvtx2 before (opencv3.4.0). Can this be a problem?

Thanks.

I guess it is related to CUDNN version on your target.
Try to check whether proper cuddnn is installed;

import cv2
print cv2.getBuildInformation()

Hi,

For JetPack4.4, please use dlib 19.21 for the cuDNN v8 support.

Thanks.