'Approximate Computing' Saves Energy
hessian writes "According to a news release from Purdue University, 'Researchers are developing computers capable of "approximate computing" to perform calculations good enough for certain tasks that don't require perfect accuracy, potentially doubling efficiency and reducing energy consumption. "The need for approximate computing is driven by two factors: a fundamental shift in the nature of computing workloads, and the need for new sources of efficiency," said Anand Raghunathan, a Purdue Professor of Electrical and Computer Engineering, who has been working in the field for about five years. "Computers were first designed to be precise calculators that solved problems where they were expected to produce an exact numerical value. However, the demand for computing today is driven by very different applications. Mobile and embedded devices need to process richer media, and are getting smarter – understanding us, being more context-aware and having more natural user interfaces. ... The nature of these computations is different from the traditional computations where you need a precise answer."' What's interesting here is that this is how our brains work."
The majority of CPU cycles in data centers is going to be looking up and filtering specific records in database(or maybe parsing files if you're into that). They can possibly save energy on a few specific kinds of scientific computing.
This is also how analog computers work. They're extremely fast and efficient, but imprecise. It had a bit of traction in the old days, but interest seems to have died off.
We're teaching our kids that 2+2 equals whatever they feel it is equal to, as long as they are happy. What do we need with accuracy anymore?
I find this interesting that most science fiction portrays an AI of some sort of having all of the advantages of sentience (creativity, adaptability, intuition) while also retaining the advantages of a modern computer (perfect recall, high computational accuracy, etc.). This kind of suggests that with a future AI, maybe that would not be the case; maybe the requirements for adaptability and creativity places sufficient demands on a system's (biological or electronic) resources that you couldn't have such a perfect combination.
Also, I'm really bored at work today, so speculation like this is my cure.
Heard this one before. On Slashdot, even. Yes, you can do it. No, you don't want to. Remember when LCDs came with a few dead pixels? There used to be a market for DRAM with bad bits for phone answering machines and buffers in low-end CD players. That's essentially over.
Working around bad bits in storage devices is common; just about everything has error correction now. For applications where error correction is feasible, this works. Outside that area, there's some gain in cost and power consumption in exchange for a big gain in headaches.
This is not about data centers and databases. This is about scientific computation -- video and audio playback, physics simulation, and the like.
The idea of doing a computation approximately first, and then refining the results only in the parts where more accuracy is useful is an old idea; one manifestation are multigrid algorithms.
Makes me think of 8 bit calculations representing large numbers in stead of 64 bit. The 64 bit result might be 4503599627370495 whereas the 8 bit would be 15 with each 1 of the 8 bit value representing 281474976710656. Might work by my brain is too fried at the end of the day to think of applications...
Actually, computers are already capable of computing with arbitrary precision - they're just incapable of computing with infinite precision.
Ezekiel 23:20
A1: Successive approximations.
A2: A random number generator
.
Hey, folks, I can keep this up all day.
http://www.netjeff.com/humor/item.cgi?file=PentiumJokes
I remember Intel doing something like this back in the days of the 386, except without the energy savings.
I'm an American. I love this country and the freedoms that we used to have.
While the concept was interesting, it did not really catch up. Progress of silicon devices made it simply unnecessary. It ended up being used as a buzz word for a few years and quietly died away.
I wonder if this is going to follow the same trend.
Except that's what these researchers are doing. They're building new instructions that perform faster but produce lower precision results.
I do this all the time. People are sometimes surprised when I can calculate an answer in a couple of seconds that takes other people half a minute or more, and my answer is within a few integers (or
Saves me energy, too.
Mai spel checkar allreddy wurks dis weigh....
To determine if a/b is greater than 1, it is sufficient to check if a > b.
To determine if a/b is greater than c, it is sufficient to check if a > bc.
Multiplication already consumes less time and energy than division on modern computers. I do not see why they needed to modify their instruction set to realize such gains.
It sounds like they just invented analog.
The only thing worse than a Democrat is a Republican.
It's just another example of the 'Approximate Spelling' technique. The parent poster is illustrating significant savings in mental energy.
Congratulations, you've just described fixed-point arithmetic.
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
GPUs have already introduced half-precision -- 16-bit floats. An earlier 2011 paper by the same author as the one in this Slashdot summary cites a power savings of 60% for a "an approximate computing" adder, which isn't that much better than just going with 16-bit floats. I suppose both could be combined for even greater power savings, but my gut feeling is that I would have expected even more power savings once the severe constraint of exact results is discarded.
And this is why we have thousands and thousands of approximation algorithms. Computers do the work perfectly precisely, except when we are talking about decimal numbers, and if you do not need perfect precision you just program in an approximate algorithm.
I do not think you will ever do any better than picking the best mathematical algorithm for your problem, instead of just relying on lazy computers.
Troll is not a replacement for I disagree.
'Researchers are developing computers capable of "approximate computing" to perform calculations good enough for certain tasks that don't require perfect accuracy, potentially doubling efficiency and reducing energy consumption.'
I am, for one, welcoming our new approximately accurate, longer-range drone overlords.
Set your phasers on "funky"!
Pshaw, I had one in the 4th grade. It was called a "slide rule" and I used it because I suck at memorization. Who needs multiplication tables when you have a handy tool the teacher doesn't know how it's used or what it actually does?
Seems like a totally impractical system.
You are probably already using an algorithm that produces approximate results, add on top of that a computer that makes mistakes routinely in the name of speed.
You would think that sometimes the stars would just align and you would get a result that is just completely wrong.
Troll is not a replacement for I disagree.
SHA256 double hash applications were probably first who used this on massive scale. It's actually ok to ramp clock/voltage up 50%, get 30% more rate at cost of 5% of wrong answers (and halving MTBF). ASIC miner chip giving wrong answers now and then because of imperfect mask process (even before OC) is common too.
However numbers for standard-cell ASIC design don't seem much favourable, certainly not "doubling", much less energy saving (on the contrary, at ballpark 10-30% of OC you reach point of diminishing returns, and only if you dont care much about MTBF).
Now what would be interesting is actual "analog" computers, ie number of states anywhere between 4-inf - there is literally too much of wasted "potential" nowadays. NAND flash chips do it already because they are about to hit limits of cost-effective litography (10nm?).
But it's ultimately impossible to build a computer that calculates with arbitrary precision.
Excuse me but not quite, assuming you don't mean absolute precision, we already use multiple precision calculations based on need, speed or memory foot print. We have multiple sizes of floating point number representations as well as integers of varying sizes. Plus, there is nothing that prevents you from doing X-Bit floating point number calculations if you wanted.
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
Fuzzy logic and all that jazz really should be used more in computing.
It could save considerable power, or allow for far more computation in a smaller space.
So much stuff in computing only requires decently accurate results. Some requires even less accurate results.
If something was off by one pixel during one frame when it was moving, big deal, no loss.
Not to mention how great it would be for the sake of procedural noise.
You want something that isn't too random, but is just one value messed up a little, throw it through a fuzzy command and out it comes with a random offset.
That'd now be two commands compared to the usual few it'd take to set a value to itself + a random value, then set the possible offsets for the random command.
Or how about procedural generation in games, it could be used in so many areas of animation, texturing and the like.
Or how about AI, it would work wonders for AI, it's massively simplify the logic required to implement a simple expert machine.
It'd even make a real AI even easier to do, more so if you made these processors massively parallel.
Imagine a GPU of these, or even a set area of a GPU dedicated to fuzzy calculations. Might happen in the next 10 years, I sure hope so. (I'd think APUs might be a bigger thing by then though, or early 3D processors, who knows, so many routes it might take soon)
All I know is the future of processing is going to be FUCKING AWESOME in the coming few decades, it is going to transition so much that our computers will look like toasters.
Of course, not those smart ones. Does Anyone Want Any Toast
The problem with this approach is that the energy used for computation is a relatively small part of the whole. Much more energy is spent on fetching instructions, decoding instructions, fetching data, predicting branches, managing caches and many other processes. And the addition of approximate arithmetic increases the area and leakage of the processor which increases engergy consumption for all programs.
Approximate computation is already widely used in media and numerical applications, but it is far from clear that it is a good idea to put approximate arithmetic circuits in a standard processor.
Physics doesn't care about complete precision
But if I don't know how precisely I know a particle's momentum, how can I tell how vague I have to be about it's position?
When our name is on the back of your car, we're behind you all the way!
.. this story or a slight variant gets reposted to Slashdot in one form or another.
Due to ROM and cost limitations the original Sinclair Scientific calulator only produced approximate answers, maybe to 3 or four digits.
This was far more accurate than the answers given by a slide rule....
For more info have a look at this page Reversing Sinclair's amazing 1974 calculator hack - half the ROM of the HP-35
we will just drop that leftover parts of cent to our own account.
Slide rule. Good to three places. Good enough to design moon rockets, the SR-71, B-52, the Golden Gate Bridge, Hoover Dam...
1. collect museum-piece Pentium systems ...
2. exploit FDIV bug
3. submit blurb to Slashdot
4.
5. Profit!
Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
No, it's not. Approximation algorithms use exact computations and model approximation. The problem is using exact computations - it costs a lot of power to do so.
If instead you just needed to approximate, you can enable "approximate" mode on the calculation and the system gets you an approximate answer, which costs about 50% of the energy it takes to do an exact one.
For calculations like video and audio, that means the GPU consumes much less power as those applications are far more tolerant of approximate answers and the result is discarded in short while afterwards too.
If you don't care for the exact value, then you enable approximate calculations and save the energy of having to do an exact calculation. This is different from using an approximation algorithm on a normal computer where you calculate everything exactly and then fake approximation.
And yes, even when you're doing approximate calculations, there are times you need to do exact calculations - e.g., if you're iterating over lines of video, your iterator needs to be exact while the actual data may only need to be approximate. The proper CPU architecture has to allow for this.
If you don't care for the exact value you can use a specific algorithmic approximation, that normally gives you many orders of magnitude less computation time.
Troll is not a replacement for I disagree.
This post was going to contain something insightful and funny, but because I'm using an approximate computer, it contains neither.
You can already do this using pseudo-random number generators. While pseudo-random numbers may not be random enough for certain scientific computation purposes, they are more than adequate for gaming. There seems to be a common misconception that computers are incapable of producing randomness. Pseudo-random number-generating algorithms, seeded with simple things like the system time and keyboard events, are good enough for 99% of common everyday computing tasks.
The advantage of this 'approximate computing' is that the hardware may be able to use less power. The randomness is a drawback, not a virtue.
Politicians and journalists computes approximately most of the time.
This reminded me of soft heaps. http://en.wikipedia.org/wiki/Soft_heap
Basically it creates a heap but some of the elements get corrupted and are not in the proper place as if it were a proper heap. Oddly enough, this can be used to write deterministic algorithms, and provides the best complexity for finding minimum spanning trees.
I'm still waiting for the day we start making motherboards from hemp plastics.
It's not correct to say that because approximate (serial, digital) computations don't use accurate (serial, digital) computation, and our brains don't use accurate (serial, digital) computation either, then our brains use approximate (serial, digital) computation.
This is just as logical as saying that because green is not blue, and red is not blue, therefore green is red.
Actually, computers are already capable of computing with arbitrary precision - they're just incapable of computing with infinite precision.
Both of your statements are wrong.
First the precision used for computations is limited by both RAM and CPU power.
And the second - for a lot of computations infinite precision is possible, feasible and used. For example computing 2+2 or 17/2.
First the precision used for computations is limited by both RAM and CPU power.
And so what? That's actually a part of what I had in mind. "Arbitrary precision" means exactly what it says: for any given finite precision, there exists an amount of space and time in which the computation of a (computable) number can be successfully completed.
And the second - for a lot of computations infinite precision is possible, feasible and used. For example computing 2+2 or 17/2.
These are not general cases, and I don't think that "computing with infinite precision" and "computing a subset of desirable results with infinite precision" are synonyms. There's a bigger snag in the general case. Not every real number can be computed in a finite space, or computed in a finite time. In fact, the set of uncomputable real numbers is larger than the set of computable real numbers, because the set of computable real numbers is strictly smaller than the set of all programs, and the set of all programs is countable while the set of all real numbers is uncountable.
You can, however, for any given finite precision, find an approximation to any real number by rounding it to the closest representable number. I think it's trivial to see that a useful approximation can cover the set of all real numbers (and therefore a set of all computable real numbers, which are a subset of it) with some bounded relative precision, that can be, in fact, arbitrarily small.
Both of your statements are wrong.
I've just outlined why I think that my statements are right, and I'm really interested in why you exactly do you think that I'm wrong.
Ezekiel 23:20
"Arbitrary precision" means exactly what it says: for any given finite precision, there exists an amount of space and time in which the computation of a (computable) number can be successfully completed.
In other words -- limited precision.
I've just outlined why I think that my statements are right, and I'm really interested in why you exactly do you think that I'm wrong.
There are classes of problems which can be computed exactly. My examples were adding natural numbers, or splitting in half on binary floating point. Using rational arithmetics can solve exactly a lot of problems.