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一機では激速というわけにはいかんですな。