Roofline 분석
Roofline 분석은 연산의 arithmetic-intensity와 하드웨어의 두 한계를 이용해 달성 가능한 성능의 상한을 보는 모델이다.
여기서:
C = peak compute throughput
BW = memory bandwidth
AI = arithmetic intensity
두 개의 지붕
성능 P를 FLOP/s로 보면 두 상한이 있다.
첫 번째는 연산 유닛의 한계다.
두 번째는 메모리 대역폭의 한계다. 산술 강도가 AI FLOP/byte이고 메모리 대역폭이 BW byte/s라면, 메모리에서 데이터를 공급받아 만들 수 있는 성능은:
그래서 달성 가능한 성능 상한은 둘 중 작은 값이다.
이 식을 그래프로 그리면 왼쪽은 대각선, 오른쪽은 평평한 선이 된다. 모양이 지붕처럼 보여서 roofline이라고 부른다.
시간 모델과 같은 말
시간으로 보면 compute-memory-time의 하한과 같다.
성능 그래프에서는 같은 관계를 이렇게 본다.
AI가 낮다 -> BW x AI가 작다 -> memory-bound
AI가 높다 -> C가 상한이다 -> compute-bound
경계점
경계는 두 상한이 같아지는 지점이다.
따라서:
이 값이 하드웨어의 critical AI다.
AI < C / BW -> memory-bound
AI > C / BW -> compute-bound
확인
- Roofline의 기본 식
min(C, BW x AI)에서 각 문자는 무엇을 뜻하는가? - 왜 그래프의 왼쪽은 memory-bound가 되는가?
- critical AI는 어떻게 계산하는가?