Hi,
My system:
Ubuntu16.04
CUDA9.1
cuDNN7.1
opencv3.3.1
Modify the head in the MakeFile , set all flags to 1. Modify -gencode arch for GTX1080.
Part of error messages:
./src/convolutional_kernels.cu:6:0: warning: ignoring #pragma comment [-Wunknown-pragmas]
#pragma comment(lib, "cudnn.lib")
^
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/activation_kernels.cu -o obj/activation_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/im2col_kernels.cu -o obj/im2col_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/col2im_kernels.cu -o obj/col2im_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/blas_kernels.cu -o obj/blas_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/crop_layer_kernels.cu -o obj/crop_layer_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/dropout_layer_kernels.cu -o obj/dropout_layer_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/maxpool_layer_kernels.cu -o obj/maxpool_layer_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/network_kernels.cu -o obj/network_kernels.o
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/avgpool_layer_kernels.cu -o obj/avgpool_layer_kernels.o
g++ -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN -Wall -Wfatal-errors -O0 -g -DOPENCV -fopenmp -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC obj/http_stream.o obj/gemm.o obj/utils.o obj/cuda.o obj/convolutional_layer.o obj/list.o obj/image.o obj/activations.o obj/im2col.o obj/col2im.o obj/blas.o obj/crop_layer.o obj/dropout_layer.o obj/maxpool_layer.o obj/softmax_layer.o obj/data.o obj/matrix.o obj/network.o obj/connected_layer.o obj/cost_layer.o obj/parser.o obj/option_list.o obj/darknet.o obj/detection_layer.o obj/captcha.o obj/route_layer.o obj/writing.o obj/box.o obj/nightmare.o obj/normalization_layer.o obj/avgpool_layer.o obj/coco.o obj/dice.o obj/yolo.o obj/detector.o obj/layer.o obj/compare.o obj/classifier.o obj/local_layer.o obj/swag.o obj/shortcut_layer.o obj/activation_layer.o obj/rnn_layer.o obj/gru_layer.o obj/rnn.o obj/rnn_vid.o obj/crnn_layer.o obj/demo.o obj/tag.o obj/cifar.o obj/go.o obj/batchnorm_layer.o obj/art.o obj/region_layer.o obj/reorg_layer.o obj/reorg_old_layer.o obj/super.o obj/voxel.o obj/tree.o obj/convolutional_kernels.o obj/activation_kernels.o obj/im2col_kernels.o obj/col2im_kernels.o obj/blas_kernels.o obj/crop_layer_kernels.o obj/dropout_layer_kernels.o obj/maxpool_layer_kernels.o obj/network_kernels.o obj/avgpool_layer_kernels.o -o darknet -lm -pthread `pkg-config --libs opencv` -lgomp -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand -L/usr/local/cudnn/lib64 -lcudnn -lstdc++
obj/image.o: In function `cvPointFrom32f':
/usr/local/include/opencv2/core/types_c.h:929: undefined reference to `cvRound'
/usr/local/include/opencv2/core/types_c.h:930: undefined reference to `cvRound'
obj/image.o: In function `cvReadInt':
/usr/local/include/opencv2/core/core_c.h:2350: undefined reference to `cvRound'
obj/image.o: In function `cvEllipseBox':
/usr/local/include/opencv2/imgproc/imgproc_c.h:1041: undefined reference to `cvRound'
/usr/local/include/opencv2/imgproc/imgproc_c.h:1042: undefined reference to `cvRound'
obj/darknet.o:/usr/local/include/opencv2/core/types_c.h:929: more undefined references to `cvRound' follow
collect2: error: ld returned 1 exit status
Makefile:103: recipe for target 'darknet' failed
make: *** [darknet] Error 1
Hi, Darknet supports CUDA 9.1, cuDNN 7.1 and OpenCV any <= 3.4.0.
To fix it just don't use DEBUG=1 in the Makefile.
https://stackoverflow.com/questions/42918747/yolo-c-compilation-failure-with-debug-1/46808785#46808785
Use DEBUG=0 or change these lines in the Makefile: https://github.com/AlexeyAB/darknet/blob/2f52cfeb07e11fce8275496164293cf30b732907/Makefile#L47-L49
to these:
ifeq ($(DEBUG), 1)
OPTS=-Og -g
endif
This is old known bug of C API in the OpenCV 3.x: https://github.com/opencv/opencv/issues/8658
Solved.
modify Makefile:
ifeq ($(DEBUG), 1)
OPTS=-O4 -g
endif
Most helpful comment
Hi, Darknet supports CUDA 9.1, cuDNN 7.1 and OpenCV any <= 3.4.0.
To fix it just don't use
DEBUG=1in the Makefile.