Ich versuche gerade, OpenCV 3.3 mit CUDA 9.0RC zu kompilieren, aber es wird nicht alles schaffen. (Kompilieren unter Windows, mit CMake 3.9 und Visual Studio 2017, für x64 Windows)Kompilieren von OpenCV 3.3 mit CUDA 9.0RC
Zuerst, wenn ich versuche, OpenCV ohne CUDA zu kompilieren, funktioniert alles gut.
Danach habe ich die "CUDA" Option in CMake hinzugefügt, mit all den richtigen Pfaden und Visual Studio geben Sie mir diesen Fehler:
9>------ Build started: Project: opencv_world, Configuration: Release x64 ------
9>Building NVCC (Device) object modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
9>nvcc fatal : Unsupported gpu architecture 'compute_20'
9>CMake Error at cuda_compile_generated_gpu_mat.cu.obj.cmake:206 (message):
9> Error generating
9> C:/OpenCV-3.3.0/opencv-3.3.0/build/modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
Denken es ein "ARCH" Problem ist, habe ich versucht, ändern, in CMake:
CUDA_ARCH_BIN : 2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1
zu:
CUDA_ARCH_BIN : 6.0 6.1
(Da ich bin mit einem 1080)
und Visual Studio gibt mir jetzt diesen Fehler:
6>------ Build started: Project: opencv_world, Configuration: Release x64 ------
6>Building NVCC (Device) object modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
6>gpu_mat.cu
6>'bin' is not recognized as an internal or external command,
6>operable program or batch file.
6>CMake Error at cuda_compile_generated_gpu_mat.cu.obj.cmake:206 (message):
6> Error generating
6> C:/OpenCV-3.3.0/opencv-3.3.0/build/modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
Ich weiß nicht, wo diese „ist“ von steht vor der Tür, und ich weiß wirklich nicht, was ich tun soll es funktionieren zu lassen.
Danke für Ihre Antworten!
Unterstützung für 2.x Rechenkapazität entfernt wurde in CUDA 9.0, nachdem sie In CUDA 8.0 veraltet, also dein erster Fehler.Was passiert, wenn du nur '2.0' aus der Liste der zu erstellenden Architekturen entfernst? Ich bin in der Lage herauszufinden, woher der 'bin' kommt, indem ich die Ausgabe von CMAKE (einem mächtigen Verschleierungstool) untersuche: Vermutlich ist es Teil eines falsch konstruierten Pfades, der daher als Aufruf einer ausführbaren Datei behandelt wird. – njuffa
Entfernen von 2.0 aus dem ARCH Build funktionierte für den ersten Fehler, aber gab mir dann den zweiten. Ich habe es geschafft, diesen Fehler zu überwinden (es war in der Tat ein Pfadproblem), aber jetzt, wenn ich versuche, OpenCV zu kompilieren, beschweren sie sich über "__half2float()" nicht erklärt .. Ich versuchte mein Bestes, konnte aber nicht finde die Antwort ... – TmZn