我正在尝试使用以下方法启动并运行 GPU:
- OpenCv 2.4.10
- Visual Studio 2013
- Cuda 工具包 7.5(已测试并运行的 cuda 示例)
- Windows 10 x64
- 配备 NVIDIA GEFORCE GTX 860M 的联想 Y50
我使用带WITH_CUDA=ON的CMake编译了OpenCv,然后通过打开OpenCv.sln安装了库并构建了ALLBUILD和INSTALL项目。
将我的项目配置设置为:
VC++ 目录
- 包括目录:
- C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v7.5\include
- C:\OpenCv\opencv\build\install\include(包含已编译的库)
- C:\OpenCv\opencv\build\include
- 包括目录:
链接器-常规-附加库
- C:\OpenCv\opencv\build\x64\vc12\lib
- C:\OpenCv\opencv\build\install\x64\vc12\lib
链接器输入附加依赖项
- opencv_calib3d2410d.lib
- opencv_contrib2410d.lib
- opencv_core2410d.lib
- opencv_features2d2410d.lib
- opencv_flann2410d.lib
- opencv_gpu2410d.lib
- opencv_highgui2410d.lib
- opencv_imgproc2410d.lib
- opencv_legacy2410d.lib
- opencv_ml2410d.lib
- opencv_nonfree2410d.lib
- opencv_objdetect2410d.lib
- opencv_ocl2410d.lib
- opencv_photo2410d.lib
- opencv_stitching2410d.lib
- opencv_superres2410d.lib
- opencv_ts2410d.lib
- opencv_video2410d.lib
- opencv_videostab2410d.lib
我的环境变量: 路径= C:\Program Files\NVIDIA GPU计算; Toolkit\CUDA\v7.5; C:\OpenCv\opencv\build\install\x64\vc12\bin; C:\OpenCv\opencv\build\x64\vc12\垃圾箱
测试代码:
#include "opencv2\opencv.hpp"
#include "opencv2\gpu\gpu.hpp"
using namespace cv::gpu;
using namespace std;
int main() {
{
setDevice(0);
int gpu = getCudaEnabledDeviceCount();
cout << gpu ;
system("pause");
return 0;
}
}in
但是 setDevice 抛出
no GPU support (The library is compiled without CUDA support) in EmptyDeviceInfoFuncTable::setDevice, file c:\builds\2_4_PackSlave-win64-vc12-shared\opencv\dynamicuda\include\opencv2/dynamiccuda/dynamicuda.hpp. line 84
如果我注释 setDevice(0) 仍然未检测到 GPU,getCudaEnabledDeviceCount 返回 0。
最佳答案
问题是Opencv 2.4.10支持CUDA 4.2,而我的显卡仅兼容CUDA 6.5和7.5,我通过安装OpenCV 3.0.0解决了
关于c++ - 使用 OpenCv 2.4.10 + Cuda 7.5 + W10 时不支持 GPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774673/