メインPCのひとつが少し古くて不安定になってきたので最近入手難が収まった?ぽい最新のCore2Duo E8400をゲット。久しぶりにマザーごと入れ替えた結果余ったパーツでエンコード用UbuntuマシンがSocket939とはいえAthlon64 X2 4200+になりました。交換前はAthlon64 3000+だったのでかなりのパワーアップ。
古いCPUですがサブマシンには十分な性能なので早速エンコードさせてみたらx264が50fps以上と倍以上!やはりDual Coreでは二倍になる!(当たり前)などとちょっと喜んでいたところ、Windows&Core2DuoでのHBの稼動状況ではSSE3有効で10-20%程度アップする模様。なんか悔しいのでLinuxでもSSE3をやってみなければ。
やったこと。
0. テストセットアップ
PC1
OS -- Ubuntu 7.10 Gutsy X64_64
CPU -- Athlon64 X2 4200+ (2.2Ghz)
メモリ -- 2GB (DDR400 1GBx2)
PC2
OS -- Ubuntu 7.10 Gutsy X64_64
CPU -- Core2 DUO E8400 (3.0Ghz)
メモリ -- 4GB (DDR2 800 2GBx2)
1. yasm最新版のインストール
SSE3が動かないのはyasmが古いためかと思い、yasm 0.6.2のソースコードを落としてきて、configure --prefix=/usrしてmake && make install
2. HandBrake 0.9.2とSVNのコンパイル&インストール
ソースをダウンロードしてきてconfigure してjam
libz-devを入れるのを忘れてたので再コンパイル
同様にSVNをチェックアウトしてきて同じくコンパイル
で、適当な動画を1チャプタだけx264とffmpegでエンコード。
結果
今回はとりあえずPC1(Athlon64 X2)の結果だけ。少し結果を丸めて書きますが、
Athlon64X2 4200+とCore2Duo E8400の結果を以下に。単位はfps。映像やオプションにより性能は大きく変わりますので目安としてください。
Athlon64 X2 4200+ | Core2Duo E8400 | |||
0.9.2 | SVN | 0.9.2 | SVN | |
ffmpeg | 153.98 | 152.78 | 309.35 | 305.41 |
x264 | 56.26 | 51.16 | 89.88 | 81.97 |
ffmpegは0.9.2とSVNで誤差程度の差しかなかった。SVNが少し遅め。
x264のSVNバージョンではSSE3を検出。yasmを入れ替えても0.9.2ではやはりSSE2まで。ところがSSE3を使っているはずのSVNの方が何回やっても1-10%程度遅い。誤差かと思ったがそうではないらしい。Core2Duoでも同じ傾向。
結論
やはりAthlon64のSSE3はいまいちか。今回はいまさらながらの古いCPUでしたが最新のCore2Duoでの結果は近日中に追加予定。
とりあえずHandBrakeのSSE3版を試した限りではほとんど意味ない感じですね。画質云々のチェックはしていませんが。
やはり目を引くのはCore2 Duoの性能でしょうか。エントリの趣旨とは異なりますが、E8400の性能比較もしてみたかったので調度いい結果が出ました。
OS環境などはほぼ同様のはずなので純粋にCPU性能差。実クロックで2.2Ghz対3Ghzと1.5倍近い差があるとはいえ比較的Athlonの得意な64bit環境。それでもCore2Duoはffmpegで2倍のFPSをたたき出してます。同クロックに換算してx264で17%, ffmpegでは47%も速い。ううむ。
CPUの値段は2-3倍ほど違うのでコストパフォーマンスではAthlon64も負けていませんが、絶対性能を見る限りAMDは苦戦するでしょうねえ。Phenomをもっと低消費電力かつ安価にでもしない限り勝負は難しそう。久しぶりに自作でインテルCPUを使いましたが組み立ても楽だしP4とは比べ物にならないくらい優秀ですな。
まあAthlon64 X2でやっても今まではPC向けのffmpegとiPod touch向けのx264をエンコードさせると映画一本で半日はたっぷりかかっていたのが実時間程度で終わりそうなのでよしとすることに。そろそろ暑くなってくるし24/7のマシンなのでAthlon64X2 4850(45W)に変えようかと思案中。
その他
追加的にひとつTips的な話ですが、HandBrakeは自動でCPU数を検出してエンコードしてくれますが、どうもCPUをフルに使いきれていない模様。これをCPU数より多めな-C 3とか-C 4にするとCPU使用率が上がりエンコード速度も上がるようです。ザックリと見た感じでは場合により20%くらい高速化する感じです。
もうひとつ。久々にWindowsの新規インストールを行ったのですが、これがまた時間がかかるかかる。まだ環境のセットアップは終わっていません。ただし速度はシステムのパワーアップの成果か新規インストールのせいか、超サクサクになりました。Linuxで使っても同様にサクサクです。多分これから遅くなるんだよなあ。
このE8400のシステムはASUS P5E-VM HDMIとの組み合わせ。少々お高いがMicroATXなのにフル固体コンデンサというのがいい。Ubuntu Gutsyを入れるとグラフィック、ネットワークともに何もせずに認識、動作しているのですが、ネットワークに少し負荷をかけた後?二回ほどがっちりと固まってしま いました。電源?ドライバ?
Athlon64のLinux(Ubuntu)の方はnf3から6150のマザーボードに入れ替えたのにそのままでオンボードのイーサネット以外のデバイス、SMP動作もさっくりOK。NVidiaのグラフィックも認識して快調に動作中。しょぼいオンボードグラフィックスカードなのにh.264でエンコードした動画(SDですが)も驚くほど低い負荷で再生してくれています。エンコードでは負けましたが普通に十分な性能やん。