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

#cmake #cuda #visual-studio-2017 #cudnn #yolo

#cmake #cuda #visual-studio-2017 #cudnn #yolo

Вопрос:

В настоящее время я использую 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:opencvbuildx64vc15bin 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, и я хотел бы использовать их в конечном итоге. Спасибо! Если вам нужно от меня что-нибудь еще, пожалуйста, дайте мне знать!

Комментарии:

1. Почему бы вам не проверить ENABLE_CUDA выше ENABLE_OPENCV ?

2. На самом деле это не включает его. Когда я сгенерирую его, снимите с него флажок. Если вы посмотрите на git hub и посмотрите на раздел компиляции Windows, где есть изображение того, что должен включать cmake, и мне не хватает группы значений Cuda. Не уверен, как их включить.

3. У меня такая же ошибка: «не удается найти pthreadVC2.dll «. Вы сказали, что теперь это работает у вас, как вы преодолели указанную ошибку? Спасибо 🙂

4. Переместите файл в тот же каталог, из которого вы запускаете darknet. Тогда он сможет это увидеть. Я отказался от попыток сделать с Cuda в Windows, так как я не могу найти решение для этого, дайте мне знать, если у вас получится @Andre

5. Конечно. К сожалению, я только что запустил тесты с частотой 1 кадр / с на процессоре. Графический процессор действительно необходим.

Ответ №1:

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

C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1extrasvisual_studio_integrationMSBuildExtensions

Для

C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160BuildCustomizations

Ответ №2:

Ответ был дан @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.

Ответ №3:

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