2008年8月6日水曜日

ひさしぶりのcuda

最近、cudaをいじりいじり。

半年ぶりで、いろんなことを忘れまくっている。shared memoryがblockごとに共有だったのを忘れてて、一苦労。改めて思うけど、shared memoryの定義の仕方って、なんか混乱するなあ。初めての人は絶対あれ?ってなるんじゃまいか?2周目なのにあれってなった。

それにしても、shared memoryってこんな少なかったっけ?全部で数百KBだったっけ?Cellとそんなに変わらんように思い込んでたけど。GT200でsmあたりの容量が増えると思ったのになあ。増えんかった。むー。

2週目にして思うんだが、cudaはハードの抽象化がやや強くて、複雑で、Cellの方がかえってわかりやすいな。抽象化のせいか、メモリのアラインメントのとり方で、最適化する方法がごちゃごちゃしすぎじゃないか?SIMTで、連続したメモリの転送を考えるのは、本当にパズルだ。何千というスレッドプログラミングで、メモリの転送を効率化するというのは今までにない、難しい問題かもしれない。これは次期cudaのバージョンで解決されるかもしれないし、解決されない問題かもしれないなあ。これさえ解決されれば、SIMTってなかなかいいと思うんだけどなあ。

0 件のコメント: