以前QSV目的で
Surfaceを買ってしまったのだが、この子にはLPDDR4X-3733という、あまり自作PCには縁のないメモリが使われているということで、じゃあその速度はどのくらい? というのを測ってみた。
比較環境とりあえず、手持ちの4コアCPUで比較してみた。
CPU | i5 1035G7 | i7 7700K | Ryzen3 3200G |
---|
Cores | 4C/8T | 4C/8T | 4C/4T |
Clock | 1.2/3.3/3.7 | 4.5 | 4.2 |
RAM | LPDDR4X-3733 | DDR4-3600 | DDR4-2666 |
Timing | 20-20-20-45 | 18-22-22-42 | 16-18-18-40 |
測定方法とりあえず、
いつもの自作アプリを使用して測定。(このアプリを作って遊ぶのが主目的なので)
まず、シングルスレッドのキャッシュ・メモリ帯域から。
i5-1035G7をi7 7700Kと比べると、L1/L2キャッシュ領域ではAVX512効果で帯域が増大している一方、L3キャッシュはクロックが低いため控えめな速度となっている。あと、データサイズの大きいメモリ領域では、高速なLPDDR4X-3733を使用している割には一番遅くなっている。どうやらシングルスレッドではメモリの性能を引き出せないようだ。
また、IceLakeの特徴であるL1キャッシュの32KB→48KBへの拡大と、L2キャッシュの256KB→512KBが見て取れる。

次に、マルチスレッドのキャッシュ・メモリ帯域。
データサイズの大きいメモリ領域では、i5 1035G7が一番上に来ていて、LPDDR4X-3733が真価を発揮している。

メモリ帯域に注目するとこんな感じ。
CPU | i5 1035G7 | i7 7700K | Ryzen3 3200G |
---|
RAM | LPDDR4X-3733 | DDR4-3600 | DDR4-2666 |
Timing | 20-20-20-45 | 18-22-22-42 | 16-18-18-40 |
Bandwidth | 47.7GB/s | 43.0GB/s | 33.8GB/s |
i5-1035G7+LPDDR4X-3733はここではトップで、47.7GB/sというなかなかの速度が出ている。i7 7700K + DDR4-3600はちょっと及ばない感じ。
今度はメモリアクセスのレイテンシ(遅延)の測定。まずは、なるべくTLBミスを発生させないアクセスパターン。
こちらでもSkylake(i7 7700K)からIceLake(i5 1035G7)でのキャッシュ構造の変化をはっきりと確認できる。また、データサイズの大きいメモリアクセスをしている領域で見ると、i5 1035G7のLPDDR4X-3733は遅延が大きいことがわかる。

次に完全にランダムなアクセスパターン。
こちらでも同じで、データサイズの大きいメモリアクセスをしている領域で見ると、i5 1035G7 + LPDDR4X-3733は遅延が大きいことがわかる。

というわけで、Surface Laptop 3のメモリ帯域やレイテンシを測定して、IceLake + LPDDR4X-3733という面白い組み合わせでのメモリアクセス性能をチェックした。
マルチスレッド使用時に高いメモリ帯域を引き出せること、一方でレイテンシのほうはやや大きめであることなどがわかった。まあ、LPDDR4X-3733は高速なGPUを支えるため、という側面が強いのだろうし、そういった点では、レイテンシのほうはさほど問題ではないのかもしれない。
なお、
そのほかのCPUでの測定結果をまとめたものはこちら。手持ちのいろいろなCPUで測った結果を載せてみた。