c++ - 使用 OpenCv 2.4.10 + Cuda 7.5 + W10 时不支持 GPU

标签 c++ opencv visual-studio-2013 windows-10

我正在尝试使用以下方法启动并运行 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/

相关文章:

c++ - 为什么标准 C++ 库全部使用小写?

c++ - 是否有防止 STL 容器被交换的 C++ 分配器?

c++ - Opencv 膨胀和骨架(c++)

c++ - 为什么 MSVS 允许 NULL 作为纯虚函数说明符?

c++ - 以 3 函数的中位数进行的比较次数?

.net - 使用 VS 2013 和 .net 4.5.1 但仍然得到 “Changes to 64-bit applications are not allowed”

performance - 使用 ReSharper 时如何克服在编辑器中输入的延迟?

azure - 无法初始化 Microsoft Azure 存储模拟器 SDK2.8

c++ - OpenCV 机器学习函数需要 CvFileStorage* 而不是 cv::FileStorage*

非图像基本结构中的 OpenCV float 与 double