SPU版

今日はSPU版のビルド。

とりあえずコンパイル時間は少々かかるがビルドは通る。で、早速実行するとlibmisc.soが無いといわれる。そんなものの存在をすっかり忘れているが、Makefileを見ると確かにリンクしている。どうもSDKで用意するライブラリの様子。SDKをビルドすると/opt/IBM/cell-sdk-1.1/sysroot/usr/libにライブラリが突っ込まれるが、パスが通っていないのでリンクできない様子。LD_LIBRARY_PATHでパスを指定してから実行。

おー、PPUより速い速い。一発で実機で動作したよ。

$ time lame-3.96.1.spu11/frontend/lame starwars.wav
LAME version 3.96.1 (http://lame.sourceforge.net/)
Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
Encoding starwars.wav to starwars.wav.mp3
Encoding as 44.1 kHz 128 kbps j-stereo MPEG-1 Layer III (11x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA
  5140/5143  (100%)|    0:02/    0:02|    0:16/    0:16|   48.298x|    0:00
Writing LAME Tag...done
ReplayGain: -7.6dB

real    0m16.412s
user    0m2.656s
sys     0m0.168s

48倍というのは嘘。今頃やっとわかったけど、これは演奏時間をCPU時間で割った値。PPUは実際は処理待ちばかりなのでこのような数字になるのであろう。実際はREAL timeの16秒が正しい。元データは2分14秒(134秒)なので134/16.412=8.165倍速。

シミュレーションでは9.4倍速なので、これより遅いけどまぁまぁ近い値です。

動いてほっとしたもののやっぱりSPU一機では激速というわけにはいかんですな。