RyzenでPCを組み直したら爆速で最高になった

5年半前に組んだIntel Core i7-4790Kのマシンが結構速くて快適だなあと思いながら日々を過ごしていたが、僕のCPUだと遅くなるけどRyzenだと速くなる状況に遭遇したり、PassMarkで元のCPUより大分速くて趣味の開発の生産性への寄与が大きそうだったので、今日CPUをRyzen 7 5800Xに取り替えた。

f:id:k0kubun:20210115155350j:plain

どのくらい速くなったのか

そもそも何故速いマシンが欲しいかというと、普段の生活でRubyJITのシングルスレッド性能を測りまくっていて、そのベンチが速く走るほど結果の解像度が上がり、速くなったかの判定がしやすくなるというモチベーションがあった。そういうわけで実際よく走らせてるRubyのベンチRuby 3.0 JIT時のピーク性能 *1を比較したら以下のようになった。*2

Core i7-4790K Ryzen 7 5800X
106.11fps 142.09fps

1.34倍速い。ていうか、JITでも60fpsくらいしか出ない時からこのfpsを2~3上げるような改善をめっちゃ繰り返してたので、142fpsが見れるのは、マジかーという感じ。

最速のシングルスレッドCPU

Ryzen 7 5800Xはシングルスレッド性能のPassMarkでつい最近まで最速だったIntel i9-10900Kとは結構差が開いてたけど、未発売のIntel 第11世代 Rocket Lakeのi7-11700Kのスコアが最近提出されており、どうやらRyzen 5000シリーズより若干速いらしい。Ryzenの影響でIntelも値段下がるらしいけど、$449 で買って現時点で最速なので、コスパ的には悪くなかったかなと思っている。

f:id:k0kubun:20210115161611p:plain

ちなみにi7-4790Kの結果も同じページにあるけど、2,468なので、1.42倍速いことになる。RubyJITのベンチの比ともそれほど外れておらず、なかなか参考になるベンチだと思う。

買ったパーツ

ここからは余談だけど、単にCPUをRyzenにしたいだけだったのに他に買わないといけないパーツが4つもあったので、最速のCPUが欲しい人向けに購入にあたっての知見などを書いておく。僕はゲームはしないのでどれも開発時の性能を犠牲にしない範囲で最も安いものを選んだつもり。

CPU: Ryzen 7 5800X

上のグラフやTDPからもわかる通り、Ryzen 5000シリーズの中でRyzen 5 5600Xだけは若干遅く、他はシングルスレッド性能では大体同じみたいな感じになっている。お金は節約したいし5600Xのコスパはすごいけど、できるなら最速クラスの奴がいいし、キリよく8コア16スレッド欲しいなということで5800Xになった。

あと、日本のオンラインストアではたまにTwitter検索するだけで5900Xとかでも普通に在庫が見つかる状態だったのが、USのストアでは定価だとどれも在庫の確保が困難で、かつ実質5600Xか5800Xしか手に入らない状態だった。リングフィットアドベンチャー買う時に在庫監視の経験を積んでいたのでどうにか欲しいものを確保でき*3、Preorderから配達までは2週間かかって今日に至る。

CPUクーラー: Noctua NH-D15S

Ryzen 5600XよりTDPが高いということはすなわち高い冷却性能が要求されるということで、5800X以上ではCPUクーラーが付属しておらず、これも5600Xのコスパの一部になっている。Ryzen買った人は水冷をやっている人が多い気がするけど、空冷より寿命が短いらしいので空冷にした。これめちゃくちゃでかいんだけど、でかい方がヒートシンクによる冷却性能が高くファンの回転数をおさえられて静音らしいのと、当然性能にも影響するので、ケースに入りそうな範囲ででかい奴にした。いろいろ取り回しが大変になった。

GPU: GeForce GT 1030 (Gigabyte GV-N1030OC-2GI)

RyzenのXシリーズは、Radeon Graphicsが内蔵されるRyzen Gシリーズと違い、仮にマザボオンボードグラフィックがあってもそこから映像を出力することができない。CPU内蔵のIntel HD Graphicsに依存してきたので、今回GPUを買わなければならなかった。

Ryzen 5000シリーズを買ってる人は大体ゲーマーなので普通RTXとペアにすると思うんだけど、まあターミナルしか動かさないので、GTXですらなくGTシリーズを買うことにした。最初はGT 710のボードを買ったんだけど、4K出力のせいで見てわかる程度に処理がカクカクになったので、それより若干高いが性能はかなり勝るGT 1030を使うことにした。見出しに書いたのはHDMI 4K@60fpsができるボードなんだけど、使ってるディスプレイがどの道HDMI 4K@30fpsまでしか対応してないことに気づいたのと、あとやっぱ静音にしたいなという気持ちになったので、パッシブ冷却のAsusのGT 1030ボードに変える予定。

マザボ: Gigabyte A520 AORUS Elite

CPUソケットが変わるので、まあこれを買い替えないといけないのはしょうがない。Ryzen 5000シリーズに公式に対応しているチップセットはX570、B550、A520があり、A520が一番安い。A320でもASRockがファームウェア新しくすることで対応させたボードもあるけど、RAMが2レーンしかないのが気になってスキップ。A520はPCIe 4.0が使えないのがネックだけど、どうせ繋ぐのがGT 1030ならどうでもいいので、このボードに大変満足している。調べてて思ったけど、そのうちSSDはNVMeにしたいなと思った。

RAM: Crucial CT16G4DFD8266 (16GB x 1)

マザボが5年も新しくなるのRAMの世代がDDR3からDDR4に変わってしまい、これには後方互換性がないのでこれも買い替えることになる。まあDDR4のRAMはマザボよりは今後使い回しが効く気がするので別に良い。

マザボがサポートしてる範囲は結構あるけど、動かないと怖いのでマザボのサポートページで公式にサポートされてる奴の中から選び、値段が控え目な2666MHzの奴にした。マザボ的には32GB x 4までいけるんだけど、まあ多くても16GB x 4 = 64GBでいいかなと思ったのと、とりあえず元の16GBに揃えて安く済ませたかったので、一旦16GBの奴を1枚買った。そのうち32GBとかにはしようと思っている。

まとめ

追加でいろいろ買い替えないといけないのが嫌でこれまで渋ってたけど、買ってみると期待通り速くて満足した。

*1:--frames=3000 のこと https://github.com/mame/optcarrot/pull/26#issuecomment-734023613

*2:ベンチマーク環境の詳細はこちら https://gist.github.com/k0kubun/b787f4466324f0551557c1986a5213ee

*3:amazon.comRyzenをカートにいれるページをリロードしすぎてそこから24時間犬の画像の503が返り続けたこともあった。Prime会員なのに…