2012-02-22 4 views
2

現在開発中のコンシューマ製品でOpenCLを使用することを検討します。WindowsでのOpenCLの成熟度

私は小さな研究をして、私は一般的にMac OSXの下で良いサポートがあることが分かった。 Linuxのサポートも比較的良いですが、私のターゲットオーディエンスはLinuxを使用していません。それがWindowsでどれくらいうまくサポートされているかを確認する必要があります。

Windowsに関しては、私はOpenCL distributionが見つかりました。

Windowsでコンシューマ向け製品でOpenCLを使用している経験がありますか? OpenCLのGPU側、特にドライバーのサポートにもっと興味があります。

答えて

1

AMDとNVIDIAの両方をサポートOpenCLのほとんど(すべて?)自分のGPUの

残念ながら、インテルは唯一のビット無意味であるCPUでそれをサポートしており、ユーザーがための別のGPUを持っていると主張している場合あなたのアプリにはNVidiaのものがあり、CUDAを使っていると主張することもできます。これはOpenCLの使用を制限しています。

+0

「すべて」ではなく、[nvidia list](http://developer.nvidia.com/cuda-gpus)、[amd list](http://developer.amd.com/sdks/AMDAPPSDK/ pages/DriverCompatibility.aspx) – elmigranto

+0

@elmigranto - これはNVIDIA CudaでサポートされているGPUのリストです。私は、NvidiaがすべてのCuda対応チップでopenCLをサポートしていると信じています。 –

+0

NVIDIAはおそらくそうです。しかし、NVIDIAのOpenCLはCUDAの上に実装されているので、CUDAをサポートしていないGPUもOpenCLをサポートしないことがあります。 – elmigranto

4

CUDAやStreamと同じように、OpenCLはドライバによってサポートされる必要があります。ほとんどのCUDA対応GPUは、幾分最新のドライバ(CUDA 1.0以上)でOpenCLをサポートしています。 実際、CUDA SDK 4.1などでコンパイルすると、OpenCLを使用した場合よりも新しいドライバが必要になります。

また、OpenCLはどのGPUアーキテクチャにもバインドされていません。これは、特別に設計されたアルゴリズムでは問題になるかもしれませんが、通常のエンドユーザープログラムにはあまり影響しません。

少なくともCUDAでは、現在知られているメジャーバージョンに最適化されたコードのみをコンパイルできます。エンドユーザマシン上でOpenCLカーネルをコンパイルすると、将来、より新しいバイナリ仕様の最適化が可能になる可能性があります。

Nvidia OpenCLについて報告された質問は、一般的に、リソースが適切に解放されていないと多くのことが起こるように見受けられます。私は作成されたカーネルをリリースしなかったリークを修正するまで、同様のクラッシュを見てきました。 私はそれがクラッシュする唯一の理由だとは言っていませんが、プログラマーのエラーを除けば、かなり安定しているようです。

関連する問題