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