성능 분석

루프라인(Roofline) 모델에서 어떤 처리가 메모리 대역폭으로 제한되는 영역에 있음을 알았을 때, 성능을 높이는 방향으로 올바른 것은?

  1. A연산기 수를 늘리는 것만 생각한다
  2. B아무것도 하지 않아도 시간이 지나면 자연히 빨라진다
  3. C데이터 재사용을 늘리는 등으로 연산 강도를 높이거나, 메모리 읽기·쓰기 양을 줄인다
정답과 해설 보기

정답: C. 데이터 재사용을 늘리는 등으로 연산 강도를 높이거나, 메모리 읽기·쓰기 양을 줄인다

루프라인 그림에서 비스듬한 선 아래에 있는 처리는 메모리 대역폭이 성능의 상한을 결정합니다. 연산기를 늘려도 상한은 변하지 않습니다. 블로킹이나 연산 융합으로 데이터를 여러 번 사용하여 1바이트당 연산 수(연산 강도)를 늘리면 처리가 그림의 오른쪽으로 이동하여 상한이 올라갑니다. 데이터를 낮은 정밀도로 하여 읽기·쓰기 양을 줄이는 것도 같은 효과가 있습니다.

  • A. 메모리 율속에서는 연산기를 늘려도 빨라지지 않습니다.
  • B. 변경하지 않으면 빨라지지 않습니다.
  • C. 올바릅니다. 오른쪽으로 이동시켜 지붕의 평평한 부분에 가깝게 합니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. STREAM 벤치마크로 주로 측정하는 것은?
  2. 병렬 프로그램의 확장성(scalability)을 조사하는 방법으로 가장 적절한 것은?
  3. 8코어로 병렬 실행했더니 1코어일 때보다 6배 빨라졌다. 병렬 효율은 얼마인가?
  4. 성능을 측정하기 위한 장치를 넣은 탓에 측정하려는 프로그램의 동작 자체가 바뀌어 버리는 현상을 무엇이라 부르는가?
  5. 프로그램 성능을 개선할 때의 진행 방식으로 가장 적절한 것은?