2007年11月10日の日記の2番目の記事へのコメント

Cell向けクロスコンパイル環境

ヒタヒタさんに負けじと,Cell用のクロスコンパイル環境 (ppu-binutils,ppu-gcc,spu-binutils, spu-gcc, spu-newlib, libspe2) をソースからビルドしてみました. /opt/cell とかに入らずに,/usr/local/cross/cell-linux 以下に綺麗に入れられて超 (゜Д゜)ウマー

基本的に ここからSRPMを落としてきて,展開してソースとパッチとspecファイルを取り出して,後はspecファイルの中を見ながらパスを読み替えてビルドしていけばできあがりなんですが,spu-gccを作るところで,spu-gcc と spu-newlib が相互に依存しててちょっと戸惑いました.ここは過去の経験を元に

  1. spu-newlib のヘッダをxgccが見えるところに展開しておく
  2. spu-gcc のCコンパイラだけ作ってインストールする
  3. spu-newlib を作ってインストールする
  4. spu-gcc をC・C++の両方を有効にして作り直す

とやったら回避できました.これが正解かどうかは知らんけど,まあ動いてます.

あとlibspe2をmakeする際に 32bit版のライブラリしかできなくて軽くはまりました.こっちは普通にMakefileを書き直すことで回避.

いやー,やっぱspecファイルがあるのはいいですねぇ.OpenZaurusのクロス環境を手探りで作ったときに比べて10倍くらい簡単な感じです.ていうか今思うとよくあんな不毛なことやったな・・・.

気になる速度比較ですが,PS3でやるとこんな感じ.

% time make
spu-gcc  -Wall -Winline -O3 -funroll-loops -falign-functions=16 \
 -falign-labels=8 -falign-jumps=16 --param max-inline-insns-single=32000 \
 --param large-function-growth=8000 --param inline-unit-growth=600 -c spe.c
spu-gcc -o celltripper-spu   spe.o
make  35.47s user 0.78s system 99% cpu 36.251 total

T60 (Core2Duo T7200 2.0GHz・メモリ2G) でやるとこんな感じ.

% time make
spu-gcc  -Wall -Winline -O3 -funroll-loops -falign-functions=16 \
 -falign-labels=8 -falign-jumps=16 --param max-inline-insns-single=32000 \
 --param large-function-growth=8000 --param inline-unit-growth=600 -c spe.c
spu-gcc -o celltripper-spu   spe.o
nice -n 10 make  7.20s user 0.08s system 99% cpu 7.292 total

やっぱPPE単体だと(ry

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2007年11月10日の日記の2番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2007年11月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