私はStream 2.0ベータ版でATI OpenCLの実装を行ってきました。現在のベータ版のOpenCLは現在のところCPUのみを使用しています。次のバージョンはGPUカーネルをサポートする予定です。私は自分の仕事用マシンにATI GPUを持っているので、Streamをダウンロードしました。ハードウェアでOpenCLを実行する
GPUを使用することで大きな利益を得るソフトウェアを作成します。しかし、このソフトウェアは顧客のマシン上で動作しますが、開発するハードウェアを厳選して最適化するための贅沢はありません。だから私の質問は、もし私がATI OpenCLの実装を自分のアプリケーションに配布すれば、それは決してそれが決して使えないことを意味するでしょう。 NVidiaビデオカード? NVidia OpenCL SDKを使用すると、ATI/AMDリンクを考慮してAMDチップ上で決して最適に動作することはありませんか?
つまり、誰が最終的にOpenCLの実装を担当していますか?ユーザーは、 NVIDIAビデオカード用のOpenCL 'ドライバ'とAMD CPU上で最適なパフォーマンスを提供する「ドライバ」をインストールしますか?
他にも、Khronos掲示板とは別に、OpenCLの良い/アクティブなサポートフォーラムがありますか?私は、ATIにボードがあり、NVidiaにはおそらく独自のものがあることがわかりました.OpenCLのユーザー/開発者コミュニティはどこですか?すでに1つの場所に統合されていますか?
OpenGLとの違いは、OpenGLの場合、GPUベンダーがドライバ期間を書き込みます。 OpenGLはビデオカードでのみ動作します。しかし、OpenCLでは、理想的には、CPUベンダーがCPUカーネルのドライバを書き、OpenCLカーネルはCPUスレッドやGPUスレッドで実行できるため、GPUベンダーはGPUカーネルのドライバを書きます。これは将来どのように動作するはずですか? – Roel
OpenGLは、ハードウェアが特定の操作をサポートしていない場合のソフトウェアパスを常にサポートしています。そのため、OSベンダーはソフトウェアOpenGL実装を提供する必要があります(MS Windows OpenGLはOpenGL 1.1で固まっています)。おそらくOpenCLで同様のことが起こります。いずれにしても、AMD/ATIは、CPUとそのGPUの両方をサポートするOpenCLのバージョンをリリースする予定です。同様に、Intelは通常のCPUとLarrabee GPUをサポートするOpenCLをリリースする予定です。私はそれが何をサポートしているかを知るために、AppleのOpenCL実装について十分に知りません。 – Eric
顧客がATIのビデオカードとIntelのCPUを持っていれば、最適なパフォーマンスが得られないと私は結論づけることができますか?つまり、彼らがインストールしたOpenCLドライバ/実装に応じて、CPUまたはGPU上でカーネルを実行しますか?私はそれがマシン上でおそらく実行されることを知っているということです。それは私の心配ではありません。私の心配は、マシン上のすべてのハードウェア、すべてのCPUコア、およびすべてのGPUのコアを使用しているため、高速で実行されるかどうかです。 – Roel