<aside>
🚅
Empirical evaluation metrics: performance (this course's focus), Cost, Power, Reliability
- Combined metrics often matter more than individual ones: Performance/cost (MIPS/$), Performance/power (MIPS/W) — the latter is key for accelerators
- These metrics drive design decisions and purchasing decisions
</aside>
Latency vs Throughput
- Latency (execution time): time required to finish one fixed task
- Throughput (bandwidth): number of tasks completed per unit time
- Throughput can exploit parallelism; latency cannot. The two are often contradictory, so pick the definition that matches your goal (usually throughput).
Example
- Car: capacity 5, speed 60 mph → Latency = 10 min; Throughput = 30 people/hr (5 people × 6 trips/hr)
- Bus: capacity 60, speed 20 mph → Latency = 30 min; Throughput = 60 people/hr
Computing Performance ("X times faster" / "X% faster")
Latency(P,A) = Latency(P,B)/X
Throughput(P,A) = Throughput(P,B) × X
For X% faster:
Latency(P,A) = Latency(P,B)/(1 + X/100)
Throughput(P,A) = Throughput(P,B) × (1 + X/100)
What is “P” (the workload)?
- Actual target workload — most accurate but not portable, hard to pinpoint bottlenecks
- Representative benchmark programs — portable, repeatable, but may not match your exact use case
- Micro-benchmarks/kernels — easy to run, portable, but not representative of complex real-program behavior
Adding and averaging perforamnce numbers
You can add latencies, but not throughputs directly:
Latency(P1+P2, A) = Latency(P1,A) + Latency(P2,A)
Throughput(P1+P2,A) ≠ Throughput(P1,A) + Throughput(P2,A)
Combined throughput must be comptued from combined time: