Ich habe versucht, OpenCV 3.1 mit CMake (die GUI-Version) zu bauen, um Cuda zu aktivieren. Ich habe Cuda Version 7.5 64-Bit installiert und CMake fand automatisch den richtigen Pfad zum Cuda Toolkit. Ich stellte sicher, dass der Wert WITH_CUDA auf ON gesetzt war, und drückte auf configure. Folgendes habe ich bezüglich Cuda bekommen:OpenCV wird nicht mit CUDA gebaut, obwohl WITH_CUDA = ON in CMake
CUDA detected: 7.5
CUDA NVCC target flags: -gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=sm_21;-gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_30,code=compute_30
...
Extra dependencies: comctl32 gdi32 ole32 setupapi ws2_32 vfw32 cudart nppc nppi npps cufft -LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64
...
Other third-party libraries:
Use IPP: 9.0.1 [9.0.1]
at: C:/OpenCV-3.1.0/opencv/sources/3rdparty/ippicv/unpack/ippicv_win
Use IPP Async: NO
Use Eigen: NO
Use Cuda: YES (ver 7.5)
Use OpenCL: YES
Use custom HAL: NO
NVIDIA CUDA
Use CUFFT: YES
Use CUBLAS: NO
USE NVCUVID: NO
NVIDIA GPU arch: 20 21 30 35
NVIDIA PTX archs: 30
Use fast math: YES
Dann erzeuge ich Visual Studio 12 2013 Win64.
Als nächstes öffne ich das neu generierte OpenCV.sln-Projekt in Visual Studio 2013 und baue das Projekt. Es ohne Fehler, aber 103 Warnungen wie folgt aus:
LINK : warning LNK4044: unrecognized option '/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64'; ignored
OpenCV baut ganz gut und ich kann damit Programme bauen. Ich kann auch "opencv2/core/cuda.hpp" ohne Probleme hinzufügen. Allerdings, wenn ich versuchen, cuda :: GetDevice() i erhalten diesen Fehler zu verwenden:
OpenCV Error: No CUDA support (The library is compiled without CUDA support) in throw_no_cuda, file C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\include\opencv2/core/private.cuda.hpp, line 97
Wenn ich die Informationen von cv :: getBuildInformation print() i erhalten:
Other third-party libraries:
Use IPP: 9.0.1 [9.0.1]
at: C:\builds\master_PackSlave-win64-vc12-shared\opencv\3rdparty/ippicv/unpack/ippicv_win
Use IPP Async: NO
Use Eigen: NO
Use Cuda: NO
Use OpenCL: YES
Use custom HAL: NO
Es scheint Cuda ist irgendwo im Prozess deaktiviert, aber ich kann nicht herausfinden, warum. Ich habe versucht, mehrmals mit denselben Ergebnissen neu zu konfigurieren und zu erstellen. Würde mir etwas Hilfe dabei wünschen!
verwenden Sie CMake Gui? Wenn nicht. versuchen Sie es, es wird Ihnen sagen, welche Verzeichnisse benötigt werden und ob sie gefunden/korrekt sind – Micka
Ja, ich benutze die GUI-Version und alles Cuda verwandt (das ich in der Frage mindestens erwähnt) scheint richtig zu sein. – markustp
Format der Option -LC:/Programme/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64' sieht aus wie es von 'gcc' oder anderen Linux-Compiler (unter MinGW, wahrscheinlich) verwendet wird. Sind Sie sicher, dass die installierte CUDA mit dem 'cl'-Compiler kompiliert wurde, so dass sie mit VS-Projekt verknüpft werden kann? – Tsyvarev