GPGPUのページ
GPGPUとは、General-Purpopse computation using GPUsの省略です。
ゲームなどでしか使われないと思われるグラフィックボードですが、
これは大量のデータを高速で処理するための並列処理演算を行うように設計されています。
この能力をグラフィック描画以外の一般的な計算に使おうというのがGPGPUです。
GPGPUを扱う環境はいくつかありますが、ここでは手軽に出来そうで今後も将来性がありそうな、
NVIDIAのCUDAを使っていこうと思います。
GPGPUを試すにあたって、純粋にアルゴリズムを書くということならば、
BrookGPUの方がよいと思ったのですが、結局、コンパイルが失敗してまともに使えてません・・・
余裕が出てきたらこちらも挑戦してみたいと思います。
グラボがNVIDIAに限定されないのでもう少し汎用的なものができると思うんですが。
一方のCUDAは、NVIDIAのグラフィックボードに限定されますが、
そのアーキテクチャに沿ったコーディングができますので、よりチューンできるという利点があると思います。
実行するまでにかなりすんなりいけましたし、OpenGLやDirectXとの併用も簡単そうなので、
こちらをメインに扱っていきたいと思います。
以下の説明では、1の説明のもと、手元でSDKおよびサンプルのソースを見ることができること、
また、一部のコードを実行可能な環境があることを前提として書いていきます。