次はMulti-Core Efficiency(グラフ61~65)。まずグラフ61がOverall。棒がBandwidth、折れ線がLatencyである。

Best Caseは同じコア内のThreadでのデータ交換、Worst Caseは別コア間のTrehadのデータ交換となる。まぁこのグラフではそれほどおかしな部分は見当たらない。グラフ62はBest CaseのBandwidthで、32KB L1が有効なL1が有効な4×4KBが最初のピーク、次のピークは256KB L2が有効な6×64KBとなる。

  • Intel Core i9-9900Xレビュー

    グラフ61

  • Intel Core i9-9900Xレビュー

    グラフ62

  • Intel Core i9-9900Xレビュー

    グラフ63

不思議なのは、本来L3が有効なはずの4×1MBがあまり性能が高くないことで、逆にHyperThreadingを無効にしたCore i7-9700Kがこの前後でピークになっているというのは、HyperThreadingの有無でL3の割り当て容量が変わるのかもしれない。

逆にWorst Caseでは、L1/L2はデータ交換の役に立たないわけで、L3を有効に使える16×64K~4×1MBがピークになるのはまぁセオリー通り。ただ、ここでCore i7-8700Kが一番性能が高い、というのはちょっと面白い結果である。

グラフ64・65はLatencyの頻度分布を0.5nsごとに取ったものだ。13ns~17nsの範囲は同じコア内のThread同士の通信が主で、たまに異なるコア間でもRing Busを通らない(つまり同じRing Stopにつながる2コア同士での通信)もここには含まれる。

  • Intel Core i9-9900Xレビュー

    グラフ64

  • Intel Core i9-9900Xレビュー

    グラフ65

2つを見比べると、特にWorst Caseでは、頻度分布がむしろ狭まる方向になっているのは興味深いことだ。Core i7-8700Kのほうが全般的にLatencyが多いのは、正直言うとちょっと意外だった。

第9世代ではRing Stopの数が一つ増えており、その分Memory AccessあるいはL3 AccessのLatencyは増えると予測していたのだが、結果を見る限りこうした気配は見受けられない。もっともこのテストは、Latencyからも分かる通りL1~L3 Cache Accessに留まっており、Memory Accessはない状態なので、こちらは後のテストで見る必要があるだろう。