AlexeyAB / darknet

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

rtx3070 couldn't work #6970

Open wentao-yolo-1996 opened 3 years ago

wentao-yolo-1996 commented 3 years ago

I brought a new rtx3070,installed cuda 10.1(also try 10.2).cudnn7(also try 8 with cuda10.2),after successfuly compiled darknet.exe,i want to test a picture,but it just get stuck there and doesn't,could anybody help me ,or there is something wrong with my rtx3070
image

bizmate commented 3 years ago

When you opened the bug it asks the following information. Could you provide it all?


If you want to report a bug - provide:

wentao-yolo-1996 commented 3 years ago

sorry for didn't give the correct bug information.I use a new rtx3070 gpu in win10/vs2019 to do my work.my problem is ,after i installed cuda(10.2)with cudnn8,opencv(3.4.12),and i successfully compiled the darknet ,get the darknet.exe file,than i use the following command

darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -i 0 -thresh 0.25 -ext_output dog.jpg

and it worked as follow

F:\yolo\darknet-master\darknet-master\build\darknet\x64>darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -i 0 -thresh 0.25 -ext_output dog.jpg
 CUDA-version: 10020 (11010), cuDNN: 8.0.2, CUDNN_HALF=1, GPU count: 1
 CUDNN_HALF=1
 OpenCV version: 3.4.12
 0 : compute_capability = 860, cudnn_half = 1, GPU: GeForce RTX 3070
net.optimized_memory = 0
mini_batch = 1, batch = 8, time_steps = 1, train = 0
   layer   filters  size/strd(dil)      input                output
   0

it just stoped there,i waited a few minutes,got the result

F:\yolo\darknet-master\darknet-master\build\darknet\x64>darknet.exe detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights -i 0 -thresh 0.25 -ext_output dog.jpg
 CUDA-version: 10020 (11010), cuDNN: 8.0.2, CUDNN_HALF=1, GPU count: 1
 CUDNN_HALF=1
 OpenCV version: 3.4.12
 0 : compute_capability = 860, cudnn_half = 1, GPU: GeForce RTX 3070
net.optimized_memory = 0
mini_batch = 1, batch = 1, time_steps = 1, train = 0
   layer   filters  size/strd(dil)      input                output
   0 conv     32       3 x 3/ 2    416 x 416 x   3 ->  208 x 208 x  32 0.075 BF
   1 conv     64       3 x 3/ 2    208 x 208 x  32 ->  104 x 104 x  64 0.399 BF
   2 conv     64       3 x 3/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.797 BF
   3 route  2                                  1/2 ->  104 x 104 x  32
   4 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   5 conv     32       3 x 3/ 1    104 x 104 x  32 ->  104 x 104 x  32 0.199 BF
   6 route  5 4                                    ->  104 x 104 x  64
   7 conv     64       1 x 1/ 1    104 x 104 x  64 ->  104 x 104 x  64 0.089 BF
   8 route  2 7                                    ->  104 x 104 x 128
   9 max                2x 2/ 2    104 x 104 x 128 ->   52 x  52 x 128 0.001 BF
  10 conv    128       3 x 3/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.797 BF
  11 route  10                                 1/2 ->   52 x  52 x  64
  12 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  13 conv     64       3 x 3/ 1     52 x  52 x  64 ->   52 x  52 x  64 0.199 BF
  14 route  13 12                                  ->   52 x  52 x 128
  15 conv    128       1 x 1/ 1     52 x  52 x 128 ->   52 x  52 x 128 0.089 BF
  16 route  10 15                                  ->   52 x  52 x 256
  17 max                2x 2/ 2     52 x  52 x 256 ->   26 x  26 x 256 0.001 BF
  18 conv    256       3 x 3/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.797 BF
  19 route  18                                 1/2 ->   26 x  26 x 128
  20 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  21 conv    128       3 x 3/ 1     26 x  26 x 128 ->   26 x  26 x 128 0.199 BF
  22 route  21 20                                  ->   26 x  26 x 256
  23 conv    256       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 256 0.089 BF
  24 route  18 23                                  ->   26 x  26 x 512
  25 max                2x 2/ 2     26 x  26 x 512 ->   13 x  13 x 512 0.000 BF
  26 conv    512       3 x 3/ 1     13 x  13 x 512 ->   13 x  13 x 512 0.797 BF
  27 conv    256       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 256 0.044 BF
  28 conv    512       3 x 3/ 1     13 x  13 x 256 ->   13 x  13 x 512 0.399 BF
  29 conv    255       1 x 1/ 1     13 x  13 x 512 ->   13 x  13 x 255 0.044 BF
  30 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000
  31 route  27                                     ->   13 x  13 x 256
  32 conv    128       1 x 1/ 1     13 x  13 x 256 ->   13 x  13 x 128 0.011 BF
  33 upsample                 2x    13 x  13 x 128 ->   26 x  26 x 128
  34 route  33 23                                  ->   26 x  26 x 384
  35 conv    256       3 x 3/ 1     26 x  26 x 384 ->   26 x  26 x 256 1.196 BF
  36 conv    255       1 x 1/ 1     26 x  26 x 256 ->   26 x  26 x 255 0.088 BF
  37 yolo
