Ubuntu 10.10とNvidia GTX 480グラフィックカードを搭載したbi Xeonマシンがあり、CPUとGPUでOpenCLを使用したいと思います。
最新のNvidiaドライバー(nvidia-current)をapt-getでインストールし、最新のCUDA Toolkit(3.2)をNvidiaページからダウンロードしてインストールしました。
ただし、これにより、CPUではなくNvidia GPUでのみOpenCLコードを実行できます。
次に、ATI SDKがCPUでOpenCLコードを実行できると言っているインターネット上の記事を読みました。
ATIドライバーの最新バージョンをインストールし、SDKをコンパイルしようとしました。
その後、CPU上でコードを実行できましたが、GPU上では実行できませんでした。
Nvidia GPUとXeon CPUの両方でOpenCLコードを実行する方法はありますか?
Nvidia CUDAおよびATI Stream OpenCL実装は両方ともKhronos ICD拡張をサポートしているため、clGetPlatformIDを呼び出すと2つの異なるプラットフォームが取得されるため、これらのプラットフォームでCPU/GPUデバイスを照会でき、もちろんATIプラットフォームはCPUを返しますデバイスとNvidiaプラットフォームはGPUデバイスを返します。
次に、これらのデバイスでCommandQueuesを作成し、カーネルを起動できます。もちろん、これは、GPUとCPUの間でタスクを共有することは簡単ではないことを意味しますが、少なくともCPUからGPUに切り替えるボタンをアプリに持つことは非常に簡単です。