【问题标题】:How to get cmake to enable cuda when compiling yolo (darknet)?编译yolo(darknet)时如何让cmake启用cuda?
【发布时间】:2019-09-13 18:15:30
【问题描述】:

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

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

对于 cuda,我不确定要尝试什么。我有这些系统变量和路径:

这是我的 cmake-gui:

可以看出CMAKE_CUDA_COMPILER 是NOTFOUND。我认为这是问题所在,但我不确定为什么找不到它。如果我在命令提示符下运行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

如果您对这些问题有任何提示,请告诉我。仅供参考,目前暗网确实有效,如果我在 dog.jpg 上对其进行测试,它会成功检测到这些类。但是,这当然没有 Cuda 或 cudnn,我最终想使用它们。谢谢!如果您需要我的其他任何东西,请告诉我!

【问题讨论】:

  • 你为什么不检查ENABLE_CUDA上面的ENABLE_OPENCV
  • 它实际上并没有启用它。当我生成它时,取消选中它。如果您查看 git hub,并查看 windows 编译部分,其中包含 cmake 应包含的图像,我缺少一组 Cuda 值。不知道如何将这些包括在内。
  • 我有同样的错误:“找不到 pthreadVC2.dll”。你说它现在对你有用,你是如何克服上述错误的?谢谢:)
  • 将文件移动到执行暗网的同一目录中。届时它将能够看到它。我已经放弃尝试在 Windows 上使用 Cuda,因为我找不到解决方案,让我知道你是否让你的工作@Andre
  • 当然可以。遗憾的是,我只是在 CPU 上以 1fps 的速度运行了测试。 GPU 真的很有必要。

标签: cmake cuda visual-studio-2017 cudnn yolo


【解决方案1】:

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

【讨论】:

    【解决方案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 问题有所了解。

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 2018-12-27
        • 2020-12-06
        • 2020-03-10
        • 1970-01-01
        • 2022-10-05
        • 1970-01-01
        • 2013-11-27
        相关资源
        最近更新 更多