如何让cmake在编译yolo(darknet)时启用cuda?

问题描述 投票:0回答:4

我目前正在使用 cmake-gui 在 https://github.com/AlexeyAB/darknet.git 编译 yolo darknet。但是,它不会启用 cuda,并且我遇到了其他一些奇怪的问题。其中包括当我使用 VS2017 构建后从 Release 文件夹运行 darknet.exe 时,它指出找不到 pthreadVC2.dll 或 opencv_world410.dll。

为了解决其他问题,我复制了 exe 和这些文件,并将它们全部放在项目的根文件夹中。这似乎有效,但我不确定为什么否则它不起作用。

对于cuda,我不知道该尝试什么。我有这些系统变量和路径:

这是我的 cmake-gui:

可以看到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,我最终想使用它们。谢谢你!如果您需要我提供任何其他信息,请告诉我!

cmake cuda visual-studio-2017 cudnn yolo
4个回答
3
投票

与上面说的不同,我没有重新安装 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


2
投票

@Andropogon 给出了答案:Visual Studio 之后必须重新安装 CUDA。

这是我和同事深入研究后发现的:

  1. 与OP类似,所有编译步骤似乎都运行没有错误并生成可执行文件。
  2. 仔细看看 cmake,在 CMAKE/CMAKE_CUDA_COMPILER 下它说
    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 问题有所启发。


1
投票

我也遇到了同样的问题,我尝试了很多方法让GPU可用于transe,最后当我重新安装VS2019(从D盘到C盘)并重新安装v.10.1版本的CUDA时,cmake开始看到CUDA。之后,cmake开始寻找CUDA,并在VS2019中编译项目后,一切开始正常工作。 重要的是先安装 Visual Studio,然后再安装 CUDA。


0
投票

对于darknet,我已经为cuda v 10 cudnn 7.6.1安装了opencv 4.1,但我使用的是cmake版本2.26,vs 19,我不知道安装的版本是否正确。如果您能帮助我,我将不胜感激。如果我使用哪个版本,它们会相互适应,暗网就会打开。

© www.soinside.com 2019 - 2024. All rights reserved.