実際にはAMDサーバー用のディスクイメージを展開しただけです。 これでベンチマークをとろうってわけさ。 ここらへんはPCマニアの性ですな。こんなことしてる場合じゃないのに(笑)
CPUとチップセット以外は極力同じ(マザボメーカーも)にしました。
真の意味での最新エンコーダソースをx86_64ビットでコンパイルしなおした状態 でエンコーダの性能を比較しようって訳ですな。 Windowsでの各種ベンチマークは、インテルコンパイラでコンパイルされており、 インテルにしかない命令で速度アップを図っているだけならともかく、 AMDのパイプラインを乱すことで性能低下を招く ズルコードが入っているという噂 も あって、自分で試したくなったわけね。gccはさすがにそんなことはしてないでしょ......?
ソース51ch.tsは、地デジTBSの1分弱104857600バイトのMPEG2(1440x1080 16Mbps)。 さらにバッチとソースはtmpfs(RAMディスク)にコピーした。4GBがフラットに見えているから ディスクの性能には依存しないはず。CPUとメモリバス周辺の速度を測定したいので。
#!/bin/sh time ffmpeg -y -threads 2 -deinterlace -i 51ch.ts \ -vcodec libx264 -an -b 3000k -s 1440x1080 -vpre default test1.mp4 time ffmpeg -y -threads 2 -deinterlace -i 51ch.ts \ -vcodec libx264 -an -b 3000k -s 1440x1080 -vpre hq test2.mp4 time ffmpeg -y -threads 4 -deinterlace -i 51ch.ts \ -vcodec libx264 -an -b 3000k -s 1440x1080 -vpre default test3.mp4 time ffmpeg -y -threads 4 -deinterlace -i 51ch.ts \ -vcodec libx264 -an -b 3000k -s 1440x1080 -vpre hq test4.mp4
こんなバカな....
思わず測定しなおしてしまったが傾向は変わらなかった。
Linux ffmpeg+x264エンコという条件で、 「2.9GHzデュアルコアが2.3GHzクワッドコアに迫る性能」 という結果は ちょっと衝撃的でした。
今回の実験は、2コアの場合はちょっと条件がまずくて、ffmpegで ワーカースレッド数を減らしただけなので、 AMDは4コアのまま(制限できないから)、 Core i3はHTTオフにせず素のままなので、 純粋な比較にはなっていない点はご容赦ください。
それでもHTTオンの4コア相当の場合でクワッドコアと 遜色ないのはすごいわ。 メモリバンド幅やHTTなどの諸々の条件を総合的に考えれば Core i3の性能は素のlinux + gccでも相当高い と言えるんじゃないかな。
ほんとかよ.....
クワッドコア以上では、単純にワーカースレッドが多いことではなく、 インストラクションレベルでスループットあげるような最適化コード かかないと、クワッド分の演算器を埋められないのかもなー。
一方でCore i3も、ffmpegの高品質プリセットの場合は性能低下が 顕著なので、そこはHTT使ってもデュアルコアだから...って ことだろうな。
ここらへん設計思想まで考えると深いね。 システムの値段は似たようなものなんだけど。
前回のベンチマーク記事で、こともなげにDebianがCore i3で動いているように書いてしまったが(実際動いているんだが)、 今日CDからDebian lennyをインスコしようとしたら 「へっへーんてめえのPCにはHDDがないのかい?ああん」 と 聞かれてしまい鬱状態に陥ったぱぱんだです。こんにちは。
結局、 http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso をCDに焼いてインスコした。testingなので、 まだたくさんバグがあるようだが気にしない。