速度が大幅に (50 倍から 1000 倍に) 向上する可能性があるアプリケーションの種類を示す、OpenCL の入門的な例を探しています。 Cudaにはすばらしい例がたくさんありますが、OpenCL で同じものは見つかりませんでした。
良い例は、粒子群、シミュレートされたアニーリング、進化的アルゴリズム、アリコロニーの最適化などによる複雑な機能のグローバルな最適化かもしれません.
あなたが説明しているアルゴリズムは、GPU プログラミングの観点からは単純でも入門的でもありません。CUDA がこれらの分野の例を持っている理由は、人々がこれらの例を開発するのに十分な時間があるからです。現在、GPU 上で動作する OpenCL の公開バージョンはありません。ATI と NVIDIA はどちらも OpenCL ドライバーのベータ版を提供していますが、ATI は CPU 計算のみをサポートしており、NVIDIA は取得するために NDA に署名する必要があります。簡単に言えば、OpenCL は、これらのような包括的な例が開発および実証されるほど長くは存在しませんでした。
とはいえ、NVIDIA の OpenCL ドライバーにアクセスすることは難しくありません。その方法については、こちらのフォーラムで確認できます。OpenCL ディストリビューションには、作業を開始するのに役立つサンプル プログラムが含まれていると思います。
これは、これらのベンチマークのいくつかを開発し、結果を投稿する絶好の機会であることも意味します. そうすれば、人々はあなたが彼らの仕事に言及するのではなく、あなたの仕事に言及するでしょう. しかし、あまり多くの驚きは期待できません。OpenCL のパフォーマンスは、広く利用可能になり、サポートされるようになると、CUDA のパフォーマンスとほぼ同等になるはずです。
nvidia の SDK のいくつかの優れた例を次に示します。
私たちのチームは、OpenCL アルゴリズムとアクセラレーションに取り組んできました。この記事を提案したいと思います。
最小化のためのシミュレーテッド アニーリング アルゴリズムのサンプル実装として。
次の 2 冊の本を試すことができます。
大規模並列プロセッサのプログラミング ... ハンズオン アプローチ (NVIDIA) (第 1 章および第 2 章)
The OpenCL Programming Book ... マルチコア CPU および GPU の並列プログラミング (履歴コンポーネント
どちらも、開発が行われた理由と真のボーナスがどこにあるのかを詳細に説明しています.
ベンチマークについてはよくわかりませんが、自分自身も運がありませんでした。