1

我已经安装了 OpenCV 2.4.3,并使用 cmake 确保启用了 CUDA。

所以,我做到了: cmake WITH_CUDA 。

我得到了以下信息:

-- CUDA detected: 5.0
-- CUDA NVCC target flags: -gencode;arch=compute_11,code=sm_11;-gencode
m_13;-gencode;arch=compute_20,code=sm_20;-gencode;arch=compute_20,code=
pute_20,code=compute_20
-- Could NOT find PythonInterp (missing:  PYTHON_EXECUTABLE) (Required
--
-- General configuration for OpenCV 2.4.3 =============================
--
--   Platform:
--     Host:                        Windows 6.1 x86
--     CMake:                       2.8.8
--     CMake generator:             Visual Studio 10
--     CMake build tool:            C:/PROGRA~2/MICROS~2.0/Common7/IDE/
--     MSVC:
--
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ Compiler:                cl
--     C++ flags (Release):         /DWIN32 /D_WINDOWS /W4  /GR /EHs  /
_SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast  /wd4251 /M
--     C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4  /GR /EHs  /
_SCL_SECURE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast  /wd4251 /M
--     C Compiler:                  cl
--     C flags (Release):           /DWIN32 /D_WINDOWS /W3   /D _CRT_SE
RE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast    /MP8  /MD /O2 /Ob
--     C flags (Debug):             /DWIN32 /D_WINDOWS /W3   /D _CRT_SE
RE_NO_WARNINGS /Gy /bigobj /arch:SSE2 /Oi /fp:fast    /MP8  /D_DEBUG /M
--     Linker flags (Release):      /STACK:10000000 /machine:X86   /INC
--     Linker flags (Debug):        /STACK:10000000 /machine:X86   /deb
--     Precompiled headers:         YES
--
--   OpenCV modules:
--     To be built:                 core imgproc flann highgui features
gpu stitching ts videostab
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 androidcamera java ocl python
--
--   GUI:
--     QT 4.x:                      NO
--     Win32 UI:                    YES
--     OpenGL support:              NO
--
--   Media I/O:
--     ZLib:                        build (ver 1.2.7)
--     JPEG:                        build (ver 62)
--     PNG:                         build (ver 1.5.12)
--     TIFF:                        build (ver 42 - 4.0.2)
--     JPEG 2000:                   build (ver 1.900.1)
--     OpenEXR:                     build (ver 1.7.1)
--
--   Video I/O:
--     FFMPEG:                      YES (prebuilt binaries)
--       codec:                     YES (ver 53.61.100)
--       format:                    YES (ver 53.32.100)
--       util:                      YES (ver 51.35.100)
--       swscale:                   YES (ver 2.1.100)
--       gentoo-style:              YES
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     DirectShow:                  YES
--     XIMEA:                       NO
--
--   Other third-party libraries:
--     Use IPP:                     NO
--     Use TBB:                     NO
--     Use C=:                      NO
--     Use Cuda:                    YES (ver 5.0)
--     Use OpenCL:                  NO
--     Use Eigen:                   NO
--
--   NVIDIA CUDA
--     Use CUFFT:                   YES
--     Use CUBLAS:                  NO
--     NVIDIA GPU arch:             11 12 13 20 21 30
--     NVIDIA PTX archs:            20
--     Use fast math:               NO
--
--   Python:
--     Interpreter:                 NO
--
--   Documentation:
--     Build Documentation:         NO
--     Sphinx:                      NO
--     PdfLaTeX compiler:           NO
--
--   Tests and samples:
--     Tests:                       YES
--     Performance tests:           YES
--     Examples:                    NO
--
--   Install path:                  C:/opencv/install
--
--   cvconfig.h is in:              C:/opencv
-- -----------------------------------------------------------------

所以,很明显,CUDA 被检测到了。

我还构建了这个拼接程序: https ://code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/stitching.cpp?rev=6683

而且,它有效,我可以看到它可以很好地缝合图像。

但是,无论我是否使用 WITH_CUDA,我都看不到性能差异!

当我检查这个时: gpu::getCudaEnabledDeviceCount() 它返回零!!!我相信这表明它没有使用 CUDA!

我错过了什么?我应该如何在这个例子中使用 CUDA?(我在调试/发布配置中都试过)

我是否需要为此代码构建一些特殊的东西才能开始使用 CUDA?谢谢,--鲁迪

4

0 回答 0