著作權聲明:對於本部落格所有原創文章,允許個人、教育和非商業目的使用,但務必保證文章的完整性且不作任何修改地以超連結形式註明原始作者、出處及本聲明。
部落格地址:http://blog.csdn.net/shuxiao9058
原始作者:季亞
前面,我們講到了使用OpenCV-2.4.0在Visual Studio 2005/2008/2010常規編譯的方法,本文則主要講述如何使OpenCV支援CUDA高速運算。
我們將要使用的工具除了常規編譯方式使用的工具外,還要使用CUDA tookit和GPU Computing SDK,如本人使用的版本分別為cudatoolkit_4.2.9_win_64.msi和gpucomputingsdk_4.2.9_win_64.exe(我的電腦是64位系統),相關檔案可以從官網下載。
下載完成後並安裝,確保CUDA SDK的bin目錄(“C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin”)已經添加到環境變數中後,我們就開始編譯支援CUDA高速運算的OpenCV。
本文以Visual Studio 2005 Professional為例,其他編譯器總體一樣,只不過在intel tbb環境變數配置這一步略微不同,可以參考博文:使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual
Studio2005/2008/2010目標檔案。
一、產生專案檔
假設我們已經將OpenCV-2.4.0原始碼放到“C:\Program Files\OpenCV\src”目錄下,安裝完成cmake,並將ntel tbb可執行目錄添加到系統內容變數,並使變數生效,相關部分參考博文:使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual
Studio2005/2008/2010目標檔案。
運行cmake,1所示,然後單擊“Where is the source code:”右側的“Browse Source”,瀏覽到“C:/ProgramFiles/OpenCV/src”檔案夾,單擊“where to build the binaries:”右側的“Browse Build”,瀏覽到“C:/Program Files/OpenCV/vs2005”檔案夾(vs2005檔案夾是我自己建立的)。
圖1 配置原始碼和組建目錄
然後單擊左下方的“Configure”按鈕,這時會彈出“cmake-gui”視窗,在“Specify the generator for this project”下拉式功能表選擇“Visual Studio 8 2005”、“Usedefault native compilers”後,單擊“Finish”按鈕,2所示。
圖2 產生項目類型選擇
完成以上操作後勾選“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”,注意這裡千萬不要勾選“CUDA_BUILD_EMULATION”選項,不然會報錯的,如下所示。
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message): CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must disable it to proceed. You have version 4.2.
這是因為在從CUDA 4.0開始NPP(NVIDIA Performance Primitives library,英偉達基本效能庫)就是CUDA tookit的一部分面不再單獨提供了。
配置tbb相關目錄(包含目錄、可執行目錄和庫目錄),詳情參考本人博文:使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual
Studio2005/2008/2010目標檔案。這裡不再贅述。
單擊“Configure”按鈕,所有紅色行已經變為白色,在下方的資訊我們會看到如下資訊:
Other third-party libraries: Use IPP: NO Use TBB: YES (ver 4.0 interface 6004) Use Cuda: YES (ver 4.2) Use Eigen: NO NVIDIA CUDA: (ver 4.2) Use CUFFT: YES Use CUBLAS: YES NVIDIA GPU arch: 11 12 13 20 21 NVIDIA PTX archs: 11 12 13 20 21 NVIDIA GPU features: 11 12 13 20 20 20
特別注意,有兩條為“Use TBB: YES (ver 4.0 interface 6004)”和“Use Cuda: YES (ver 4.2)”的字樣,證明我們已經將intel tbb和CUDA正確配置。
最後點擊Generate,下方的資訊裡面會有一條為“Generating done”的字樣(3所示),而且我們已經成功產生專案檔(4所示)。
圖3 “Generating done”
圖4 成功產生專案檔
二、編譯產生目標檔案三、整理目錄四、配置並測試OpenCV-2.4.0函數庫
說明:由於第二、第三和第四部分與本人另一篇博文:使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual
Studio2005/2008/2010目標檔案完全相同,只不過編譯時間需要相當長的時間,這裡不再贅述。
參考連結:http://blog.cuvilib.com/2011/03/22/how-to-build-opencv-2-2-with-gpu-cuda-on-windows-7/
附件下載:
http://115.com/file/c2eplh5m#cudatoolkit_4.2.9_win_32.msi
http://115.com/file/ancmqi7g#gpucomputingsdk_4.2.9_win_32.exe
http://115.com/file/ancmij8r#cudatoolkit_4.2.9_win_64.msi
http://115.com/file/dpk7d5nz#gpucomputingsdk_4.2.9_win_64.exe
編譯後檔案(無需再編譯,可直接使用):
http://download.csdn.net/detail/shuxiao9058/4272127 OpenCV-2.4.0-win32-vs2005(with
CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272129 OpenCV-2.4.0-win32-vs2008(with
CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272128 OpenCV-2.4.0-win32-vs2010(with
CUDA)&tbb