3/11(月) 由利本荘・雪後曇

 ふ~,また更新をサボってしまった。昨日は午前中予定通り家事をこなせたのだが,非常勤の看護学校の採点をダラダラ先延ばしにして,答案を横目に見つつ,AcerのUltra BookをWindows 8にアップデートする作業に逃避してしまい,結局採点が終わったのは夜八時過ぎ。慌てて由利本荘の本局までテカテカに凍り付いた路面に脅かされながら車を走らせ投函したのであった。

 で,全く進まなかった分,本日は頑張ろう・・・ってな訳で,ドキュメントは未整備なれど,BNCpack Ver.0.8BIRK Ver.0.01を公開。この辺でFixしておかないと自分でも何が動いているのか把握できないからなぁ。特にBIRK,大本はHairerJayのアルゴリズムそのままなんだが,混合精度反復改良法を入れ込んだために,あれこれいろんな機能をとっかえひっかえできるようにしちゃってごちゃごちゃの極み。整理できるようになったらその暁には・・・といいつつ,JayもTutorialはほったらかしにしているし,まぁ世の中そんなものである。

 午後に入って,今週メインのGPGPUの作業に取り掛かる。連立一次方程式を解く必要があったので,Magmaのdgetrf_gpu(LU分解)とdgetrs_gpu(前進・交代代入)を使ってみる。ベンチマークプログラムでぶん回してみると,やっぱり早くないな。直接法の限界だろうなぁ。

 で,いざメインのプログラムに組み込もうとすると,やっぱりブロック行列の構築の所で嵌る。小行列をタイル状に並べて一つの行列にするという作業,CPU上では楽勝なんだが,GPU上で,しかもHostプログラムだけからやろうとすると相当面倒なやり取りが発生してしまう。やっぱりkernelコードを書く必要があるなぁ,と結論付けたところで12時間経過,寄る年波には勝てず,今週末が卒論の締め切りという学生さん達を横目に早めに帰宅させたもらう。もっとも,あちらは夜型(午前中は寝ている),こちらは朝8時からの完全朝方なので,実質労働(?)時間はさほど変わらんだろうが。

 明日はNVCCと一日戯れることになるのであるなぁ。それに備えて風呂入って寝ます。