2013-02-24 17 views
0

在OpenCL開發中,我對整體情況有點困惑,所以我只是將我當前的理解和問題列爲一個列表。如果我錯了,請糾正我。OpenCL SDK概述和硬件互操作性

  1. 我知道由Intel,AMD也有軟件開發工具包( 「平臺」)(我猜也有支持OpenCL在NVIDIA SDK?)

  2. 是否有軟件開發工具包由其他供應商?

  3. 一個供應商的SDK是否支持另一個供應商的設備?例如與AMD sdk的Nvidia設備?我能夠使用AMD SDK在我的英特爾CPU上運行程序。

  4. 它是一次安裝多個平臺並在運行時處理它們的方法嗎?

謝謝!

+0

問題1不是問題。對於問題3和4,請參閱http://stackoverflow.com/questions/14834403/how-to-use-2-opencl-runtimes – Thomas 2013-02-24 10:37:34

回答

2

這是How to use 2 OpenCL runtimes的重複,已回答。簡短的回答:SDK只是爲您提供標題。安裝的驅動程序提供平臺和設備。您可以使用任何已安裝的軟件。

3

1)英特爾SDK爲CPU和GPU設備提供OpenCL 1.2支持(例如i7,HD4000,Xeon Phi等),AMD SDK爲CPU和GPU設備提供OpenCL 1.2支持(例如Opteron,HD5xxx,HD6xxx ,HD7xxx等),NVIDIA SDK僅爲GPU(例如GTX 2xx,GTX 4xx,GTX 5xx,Tesla等)提供OpenCL 1.1支持。

2)是的,來自Apple,ARM等等。

3)是的,得益於OpenCL ICD,您可以在NVIDIA SDK上編譯可執行文件並在AMD硬件上運行。但是,您必須小心OpenCL版本,使用OpenCL 1.2 SDK編譯並在1.1上運行時可能會出現一些問題。平臺。

4)是的,您可以在運行時查詢OpenCL的可用平臺列表並使用其中的一個或全部。我使用每臺英特爾OpenCL CPU設備與多個AMD OpenCL GPU設備並排使用。

0

英特爾OpenCL SDK支持CPU的OpenCL 1.2,但只支持英特爾HD的OpenCL 1.1。引用他們的網頁「OpenCL 1.2與英特爾®高清顯卡上的OpenCL 1.1混合使用」。但是,英特爾HD的驅動程序似乎並不是很好。它在大部分運行於其他代碼上的代碼上崩潰。

Nvidia SDK不包含C++綁定文件cl.hpp。您可以從另一個SDK複製它或從Khronos Group OpenCL站點獲取它。

我在使用AMD SDK的非AMD設備上運行OpenCL時遇到問題,因此我使用英特爾SDK,它適用於AMD,英特爾和Nvidia。但是,1.1 C++綁定和1.2 C++綁定不是100%兼容的。如果你想讓代碼在Nvidia和AMD GPUS上工作,只能使用OpenCL 1.1,這個定義如下: #define CL_USE_DEPRECATED_OPENCL_1_1_APIS