Week 1: Performance

Experimental Evaluation

Experimental evaluation is an important metric in designing an architecture of a computer. This involves usually measuring two things:

  1. Latency
  2. Power consumption

Benchmarks are used to measure in a standardized way. Benchmarks consist of ‘workloads’ which the computer can compute.

<aside> 💡 In computing, a benchmark is a standardized test or set of tests designed to assess the performance of hardware, software, or a combination of both. Benchmarks are used to measure various aspects of a system's performance, such as processing speed, memory capabilities, graphics rendering, and overall system responsiveness.

</aside>

When a computer architect designs an architecture, they would map the standardized benchmarks onto their architecture. Mapping of a benchmark involves the following steps:

  1. Selection of the benchmark.
  2. Configuring the target architecture to meet the requirements.
  3. Executing the benchmark on the target device.
  4. Collect data and analyze.

<aside> 💡 Common benchmarks include: SPEC-2000, Google-Net, Alex-Net.

</aside>

Latency

Latency is measured by:

$$ \text{Latency = \#instructions } \cdot \text{ CPI } \cdot \frac{1}{f_{CPU}} $$

Since the number of instructions is fixed, only the CPI and the clock speed can be modified in order to improve latency.

Power Consumption

Power consumption depends on which HW modules are being activated, and the power consumption of each of those modules.

<aside> ➕ Example 1

f = (g+h)-(i+j)
		// f, g, h, i, j = R0, R1, R2, R3, R4
	ADD R0, R1, R2
	ADD R5, R3, R4
	SUB R0, R0, R5 

Say, for example that:

Then power $= (5+5+4+7)\cdot 3$

</aside>