我已经安装了 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?谢谢,--鲁迪