0

OpenCL開発に関しては、全体的な状況について少し混乱しているので、現在の理解と質問をリストとして示します。私が間違っている場合は訂正してください。

  1. Intel、AMDによるSDK(「プラットフォーム」)があることを知っています(そして、Nvidia SDKにもOpenCLサポートがあると思いますか?)

  2. 他のベンダーのSDKはありますか?

  3. あるベンダーのSDKは別のベンダーのデバイスをサポートしますか?たとえば、AMD SDKを搭載したNvidiaデバイス?AMDSDKを使用してIntelCPUでプログラムを実行できます。

  4. 複数のプラットフォームを一度にインストールして実行時に処理する方法ですか?

ありがとうございました!

4

3 に答える 3

3

1) Intel SDK は、CPU および GPU デバイス (i7、HD4000、Xeon Phi など) の OpenCL 1.2 サポートを提供し、AMD SDK は、CPU および GPU デバイス (Opteron、HD5xxx、HD6xxx、HD7xxx など) の OpenCL 1.2 サポートを提供します。 .)、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 に照会し、それらの 1 つまたはすべてを使用できます。私は毎日、Intel OpenCL CPU デバイスを複数の AMD OpenCL GPU デバイスと並べて使用しています。

于 2013-02-24T16:50:02.950 に答える
2

これは、回答されたHow to use 2 OpenCL runtimesの複製です。簡単な答え: SDK はヘッダーを取得するだけです。インストールされたドライバーは、プラットフォームとデバイスを提供します。インストールされているものを使用できます。

于 2013-02-24T16:43:13.007 に答える
0

Intel OpenCL SDK は、CPU 用に OpenCL 1.2 をサポートしますが、Intel HD 用には OpenCL 1.1 のみをサポートします。彼らの Web ページ「インテル® HD グラフィックス上の OpenCL 1.1 と混合された CPU 上の OpenCL 1.2」を引用します。ただし、Intel HD のドライバーはあまり良くないようです。他のすべてで実行されるほとんどのコードでクラッシュします。

Nvidia SDK には、C++ バインディング ファイル cl.hpp が含まれていません。別の SDK からコピーするか、Khronos Group OpenCL サイトから入手できます。

AMD SDK を使用して AMD 以外のデバイスで OpenCL を実行する際に問題が発生したため、代わりに Intel SDK を使用し、AMD、Intel、および Nvidia で動作します。ただし、1.1 C++ バインディングと 1.2 C++ バインディングは 100% 互換ではありません。コードを Nvidia と AMD GPU の両方で動作させたい場合は、OpenCL 1.1 のみを使用し、次のように定義します。

于 2013-03-09T19:29:47.120 に答える