성능 분석

성능 카운터로 측정했더니 어떤 프로그램의 IPC(1사이클당 명령어 수)가 0.3으로 매우 낮고, 마지막 단계 캐시의 미스가 많았다. 가장 가능성이 높은 상황과 대책의 조합은?

  1. A메모리 대기로 CPU가 멈춰 있는 시간이 길다. 데이터 배치를 바꾸거나 블로킹을 수행하여 캐시를 효과적으로 사용한다
  2. B계산이 너무 빠르다. 주파수를 올린다
  3. C분기가 너무 적다. 분기를 늘린다
정답과 해설 보기

정답: A. 메모리 대기로 CPU가 멈춰 있는 시간이 길다. 데이터 배치를 바꾸거나 블로킹을 수행하여 캐시를 효과적으로 사용한다

현재의 CPU는 1사이클에 여러 명령어를 실행할 수 있으므로, IPC가 0.3이라는 것은 대부분의 시간 동안 무언가를 기다리고 있음을 나타냅니다. 마지막 단계 캐시의 미스가 많다면 주기억장치에서 오는 데이터를 기다리는 시간이 길다고 볼 수 있습니다. 데이터를 연속된 번지에 배치하거나, 루프의 순서를 바꾸거나, 블로킹으로 같은 데이터를 여러 번 사용하는 등으로 캐시 미스를 줄이는 것이 효과적입니다.

  • A. 올바릅니다. 메모리 율속의 전형적인 증상입니다.
  • B. 주파수를 올려도 메모리 대기는 짧아지지 않습니다.
  • C. 분기를 늘려도 개선되지 않습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 성능 카운터로 분기 예측 미스가 매우 많다는 것을 알았다. 개선 방법에 해당하는 것은?
  2. 성능 카운터를 사용한 톱다운 분석(Top-down Microarchitecture Analysis)에서 CPU의 명령어 처리 슬롯 사용 방식을 나누는 큰 분류로 올바른 것은?
  3. 프로그램이 느린데 CPU 사용률이 20% 정도로 낮았다. 가장 가능성이 높은 원인은?
  4. 어떤 프로그램이 계산 율속인지 메모리 율속인지 확인하는 방법으로 CPU 주파수를 바꿔 가며 실행 시간을 측정했다. 메모리 율속이라면 일반적으로 어떤 결과가 나오는가?
  5. 루프라인(Roofline) 모델에서 어떤 처리가 메모리 대역폭으로 제한되는 영역에 있음을 알았을 때, 성능을 높이는 방향으로 올바른 것은?