Dynamic power is P=αCV2f. Drop V by 20% ⇒ power drops by 1−0.82=36%.
But circuit delay ∝V/(V−Vth)βincreases as V falls, so at fixed clock
some paths miss their deadline → timing errors. VOS says: tolerate those rare errors on
the least-significant bits, keep the huge power win.
Imagine you're drawing a picture with crayons. If you're a tiny bit outside the lines, the
picture still looks great — but you finished way faster and used less crayon. Computers can do
the same trick: for stuff like photos, music, or guessing "is this a dog?", they can do the
math a little sloppily on purpose. Sloppy math is faster and uses less battery, and you can't
even tell the answer is slightly off. The clever part is choosing where to be sloppy —
never on the important stuff (like the page number), only on the parts nobody notices.
Dekho, idea simple hai: har computation ko perfect karne ki zaroorat nahi hoti. Jaise aapki
aankh 100% aur 98% quality wali photo me farak nahi bata sakti, waise hi bahut se applications
(images, audio, machine learning) thodi si galti ko tolerate kar lete hain. Approximate
computing isi baat ka fayda uthata hai — thodi si controlled accuracy chhod do, aur badle me
bahut saara energy, speed aur chip area bacha lo. Key word hai controlled: galti sirf wahan
daalte hain jahan koi farak nahi padta (jaise LSB bits ya pixel values), aur uski limit fix karte hain.
Yeh kaam kyun karta hai? Kyunki jab aap bahut saari values ko sum ya average karte ho, toh
independent random errors aapas me cancel ho jaate hain — total error N ke rate se badhta
hai jabki sum N ke rate se, toh relative error chhota hota jaata hai. Isi wajah se neural network
INT8 me bhi cat ko cat hi bolta hai.
Techniques yaad rakhne ke liye "PA-LOVE-M" socho: Precision scaling (kam bits, jaise FP32→INT8 —
multiplier energy n2 ke saath chalti hai, toh bits half karo toh energy 4 guna kam!),
Approximate circuits, Loop perforation (kuch iterations skip), Overvoltage scaling
(voltage kam, power V2 se girta hai), Value memoization, aur approximate Memory.
Sabse important baat — steel-man ki galtiyaan: kabhi bhi control flow, loop bounds, pointers ya
floating-point exponent ko approximate mat karna, warna program crash ya bilkul galat answer.
Aur "error toh average ho jaayega" tabhi sach hai jab error unbiased ho; agar hamesha neeche
round karoge (biased) toh error N ke saath badhega. Bas isliye smart engineering matters —
galti daalo, par soch-samajh ke.