Chienomi

AMD Ryzen 3700X/5600X/5950Xの実用上の比較

製品・サービス::computer

X570Sの修理と3700Xの破損のために同一マシンで比較にちょうどよい3つのCPUを使って様々な作業をすることができた。

とても悲しい出来事であったため、少しでも取り戻すべく、なかなかできない比較の話をしよう。

ほとんどの場合は3700Xよりも5600X

ベンチマーク上ではほとんど差のないRyzen7 3700XとRyzen5 5600X。 TDPもともに65Wである。

コア数の減少とIPCの向上が拮抗しており、同等の性能ということになっているのだろう。

5600Xでも6コアがあるため、IPCで性能差を埋められるのであれば基本的に5600Xのほうが使い勝手が良い(性能が高いと感じられる)はずである。

スペック上ではその違いを体感するのは難しいと思っていたのだが、実は結構違う。 特にlibvpx-vp9によるエンコードでは以前計測した通り125%程度速いのだが、状況によっては150%以上速いことが少なくなく、明確な違いがある。

スレッド性能が高いため、アプリケーション動作(ゲームを含む)では1クラス速いCPUであるように感じられる。ウェブブラウザの動作が速くなることは全体的なエクスペリエンスへの貢献が大きく、潜在的にはストレージやメモリの高速化が可能なことで全体的なエクスペリエンスはもう一段稼げる状態である。

一方で、総計算力では3700Xのほうが少し高い。「体感できる差ではない」と思ったのだが、意外にも結構な差が出る部分があった。

ひとつはmozc-utのビルドである。 Mozc-UTはBazelを用いており、Mozc自体は大部分C++で書かれている。

このMozc-UTパッケージのビルドの所要時間が、5600Xのほうが110〜120%となっている。 他にもAURのパッケージビルド時間は最大で125%ほどかかる。 3700Xが133%ほどコア数が多いことから、IPC向上が貢献しない一方、並列化の恩恵が大きいためにコア数がほとんどそのまま差になっているのだろう。

5600Xと5950Xのスレッド性能は互角

5600Xが3.7GHz(4.6GHz)に対し5950Xが3.6GHz(4.9GHz)。 一方、TDPは5600Xが65W、5950Xが105W。 コア数に比例して発熱量が増えるわけではないが、266%コア数が多いのに対し、発熱量は1.615%に留まる。 通常、5600Xに対し、266%もの性能はないと考えるのが普通だ。

Ryzen5950Xの場合、設定可能な周波数は2.2GHz, 2.88GHz, 3.4GHzの3段階で、CPBについては有効にしているが、有効に機能しているかはよくわからない。PBO+CPBで運用しているが、この点は(全コアが最大周波数で動作していることも踏まえて)無視して考える。

ffmpegでlibvpx-vp9を用いたエンコーディングでのフレームレートから見ると、5950Xのほうが少し周波数は低いが、フレームレートは5950Xのほうがわずかに速い。

3700Xと5950Xの差は歴然、5600Xとの差はコア数

3700Xと5600Xがコア数の差がありながら性能的にはやや5600X有利の色があるということは、それでいながら3700Xに対して倍のコア数を持つ5950Xとの性能差は当然ながら非常に大きい。

両者のIPCの差は並列動作するクラスタとしてカウントしにくいほどのものであり、3700Xは「明らかに遅い」と感じる。

一方、5600Xと5950Xのシングルスレッド性能は非常に小さく、単純にコア数が多いものとして扱える。 これらをクラスタとして編成することは問題ない。ただし、分散ノードとして見ると6コアというのは少ないと感じる。 処理量を調整する余地に乏しい。

3700Xと5600XはどちらもTDP 65WのCPUだが、実運用上は3700Xのほうが低消費電力な傾向である。 ただし、最低周波数固定のpowersave governerにおいては5600Xのほうが快適だから、これも一概には言えない。

5950Xはpowersave governerにおいては3700Xや5600Xに対してそれほど大きな差をつけない。 ファームウェア設定側でさらに消費電力を下げることもできるし、コア数が多い分余力があるので、常時電力を消費するようなイメージは不要である。 WindowsでもCPUの性能調整をする方法はおそらくあるだろう。

一方、フルロード時の5950Xの消費電力は非常に大きいが、処理性能はそれ以上に高いため、ワットパフォーマンスは5600Xや3700Xを上回る。3700Xは安定して低く、5600Xは過剰な処理が走るとやや高い。

デスクトップユース上の話

デスクトップユースにおいては、3700Xよりも5600Xのほうが基本的に性能が高い一方、並列処理や、コアをフルに使うようなプロセスがいる場合、6コアの5600Xは重く感じられる場合がある。 そのため、エクスペリエンスの安定感は3700Xが優れるが、アプリケーションの立ち上がりなどエクスペリエンスの優劣で言えば5600Xに軍配が上がる。

5950Xは通常のデスクトップユースにおいて性能を不足させたことが私にはない。 16コアというのは非常に潤沢なリソースである。

libvpx-vp9によるエンコーディングを行っている状況では少し話が変わる。libvpx-vp9でマルチスレッドを使わない場合、プロセスはだいたい2スレッドを占有する。ただし、16コア32スレッドの5950Xだが、11プロセスで常時100%ロードになる。

なので11プロセスが走ってる状態ではデスクトップはもっさりとした動作になり、14プロセスで非常に待ちが発生するようになる。 14プロセスならまだ遅いPCとしてデスクトップ利用も可能だが、15プロセスになると支障が出る。 普通にデスクトップと併用したい場合は、7〜8プロセスあたりが妥協点で、これだとCPUの平均利用率は80%あたりになる。9プロセスではまだ余裕があるが、動作が重いと感じる場合もある。

5600Xではlibvpx-vp9を2プロセス走らせればもう余裕がない。 3700Xはなぜか余裕がある傾向で、3〜4プロセス走らせていてもデスクトップ利用にそこまで支障はなかった。