OpenCLとDirectComputeの比較を探していますが、何も見つかりませんでした。クロスプラットフォームであり、サポートされるGPUの範囲が広いというOpenCLの利点は、私には関係ありません。DX11GPUに対してのみWindowsでコーディングしても問題ありません。それを前提として、各APIの長所と短所は何ですか?
私はこの質問が以前に提起されたことを知っていますが、私はより多くの詳細を探しています。
Nvidiaハードウェアだけに制限したくないので、CUDAには興味がありません。
OpenCLとDirectComputeの比較を探していますが、何も見つかりませんでした。クロスプラットフォームであり、サポートされるGPUの範囲が広いというOpenCLの利点は、私には関係ありません。DX11GPUに対してのみWindowsでコーディングしても問題ありません。それを前提として、各APIの長所と短所は何ですか?
私はこの質問が以前に提起されたことを知っていますが、私はより多くの詳細を探しています。
Nvidiaハードウェアだけに制限したくないので、CUDAには興味がありません。
おそらくコーダーにとっての最大の違いは、DirectCompute が HLSL に似た言語でプログラミングされているのに対し、OpenCL は C に似た言語でプログラミングされていることです。
考慮すべきもう 1 つの違いは、一般に、コモディティ レベルの GPU の場合、Windows での OpenGL サポートよりも DirectX サポートの方が優れている (高速でバグが少ない) ことです。これは、DirectCompute のより安定したサポートにつながる可能性がありますが、実際には、これは推測にすぎません。
OpenCL の主な利点は、グラフィックス カードだけに限定されないことです。マルチコア CPU、グラフィックス カード、およびその他のハードウェア アクセラレーション デバイス (DSP など) をすべて同じプログラムから利用できます。
DirectCompute がその自由を許しているかどうかはわかりません。
もう 1 つのオプションは C++ AMP です。これは、ハードウェアの移植性を維持しながら、別のコンパイラを必要とせずに最新の C++ 構文を提供します。詳細については、こちらのリンクをたどってください。また、質問があれば自由に投稿してください。.aspx
アプリを Linux に簡単に移植できるので OpenCL を使用しますが、DirectCompute ではこれは不可能です。また、OpenCL 実装のパフォーマンスは時間とともに向上し (NVidia カードの CUDA と同じレベルになる)、(ドライバー) バグは (うまくいけば ;)) 時間とともに解消されると思います。