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プロセス走らせていてもデスクトップ利用にそこまで支障はなかった。

追記: なぜか5600Xは局所的に遅い

前述の通り、基本的にシングルスレッド性能は3700Xより5600Xのほうが高い。 だが、どういうわけか、5600Xがシングルスレッド性能を含め非常に低調であることがある。

最も顕著なのはShotcutの書き出しである。 libx265でのエンコーディングの結果が順当であるのとは裏腹に、Shotcutを用いた書き出しでは5950Xの6〜20倍程度の時間を要する。 コア数は5950Xが2.66倍なのだが、コア数の差以上に差が開いており、3700Xよりも著しく遅い。

もうひとつ気になるのがウェブブラウザである。 CPU負荷が非常に高いYouTubeやTweetdeckに関しては、powersave governerだと動作に支障をきたすほどスローになる。 動作としては基本的にシングルスレッドなのだが、5950Xでも3700Xでも全く問題ないにも関わらず、5600Xではこうした問題を生じる。 この問題はRyzen7 5800Uにおいても同様にPowersave governerでは非常に長いウェイトを発生させ、操作に対する大きなラグを生じる。

当然、この問題はondemand governerを使えば解消されるが、この場合5950XよりもシングルスレッドのCPU使用率が高く、消費電力も大きい。 このこともあり、5950Xのように「不満なし」とはいかず、「適切に使えば問題なし」くらいに収まる。 寝室のPCとしては妥当だと言えるが、メインPCとして使うには少々不安が残る。

実際、Windowsでの利用でゲームで高負荷な場合も、3700Xよりもフリーズしやすい。 マルチスレッド性能は基本的に3700Xのほうが高いため、単純に性能が下がった分かもしれないが、やや性能を発揮しづらい気もする。

YouTubeがondemand governerを要求するのは私からすれば結構痛い。 動画再生はビデオカードによるハードウェアアクセラレーションがある以上は、「日常的な軽い作業」に属するべきもので、「電力を大いに消費してもやむなし」とは思えない。

なお、一応言っておくと、この記事を書いた当時、2022年6月時点ではYouTubeは今みたいに重くなくて、普通にpowersave governerで動作した。 Tweetdeckが重いのは今に始まったことではなく、5950Xをperformance governerにしても重いものは重いため、そこを焦点にはしなかった。 そのために日常的な利用において5600Xは問題がないということを前提にして書いたのだが(それでも、負荷がかかる状況では思ったほど余裕がなく、性能が低いと感じられたのでそれを基調にしている)、現在に関しては5600Xは満足度があまり高くないCPUであると感じている。

Ryzen5000シリーズはモデル末期ということでもうかなり安くなっているので、5900X、あるいは5950Xを狙ったほうが良いのではないだろうか。 5600X自体も安くなったので、安くなった価格で5600Xを狙っている人には(2.5〜3倍くらいの値段なので)考えられないだろうが、実用上の満足度が結構違う。 3700Xと比べても、5950Xは明らかに快適である。正直、エクスペリエンスレベルでそんなに変わると思っていなかったのでちょっと困惑しているが、3700Xには不足を感じることが普通にあり、5950Xにはまるでない。 計算を目的とする処理に関しては5950Xとして完璧ではないが(Firefoxのビルドの所要時間は9分半ほどであった)、その点を改善するにはまだ何世代か待たなくてはならない。 libvpx-vp9で4kが非分割60FPS以上で処理できる未来は、訪れるのかどうかすら疑問だ。

だが、5600Xの「遅い状況」は雑に言えばXeon Silver 4114並であるため、「速いCPU」という感じがしない。 第7世代、第8世代あたりのCore i7みたいな、旧世代の「常識的な」速度にとどまり、Ryzenらしい「高速さ」が見えないのだ。 体感的な話だけでいえば、最近のIntel CPUはpowersave governerであっても負荷がかかればクロックは上がるので、そこらへんのCPUよりも遅く感じるかもしれない。

あくまでも「特定の状況でのみ、5600Xが非常に遅いことがある」という話であることには注意してほしい。