Computer Architecture · Parallel architecture and performance limits
Roofline time is the max of a compute ceiling and a bandwidth ceiling
Problem
A machine has peak floating-point performance $\pi=200\ \mathrm{GFLOP/s}$ and peak DRAM bandwidth $\beta=50\ \mathrm{GB/s}$. Arithmetic intensity is $I=W/Q$ in $\mathrm{FLOP/B}$, where $W$ is work in floating-point operations and $Q$ is DRAM traffic in bytes. Attainable performance is \[ P=\min(\pi,I\beta), \] and a lower bound on running time is \[ T\ge\max\!\left(\frac{W}{\pi},\frac{Q}{\beta}\right)=\frac{W}{P}. \] The ridge point is $I_\star=\pi/\beta$. Use these two ceilings consistently: never add the two times, and never replace $P$ by $\max(\pi,I\beta)$. 1. Compute $I_\star$. For a kernel with $I=0.5\ \mathrm{FLOP/B}$, give $P$ and classify the kernel as compute-bound or memory-bound. 2. That same kernel performs $W=1\ \mathrm{GFLOP}$ of work and moves $Q=2\ \mathrm{GB}$. Bound its running time from below. 3. A second kernel performs the same $W=1\ \mathrm{GFLOP}$ at intensity $I=6\ \mathrm{FLOP/B}$. Classify it, give $P$, and bound its running time from below. Confirm that the two ceilings are consistent with the stated $P$. 4. Audit these claims: (i) $I=0.5$ still runs at $200\ \mathrm{GFLOP/s}$ because that is the peak; (ii) the two ceilings should be added, so the first kernel takes at least $45\ \mathrm{ms}$; (iii) the bound is Amdahl's law with the held serial fraction $1-p=0.08$ and coordination overhead $h(N)$. Do not rederive that Amdahl fraction, and do not convert the ridge into a speedup-versus-$N$ plot.
Hint
$I_\star=200/50=4\ \mathrm{FLOP/B}$. Intensity $0.5$ lies below the ridge.
Check your work
Work the problem yourself first. Then open it in Training to check your answer and read the full worked solution.
The answer check and full solution for this problem come with ProofAnvil Practice membership ($19 USD monthly). See membership. Or start with the free Computer Architecture sample problem: Try the free sample problem.
More Computer Architecture practice problems
- A processor uses 32-bit little-endian memory and 32-bit instructions that are always…Instruction-set architecture and assembly semantics
- Encode each of the decimal integers -73, -1, 0, 1, and 119 as an 8-bit two's-complement…Instruction-set architecture and assembly semantics
- IEEE-754 binary32 operations are performed with round-to-nearest, ties-to-even, and…Datapath and control implementation
- A J-type jump instruction has the 32-bit encoding `0x0810000F`Datapath and control implementation
- A 32-bit multi-cycle RISC processor executes the six-instruction sequence below…Pipelining, hazards, and speculation
- Register file contents before execution, all values 32-bit two's complement: x1 =…Pipelining, hazards, and speculation
- A 5-stage in-order pipeline (IF, ID, EX, MEM, WB) issues at most one instruction per…Caches, virtual memory, and memory hierarchy
- A MIPS-style delayed branch has a 1-instruction delay slot that is always executed…Caches, virtual memory, and memory hierarchy
- A shared bus has three masters M_0,M_1,M_2 and a nonpreemptive round-robin arbiterI/O, interrupts, and concurrency