성능측정

milkbottle·2023년 4월 12일
0

컴퓨터구조

목록 보기
2/7

Performance

성능에 대한 정의

  • Response Time(Execution Time): 주어진 일을 했을 때 얼마나 걸리는가 / 개인용 측정모델
  • Throughput: 단위 시간 당 수행할 수 있는 Task의 수 / 데이터센터 측정모델

Response Time as Performance

Performance(X) = 1 / Execution time(X) (Execution time = CPU time)
Performance(X) > Performance(Y), Execution time은 역수이므로
Exeution time(X) < Execution time(Y)

Measuring Execution Time

  • Elapsed time: Processing, I/O, OS overhaed, idle time 등 모든 시간을 더한 값
  • CPU time: 주어진 작업을 실행하는데 CPU가 일하는 시간
  • Clock cycle: CPU가 실행될때 지나가는 아주작은 시간(사이클)
  • Clock period: 하나의 Clock cycle이 실행되는 시간
  • Clock rate: 1초에 실행되는 Clock cycle 개수

성능측정 모델

CPU Performance

2GHz 클럭의 컴퓨터 A에서 10초에 수행되는 프로그램을 6초 동안에 실행할 컴퓨터 B를 설계하고자 한다. A보다 1.2배 많은 클럭 사이클이 필요할 때, B의 클럭 속도는?

A의 실행시간 = 10 = A 클럭 사이클 수 / 2GHz => A 클럭 사이클 수 = 20 × 10^9 사이클 (1GHz = 10^9)
B의 클럭 속도 = B 클럭 사이클 수 / B의 실행시간
= 1.2 × A 클럭 사이클 수 / 6초 => 24 × 10^9 / 6초 => 4 × 10^9 / 1초 => 4GHz (2배 빠름)

CPI(Clock cycles Per Instruction)


하나의 프로그램에서 몇개의 인스트력션이 들어갔는가 X 인스트럭션당 필요한 Clock cycle수

CPU Time 공식을 먼저 이해하면 쉽다.
인스트럭션 한 개 당 몇개의 Cpu clock이 드는지는 CPI이므로
CPU Time = 인스트럭션 수 × CPI × Clock cycle time
Time = (Instructions / Program) × (Clock cycles / Instruction) × (Seconds / Clock cycle)

A: clock cycle time = 250ps, CPI = 2.0 / B: clock cycle time = 500ps, CPI = 1.2일 때 성능을 측정하라(단 ISA는 같음)

CPU timeA = InstructionA × 2.0 × 250 = 500 × InstructionA
CPU timeB = InstructionB × 1.2 × 500 = 600 × InstructionB
이므로 성능은 시간의 역순이므로 CPU time A / CPU time B = Performance B / Performance A = 500 / 600 즉 A가 B보다 1.2배 성능이 좋다.


이중 더 많은 instruction을 실행하는 코드는? 더 빠른 것은? 그리고 각 코드의 CPI는?

1번 코드의 CPU Time = 2×1 + 2×1 + 3×2 = 10
2번 코드의 CPU Time = 1×4 + 2×1 + 3×1 = 9
1번 코드의 Instruction 수 = 2 + 1 + 2 = 5
2번 코드의 Instruction 수 = 4 + 1 + 1 = 6
1번 CPI = 10 ÷ 5 = 2
2번 CPI = 9 ÷ 6 = 1.5

트랜지스터 개수(Capacitive load), 전압(Voltage), Clock rate(Frequency switched)에 비례

Amdahl's law

  • P: 전체 부분 중 개선할 부분의 비율
  • S: 개선할 부분이 몇배나 빨라지는가
  • 결과: 전체가 몇배나 빨라지는가

    EX: 100초동안 돌아가는 프로그램에서, 곱셈연산이 차지하는 비율은 80초이다. 곱셈연산을 몇배나 빠르게해야 프로그램이 5배나 빨라질까?
    정답: 불가능 -> P=0.8 / 결과=5이면 S는 무한대여야하는데 성능을 무한대로빠르게 개선하는것은 말이안됨

MIPS(Million Instructions Per Second)

초당 백만개의 Instruction이 실행하는 능력

0개의 댓글