4

GPUコンピューティングにうまく対応する必要のある(財務上の)タスクがいくつかありますが、OpenCLとDirectComputeのどちらを使用すべきかはよくわかりません。私はGPUコンピューティングをいくつか行いましたが、それはずっと前(3年)でした。当時は実際には代替手段がなかったので、OpenGLを介してそれを行いました。

私はいくつかのOpenCLプレゼンテーションを見てきましたが、それは本当に素晴らしく見えます。DirectComputeについてはまだ何も見ていませんが、それも良いと思います。

現時点では、クロスプラットフォームの互換性には関心がありません。さらに、2つのモデルは、一方から他方に移動しようとしたときに大きな頭痛の種を引き起こさない程度に類似していると思います。

それで、あなたはこれらの2つのいずれかを使用しましたか?特にDirectCompute?OpenCL(およびCUDA)と比較してどうですか?

4

3 に答える 3

3

グラフィックス以外の計算を検討していることを考えると、コミュニティ支援の方法でより多くのものを見つける可能性が高いため、DirectComputeよりもOpenCLを選択することをお勧めします。

あるアプリケーションから別のアプリケーションへの移行が比較的簡単であることをすでに確認している場合、つまり、アプリケーションを並列化する作業を完了したら、同じ理由でOpenCLとDirectComputeの両方でCUDAを検討することもできます。

あなたは以前にOpenGLで働いたことがあります。それらのどれもそれと比較して使用するのが楽しいはずです!

于 2010-05-27T15:51:45.353 に答える
2

私はOpenCLを学んでいます。私があなたと同じような決断をしたとき、私にとってOpenCLの最大の利点は、異種環境に適しています(CUDAや他のソリューションとは異なります)。ハードウェアだけでなく、OSも意味します。OpenCLは、たとえばCUDAよりもはるかに無料の標準です。

コードを書くのは費用のかかる作業です。将来的には、gpgpuコードを使用できるようになりたいと思っています。多くの並列CPU、ベンダーのデバイス、または異なるオペレーティングシステムで使用できます。私は自分のコンピューターで小さなタスクを計算できますが、多くのCPUを搭載したUniversityのはるかに大きなマシンでは、より多くのタスク並列タスクを実行できます。別のマシンでは、より多くのデータ並列タスクを実行できます。OpenCLは、さまざまなハードウェアおよびOSでこのようなコードの再利用を提供します。

于 2011-01-25T21:30:29.790 に答える
0

もう1つのオプションはC++AMPです。これも、GPUを対象とし、フォールバックCPUマルチコアおよびSIMD命令を対象としています。これにより、コンピューティングに集中できるようになります。グラフィックスと統合する必要がある場合は、そのための相互運用レイヤーもあります。オープンスペックを通じて、ある時点で他のオペレーティングシステムの実装を確認する必要があります。詳細については、ここからリンクをたどってください。質問がある場合は、遠慮なく投稿してください。http: //blogs.msdn.com/b/nativeconcurrency/archive/2011/09/13/c-amp-in-a-nutshell .aspx

于 2012-03-16T22:31:44.487 に答える