◆テスト1: RMMT 1.1(グラフ68~69)

RMMT 1.1
Rightmark.org
http://cpu.rightmark.org/products/rmma.shtml

  • グラフ68

  • グラフ69

SandraやRMMAの結果は今回見送りとさせていただいたが、RMMTの結果だけ示しておきたい。まずグラフ68がReadであるが、絶対的なメモリ帯域の大きさよりも面白いのはメモリコントローラの特性そのものだ。Core i9-12900Kは8Thread動作、この場合で言うと8つのP-Core上に一つづつThreadが動作し、それぞれが40MB/secのMemory Read Requestを出すという状況でピーク性能の75.7GB/secを叩き出している。これに対してRyzen 9 7950Xは、5 Threadで動かしている時が一番性能が高く、95.5GB/secに達している。DDR5-4800だと理論帯域で96GB/secだからCore i9-12900Kのメモリコントローラの効率は78.9%ほどで、これも結構高いのだが、Ryzen 9 7950Xの方はDDR5-5200だから実に91.8%もの効率の高さである。ただしそれが5Threadというあたりが謎で、そこから急速に下がっているのが判る。この妙なカーブはWrite(グラフ69)も同じで、しかも1ダイのRyzen 5 7600X/Ryzen 7 7700Xには見られない辺りは、IODの作り方というか、Infinity Fabricの内部構成も関係している様に見える。要するに、Ryzen 7000シリーズのメモリコントローラは、複数のThreadから大量のリクエストを同時に受ける事を余り想定しておらず、ある閾値(これが5Thread程度なのだろう)を超えると急速に性能が下がる様に見受けられる。またこれにはInfinity Fabricも絡んでおり、ダイ1つからのリクエストを集中的に受けるとボトルネックになりやすいようだ。これが効率的に動くのは、2つのダイからそれぞれ2~3Thread分のリクエストを動く状況で、それが2+3Threadという事になる様に見える。

この辺りはもう設計思想の違いで、大容量(32MB)のL3を搭載している状況で、大量のメモリアクセスリクエストが複数のコアから同時に発生する事は、少なくともコンシューマ向けのRyzenではあり得ないという前提のもとに設計が成されている様に見える。実際、5Threadに続いて帯域が大きいのは、2つのダイでそれぞれ1 Threadが動く2 Threadの状況で、ここも86GB/sec前後の帯域になっている。このあたりはEPYC向けのGenoaでは、また違ったメモリコントローラの特性になっていると考えられるだけに、どんなチューニングが施されているのか楽しみである。

WriteはReadに比べるともう少しコンサバティブではあるが、5 Threadの所にピークがあるのは同じである。もっとも最高性能は1 Threadの時、というのはDDR5であってもWriteではBurst転送が効かない事を考えれば妥当な結果である。逆にCore i9-12900Kは、5 Threadあたりが最高速と言うのは、L3→MemoryのWritebackのメカニズムがまたAMDとは全く異なる事を示唆している。しかしこれだけThread数と帯域の関係が異なるのでは、AMDとIntelの両方に最適化したメモリへのデータ書き出し手法というのが結構異なる事になる訳で、アプリケーションエンジニアにとってはちょっと頭が痛い話かもしれない。

◆テスト1: 消費電力測定(グラフ70~76)

テストその1(Discrete Graphics環境)の最後は消費電力測定である。まずグラフ70がSandraのDhrystone/Whetstone実施中、グラフ71がCineBench R23(All CPUとOne CPUの両方)、グラフ131がProcyon 2.0のOffice Productivity、グラフ72がTMPGEnc Vide Mastering Works 7で4streamのX.265エンコードの最初の180秒、グラフ73が3DMark FireStrike、グラフ74がMetro Exodus Enhanced Editionの、やはり2Kでのベンチマークの実効消費電力変動を示したものである。グラフ75がそれぞれの平均消費電力(と一部ピーク時消費電力)、それと待機時の消費電力をまとめたもの、グラフ76が個々の消費電力と待機時との差をまとめたものである。

  • グラフ70

  • グラフ71

  • グラフ72

  • グラフ73

  • グラフ74

  • グラフ75

  • グラフ76

まずグラフ75を見て頂くと判るが、そもそもRyzen 7000シリーズはどれも待機時の消費電力が高めである。Core i9-12900Kに比べて30W、Ryzen 9 5950Xに比べても20Wのアップである。理由の一つは、ハイエンドマザーボードということで色々消費電力が増加する要因がありそうという事だし、メモリもDDR5-5200動作はJEDECの標準ではなくEXPOモードでの動作になるので、この分も加味されていると考えて良いかと思う。ただそれにしても、SandraのDhrystone/WhetstoneでRyzen 9 7950Xは他を圧倒する消費電力の多さであり、流石TDP 170Wの製品だけの事はある。それに比べるとRyzen 5 7600X/Ryzen 7 7700Xは概ね200W程度と、Ryzen 9 7950Xよりも120Wほど低い消費電力に収まっており、同じ105W TDPのRyzen 9 5950Xと比べても20Wほど低めになっているのは優秀と言える。

CineBenchやTMPGEncでは、最初の数十秒だけ跳ね上がるのはまぁPrecision Boost/PL2の宿命であるが、問題はその後の定常状態で、ここでもRyzen 9 7950Xはかなり高め。対してRyzen 5 7600X/Ryzen 7 7700Xはかなり低めに設定されており、割と性能/消費電力比は悪くないように感じる。面白いのはFireStrikeやMetro Exodusでの消費電力で、ここで最大なのはRyzen 9 5950Xで、これにRyzen 9 7950Xが続き、残りの3製品といった感じである。

こうした傾向は、それぞれの平均値をとったグラフ75を見ると明白である。とにかくRyzen 9 7950Xは、性能も高いが消費電力もまた相当に大きい。待機状態との差を取ったグラフ76で見ると多少緩和されるが、消費電力の多さで鳴らしたCore i9-12900Kとほぼ同等、という消費電力である(Dhrystone/WhetstoneではCore i9-12900Kを上回っている)。これはもう動作設定を効率優先よりも絶対性能優先に振ってしまっており、それだけ消費電力が大きいと考えられる。

もっともでは効率そのものはどうか? というと、これが面白い事にRyzen 9 5950XとRyzen 9 7950Xの効率がほぼ同等であった。表2にDhrystone/Whetstoneでのスコアとそれぞれの実効消費電力差をまとめてみたが、御覧の通り効率そのものは実はRyzen 9 5950Xが最高で、それとほぼ同等なのがRyzen 9 7950X、続いてRyzen 7 7700X、Ryzen 5 7600Xと続く格好だ。Core i9-12900Kは?というと、丁度Ryzen 7 7700XとRyzen 5 7600Xの中間程度(強いて言えばRyzen 5 7600X寄り)という辺りで、なのでCore i9-12900Kに比べるとずっと効率が良いのは間違いないのだが、思ったほどには高くないというか、性能の方に振ってしまった感じが見える。恐らくX付きSKUはこうした性能優先であり、効率優先は今後登場するであろうX無しSKUで実現する格好だろうか。これに関してはちょっと残念であった。

■表2
Dhrystone Whetstone
Score Power Efficiency Score Power Efficiency
GIPS W GIPS/W GFlops W GLlops/W
i9-12900K 670.86 200.6 3.34 493.57 194.4 2.54
R9 5950X 601.83 163.6 3.68 496.93 163 3.05
R5 7600X 329.00 110.9 2.97 265.30 104.6 2.54
R7 7700X 418.66 122.5 3.42 333.10 119.9 2.78
R9 7950X 850.00 235.5 3.61 681.26 224.3 3.04