성능 분석

성능 카운터를 사용한 톱다운 분석(Top-down Microarchitecture Analysis)에서 CPU의 명령어 처리 슬롯 사용 방식을 나누는 큰 분류로 올바른 것은?

  1. A빠름, 느림, 보통의 3가지
  2. B프런트엔드에서 막힘, 백엔드에서 막힘, 투기 실행이 낭비됨, 올바르게 명령어를 완료(리타이어)함의 4가지
  3. C디스크, 네트워크, 화면, 키보드의 4가지
정답과 해설 보기

정답: B. 프런트엔드에서 막힘, 백엔드에서 막힘, 투기 실행이 낭비됨, 올바르게 명령어를 완료(리타이어)함의 4가지

톱다운 분석에서는 매 사이클 명령어를 처리하는 슬롯이, 명령어를 가져와 해독하는 전단(프런트엔드)이 제때 공급하지 못해 비었는지, 연산기나 메모리 대기 등 후단(백엔드)에서 막혔는지, 예측이 빗나가 버려지는 명령어에 쓰였는지, 올바르게 완료된 명령어에 쓰였는지로 나눕니다. 가장 큰 분류에서 점점 더 세부적인 원인으로 좁혀 가면 병목을 효율적으로 특정할 수 있습니다.

  • A. 그런 분류가 아닙니다.
  • B. 올바릅니다. 위의 분류부터 차례로 세부 원인을 좁혀 갑니다.
  • C. CPU 내부의 분류가 아닙니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 프로그램이 느린데 CPU 사용률이 20% 정도로 낮았다. 가장 가능성이 높은 원인은?
  2. 어떤 프로그램이 계산 율속인지 메모리 율속인지 확인하는 방법으로 CPU 주파수를 바꿔 가며 실행 시간을 측정했다. 메모리 율속이라면 일반적으로 어떤 결과가 나오는가?
  3. 루프라인(Roofline) 모델에서 어떤 처리가 메모리 대역폭으로 제한되는 영역에 있음을 알았을 때, 성능을 높이는 방향으로 올바른 것은?
  4. STREAM 벤치마크로 주로 측정하는 것은?
  5. 병렬 프로그램의 확장성(scalability)을 조사하는 방법으로 가장 적절한 것은?