6.5.16 · D5Advanced & Emerging Architectures
Question bank — Approximate computing techniques
Symbol & metric refresher (read this first)
True or false — justify
Every item is Statement ::: verdict + reason. Decide before you peek.
Approximate computing means the hardware is unreliable and gives random answers.
False. Error is engineered and bounded — we choose exactly where it goes (LSBs, non-critical data) and prove a quality guarantee; it is a design knob, not a defect.
Halving the bit-width of an array multiplier roughly halves its energy.
False. An array multiplier lays out full-adder cells (a square grid — see figure s03), so energy ; halving gives — a 4× cut, not 2×. See Ripple-Carry vs Array Multipliers.
Dropping supply voltage by 20% saves about 20% of dynamic power.
False. Dynamic power , so → about a 36% saving. The square (figure s01) is exactly why voltage overscaling is a jackpot. See Dynamic Power P = alpha C V^2 f.
If per-operation errors are independent and zero-mean, summing of them makes the relative error shrink.
True. Total error grows as while the sum grows as , so the ratio (histogram in figure s04 shows the error pile-up staying narrow).
Approximation always "averages out" over many operations.
False. It cancels only if errors are independent and zero-mean; a biased scheme (e.g. always truncating downward) drifts systematically and grows as , not (the two lines diverge in figure s04).
Voltage overscaling and precision scaling save power through the same physical mechanism.
False. Precision scaling shrinks the circuit (fewer switching cells, the or factor in ); overscaling shrinks the term while keeping the same circuit. Different levers on .
Loop perforation on a natural-image blur works because pixels are unpredictable and random.
False. It works for the opposite reason — adjacent rows/pixels are highly correlated, so a skipped row is well-approximated by its neighbour.
INT8 inference beating FP32 in energy is purely an arithmetic () win with no downsides.
False. The multiplier shrinkage is the biggest single factor (figure s05), but INT8 also moves 4× fewer bytes → less memory-bandwidth and data-movement energy; a naive kernel that still shuffles FP32-sized data can lose much of the win. Both arithmetic and data movement matter. See Neural Network Quantization.
Lowering the DRAM refresh rate is a form of approximate computing.
True. Fewer refreshes save power but let some cells decay and flip; if the data is error-tolerant (e.g. pixel values), those flips are acceptable. See DRAM Refresh and Memory Reliability.
A truncated multiplier introduces a biased error, not a zero-mean one.
True. Truncation always drops the tail (rounds toward zero), so the error has a consistent sign — this bias is why rounding schemes are often preferred for aggregation (see the drifting line in figure s04).
Spot the error
Each statement contains one flaw. Name it.
"I saved the most energy by approximating the program's biggest loop, which computes array indices."
The error is approximating control flow / addresses — corrupting loop bounds or pointers causes crashes or wild output; only tolerant data may be approximated.
"In FP16, I'll approximate the exponent bits since there are only 5 of them — small savings but easy."
The exponent controls magnitude; a single wrong exponent bit can multiply a value by a power of two → catastrophic error. Only mantissa LSBs are safe. See Precision and Number Formats (FP32, FP16, INT8).
"Error correcting codes and approximate memory are two names for the same idea."
Opposite goals — Error-Correcting Codes spend extra bits/energy to remove error, approximate memory permits error to save energy. You use one where reliability matters, the other where it doesn't.
"Because the law shrinks relative error, I can approximate every stage of an iterative solver freely."
The law assumes independent errors on a sum. In a feedback loop errors can be amplified step-to-step; you must check stability, not just per-op error.
"Voltage overscaling saves power but never affects timing, so any circuit can use it."
Delay grows as falls (, the steep curve in figure s01); at a fixed clock some paths miss their deadline → timing errors. It only "works" because those errors are steered onto non-critical LSBs.
"PSNR of 41 dB is worse than 33 dB because 41 > 33 means more distortion."
Reversed — PSNR is a quality metric on a log scale, higher is better. 41 dB is the cleaner image; the dB gap means several-fold less error (figure s02).
"A 2% relative error on one multiply guarantees at most 2% error on the final image."
Not guaranteed — per-op error and end-to-end quality are different quantities; errors may accumulate, cancel, or be amplified depending on the algorithm. You must measure the application metric (PSNR, accuracy).
Why questions
Answer the mechanism step by step, not just the fact.
Why does the multiplier, not the adder, dominate the argument for precision scaling?
An -bit ripple adder is a line of full-adders → energy . An array multiplier is a square grid of full-adders (figure s03) → energy . Because the grid grows in two directions at once, shrinking removes area quadratically — that quadratic is the lever. See Ripple-Carry vs Array Multipliers.
Why is bounding the error, not just reducing it, the defining feature of the field?
(1) Any input could be the worst case. (2) A system you ship must promise quality on all of them. (3) So you need a proven ceiling on error, not an average — an unbounded scheme can silently fail on some rare input even if it's usually fine.
Why do unbiased/rounding schemes beat truncation when results are aggregated?
(1) Rounding errors are roughly zero-mean, so summing of them lets and cancel → total grows only as . (2) Truncation always leans one way (bias), so its errors add up → total grows as . (3) For large the biased line towers over the unbiased one (figure s04) — same per-op size, wildly different totals.
Why is voltage overscaling described as a " jackpot and a risk"?
(1) Reward: power falls as , so a small voltage cut gives an outsized power cut (left curve, figure s01). (2) Risk: delay blows up as (right curve). (3) The two race: gains only outrun risks while the induced timing errors land on cheap-to-tolerate LSBs.
Why does approximate computing align naturally with the dark-silicon problem?
(1) You can't power all transistors at once within the thermal/power budget. (2) Approximation cuts energy per useful result. (3) So the same power budget buys more useful compute — approximation directly buys back "dark" area. See Dark Silicon and Energy-Efficient Architectures.
Why is a neural network a textbook error-resilient workload?
(1) Each output is a sum over many weighted inputs — an aggregation, so per-multiply noise partly cancels ( law). (2) The final answer is a discrete decision ("cat"), robust to small wobbles in the score. (3) Result: tiny multiply errors rarely flip the class. See Neural Network Quantization.
Why can two chips with the same bit-width still differ enormously in approximation error?
(1) Bit-width only fixes how many bits. (2) The circuit design decides how those bits behave — exact vs approximate full-adder, where the array is truncated, how much the voltage is overscaled. (3) Same , different engineering ⇒ different error.
Edge cases
The scenarios the naive rules forget — each with what actually happens in the limit.
What happens to the "error averages out" argument when (a single operation)?
With there is nothing to cancel against — the shrinkage vanishes and relative error is the full . A lone approximate op must be tolerated on its own, not by statistics.
What if the errors are correlated (e.g. every op rounds the same way on similar data)?
They stop cancelling; the variance of the sum gains positive cross-terms and can grow like rather than , so the standard deviation grows like — the benefit is gone entirely (this is the biased curve's cousin in figure s04).
What is the effect of approximating a value that later feeds an array index or branch condition?
A degenerate, dangerous case — a corrupted index/branch is not "slightly wrong output" but an out-of-bounds access, crash, or arbitrary jump. Such data is strictly off-limits, no matter how much energy it would save.
At the limit of aggressive voltage overscaling, what fails first and why?
The longest (critical) timing path fails first — it has the least slack, and figure s01's delay curve rises fastest there. As drops further, errors creep from the LSBs upward toward the MSBs until the quality bound breaks and output becomes garbage.
What is the effect of perforating a loop by a factor equal to the whole loop length?
It skips every iteration — a degenerate case doing no real work; the output is pure copy/interpolation of the initial state. The speed-vs-quality trade-off has collapsed and quality is unbounded (useless).
If a workload has no error-resilient part at all (e.g. cryptography, financial ledgers), what does approximate computing offer?
Essentially nothing — every bit is critical (a single flipped ledger cent or cipher bit is a hard failure), so there is no safe place to inject error. The technique simply does not apply.
Recall One-line summary of the traps
Approximation is bounded and placed on purpose: power scales with (overscaling) and circuit size with or (precision), errors only vanish when independent and zero-mean, quality is measured on a log scale (PSNR dB, higher = better), and control/exponent/index data is never approximated.