web-dev-qa-db-ja.com

Nvidiaカードを使用したCPUおよびGPUでのOpenCLプログラミング?

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コードを実行する方法はありますか?

5
Studer

Nvidia CUDAおよびATI Stream OpenCL実装は両方ともKhronos ICD拡張をサポートしているため、clGetPlatformIDを呼び出すと2つの異なるプラットフォームが取得されるため、これらのプラットフォームでCPU/GPUデバイスを照会でき、もちろんATIプラットフォームはCPUを返しますデバイスとNvidiaプラットフォームはGPUデバイスを返します。

次に、これらのデバイスでCommandQueuesを作成し、カーネルを起動できます。もちろん、これは、GPUとCPUの間でタスクを共有することは簡単ではないことを意味しますが、少なくともCPUからGPUに切り替えるボタンをアプリに持つことは非常に簡単です。

2
mhr3