[yolo] params: iou loss: ciou (4), iou_norm: 0.07, cls_norm: 1.00, scale_x_y: 1.05
nms_kind: greedynms (1), beta = 0.600000
Total BFLOPS 6.910
avg_outputs = 310203
 Allocate additional workspace_size = 0.01 MB
Loading weights from yolov4-tiny.weights...
 seen 64, trained: 32012 K-images (500 Kilo-batches_64)
Done! Loaded 38 layers from weights-file
 Detection layer: 30 - type = 27
 Detection layer: 37 - type = 27
 Detection layer: 161 - type = 27
dog.jpg: Predicted in 23721.728000 milli-seconds.
bicycle: 92%    (left_x:  114   top_y:  128   width:  458   height:  299)
dog: 98%        (left_x:  129   top_y:  225   width:  184   height:  316)
truck: 92%      (left_x:  464   top_y:   77   width:  221   height:   93)
pottedplant: 33%        (left_x:  681   top_y:  109   width:   37   height:   46)

i followed the recommend setting step,but why did it cost so much time?what should i do to resolve this problem? @bizmate

bizmate commented 3 years ago

How slow/fast is your F drive? Tried running it from another drive? In one command you are using yolov4 and in the other yolov4-tiny? Which one is the right one that you are troubleshooting? Can you time how long it takes? ie in linux i would just run time in front of the command.

If you are familiar with docker, does it run well with it? You can see an example in this script https://github.com/bizmate/bash-essentials/blob/master/docs/DARKNET_DETECT_AND_TRASH.md but you need docker to be properly configured to use your GPU (check official documentation)

wentao-yolo-1996 commented 3 years ago

My F drive is quite fast,and i try to put it in another drive,the same problem. I used yolov4 and yolov4-tiny to test the different costs of time.the yolov4-tiny.weights cost about 23721milli-seconds and the yolov4.weights costs almost three times. i don't know much of docker,but i heared that RTX 30 series need cuda11 to match the ampere architecture,so i tried to install cuda11.0 and 11.1,however,both of them couldn't even compile,still confused.

bizmate commented 3 years ago

That is why i dont use darknet without docker. Too many compilation troubleshooting errors. I have logged several on this project but they are not answered. Unless you can fix the cuda installation try docker

wentao-yolo-1996 commented 3 years ago

Finally i solved my problem.hope my solution could help others. after reinstall cuda11.1,cudnn8.0,and correctly set opencv, i change the setting of darknet.vcxproj usecompute_86,sm_86(as my compute capability) instead of compute_30,sm_30;compute_75,sm_75,also the cuda version,and it compiled successfully! if somebody meet the similar problem,just try it!

ten1er commented 3 years ago

I have compiled darknet.dll or darknet.exe successfully with cuda11.1, cudnn8.0, but it predicts nothing, have you gugs meet this?

wentao-yolo-1996 commented 3 years ago

