我目前正在使用 cmake-gui 在 https://github.com/AlexeyAB/darknet.git 编译 yolo darknet。但是,它不会启用 cuda,并且我遇到了其他一些奇怪的问题。其中包括当我使用 VS2017 构建后从 Release 文件夹运行 darknet.exe 时,它指出找不到 pthreadVC2.dll 或 opencv_world410.dll。
为了解决其他问题,我复制了 exe 和这些文件,并将它们全部放在项目的根文件夹中。这似乎有效,但我不确定为什么否则它不起作用。
可以看到CMAKE_CUDA_COMPILER未找到。我认为这是问题所在,但我不确定为什么找不到它。如果我在命令提示符下运行
nvcc -V
,它会返回:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018
Cuda compilation tools, release 10.0, V10.0.130
这里还有 cmake 配置的输出:
Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134.
OpenCV ARCH: x64
OpenCV RUNTIME: vc15
OpenCV STATIC: OFF
Found OpenCV 4.1.0 in C:/opencv/build/x64/vc15/lib
You might need to add C:\opencv\build\x64\vc15\bin to your PATH to be able to run your applications.
ZED SDK not enabled, since it requires CUDA
Configuring done
如果您对这些问题有任何建议,请告诉我。仅供参考,目前 darknet 确实可以工作,如果我在dog.jpg 上测试它,它会成功检测到这些类。然而,这当然没有 Cuda 或 cudnn,我最终想使用它们。谢谢你!如果您需要我提供任何其他信息,请告诉我!
与上面说的不同,我没有重新安装 CUDA,我只是复制了 4 个文件
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions
到
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
@Andropogon 给出了答案:Visual Studio 之后必须重新安装 CUDA。
这是我和同事深入研究后发现的:
NOT FOUND
,尽管 nvcc.exe 位于 Path
上。 (nvcc --version
在Powershell中运行良好。)我们手动将nvcc.exe的位置输入到此选项中,现在configure会出现一条更有用的错误消息:No CUDA toolset found.
参考各种cmake文件中的行号。其中有一条消息,这似乎证实了 Visual Studio (VS) 是问题的一部分, if(NOT CMAKE_VS_PLATFORM_TOOLSET_CUDA)
message(FATAL_ERROR "No CUDA toolset found.")
因此,重新安装 CUDA 后,编译看起来更像我所期望的 - 但我仍然得到一个可执行文件,它似乎没有执行任何操作(命令行上没有输出,没有生成
prediction.jpg
)。不管怎样,希望这能对 CUDA/VS/cmake 问题有所启发。
我也遇到了同样的问题,我尝试了很多方法让GPU可用于transe,最后当我重新安装VS2019(从D盘到C盘)并重新安装v.10.1版本的CUDA时,cmake开始看到CUDA。之后,cmake开始寻找CUDA,并在VS2019中编译项目后,一切开始正常工作。 重要的是先安装 Visual Studio,然后再安装 CUDA。
对于darknet,我已经为cuda v 10 cudnn 7.6.1安装了opencv 4.1,但我使用的是cmake版本2.26,vs 19,我不知道安装的版本是否正确。如果您能帮助我,我将不胜感激。如果我使用哪个版本,它们会相互适应,暗网就会打开。