如何編譯OpenCV-2.3.x/OpenCV-2.4.x使其支援GPU-CUDA高速運算?

來源:互聯網
上載者:User

    著作權聲明:對於本部落格所有原創文章,允許個人、教育和非商業目的使用,但務必保證文章的完整性且不作任何修改地以超連結形式註明原始作者、出處及本聲明。

    部落格地址: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.