x264 for cell 070530 part.2: 性能評価-CELLプロセッサ
r635 070530 版の性能についてまとめました。 テスト条件 前回...
r635 070530 版の性能についてまとめました。
テスト条件
前回同様、テスト用の動画は SOCCER_704x576_60_avc_3000.yuv を使用し、以下のように動きベクトル探索を最大限行うようオプションを付けて実行しています。
$ ./x264 --bframes 3 --ref 5 --mixed-refs -A all --me umh --bime -m 7 --8x8dct \
--threads (thread num) SOCCER_704x576_60_avc_3000.yuv -o (出力ファイル名)
Cell 対応による速度の変化
x264 を Cell 対応することで、速度がどうなったか?また、実際に SPE を使用 することで速度がどうなったかです。version は以下を表し、 速度の指標は x264 自体がエンコード後に出力する fps (frames per second) を使用します。
- r635: rev:635 オリジナル版
- r635 070530 cell sim: rev:635 070530 の Cell 対応 (sim) 版
- r635 070530 cell: rev:635 070530 の Cell 対応版
- r635 070530 cell sim: rev:635 070412 の Cell 対応 (sim) 版
- r635 070530 cell: rev:635 070412 の Cell 対応版
| CPU/SPE | version | thread num | fps |
|---|---|---|---|
| 1PPE/6SPE | r635 070412 cell | 1 | 1.28 fps |
| 1PPE | r635 | 1.44 fps | |
| 1PPE/6SPE | r635 070530 cell | 1.90 fps | |
| core2duo (E6600) | r635 070412 cell sim | 2.70 fps | |
| core2duo (E6600) | r635 070530 cell sim | 3.55 fps | |
| core2duo (E6600) | r635 | 6.39 fps |
やっと 1PPE r635 よりも速くなりましたが、今回から載せている core2duo r635 と比べるとまだまだという状況です。
スレッド数増加による速度変化
x264 の --threads オプションで同時に処理するフレーム数 (thread num) を変化させた 場合の結果です。
| CPU/SPE | version | thread num | |||||
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | ||
| 1PPE/6SPE | r635 070412 cell | 1.28 fps | 1.55 fps | 1.94 fps | 2.04 fps | 2.06 fps | 2.06 fps |
| 1PPE | r635 | 1.44 fps | 1.77 fps | 2.02 fps | 2.10 fps | 2.09 fps | 2.09 fps |
| 1PPE/6SPE | r635 070530 cell | 1.90 fps | 2.30 fps | 2.88 fps | 3.02 fps | 3.14 fps | 3.16 fps |
| core2duo (E6600) | r635 | 6.39 fps | 9.12 fps | 12.44 fps | 13.09 fps | 13.12 fps | 13.15 fps |
core2duo r635 は、4GB の RAM を積んでいるため、入力ファイル全体 (360MB) がキャッシュされてしまい、2 回目以降の実行ではディスクアクセスが ほとんど発生しません (しかし、PS3 の RAM は 256MB なのでキャッシュは有効 に働かないと予想される)。。キャッシュによる高速化は、正確には Cell とは関 係ありませんが、キャッシュされた場合のデータを掲載しています。
thread 数が 4 以降でも若干ながら高速にはなりますが、大枠では PPE の SMT による高速化率 (1.5 倍) による制約が大きいため、もっと SPE 側に処理 自体を移動させる必要があります。
SPE の稼働率
- active rate: SPE で何らかの命令を実行している時間の割合。
- proc rate: 上記でかつ、(DMA 転送待ちに関連しない) 命令を実行してい る時間の割合。
- SPE 有効稼働率: SPE が有効な演算をしている時間の割合。各 SPE の active rate * proc rate / 100 の平均値を載せています。
| thread num | SPE num | active rate | proc rate | SPE 有効稼働率 |
|---|---|---|---|---|
| 1 | 0 | 10.49 % | 67.89 % | 6.89 % |
| 1 | 9.84 % | 67.84 % | ||
| 2 | 9.83 % | 68.27 % | ||
| 3 | 10.45 % | 67.76 % | ||
| 4 | 10.00 % | 68.03 % | ||
| 5 | 10.30 % | 67.68 % | ||
| 2 | 0 | 12.32 % | 67.75 % | 8.31 % |
| 1 | 11.39 % | 68.31 % | ||
| 2 | 12.71 % | 67.89 % | ||
| 3 | 11.88 % | 68.26 % | ||
| 4 | 12.53 % | 67.91 % | ||
| 5 | 12.43 % | 68.27 % | ||
| 3 | 0 | 15.64 % | 66.90 % | 10.43 % |
| 1 | 14.40 % | 67.19 % | ||
| 2 | 16.48 % | 66.72 % | ||
| 3 | 15.37 % | 66.87 % | ||
| 4 | 15.67 % | 67.23 % | ||
| 5 | 15.86 % | 67.09 % | ||
| 4 | 0 | 16.34 % | 66.71 % | 10.94 % |
| 1 | 15.18 % | 66.91 % | ||
| 2 | 17.13 % | 66.69 % | ||
| 3 | 16.31 % | 66.52 % | ||
| 4 | 16.71 % | 66.87 % | ||
| 5 | 16.67 % | 66.80 % | ||
| 5 | 0 | 17.31 % | 66.14 % | 11.40 % |
| 1 | 16.02 % | 66.46 % | ||
| 2 | 17.90 % | 66.34 % | ||
| 3 | 16.79 % | 66.43 % | ||
| 4 | 17.63 % | 66.36 % | ||
| 5 | 17.46 % | 66.54 % | ||
| 6 | 0 | 17.21 % | 67.07 % | 11.52 % |
| 1 | 16.12 % | 66.85 % | ||
| 2 | 17.84 % | 67.14 % | ||
| 3 | 16.93 % | 66.75 % | ||
| 4 | 17.53 % | 67.22 % | ||
| 5 | 17.64 % | 66.85 % |
proc rate が前バージョンから改善 (57% -> 67%) されていますが、このバー ジョンから DMA リスト自体を分割して複数の DMA リストとし、リストの作成と 転送を並列に行うようにしており、この変更による所が大きいです。



コメント
なんか遅いですね。
久夛良木さんが以前インタビューでPS3ならパソコンより圧倒的に速い速度でビデオ編集が出来ると言っていましたが、これじゃ話になりませんね。
チューニングが進めばCore2 Duoに勝てるのでしょうか。でもその頃にはNehalemの8コアに完敗する予感・・・。
Posted by: KAZ | 2007年06月03日 07:29