25th Mon
CUDA/OpenCL/GLSLの比較
優れた点もいっぱいありますが、欠点を並べてみます。
CUDA
- NVidia依存
- 1回のkernel実行で同一テクスチャへのread/writeができない
OpenCL
- まだバグが多い
- 1回のkernel実行で同一imageオブジェクトへのread/writeができない(少なくともversion 1.0では)
GLSL
- 実装がWindow systemに依存している。アプリケーションの起動にXが必要になるなど。
GLSLはレンダーターゲットテクスチャを使うことで同一テクスチャへの読み書きができるのが便利。これはテクスチャへの書き込み位置をVertexシェーダを通して指定する必要があるという制約とのトレードオフ。CUDA/OpenCLのようにテクスチャ書き込みにランダムアクセスを許す仕様では実装の困難度が高いので、まだ実現出来ていない。OpenCLの仕様では、__read_write が予約されているので、将来はサポートされるかもしれない。
posted by
genki on Mon 25 Jan 2010 at 07:02 with 0 comments