2010年1月19日火曜日

2010年の学会下調べとBLASの簡易FLOPS測定

まず、昨日までの Matlab の戦いは、ついに終了。
Matlab を R2009b にしたら、SDPA-M が数値的に安定するようになった。
おそらく、Matlab に入っている libgfortran.X.dylib がバージョンが X=2 から X=3 になって、fink の gcc4.4 と同じバージョンになったことが効いているのかもしれない。
ちなみに、SDPA-M 用に修正した mexopts.sh で、そのまま SeDuMi もコンパイルできた。

あと、2010 年に行われる学会を教えてもらったので、それの下調べ。3つあるので、どれが内容として面白いか、などを他の仕事内容のスケジュールとすり合わせて検討する必要あり。

1. Erice 2010 [ホームページ]
非線形最適化の会議。
開催は 2010.7.2(Fri)-10(Sat) で、イタリアのシチリア島。
Contributed の Lecture 30分が、発表の時間のようだ。
ただ、若い人は CV と推薦状が必要と書いてある。
自分の年齢が、この若い人にあたるのかどうか、ちょっと解からない。
最初の〆切は Contributed Lecture の申込の 2010.4.2。

2. Euro 2010 [ホームページ]
ヨーロッパのOR学会。
開催は 2010.7.11(Sun)-14(Wed) で、リスボン。
Contributed talk があるようだけど、4ページの resume が必要かなどは不明。
最初の〆切は Abstract Submission で 2010.2.28。

3. 8th EuroOpt [ホームページ]
2の会議のサテライト会議で最適化中心。
開催は 2010.7.9(Fri)-10(Sat) で University of Aveiro。ポルトガルの中。
最初の〆切は Abstract Submission で 2010.5.10。

一番関係がありそうなのは、3だけど、うまくすれば 2と3ははしごできるかもしれない。そうすえば、2つの学会で勉強できて効率的だ。


あと、CUDA の BLAS (cublas)が実際にはいまひとつ性能が出ない、ということを耳にしたので、実際にどれくらい出るのかを試すためにまずは CUDA を使わない普通の CPU の BLAS を測定。
使ったのは、Xeon E5520 で、これは、
Intel のページ
を参照したところ、38.4GFLOPS ということ。
つまり、
2.4GHz(クロック数) x 4 (コア数) x 4 (1クロックあたりの計算) = 38.4 GFLOPS
であって、これを2基積んでいるので、最大で 76.8GFLOPS になる。
これに対して、GPU (Quadro FX 1800)は
64(SPの数)x 1.40 GHz(クロック数)= 89.6GFLOPS になる予定である。

[GPUのほうは、1クロックあたりの計算をカウントしていないので、もっと出るのかもしれないが、GFLOPS を載せてあるページがまだ見つからなかった。]

N=20,000 で sgemm を実行したところ、
GotoBLAS 108.78 秒 (73.54GFLOPS, 最大に対して95%)
ATLAS 143.69 秒(55.67GFLOPS, 最大に対して72%)
となった。
ただし、ここでのFLOPSの計算は、単純に[N^3/実測計算時間]なので厳密ではない。でも、とりあえず GPU と比較するには 十分かと思う。(どうやらATLAS の半分しか出ない、と聞いたので。それが FX1800 の限界なら、その性能をどう活かすかなので、今のところはOK。)
これで明日 cublas の sgemm を呼ぶプログラムを組んで比較してみようと思う。

今日の作業内容: Matlab 1h + 原稿チェック 2h + 学会下調べ 1h + sgemm 2h
今日のBGM: 小松未歩ベスト [1-2], MADLAX OST [1-2], Chrono Trigger OST [1,2]
今日のランチ: シッダルータ ほうれんそうとチキンのカレー
明日の予測作業時間: 6h

0 件のコメント:

コメントを投稿