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

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

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

Для cuda я не уверен, что попробовать. У меня есть эти системные переменные и путь: Как заставить cmake включить cuda при компиляции yolo (даркнет)?Как заставить cmake включить cuda при компиляции yolo (даркнет)?

Вот мой cmake-gui: Как заставить cmake включить cuda при компиляции yolo (даркнет)?Как заставить cmake включить cuda при компиляции yolo (даркнет)?

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

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

gameon67 25.04.2019 02:28

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

Jacob Bunzel 25.04.2019 17:04

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

Andre 05.05.2019 20:56

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

Jacob Bunzel 06.05.2019 00:35

Конечно вещь. К сожалению, я только что провел тесты на скорости 1 кадр/с на процессоре. GPU действительно нужен.

Andre 11.05.2019 09:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
5
7 169
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Ответ принят как подходящий

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

В отличие от вышесказанного, я не переустанавливал 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

Другие вопросы по теме