○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 |