본문 바로가기
조각 메모/공부 내용

Roofline model

by 테크 셰르파 2022. 8. 11.

멀티코어 컴퓨팅 관련 문서를 보다보면 Roofline model이라는 용어를 종종 볼 수 있습니다. 해당 용어는 2009년 Samuel wiliams가 처음 제안했습니다.

[참고] Roofline: an insightful visual performance model for multicore architectures

Roofline model은 주어진 컴퓨팅 환경에서 성능의 제약조건이 어느 부분인지 쉽게 시각화할 수 있는 도구입니다. 컴퓨팅 성능은 주로 ①메모리 대역폭과 ②연산기(최대 연산 능력)에 영향을 받습니다. Roofline model에서는 이를 하나의 그래프에 시각화합니다. 시각화 결과를 보면 개발자는 어느 부분을 최적화할지 결정할 수 있습니다.

병렬 컴퓨팅에서는 일반적으로 [그림1]과 같은 roofline model을 확인할 수 있습니다. X축은 연산량의 변화를 보여주며, Y축은 부동소수점 연산 성능을 보여줍니다. [그림1]을 보면 연산량이 적을 때는 메모리 대역폭에 따라 성능의 제약이 있으며, 연산량이 일정 수준을 넘으면 컴퓨터 내부 연산기에 따라 성능의 제약이 발생함을 알 수 있습니다. 이러한 결과가 나오는 이유는 일반적으로 CPU는 GHz 단위로 동작하고 DRAM은 MHz 단위로 동작하기 때문입니다.

[그림1] Roofline model 예시

개발자는 현재 개발 중인 프로그램이 roofline model에 어디쯤에 위치해있는지를 확인하여 병목현상이 발생하는 원인을 확인해야 합니다. 그 다음은 [그림2]와 같이 다양한 최적화 기법을 적용하여 주어진 컴퓨팅 환경과 프로그램에 맞게 최적화해야 합니다.

[그림2] roofline model 예시(최적화 기법 적용)

댓글