CUDA対OpenCLについては特に強い感情はありません。おそらくOpenCLは、オープンスタンダードであるという点だけで、長期的な未来です。
しかし、今日のGPGPU(グラフィックスパフォーマンスではなく、GPGPU)用のNVIDIAとATIのカードについては、私は強い意見を持っています。それを導くために、私はビッグクラスターの現在のトップ500リストで、NVIDIAがAMD 4システムを1に導き、gpgpu.orgで、NVIDIAの検索結果(論文、オンラインリソースへのリンクなど)を指摘します。 AMD 6:1の結果を上回っています。
この違いの大きな部分は、利用可能なオンライン情報の量です。NVIDIA CUDAゾーンとAMDのGPGPU Developer Centralを比較してください。開発者が立ち上げるためにそこにあるものの量は、比較に近づくことすらありません。NVIDIAのサイトでは、おそらくあなたのような問題に取り組んでいる人たちからの大量の論文と寄稿されたコードが見つかります。NVIDIAや他の場所からの大量のオンラインクラス、および開発者のベストプラクティスガイドなどの非常に便利なドキュメントを見つけることができます。無料の開発ツール(プロファイラー、cuda-gdbなど)を利用できることで、NVIDIAのやり方を圧倒します。
(編集者:この段落の情報はもはや正確ではありません。)そして、違いのいくつかはハードウェアにもあります。AMDsカードはピークフロップの点でより優れたスペックを持っていますが、そのかなりの部分を取得するには、問題を多くの完全に独立したストリームプロセッサに分割するだけでなく、各作業項目もベクトル化する必要があります。1つのコードをGPGPU処理するのは十分に困難であることを考えると、一部のプロジェクトを成功または失敗させるには、その余分なアーキテクチャの複雑さで十分です。
そして、これらすべての結果、NVIDIAユーザーコミュニティは成長を続けています。私が知っている3つまたは4つのグループのうち、GPUクラスターの構築を検討しているグループのうち、AMDカードを真剣に検討しているグループはありません。そして、それはNVIDIA側でさらに多くのグループが論文を書いたり、コードを寄稿したりすることを意味します。
私はNVIDIA shillではありません。私はそれがこの方法ではなく、2つ(またはそれ以上)の同等の魅力的なGPGPUプラットフォームがあることを望みます。競争は良いです。たぶんAMDはすぐにゲームを強化するでしょう-そして、近々登場するフュージョン製品は非常に説得力があるように見えます。しかし、今日どのカードを購入するか、そして今すぐにどこに時間を費やすかについて誰かに助言を与える際、私は良心的に両方の開発環境が同等に良いとは言えません。
追加するために編集:上記は元の質問に答えるという点で少し楕円形だと思うので、もう少し明確にしましょう。ハードウェアから得られるパフォーマンスは、無限の時間を利用できる理想的な世界では、基盤となるハードウェアとプログラミング言語の機能にのみ依存します。しかし実際には、投資して一定の時間内に得られるパフォーマンスの量は、開発ツール、既存のコミュニティコードベース(たとえば、公的に利用可能なライブラリなど)にも強く依存します。これらの考慮事項はすべて、NVIDIAを強く示しています。
(編集者:この段落の情報はもはや正確ではありません。)ハードウェアに関しては、AMDカードのSIMDユニット内でのベクトル化の要件により、NVIDIAハードウェアを使用する場合よりも紙のパフォーマンスの達成がさらに困難になっています。