Как заставить cmake включить cuda при компиляции yolo (darknet)?

В настоящее время я использую cmake-gui для компиляции yolo darknet по адресу https://github.com/AlexeyAB/darknet.git. Однако он не включит cuda, и у меня есть несколько других странных проблем. К ним относятся, когда я запускаю darknet.exe из папки Release после его сборки с помощью VS2017, в нем говорится, что он не может найти pthreadVC2.dll или opencv_world410.dll.

Чтобы исправить другие проблемы, я скопировал exe и эти файлы и поместил их все в корневую папку проекта. Кажется, это работает, но я не уверен, почему в противном случае это не сработало бы.

Что касается cuda, я не уверен, что попробовать. У меня есть эти системные переменные и путь:  Системные переменные  Путь к системной переменной

Вот мой cmake-gui:  cmake1  cmake2

Видно, что 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

Если у вас есть какие-либо советы по решению любой из этих проблем, дайте мне знать. Просто к сведению, в настоящее время даркнет работает, и если я протестирую его на dog.jpg, он успешно обнаруживает классы. Тем не менее, это, конечно, без Cuda или cudnn, и я хотел бы в конечном итоге использовать их. Спасибо! Если вам еще что-нибудь нужно от меня, пожалуйста, дайте мне знать!


person Jacob Bunzel    schedule 24.04.2019    source источник
comment
Почему бы вам не проверить ENABLE_CUDA выше ENABLE_OPENCV?   -  person gameon67    schedule 25.04.2019
comment
На самом деле это не позволяет. Когда я его генерирую, снимает отметку. Если вы посмотрите на концентратор git и посмотрите на раздел компиляции Windows, где есть изображение того, что должен включать cmake, и мне не хватает группы значений Cuda. Не знаю, как их включить.   -  person Jacob Bunzel    schedule 25.04.2019
comment
У меня такая же ошибка: не могу найти pthreadVC2.dll. Вы сказали, что теперь это работает для вас, как вы преодолели указанную ошибку? Спасибо :)   -  person Andre    schedule 05.05.2019
comment
Переместите файл в тот же каталог, из которого вы запускаете даркнет. Тогда он сможет это увидеть. Я отказался от попыток использовать Cuda в Windows, так как я не могу найти решение для этого, дайте мне знать, если вы получите свою работу @Andre   -  person Jacob Bunzel    schedule 06.05.2019
comment
Конечно. К сожалению, я только что запустил тесты на 1fps на CPU. GPU действительно нужен.   -  person Andre    schedule 11.05.2019


Ответы (3)


Ответ дал @Andropogon: CUDA необходимо переустановить после Visual Studio.

Вот что мы обнаружили, когда я немного углубился в это с моим коллегой:

  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.

person craq    schedule 15.01.2020

У меня была та же проблема, я пробовал много способов сделать GPU доступным для трансляции, и, наконец, cmake начал видеть CUDA, когда я переустановил VS2019 (с диска D на диск C) и переустановил CUDA в версии v.10.1. После этого cmake начал находить CUDA, и после компиляции проекта в VS2019 все стало корректно работать. Важно сначала установить Visual Studio, а затем CUDA.

person Andropogon    schedule 31.10.2019

В отличие от вышесказанного, я не переустанавливал CUDA, я просто копировал 4 файла из

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions

to

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations

person Wade Wang    schedule 04.10.2020