Writing · Sole-authored, Cal Poly Pomona · 2024
Approximate Computing: Trading Accuracy for Efficiency
Why deliberately computing the wrong answer is a legitimate strategy once thermal dissipation, not transistor count, is the binding constraint — and where it is already shipping.
Traditional computing has run into a physical limit. As transistors approach the size of an atom, the question of whether Moore's law still holds becomes a practical one, and the constraint that actually binds is no longer density but the thermal dissipation barrier — we can put more transistors down than we can afford to switch.
Approximate computing responds by giving up accuracy on purpose. Reducing the precision of an operation reduces the power that operation consumes, which converts directly into efficiency for any workload with genuine error tolerance. Studied across several abstraction levels, the approach has demonstrated up to a 50 percent reduction in execution time.
It is already in shipping silicon. Google's Tensor Processing Unit combines low-precision arithmetic with quantization to raise throughput and energy efficiency on machine-learning workloads. IBM's TrueNorth uses variable precision and stochastic rounding to the same end for cognitive workloads. Approximate memories go further still, using low-voltage operation, analogue storage and error correction to cut energy while holding data accuracy at a level the application can live with.
In software the same idea appears as numerical approximation: estimating a solution to an acceptable tolerance instead of computing it exactly, which pays off most in machine learning where training runs through many iterations and each one need not be exact.
The real question the survey circles is not whether the technique works but where it is defensible. The trade is only sound where the application has error tolerance to spend — either built-in fault tolerance, or a result nobody needs to more precision than the approximation provides. Deciding that is an engineering judgment, and it is the part that does not generalize.
