質問

ってのATI OpenCL実施をストリーム2.0beta.のOpenCL現在のベータの使用のCPUのため、次期バージョンが支援GPUしています。ダウンロードしたストリームっATI GPUコンピューティングにおける私の仕事。

書いているソフトウェアの利益を大から利益を用いています。しかしこのソフトウェアを走るお客様の機械ないからラグジュアリー(多くの科学的なコンピューティング環境としての正確なハードウェアの開発のために、最適です。だがこの質問にびっくりする場合も含め、ATI OpenCLの実装と応用するということができるということはありえない使用例NVidiaビデオカード?とを用いれば、NVidia OpenCL SDKでないことを最適にAMDチップを考えるATI/AMDリンク)?

その他の言葉は、最終的にして提供する役割を担ってOpenCL実行?ま利用できる例えばのをインストールOpenCL'ドライバ"とNVidiaビデオカードと共に"ドすることができるようにな最適な性能をAMD CPU?

ちなみに、何かいい/活動支援フォーラムOpenCLらKhronosメッセージボード、またはその位でいいのだろうか?今のときにこのATIには、NVidiaおそらく自分のOpenCLユーザー/デベロッパーズコミュニティハングす。で既により、単一のだろうか?

役に立ちましたか?

解決

最終的には、OpenCLのは、OpenGLと同じように動作します。つまり、ユーザーが自分のハードウェアベンダー(ATI、NVIDIA、インテル)から最新のドライバをインストールします。あなたのアプリケーションを構築するときは、開発者として単にOpenCLのライブラリとリンクされます。ユーザーがアプリケーションを実行すると、アプリケーションがドライバによって提供された適切なベンダー固有のライブラリにリダイレクトされます。

このは、それが動作する方法ですが、それはこの方法ではない、まだ動作します。

は心に留めておくべきもう一つの重要なことは、あなたはまだ、おそらくコードはおそらくGPU上で実行されているコードとは異なる最適化されたカーネルパラメータを使用しますOpenCLのを使用してCPU上で実行されているとして、ベンダー固有のコードパスを提供しなければならないということです。同じことは、おそらくGPUベンダーとの違いについても同様です。

他のヒント

私は、これは上記の古い答えと古い質問です知っています。私は日付の答えを上にして、それを更新するだろうと思っています。

はい、OpenCLのの一の実装は、カーネルやコードが正しく書き込まれ、プラットフォームとデバイスの列挙コードで、今日、多種多様なデバイス上で動作します。正しいプラットフォームとデバイス列挙のコードを記述することはとても簡単で、トリッキーな部分は、どのプラットフォームやデバイス選択です。おそらく、ユーザーがいずれかを選択、または各1に対してマイクロベンチマークを実行して、動的に選択して、ベンチの結果をキャッシュすることができますあなたのアプリ内の設定オプションを提示しなければならない。

メンバーと、複数のプラットフォームを持つことになりますことができます。例えば、私のシステムは、GTX 580 SLIを持っているので、それは、NVIDIAプラットフォームに2つのデバイスを持っています。私CoreI7 990xエクストリームCPUもIntelプラットフォームでのデバイスとして起動しますので、それはまた、インテルのOpenCL SDKを持っています。

はい、例えば、使用して開発され、構築されたバイナリ、NVidiaのOpenCLのSDKは、ATI又はインテルOpenCLの上で動作する、およびその逆。もうその心配する必要はありません。

は、遅延ロードまたはLoadLibraryをopencl.dllとダイナミックリンクする必要があるかもしれないので、明らかに、エンドユーザーは、一切のOpenCLを持っていないかもしれません。

私はstronlyのNVidiaのGPU上、およびAMDのGPU上で、インテルのOpenCL SDKに対するあなたのコードをテスト示唆しています。おそらく、一つのプラットフォーム上の問題を引き起こすバグを見つけ、他の人に罰金を作品します。あなたはまた、おそらく完全に罰金コードが不思議に起因するドライバのバグのため、これらのプラットフォームのいずれかで正しい結果が得られていないでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top