◆Sandra 2021 31.137(グラフ49~74)

Sandra 2021 31.137
SiSoftware
https://www.sisoftware.co.uk/

今回はあまり深い解析をするつもりが無いので、CPU性能の比較、それとメモリコントローラ周りの素性の確認だけをしておきたい。

  • グラフ49

  • グラフ50

  • グラフ51

  • グラフ52

まずDhrystone/Whetstone(グラフ49~52)、MTの絶対値という意味ではCore i7-13700KFがブッチギリなのはコア数と動作周波数(&消費電力)の高さによるものだが、それよりもRyzen 7 8700GがRyzen 7 7700Xとそう変わらないスコアを出しているのが注目である。またRyzen 5 8600GもRyzen 7 5700Gを上回っているあたりもコアの性能の向上が大きく関係しているものと考えられる。これは1Tの場合も明確で、こちらではCore i7-13700KFが大きく性能を落としている分、むしろRyzen 5 8600G/Ryzen 7 8700Gの性能の高さが際立っている。

  • グラフ53

  • グラフ54

  • グラフ55

  • グラフ56

Cryptography関連(グラフ53~56)も同じで、1T/MT共にRyzen 5 8600G/Ryzen 7 8700Gの性能はRyzen 7 7700Xに迫る勢いである。Ryzen 7 5700Gとの性能差も大きく、Zen 4コアの威力を感じる。あるいはHashingのMT(グラフ55)で、SHA1とかSHA2-512だとRyzen 7 8700GはCore i7-13700KFといい勝負(SHA2-256は流石に負けるが)というのも面白い。ちなみに1TだとそもそもCore i7-13700KFは勝負になっていない。

  • グラフ57

  • グラフ58

  • グラフ59

Financial Analysis(グラフ57~59)もこの傾向がそのまま引き継がれている。計算処理によって多少の得手不得手があり、特にCore i7-13700KFは結構変動が大きい(グラフ58のBinomial EURO OptionのSingle Float 1Tの数字は流石に何かおかしくないか再確認したほどだ)一方でRyzen系はやや低め安定といった傾向にあるのだが、その中でRyzen 7 8700GはRyzen 7 7700Xにやや及ばない程度の成績を常に残しており、またRyzen 5 8600GもMTはRyzen 5 5700Gと同程度、1TならRyzen 7 8700Gに並ぶ程度の性能を維持しており、悪くない。

  • グラフ60

  • グラフ61

  • グラフ62

Scientific Analysis(グラフ60~62)では、L3容量の違いかRyzen 7 7700Xが結構伸びが大きく(特にFFTとかN-Body)、それもあってRyzen 5 8600G/Ryzen 7 8700Gとの差が広まっているが、それでもRyzen 5 5700Gからの伸びも大きい。科学技術計算的なものをどこまでこのクラスのCPUでやるのか、という問題はあるにせよ、性能/消費電力比的には悪くない結果になっている。

  • グラフ63

  • グラフ64

Image Processing(グラフ63・64)は項目によってばらつきが大きいので一概にどうこうは言いにくいのだが、例えばMTのMotion BlurでRyzen 5 8600GはRyzen 5 5700Gの3倍の性能を発揮するというあたりはZen 3→Zen 4だけでなくメモリ帯域の違いもあるのかもしれない。Ryzen 7 8700GはRyzen 7 7700Xにちょっと及ばずと言ったところ。概ね動作周波数の比に近い感じで、L3の削減(32MB→16MB)はあまり影響ない様だ。

  • グラフ65

  • グラフ66

次がMemory Bandwidth(グラフ65・66)である。DDR4-3200を使うRyzen 7 5700Gがとびぬけて帯域が低いのはまぁ当然として、Ryzen 5 8600G/Ryzen 7 8700G/Ryzen 7 7700Xの帯域がほぼ同じあたりに収まっている辺りは、Ryzen 8000GのMemory ControllerはRyzen 7000シリーズのIoDに搭載されているものと基本的な素性は殆ど変わらない、と考えて良さそうである。面白いのはRyzen 7 5700Gで、MTより1Rの方が帯域が増えている事だ。要するにMTだと多数のコアから同時にアクセス要求が来ることで、Memory Controllerが飽和して性能低下するが、1Tなら1コアからの要求だけなので処理が追い付いている(もしくは緩和している)事と考えられる。このあたりはRyzen 7000シリーズやRyzen 8000Gシリーズでは改善されている、と考えて良さそうだ。

  • グラフ67

  • グラフ68

グラフ67・68がキャッシュ領域までを含めての帯域である。まぁ動作周波数通りという感じではあるのだが、面白いのはMTのL1~L2でRyzen 5 8600GとRyzen 7 5700Gがほぼ同程度ということだ。単にCPU性能だけでなくメモリアクセス性能もZen 4では相応に向上していることが如実に示されている。逆に1TだとCore i7-13700Kのスコアが露骨に悪いが、これは1TのスコアがE-CoreとP-Coreの結果を重み付き平均で計算しているので、E-Coreが足を引っ張っていると言える。多分P-CoreだけであればZen 4とそう変わりが無い筈である。

最後にMemory Latency(グラフ69~74)だが、正直キャッシュ(L1~L3)が効果的な範囲ではRyzen 5 8600G/Ryzen 7 8700GはほぼRyzen 7 7700Xと変わらないことが見えているので、今回はその先のMemory Accessのみチェックする事にした。なのでcycle数ベースの結果は示さずに、nsベースの結果だけを示す。

  • グラフ69

  • グラフ70

  • グラフ71

