3/12(火) 由利本荘・晴

 日本海側にしては珍しい晴天。雪も大分なくなったし,ぼちぼち春かしら。朝晩の冷え込みはまだきついので,ヒートテックは手放せないなぁ。

 今日は一日,CUDAプログラムの謎に振り回される。global関数を記述したcuプログラムと,純然たるホストCプログラムとのリンクはiccコンパイラでも難なくできたのだが(NVCCにオプションの設定が必要),試しにとdevice関数としてLU分解と前進・後退代入のプログラムを書いたら挙動が変。global memoryはGB単位であるはずなのに,この二つのdevice関数を組み込んだglobal関数を1 threadで走らせたら,一気に使用可能メモリが減り,300次元程度の問題しか解けない。それ以上の次元数を与えるとcudaMallocがエラーを返してくる。どーも,kernelコードの内容によって,確保できるメモリ量が変わってくるようなのだが,このあたりの仕様が全然わからん。GT640でも数千次元640までキチンと解いてくれるmagmaはその点えらいなぁ。遅いなんて言ってごめんなさい。でももっと速くしてほしいけどね。

 とはいえ,一応動くことは動いたので,明日はブロック行列構築にチャレンジしてみるか。

 という目標が出来たので,今日はこの辺で。