Archive

Archive for 7月 9th, 2007

Twitter Updates for 2007-07-09

7月 9th, 2007

  • quicksilver?????skylight?.net3???????? #
  • ??????? #
  • ???GUI?web?????????????????? #

Powered by Twitter Tools.

Twitter

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加


CUBLAS始めました

7月 9th, 2007

CUDAのBLASライブラリを使ってみた。


答えが合わん。

どこ間違えてるのかなあ……。

tgbt 雑記

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加


LinuxのCプログラムでatlascblasおよびgotoblasを使う方法(不完全版)

7月 9th, 2007

gotoblasを不完全ながらある程度使えるようになったので、記録しておくことにする。

ちなみに、中身をちゃんと理解しているわけではないので間違いが含まれている可能性は否定できません。

おかしな点についてはご指摘いただけると大変助かります。

執筆している現在、どういうわけかatlascblasはgccで使えるがg++で使えず、gotoblasはg++で使えるがgccで使えないという謎の事態に陥っています。誰か助けて。


・準備

c,c++,fortranのコンパイラが必要です。aptなりyumなりを使ってgcc,g++,gfortranあたりを導入しておく。


・atlascblasの導入と利用

aptなりyumなりで導入できることもありますが、ここではソースからインストールしてみることにする。

ATLASのサイトはこちら。Softwareのリンクからsourceforgeに飛んでダウンロード。今回はstableな3.6.0を使ってみる。

tgzを展開。install.txtを読むとインストール方法がちゃんと書いてある。

make configしてmakeしてmake install arch=すればOK。

はLinux_UNKNOWNSSE2とか。make時のメッセージに書かれている。

英語がだらだら書かれているけど、どれもちゃんと読めばわかるレベルの簡単英語なので、とりあえずどうすればいいのかくらいはすぐわかるはず。

インストール時チューニングが激しいため、環境によってはmake installに1日かかります。注意。

チューニングが終わるとlib//以下に.aファイルがいくつか生成される。

特に今回重要なのは以下のファイル。

  • libatlas.a : atlas本体。fortranで書かれているんだと思う
  • libcblas.a : atlasをcから利用するためのラッパーだと思う
  • libptcblas.a : libcblas.aのスレッド対応版、makeの際にpthread対応のオプションを入れた場合に生成される

利用時にはcblas.hをincludeし、libcblas.a libatlas.aをこの順にリンクすればよい。

並列版を利用したい場合はlibptcblas.a libpthread.a libatlas.aで。


・gotoblasの導入と利用

ここで入手。

To download the source code, please click hereというところから無料登録・ログインする必要あり。今回は1.15を使ってみる。

tar.gzファイルを展開。02QuickInstall.txtによると、quickbuildというスクリプトが利用できるらしい。

sh quickbuild.32bitないしsh quickbuild.64bit を実行すると一気にインストールしてくれる。


gotoblasはcbals+atlasのatlasに相当するらしく、ビルドしたライブラリをそのままcプログラムから利用できない模様。そこでReference Implementationsというものを利用する。

ここにあるReference implementation for the C interface to the Legacy BLASをダウンロード(ダウロードできるファイル名はcblas.tgz)。

READMEを参考にインストール。

今回はLinuxで利用するため、Makefile.LINUXを利用。

ファイルを開いていくつかのオプションを書き換える。

  • BLLIB : 先程生成したlibgoto.aへのフルパス(libgoto.aを含むフルパス)
  • CBDIR : CBDIRにはcblas.tgzを展開して得られたCBLASディレクトリのフルパス
  • CC, FC : cとfortranのコンパイラを適当に指定

ln -s Makefile.ARCH Makefile.inを行い、make alllib。

問題が無ければlib/LINUX/cblas_LINUX.aが生成される。

プログラム実行時はcblas.hをインクルードし、 cblas_LINUX.a libpthread.a libgoto.aの順にリンク。

スレッド並列実行時には環境変数GOTO_NUM_THREADSを参照するので、コアの数でもセットしておけばOK。


以上でatlascblasなりgotoblasなりが使えるようになったはずである。

手元の環境でGEMMのベンチマークを行ったところ、gotoblasの方が高速となった。並列化の効果も大いに得られた。



冒頭に書いたように、どういうわけか私の手元ではそれぞれgccとg++の一方でしかビルドできていません。解決後に(不完全版)の取れたエントリを追加予定。追加できるといいなあ。



追記:

gccとg++の問題は勘違いだったかもしれん。詳細は後で。

tgbt 雑記

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加


エクストリームプレゼンテーション

7月 9th, 2007

ぐぐると別のものが引っかかるけど、気にしたら負け。


某所でやったプレゼンテーションの一部をざっとアップしておくことにする。

基本的にはネタプレゼンだったけど、割と真面目に思っていることをちゃんと書いてあります。

っつーわけで、一週間くらいかけて新しいバージョンを作成しようと思う。

色々とわかったので、思想は引き継ぐけど実装は引き継ぎません。

エクストリームプレゼンテーション

tgbt 雑記

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加


研究室PCもFirefox2系にUP

7月 9th, 2007

ニュースチェックしてたらFirefoxが落ちて、再起動したら開いていたタブが復活しなかった。


という理由で。

数日ニュースチェックをしていなかっただけでRSSリーダーにたまりすぎです。

この状況はちょっとよろしくないなあ。

tgbt 雑記

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加