○Memory Mountain

 ▷Spatial, temporal locality에 따른 Read throughput을 비교하기 위한 3차원 그래프

 ▷테스트 코드

 

 ▷결과

  ▷Spatial locality (Stride) : 읽는 간격이 커질수록 느려짐.

  ▷Temporal locality (Size) : 읽는 데이터 크기가 커질수록 상위 Cache에 데이터를 저장하지 못하고, 계단형식으로 느려지게 됨.

 

 

○Memory Performance Improvement

 ▶Spatial locality 개선

  ▷반복문의 순서/알고리즘을 바꿈으로 spatial locality를 개선할 수 있다.

  ▷열 접근 - 행 접근으로 바꿀수 있으면 spatial locality를 크게 개선 가능

  ◎Matrix Multiplication 알고리즘들

 

 ▶Temporal locality 개선

  ▷Block을 적게 읽어들이기 위해 Block 단위 Subloop를 만듬으로써 temporal locality를 개선할 수 있다.

  ◎Matrix Multiplication을 Block-Size로 subloop한 것.

   ▷cache miss : 2n/B × B2/8 = nB/4, nB/4 × (n/B)2 = 1/(4B) × n3

   ▷일반적인 Matrix Multiplication과 비교 : 9/8 × n3

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Library  (0) 2020.12.01
Linking  (0) 2020.12.01
Cache Memory  (0) 2020.11.19
Memory Hierarchy  (0) 2020.11.17
Locality  (0) 2020.11.17

+ Recent posts