Skylake i7 6700Kを早いうちに売ってしまいたかったので、今日売りに行ったところ、あまり時間なくてメモリ設定を詰める時間がなかったので、ひとまずDDR4-2400のままでベンチマーク。
一番なにがしたいかというと、クロックをそろえてのRyzenとHaswell-Eの比較。まあ、クロックを変えてしまうと、Ryzenだけその時の最上位製品じゃないし、冷却もいい加減なので、あまり公平な比較ではなくなってしまうので。
比較環境
※R7 1700のみ、Windowsの電源プランは高パフォーマンス。結局、長時間のエンコードで安定させようと思うと、うちのR7 1700では1.225V程度必要、ということがわかった。当たりとは言いにくいのかな…。
まずはRyzenお得意のCinebench R15から。
R7
[email protected]を同クロックの
[email protected]と比べると、single threadでほぼ同じ、multi threadでは大きく勝ち越していて、Ryzenの優秀さがよくわかる。4.8GHzの7700Kはsingle threadでは圧倒的だが、multi threadでは所詮は4コアのため、大敗。
適当に書いた自作プログラムによるメモリ速度測定。
→
正しく測定できていなかったので、測定しなおしました。
さて、本題のx264。
環境は
Aviutl 1.00
x264guiEx 2.50
x264 2762 x64 (8bit)
lwinput.aui
入力ファイル
sample_movie_1080p.mpg (MPEG2, 1920x1080p, 29.97fps, 5203frame, 2分53秒, 10.61mbps)
オプションは以下の4通り。
--preset faster
--preset medium
--preset slow
--preset slower
に加え、以下のオプションでAVX2オンとAVX2オフ(AVXまで使用)を切り替えた。
--asm avx
R7
[email protected]は同じクロックの
[email protected]に対して、ほぼ同じ、あるいはやや優勢となっている。
ご存知のように、x264は高速寄りのプリセットではsingle thread性能が重要で、slow側に振っていくと徐々にmulti thread性能が重要となっていく。そのためR7
[email protected]を
[email protected]と比べると、fasterではどうしても負けてしまうものの、mediumでほぼ同等、slowやslowerでは大差をつけて勝利している。7700Kとだいたい同じ値段なことを考えれば、R7 1700の価格性能比は素晴らしいといえる。(…え、7700KにはGPUがついてるって? それは気にしない方向で。)
AVX2のオンオフでは、Intel CPUがAVX2ありのほうが高速な一方、Ryzenは大きな差ではないがAVXまで(AVX2オフ)のほうが高速なことが多い。
さて、次にx265。x265では10bitエンコもやってみた。x265はRyzenが苦手とされるが…。
環境は
Aviutl 1.00
x265guiEx 3.77
x265 2.3+22 x64 (8bit/10bit)
lwinput.aui
入力ファイル
sample_movie_1080p.mpg (MPEG2, 1920x1080p, 29.97fps, 5203frame, 2分53秒, 10.61mbps)
オプションは以下の4通り。
--crf 21 --preset fast
--crf 21 --preset medium
--crf 21 --preset slow
--crf 21 --preset slower
に加え、以下のオプションでAVX2オンとAVX2オフ(AVXまで使用)を切り替えた。
--asm avx
x265はRyzenはやや苦手(というかAVX2による伸びしろがないからだと思うけど)ということで、R71700@3.6GHzは、同じクロックの
[email protected]と比べるとやや遅いという結果になってしまっており、fasterなどでは
[email protected]に逆転されてしまっている。
x265の特徴として、Intel CPUではAVX2ありにすると大きく速度が向上する。x264ではわずかな差だったが、AVX2が多用されているからかx265ではかなり大きな差となっている。一方、Ryzenはx264同様、大きな差ではないがAVXまで(AVX2オフ)のほうが高速なことが多い。AVX2の256bit演算で性能向上が得られないのは、やはり256bit演算を128bit演算x2として実行するRyzenの特性によるものだと思う。
10bitでも速度の比較はほぼ同様。ただ、おもしろいのは10bitエンコではR7 1700でもほんのわずかではあるがAVX2ありのほうが速いことが多い点。8bitとはちょっと違っていて面白い。
Bulldozer以来、AMDのCPU性能はぱっとしないというか、あえてはっきり言えばいまいちなものだったと思う。特にシングルスレッド性能が必要なものは辛すぎた…。
しかし、AMDはRyzenで一気にこれを挽回し、同クロックで比べた場合、Haswell-Eと同等のシングルスレッド性能とHaswell-Eを超えるマルチスレッド性能を実現、価格性能比では圧勝となっていて、非常に素晴らしいと思う。正直に言っていい意味で予想を裏切る性能で、AMDの言うように、「ハイエンドでIntelと戦える」CPUであることを実感できた。まあ、R7
[email protected]では、4.2Ghzまであげた5960Xと戦うのは厳しいし、Broadwell-Eの10コア(6950X)と比べればきっと性能は低いのだろうが、値段を考えれば十分だと思う。
これまで、4コアを越えCPUについてはIntelの独壇場といった感じになっていて、そのためメインストリームになかなか6コア/8コアが投入されなかったし(2007年のCore2Quad以来、IntelのメインストリームCPUはコア数が増えていない…)、ハイエンドCPUの値段は高止まりしていた。Broadwell-EでIntelは10コアを投入したが、これまでのように最上位を$999にするのではなく、新たに$1569として追加したのは、その象徴であるように思う。Ryzenの登場によって、ハイエンドCPUにも競争が生まれ、面白くなってくると期待したい。
いっぽうで、
・DDR4-2400を越える場合のメモリ周りの不安定さ
・高速なメモリを動かしにくいことによるメモリ帯域の不足
・8コアだが2chまでなことによるメモリ帯域の不足
・メモリのレイテンシが大きいらしい?
・クロックが(特に4.0Ghz以降)伸ばしづらい
・CCXをまたいだ時に性能が不安定になるらしい
・Win10の電源プランを通常にすると性能が不安定になる
など、Ryzenでいくつか気になるポイントはある。特にメモリ周りは、エンコードではあまり影響しないものの、ソフトによってはそれなりに影響しそう。
ただ、そういった中でも十分な性能は出ているし、メモリ周りや電源プランはアップデートで改善できそうなものなので、今後のアップデートに期待したいところ。
そのほか思ったのは、
・やっぱりシングルスレッド性能は大事。シングルスレッドあってこそのマルチスレッド。
・RyzenはSMT効率が高そう?
ちなみにx265エンコ中の温度はこんな感じ。やはりオーバークロックしようとするとリテールクーラーでは辛い。
R7 1700 3.6GHz @ 1.225V リテール = 75℃
i7 5960X 4.2GHz @ 1.164V Nepton 280L = 70℃
i7 7700K 4.8GHz @ 1.296V CRYORIG A80 = 81℃