グラフ69~71がGlobal Data Memory、つまりデータアクセスのLatencyである。グラフ69などRyzen 5 8600Gのグラフが完全にRyzen 7 8700Gに重なってしまっているので見えないが、Ryzen 7 7700Xに比べて微増といったところで、これは内蔵GPUの画面リフレッシュに伴うメモリアクセスが影響しているものと思われる。ただIn-Page Random(グラフ70)やFull Random(グラフ71)だとややLatencyが他の製品と比べて多めになっているのが気になる。もっとも傾向だけ見ていればRyzen 5 5700Gも同じで、ただしこちらはDDR4ベースなのでLatencyの絶対値がDDR5よりもやや少ないあたりが違いとしてあるかと思われる。つまりこれもGPUの画面Refreshに伴うLatency増加で、これは避けようがないということだ。

  • グラフ72

  • グラフ73

  • グラフ74

グラフ72~74はInst/Code、つまりL1 I-Cache/Prefetchを経由するルートで、こちらは基本Readのみ(Decoderからメモリに命令を書き出したりはしない)となるわけだが、L2から先はGlobal Dataと同じPathになるので、ある程度Global Dataと同じ傾向になる。実際SequentialではL3あたりまではRyzen 5 8600G/Ryzen 7 8700GのLatencyはRyzen 7 7700Xより大きいのだが、L3の先ではむしろ逆転しているというのが面白い。まぁ理由は恐らくRyzen 7 7700Xが大きめ(32MB)のL3を持っているがために、L3 Missの判定までに余分に時間が掛かるという辺りではないかと思う。あるいはRyzen 7 7700Xの命令Prefetcherが強力すぎるのかもしれない。一方In-Page Random/Full-Randomは何れもRyzen 7 7700Xから微増なのはGPUの画面リフレッシュに起因し、またRyzen 5 5700Gと比較しても僅かに上というのは、DDR4/DDR5の差ということで説明がつく程度の差でしかない。総じて特筆するような違いは無い、として良いかと思う。

◆PCI Express Test(グラフ75)

性能評価の最後に、PCIe Bandwidthを測定しておきたいと思う。Ryzen 7 8700GのFull SpecificationのConnectivityのところの記載はこんな感じ(Photo18)になっている。

Photo18: 赤枠は筆者追加。ちなみにこの部分の記述はRyzen 5 8600Gでも同様。

PCIeレーンが合計20本CPUから出るが、うち有効なのは16レーンとされる。では4レーンは? というとChipset接続用ということで、これはまぁ理解できる。以前X670の構造を示したが、本来AM5ではCPUから28レーンが出る格好で、

x16:GPU接続用
2x4:NVMe SSD接続用×2
x4:Chipset接続用

という割り振りになっている。ところがRyzen 5 8600GとRyzen 7 8700Gは合計20レーンしか用意されていない。可能性としてはNVMe接続用を全部ぶっちぎってGPUにx16を割り当てるか、もしくはGPU用をx8に減らしてNVMe接続用を維持するか、である。以前のPCIeだとx12という規格が存在した(InfiniBand接続用)のだが、誰も使わないという事で廃止されてしまっており、なのでGPU様にx12、NVMe SSD用にx4という選択肢はない。まぁ可能性としてはGPU用がx8、NVMe SSD用に2x4という公算が一番高いという事で、これが正しいかを検証してみた。

テスト方法は簡単で、PCIe 4.0x16のI/Fを持つビデオカード(今回はRadeon RX 6800 Referenceを使った)を装着して、3DMarkのPCIe TestとSandraのVideo Memory Bandwidthを実施してみるという方法だ。

  • グラフ75

グラフ75がその結果である。ReferenceはRyzen 7 7700Xで、3DMarkのPCIe Testでは21.4GB/sec、SandraのVideo Memory Bandwidthでは24.1/22.3GB/secとなった。PCIe 4.0×16の理論帯域が片方向当たり32GB/secだから、まぁ21~24GB/secならちゃんとx16で動作していることが判る。

ではRyzen 5 8600G/Ryzen 7 8700Gでは? というと3DMark PCIe Testでは14~15GB/sec、SandraのVideo Memory Bandwidthでは14GB/sec弱となっており、これはPCIe 4.0 x8の帯域に概ね等しい。そもそもNVMeの帯域が削られていたら、PCMark 10のEssentials当たりの成績が激減している筈(ブートドライブのNVMe SSDが繋がっているから)で、そうした傾向が見えないあたりはPCIeのレーン数が半減しているものと考えられる。

もっともこれで性能が大幅に下がるか? というと、多分そんなことはない。というのは殆どのゲームはプレイ中にPCIeでテクスチャやらなにやらを送ったりはしておらず(してたらそこがボトルネックになる)、描画指示とか程度になるからだ。勿論シーンチェンジなどでテクスチャロードとかが発生すると、そこの待ち時間は大幅に増えるとは思うが。影響が出ても10%未満であろう(昔何かで検証した時は、確か2~3%程度の差でしかなかった)。

ちなみにRyzen 5 8500Gも既に出荷が開始されているが、こちらはPCIeが合計14レーンで、うち有効10レーンしかない。ということは

・GPU用:x8、NVMe用:2x1
・GPU用:x2、NVMe用:2x4

のどちらかになる。なんとなく後者な気がするが、確証はない。ただ後者だとすると、流石にこれは相当遅い(PCIe経由での描画コマンドの発行がボトルネックになりそう)と思われるので注意が必要だ。まぁ3Dゲームを遊ばないなら、そこそこ動くとは思うが。