マルチスレッドでアクセスするとメモリ帯域はどのくらい伸びるのか、あるいは伸びないのか、実験。
特に5960Xだとどうなるか…。
マルチスレッドでのメモリ速度の測定は、
RMMTでもできるのだけど、8C/16TのCore i7 5960Xで実行すると、物理8コアを使ってくれず、4コア/8スレッドで測定してしまう。
そこで、ちゃんと8コア分測定できるようなコードを書いて、結果をcsvで出力させた。あとはExcelでグラフ化。
そのプログラムはこちら。
CPU | i7 5960X | i7 4770K | i7 3770K | A10 7850 | i7 4610Y |
コア数 | 4C/8T | 4C/8T | 4C/8T | 2M/4T | 2C/4T |
Core | 4.4GHz | 4.4GHz | 4.4GHz | 4.4GHz | -2.9GHz |
UnCore | 4.0GHz | 4.0GHz | 4.4GHz | - | -2.9GHz |
RAM | DDR4-2666 | DDR3-2600 | DDR3-2133 | DDR3-2496 | DDR3-1600 |
Channel | Quad | Dual | Dual | Dual | Dual |
CL | 15-15-15-36-1 | 10-12-12-31-2 | 9-11-10-28-2 | 11-13-13-31-2 | 11-11-11-28-1 |
まず、Readから。

Quad-Channelの圧倒的な帯域が目を引く。
Dual-Channelのものが2スレッドあたりでだいたい飽和してしまうのに対し、Quad-Channelものは6スレッドまで帯域が伸び続ける。特に5スレッドまではかなり良く伸びている。
| 理論帯域に対する効率 |
i7 5960X + DDR4-2666, 4ch | 81.4% |
i7 4770K + DDR3-2600, 2ch | 86.4% |
i7 3770K + DDR3-2133, 2ch | 88.2% |
i7 4610Y + DDR3-1600, 2ch | 73.6% |
A10-7850K+ DDR3-2496, 2ch | 53.1% |
Core i7 5960X / 4770K / 3770Kは、理論値に対して8割以上出ている。AMDはなんというか、残念です。
次にWrite。

こちらも似たような感じ。
ただ、Readと異なり、Dual-Channelのものは2スレッドで完全に飽和してしまう。
というわけで、5960XのQuad-Channelだと並列化すればメモリアクセス速度も順調に伸びてくることがわかった。4770Kのように並列化したけどメモリアクセスのせいで速くならない、みたいなことはなさそうだ。
スポンサーサイト