GPGPUにCgまたはGLSLを使用した日数はほぼ終わりです。しかし、これらは3Dグラフィックスに多用され、今後もこのように使用され続けます。 GLSLとCgは、町で唯一のゲームであったため、科学計算にのみ使用されていました。 GPU上で汎用計算を行う他の方法はありませんでした。
現在GPGPUにGLSLを使用する唯一の理由は、プラットフォームに依存しないことです。さまざまなGPUでソフトウェアを実行できることが絶対に必要な場合は、現在のところ、まだまだ道のりです。しかし、OpenCLはこれを近い将来変更します。
科学計算がCUDAやOpenCLのようなものに移行している理由はたくさんあります。これらのライブラリを使用すると、GPUハードウェアへのアクセスが向上し、パフォーマンスのボトルネックをはるかに上回ります。これにより、GPUのパフォーマンスを最大限に引き出すことが容易になります。 CUDAとOpenCLはまた、GLSLやCgでは単純に利用できない機能(例えば共有メモリ)を提供しますが、多くのアルゴリズム(例えば、行列転置)で良好なパフォーマンスを得るためには重要です。もう1つの理由は、CUDAとOpenCLがグラフィックスコンテキストを必要とせずにGPUにアクセスできることです。これにより、コンピュータのGPUをリモートで計算することができます。
"以前はCgの背後にあるコミュニティと業界のサポートは同じではありませんでした..."これは私が尋ねる理由の一部です:CUDA、OpenCLなどは今、大きな推進力を持っています。今から1年後にそれがなくなるのだろうか?私のアプリケーションを移植する時間が膨大になると、ソフトウェアやハードウェアがほとんどサポートされなくなってしまいます。 – Pete
私は、CUDAとOpenCLの両方ではないにしても、少なくとも1つは将来も依然として強い支持を得ていると感じています。汎用コンピューティングにGPUを使用することは、より多くの人々がシェーダを作っている人数のほうが少ないためです。 – Apreche
「今から1年後になるの?あなたの懸念事項である場合、OpenCLは最も安全な賭けです。 CUDAはNVidiaハードウェア上でのみ動作します。 AMD/ATIのストリームSDK(別名CAL)は、ハードウェア上でのみ動作します。どちらもララビーには出ません。 DirectX 11の計算シェーダは、複数の製造元のハードウェア上で実行する必要がありますが、Windows XPまたはLinuxまたはMac OSではなくVistaまたはWindows 7でのみ実行してください。 OpenCLは、すべてのプラットフォームで標準となっている最初のツールセットであることを約束しています。したがって、従来の知恵は、それが生き残り、他は消滅するということです。 –