2011-11-04 294 views
0

我想用gpu功能来编译opencv。所以我需要用cuda编译opencv。 我已经下载了opencv,我还在我的Ubuntu上安装了教程http://wiki.accelereyes.com/wiki/index.php/Installing_CUDA_Under_Ubuntu_10.04用Cuda编译OpenCV失败

当我尝试cmake -D WITH_CUDA=ON在输出它说

找不到CUDA: “” 不适宜的版本,但需要的是在 至少 “4.0”(位于/ usr /本地/ CUDA)

这个问题让我疯狂!我无法让它工作!我确信所有环境变量和路径对于cuda都是正确的。

您可能会想到的任何解决方案?

回答

0

检查CUDA_ARCH_BIN值。它应该是1.1 1.2 1.3 2.0或类似的东西。

并检查CUDA_ARCH_PTX并确保它是正确的并适合您的体系结构。理论上,它可能是空的,咩谁知道?

3

我自己做了本教程(当然我也收集了它)。我在Ubuntu 11.10上试了一下,我认为它对像我这样的初学者来说是一个好开始。希望它有一些用处。

1 CUDA没有用gcc 4.5或更高的工作,所以,如果你的gcc版本要高,你应该安装gcc 4.4:

$ sudo apt-get install build-essential gcc-4.4 g++-4.4 

2,现在下载并安装相应的CUDA驱动程序:

$ sudo apt-get install \ 
nvidia-current \ 
nvidia-current-dev \ 
nvidia-current-updates \ 
nvidia-current-updates-dev 

3-从nvidia网站下载CUDA工具包和SDK(http://developer.nvidia.com/cuda-downloads) 请注意,某些版本的CUDA驱动程序仅适用于特定版本的工具包(例如(driver 280.13 works与工具箱4.0或更低)如果遇到指示CUDA驱动程序和运行时不匹配的错误消息,则应返回并安装较低版本的工具包。在重新安装过程中不要担心,即使它是更高版本,也会删除前一个。 您可以检查由CUDA驱动程序版本:

$ cat /proc/driver/nvidia/version 

您可以检查工具包版本:

nvcc –version 

4复制并安装您刚刚下载两个文件。运行: $使用chmod + X (文件名) $。/(文件名)

5编译SDK中的例子,你也需要这样的:

$ sudo apt-get install freeglut3-dev libxi-dev 

而创建这些linkes

sudo ln -s /usr/lib/libXmu.so.6 /usr/lib/libXmu.so 
sudo ln -s /usr/lib/nvidia-173/libGL.so /usr/lib/libGL.so 

6加入CUDA到您的路径:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/cuda/lib64 

7-现在添加库路径:

cat /etc/ld.so.conf.d/nvidia_settings.conf \ 
/usr/lib/nvidia-setting \ 
/usr/local/cuda/lib64 \ 
/usr/local/cuda/lib 

sudo ldconfig 

8现在去NVIDIA_GPU_COMPUTING_SDK _...文件夹并打开像vim文本编辑器文件C /普通/ common.mk和更改这些行:

LINKFLAGS += 

要 LINKFLAGS + = - L/usr/lib目录/ NVIDIA电流

而且 NVCCFLAGS:= 要 NVCCFLAGS:= -ccbin /usr/bin/gcc-4.4

9最后,你应该编译和运行一个例子来确认安装完成。再去NVIDIA_GPU_COMPUTING_SDK文件夹,并运行make:

sudo make 

要运行示例,请NVIDIA_GPU_COMPUTING_SDK/C /斌/ LINUX /释放 并通过运行一个例子: ./(name在其中一个文件的文件夹)

10-之后,当您想编写自己的CUDA程序时,您应该编辑NVIDIA_GPU_COMPUTING_SDK文件夹中的一个示例并编译它,就像您为示例所做的那样。

这里有一些网站,你可以参考一下:

Source1 Source2