研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

make.footer を用いた make 。

2007-07-30 19:13:25 | Weblog
なんとかコンパイルできたが、原因はなんとも単純なものであった。
まず、pthread のつづりが pthead になってしまっていたことと、
Make.footer を用いた Makefile の構文を誤って理解してしまったためである。
どちらも英文をしっかり読まなかったせいである。反省。。。



Makefile の書き方を忘れないうちにメモしておく。

Sample/
  Makefile
  ppe_sample.c
  sample.h ( ppe_sample.c と spe_sample.c で include されている)
  spe_src/
    Makefile
    spe_sample.c


上のような Sample ディレクトリについて Make する場合、つぎのような Makefile を書けば良い。



# Sample/Makefile
DIRS := spe_src
PROGRAM_ppu := ppe_sample
IMPORTS = spu/lib_spe_sample.a -lspe2 -lpthread
include /opt/ibm/cell-sdk/prototype/make.footer


# Sample/spe_src/Makefile
PROGRAM_spu := spe_sample
LIBRARY_embed := lib_spe_sample.a
INCLUDE := -I ../
include /opt/ibm/cell-sdk/prototype/make.footer



このようにすると、PROGRAM_ppu で指定された名前のバイナリが作成される。
PPE 用ソースコード名、SPE 用ソースコード名ともに自動的に判別してくれる。
作成されたバイナリにはSPE 用バイナリがが埋め込まれているのでこれだけでよい。
scp 等で、PS3 に送ることを考えると多少は楽になるではと思う。

VMware Tools。

2007-07-28 16:29:47 | Weblog
VMware によって、Fedora Core 6 を Install したが、いかんせん全画面表示が出来ないので、使いづらい。
そのため、VMware Tools を Install した。


VMware Workstation 5 では仮想マシンを立ち上げてから、
[VM] -> [VMware Tools のインストール] を選択。
VMware Tools を Install するための仮想 CD を mount する。
単純に rpm をダブルクリックすればよいので、簡単である。


root 権限にて、VMware Tools を構成していく。

# vmware-config-tools.pl

とすると、C header の位置のところで止まってしまう。
kernel、kernel-devel、gcc、 gcc-c++ をそれぞれ upgrade すると、うまくいく。

# vmware-toolbox &

で toolbox を起動させると
マウスの移動、コピー&ペーストがスムーズになるので便利である。


次はXの設定について行う。

# X -configure

Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.

と表示されるので、

rm /tmp/.X0-lock

したのちに再度

# X -configure

すると、全画面表示された。


ただし、やはりまだ問題があり、
login の度にやらなければならないのと、なぜか恐ろしく重くなる。
もう少し調べてみよう。

Cell SDK 2.1 on PS3。

2007-07-28 16:09:15 | Weblog
最近まで Fedora 7 を 入れていたのだが、電源周りにバグがあるため本体まで電源が落ちない。
これも Fedora Core 6 に Install しなおした。

まずフォーマットをし、PS3 に 10GB、Fedora Core 6 に残りを指定。
優先起動システムを他のシステムにする。

kboot: install-fc sda
とし、Install 開始。

最小構成か、フルインストールのどちらかしか選べないので、もちろんフル。
後は勝手にやってくれる。

Addon CD を欲しがるので、20070516版の Addon CD を使用した。

その後 root の パスワードを入力し reboot して終了。


PS3 上にも、Cell SDK 2.1 をいれるため、必要なファイルをそろえる。
CellSDK21.iso だけでも、必要な rpm を Download してくれるが、
これにはものすごい時間がかかってしまうため、
個別に BSC (Barcelona Supercomputing Center)から Download してくる。

# mkdir /tmp/cellsdk-2.1
# cd /tmp/cellsdk-2.1

ここに各 rpm を Download し、次のようにしてインストールしてしまう。

# rpm -ivh *

その際どれが必要であるかは、次のようにすれば確認できる。

# mkdir -p /mnt/cellsdk
# mount –o loop CellSDK21.iso /mnt/cellsdk
# cp /mnt/cellsdk/software/cellsdk /opt/ibm/cell-sdk/prototype/.
# cd /opt/ibm/cell-sdk/prototype
# ./cellsdk verify

PS3 上であるため、次の2つはいらないだろう。
IBM Cell System Simulator、Cell System Simulator System Image

# ./cellsdk verify
で確認して、found と表示されていれば OK である。

# cd /opt/ibm/cell-sdk/prototype
# ./cellsdk build

これで、CellSDK2.1 に付属されている sample を build することができる。

Fedora Core 6 on VMware。

2007-07-28 15:20:46 | Weblog
あまりにもうまくいかないので、ちゃんと Install されているのかという、根本的なことが原因であるように思える。
よく分からないが、libspe2 周りの可能性が高い。

これまで、Fedora Core 5 に Cell SDK 2.0 を入れていたが、
もう既にヴァージョンは 2.1 に upgrade されているので、これを期にサポートされているFedora Core 6 へ移行することとなった。

前回同様、今回の Fedora Core 6 も VMware で Install してみた。
とりあえず、入れられるものはすべて選択し、無事終了!
と思いきや、なぜか起動しない。

いろいろ調べてみると、原因は Xen であることと判明。
我が PC (Dell INSPIRON 700m) の CPU (Pentium M) は
PAE に対応しておらず、xen 用の kernel が動かないのだ。

とりあえず仮想化のチェックだけ外し再度インストール。
今度こそ無事終了。

コンパイル。

2007-07-05 23:54:46 | Weblog
make がうまくいかないので、こうなったら全部パスを通してコンパイルしてやろうと思ってやってみていた。この状態でコンパイルするとなぜか、libspe2.h が見つからないとエラーが出る。

○コンパイラ
[ ppu-cc, spu-cc ]
$ export PATH=$PATH:/opt/cell/toolchain-3.3/bin/

○ライブラリ
[ libspe2.h ]
$ export PATH=$PATH:/opt/ibm/cell-sdk/prototype/sysroot/usr/include/

[spu_intrinsics.h , spu_mfcio.h]
$ export PATH=$PATH:/opt/cell/toolchain-3.3/lib/gcc/spu/4.1.1/include/


○コンパイル
ppu-cc -lspe2 -lpthead <○○○.c> -o <□□□>
※ ppu-cc ( ppu-gcc ) 、 -lspe2 ( libspe2 ) 、 -lpthread ( pthread )

spu-cc <○○○.c> -o <□□□>
※ spu-cc ( spu-gcc )



また、makefile を用いた場合、 pthead.h が探せないとエラーが出てしまう。確かに PPC 用の pthead は個別に入れた覚えはないが、Cell SDK と一緒に install していたのではないかと思い、探してみたが見つからない。うーん、どうすればよいのか。。

やはり Makefile。

2007-07-05 19:26:00 | Weblog
やはり躓くのは Makefile になってしまった。。
ソースを大幅に軌道修正してコンパイルし直したが、うまくリンクができていないようだ。

以前見た時はよくわからなかったものでも、時間を経過したのちに読み直すと、なぜか理解できることが多々ある。今回もそのようで、分かったつもりで分かっていなかったのだろう。

あとは、Make に関してだけ(のはず)なので、いろいろ調べてみよう。