本文转载部分已经获得作者的许可
http://blog.csdn.net/xuhang0910/article/details/45601035
以上网址是配置的具体方法,不过在下面我还要添加一些常见问题以及注意事项。
显卡作为电脑硬件的重要的一部分,其升级和换代的速度特别快,就论其框架来说,常见的一般有特斯拉、费米、开普勒以及麦克斯韦架构,这些在本文中并不是主要内容,我们在这里说的是其中一个参数Compute Capability,详情可见一下网址
https://developer.nvidia.com/cuda-gpus
下面我们以台式电脑gtx950显卡为例来说明这个参数在配置过程中的重要性。
我们看到台式电脑gtx950m的Compute Capability是5.2,所以在cmake编译的过程中,我们一般会看到这个
是不是特别奇怪,居然没有5.2
这个时候我们就要这样修改,把5.2加上去
这样我们再继续编译。
为什么要这样做呢?
下面是我的个人观点可能不准确
这是因为GPUS一般包括许多不同的机器码和中间码,当你编译的opencv-cuda库中不包括你的显卡所对应的架构和汇编指令时,这是你的GPUS会选择自己去重新编译,这样大量的时间会被白白的浪费,于是你的程序无论是第一次还是多次运行速度都是特别慢。
另外,如果你的cmake编译opencv库成功但在vs编译出错的话,那么你肯能需要换一个版本的opencv库了,这可能是你的cuda与opencv不兼容。