I have compiled darknet.dll or darknet.exe successfully with cuda11.1, cudnn8.0, but it predicts nothing, have you gugs meet this?

could you give more detail?in what command you used?did you open file in the correct path?have you downloaded the weights file and save it in the right place?you'd better read the readme.md file.

GHao207 commented 3 years ago

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much!

20201229100747

wentao-yolo-1996 commented 3 years ago

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much!

20201229100747

Sorry,I can't see the image you put in.could you give more detail about the problem you've met or show us your log or code? I've also done some program using yolo_cpp_dll.dll ,usually the problem came from the setting of VS.did you follow the official c++ demo step?

GHao207 commented 3 years ago

Hi, I am GHao207. The enclosure is the picture. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much! 20201229100747

Sorry,I can't see the image you put in.could you give more detail about the problem you've met or show us your log or code? I've also done some program using yolo_cpp_dll.dll ,usually the problem came from the setting of VS.did you follow the official c++ demo step?

Hi, I send an email to you with the picture in enclosure. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

wentao-yolo-1996 commented 3 years ago

Hi, I am GHao207. The enclosure is the picture. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much! 20201229100747

Sorry,I can't see the image you put in.could you give more detail about the problem you've met or show us your log or code? I've also done some program using yolo_cpp_dll.dll ,usually the problem came from the setting of VS.did you follow the official c++ demo step?

Hi, I send an email to you with the picture in enclosure. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

i still can't see the picture you mentioned,In github,you'd better not post an image,use log or code instead.otherwise,cudnn 8.0.4 or 8.0.5 both matched cuda 11.1 perfectly,you could download it in the NVIDIA website.it seems you changed your GPU card,and after you install cuda11.1 and cudnn 8.0.4 or 8.0.5, before compile,you should change the setting file as i rendered above-mentioned https://github.com/AlexeyAB/darknet/issues/6970#issuecomment-727702142

GHao207 commented 3 years ago

Hi, I am GHao207. The enclosure is the picture. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much! 20201229100747

Sorry,I can't see the image you put in.could you give more detail about the problem you've met or show us your log or code? I've also done some program using yolo_cpp_dll.dll ,usually the problem came from the setting of VS.did you follow the official c++ demo step?

Hi, I send an email to you with the picture in enclosure. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

i still can't see the picture you mentioned,In github,you'd better not post an image,use log or code instead.otherwise,cudnn 8.0.4 or 8.0.5 both matched cuda 11.1 perfectly,you could download it in the NVIDIA website.it seems you changed your GPU card,and after you install cuda11.1 and cudnn 8.0.4 or 8.0.5, before compile,you should change the setting file as i rendered above-mentioned #6970 (comment)

I have read the #6970 (comment),but maybe I need to change the "yolo_console_dll.vcxproj"?,I didn't find the "compute_86 , sm_86" the output is : Used GPU 0 0 : compute_capability = 860, cudnn_half = 1, GPU: GeForce RTX 3080 net.optimized_memory = 0 mini_batch = 1, batch = 8, time_steps = 1, train = 0 layer filters size/strd(dil) input output
0

GHao207 commented 3 years ago

Hi, I am GHao207. The enclosure is the picture. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

Hi, I have the same problem with you when I used the RTX3080 to predict image (win10). It's different that I used the yolo_cpp_dll.dll. Could you help me find the soluitons. Thank you very much! 20201229100747

Sorry,I can't see the image you put in.could you give more detail about the problem you've met or show us your log or code? I've also done some program using yolo_cpp_dll.dll ,usually the problem came from the setting of VS.did you follow the official c++ demo step?

Hi, I send an email to you with the picture in enclosure. I really follow the official c++ demo step to generate the .dll file, and I can correctly run the .dll at win7+cuda10.2+cudnn7.6.5+GTX1080Ti. By the way, I find there is no cudnn for CUDA11.1 with win10_x64 at NVIDIA offical website,do you kow why. Thank you!

