在Windows 下使用OpenCL
生活随笔
收集整理的這篇文章主要介紹了
在Windows 下使用OpenCL
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目前,NVIDIA和AMD的Windows driver均有支援OpenCL(NVIDIA的正式版driver是從195.62版開始,而AMD則是從9.11版開始)。NVIDIA的正式版driver中包含
OpenCL.dll,因此可以直接使用。AMD到目前為止,則仍需要安裝其SDK才有OpenCL.dll檔。不過,在最新的SDK中,NVIDIA和AMD使用的calling convention是相
同的。也就是說,使用AMD的SDK編譯的OpenCL程式,可以直接在NVIDIA的driver下運(yùn)作。反過來也是一樣。
AMD的OpenCL SDK是在AMD Stream SDK 2.0里面,目前是beta 4。NVIDIA的OpenCL SDK則包括在最新的CUDA 3.0 SDK beta中。兩個SDK可以同時安裝在同一 部電腦中,基本上不會有沖突的問題。 由于OpenCL SDK的重點(diǎn)只是在header file和程式庫,因此設(shè)定上是很單純的。在AMD的SDK中,會建立一個環(huán)境變數(shù)??ATISTREAMSDKROOT。Header files就在include 目錄中,而程式庫檔案則在lib里面。NVIDIA的SDK也是類似,有一個環(huán)境變數(shù)??NVSDKCOMPUTE_ROOT。不過,因為NVIDIA的SDK同時包括CUDA及OpenCL,因此它 的header files是 ??在OpenCL\common\inc目錄里,而程式庫則是在OpenCL\common\lib里面。 關(guān)于程式庫的部份,還有一點(diǎn)特別需要注意的是,AMD和NVIDIA都有提供32 bits及64 bits的程式庫,供32 bits及64 bits的程式使用。NVIDIA的SDK中,32 bits的程式 庫是在lib目錄下的Win32目錄里,而64 bits的則是在x64目錄里。AMD的SDK中,則分別是在x86及x86_64目錄里。 以下是使用Visual Studio 2008 Express 設(shè)定的范例: NVIDIA 的CUDA SDK: 特別注意的是,因為NVIDIA的SDK在區(qū)分32 bits及64 bits版本程式庫所使用的目錄名稱(Win32及x64)和Visual Studio 2008內(nèi)建的$(PlatformName)是一致的, 因此可以直接使用。AMD的SDK就要分別設(shè)定了。另外,如果使用的是32 bits的SDK,則不包括64 bits的library,因此路律就不需要再加上$(PlatformName)。 以下是AMD SDK 的設(shè)定方式: 最后,把OpenCL.lib 加到程式庫里面就可以了(這點(diǎn)對兩個SDK 都是一樣的): 最后再順便提到一個小地方。在MacOS X 10.6 中,OpenCL 的header 檔是存在OpenCL 目錄中,也就是 #include <OpenCL/opencl.h> 但是在Windows 下(以及可能所有其它的OS 下),都是 #include <CL/cl.h> 因此,如果想要讓同一個程式碼,可以同時在各種OS 下都能編譯的話,在include 檔案時,建議寫成: #ifdef __APPLE__ #include <OpenCL/opencl.h> #else #include <CL/cl.h> #endif 這樣就可以同時在MacOS X 10.6 下,以及其它的OS 下都能使用了。
總結(jié)
以上是生活随笔為你收集整理的在Windows 下使用OpenCL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专访雷果国:从1.5K到18K 一个程序
- 下一篇: Java—JVM的内存