2011-11-04 249 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