i still can't see the picture you mentioned,In github,you'd better not post an image,use log or code instead.otherwise,cudnn 8.0.4 or 8.0.5 both matched cuda 11.1 perfectly,you could download it in the NVIDIA website.it seems you changed your GPU card,and after you install cuda11.1 and cudnn 8.0.4 or 8.0.5, before compile,you should change the setting file as i rendered above-mentioned #6970 (comment)

I have read the #6970 (comment), but maybe I need to change the "yolo_console_dll.vcxproj"? I didn't find the "compute_86 , sm_86"in "yolo_console_dll.vcxproj" file

the consule output is :

Used GPU 0
0 : compute_capability = 860, cudnn_half = 1, GPU: GeForce RTX 3080
net.optimized_memory = 0
mini_batch = 1, batch = 8, time_steps = 1, train = 0
layer filters size/strd(dil) input output
0
wentao-yolo-1996 commented 3 years ago

you should make sure all requirement have been installed before you start your program,usingcompute_86 , sm_86 replace compute_30,sm_30;compute_75,sm_75both in your darknet.vcxprojandyolo_cpp_dll.vcproj,by the way,don't forget modify the cuda version. As for the log you provide,it seems you didn't load the weight file correctly,you'd better check the way you read from. @GHao207

asfarley commented 3 years ago

I believe I'm running into this issue. Is it confirmed that yolo_cpp_dll.dll will not work on an RTX3070 out of the box unless these changes are made to the project?

I thought CUDA had some backwards-compatible capability so that a project compiled with the compute capability of an older version would be able to run on a newer card. Is this wrong?


Update: got it working by compiling with CMake. I did not have to edit the compute_architecture in order for it to work on both GTX2070 and RTX3080.

wota-n commented 3 years ago

Is it possible for you to do a step by step guide on this? I find the official Nvidia wiki install guide to be too confusing and I've been trying to get it to work for the past few days. Also using an RTX 3070.

asfarley commented 3 years ago

@wota-n where are you getting stuck? I don't have time to make a full guide but I might be able to help. I didn't have to reference any nVidia documentation at all.

wota-n commented 3 years ago

@wota-n where are you getting stuck? I don't have time to make a full guide but I might be able to help. I didn't have to reference any nVidia documentation at all.

I can't compile at all right now. Can you tell me what versions of CUDNN and CUDA you are using? I'm using CUDA 11.1 and CUDNN 8.0.4. I tried editing the CUDA versions in the yolo_cpp_dll.vcxproj and it does not work.

Edit 1: Found a search result that fixed the missing file as pointed in the screenshot below but that still does not fix the inability to compile and I'm not sure how to read this error message at all.

Screenshot 2021-02-20 232201

asfarley commented 3 years ago

@wota-n CUDA 11.2, cudnn 8.1.077.

In terms of getting everything set up, all you have to do is: 1) Install CUDA 2) Download cudnn, move files into appropriate CUDA directories 3) Install CMAKE and configure/generate project

I didn't have to make any manual changes to projec files.

wentao-yolo-1996 commented 3 years ago

@wota-n It seems you didin't install cuda correctly.try to reinstall it. and what's your complie problem? Did you compile for darknet or the dll file?you should compile darknet first if you want to get the dll file.change the setting of darknet.vcxproj and open darknet.sln, let's see if you could compile successfully or not.

wota-n commented 3 years ago

@wota-n It seems you didin't install cuda correctly.try to reinstall it. and what's your complie problem? Did you compile for darknet or the dll file?you should compile darknet first if you want to get the dll file.change the setting of darknet.vcxproj and open darknet.sln, let's see if you could compile successfully or not.

I've reinstalled CUDA 11.1 following this guide. The error that appears now is as follow: image

This is after trying to build the darknet.vcxproj file. I've added the cudnn.lib in the Linker->Input and I've tried your advice on changing the compute to "compute_86, sm_86"

Edit 1: I've tried reinstalling everything with using the vcpkg method and the result is that it's stuck at layer 0 when using the darknet.exe command to test images.

wentao-yolo-1996 commented 3 years ago

that's exactly the problem i met and posted in this issue,i reconmand you read this issue from the first begaining. good luck!@wota-n