2011年4月19日火曜日

4/19 OpenCL雑感

CUDAと比べるとやはり面倒。
これはマルチデバイスへの対応と動的コンパイルのため仕方がないのだろう。

CUDAだと、
1.デバイスのメモリ確保
2.デバイスへのメモリ転送
3.デバイス関数の実行
4.デバイスからのメモリ転送
で済むのだが、

OpenCLだと、
1.デバイスの情報取得
2.デバイスコンテキストなどの設定
3.デバイス関数のコンパイル(もしくはロード)
4.デバイスのメモリ確保と転送
5.デバイス関数のキューの確保とエンキュー(実行)
6.デバイスからのメモリ転送
となり非常に面倒。

文章だけではわからないだろうが、コンテキストやIDあたりが非常に煩雑だ。
メモリの確保と転送も、CUDAと比べると記述が多い。
デバッグが大変だった。


慣れの問題もあると思うが、早く使いこなせるようになりたい。
このままだとマイクロベンチを書くのも危うい。


Visual StudioはI君、U君や隣の研究室のS君の助けもあり何とか使えるようになった。
次はOpenCLとCALをどうにかしなければ。

0 件のコメント:

コメントを投稿