Slide 1

Slide 1 text

キャッシュメモリの効果 Jul 18th, 2020 Satoru Takeuchi twitter:satoru_takeuchi 1

Slide 2

Slide 2 text

もくじ ● キャッシュメモリとは ● 実験方法 ● 結果 ● まとめ 2

Slide 3

Slide 3 text

もくじ ● キャッシュメモリとは ● 実験方法 ● 結果 ● まとめ 3

Slide 4

Slide 4 text

キャッシュメモリとは ● CPUレジスタ上の計算速度とメモリアクセス速度には大きく違いがある ○ レジスタ上の計算速度 : 最速1ナノ秒未満 ○ メモリアクセス速度: 100ナノ秒オーダー ● 性能向上のために2つの間に存在する記憶装置がキャッシュメモリ ● Latency Numbers Every Programmer Should Know ○ https://colin-scott.github.io/personal_website/research/interactive_latency.html メモリ キャッシュメモリ レジスタ 高速アクセス、 小容量、高価 低速アクセス、 大容量、安価 4

Slide 5

Slide 5 text

キャッシュメモリがうれしいとき ● ワーキングセットがキャッシュメモリ上におさまっていれば、見かけ上のメモリアクセ ス速度はキャッシュメモリへのアクセス速度に等しい ● 詳細は本チャンネルの「その6 キャッシュメモリ」 5 メモリ キャッシュメモリ 汎用レジスタ(x86_64だと16個) 読み書き 読み書き ワーキングセットが キャッシュメモリに おさまればここは不要

Slide 6

Slide 6 text

もくじ ● キャッシュメモリとは ● 実験方法 ● 結果 ● まとめ 6

Slide 7

Slide 7 text

実験 ● プログラム 1. 第一引数で指定された量のメモリ (KiB単位)をワーキングセットとして獲得 2. ワーキングセットにシーケンシャルアクセスを繰り返し、合計 4GiBのデータにアクセス 3. 所要時間[秒]を出力 ● わたしの環境 ○ キャッシュメモリ: L1dが32KiB、L2が256KiB、L3が12288KiB ● 測定範囲 ○ 1KiBから64MBまで ● 結果の図示方法 ○ X軸: ワーキングセットサイズ [KiB] ○ Y軸: 所要時間 [秒] 7

Slide 8

Slide 8 text

もくじ ● キャッシュメモリとは ● 実験方法 ● 結果 ● まとめ 8

Slide 9

Slide 9 text

結果 9

Slide 10

Slide 10 text

結果: キャッシュメモリ容量との関係 10 L3キャッシュアクセス速度 L1キャッシュサイズ (32KiB) L3キャッシュサイズ (12288KiB) L2キャッシュサイズ (256KiB) 各キャッシュメモリの 容量前後で劇的に所要 時間が変化する

Slide 11

Slide 11 text

もくじ ● キャッシュメモリとは ● 実験プログラム ● 結果 ● まとめ 11

Slide 12

Slide 12 text

まとめ ● キャッシュメモリはレジスタ上の計算とメモリアクセス速度の差を埋める ● ワーキングセットがキャッシュおさまっていると最大限の効果が出る ● 現実に活かせる知識(キャッシュメモリを知らなければ理解できない) ○ ワーキングセットを減らすと性能が劇的に改善することがある ○ ワーキングセットが大きくなると突然性能劣化することもある 12