Sacrificing Accuracy For Speed and Efficiency In Processors
Skudd writes "Modern computing has always been reliant on accuracy and correct answers. Now, a professor at Rice University in Houston posits that some future applications could be revolutionized by 'probabilistic computing.' Quoting: 'This afternoon, Krishna Palem, speaking at a computer science meeting in San Francisco, will announce results of the first real-world test of his probabilistic computer chip: The chip, which thrives on random errors, ran seven times faster than today's best technology while using just 1/30th the electricity. ... The high density of transistors on existing chips also leads to a lot of background "noise." To compensate, engineers increase the voltage applied to computer circuits to overpower the noise and ensure precise calculations. Palem began wondering how much a slight reduction in the quality of calculations might improve speed and save energy. He soon realized that some information was more valuable than other information. For example, in calculating a bank balance of $13,000.81, getting the "13" correct is much more important than the "81." Producing an answer of $13,000.57 is much closer to being correct than $57,000.81. While Palem's technology may not have a future in calculating missions to Mars, it probably has one in such applications as streaming music and video on mobile devices, he said.'
And $81,000.31 is a much more correct answer!
Q: Why didn't Intel call the Pentium the 586?
A: Because they added 486 and 100 on the first Pentium and got 585.999983605.
Accuracy with financial calculations is extremely important. Hasn't this guy ever watched Superman 3?
http://twitter.com/onion2k
i scrfcd accrc 4 spd a lng tm ago
What if I do the same thing, and I do get different results?
TOP TEN SLOGANS FOR THIS NEW PROCESSOR:
9.9999973251 - It's a FLAW, Dammit, not a Bug
8.9999163362 - It's the new math
7.9999414610 - Nearly 300 Correct Opcodes
6.9999831538 - "You Don't Need to Know What's Inside" (tm)
5.9999835137 - Redefining the PC -- and Mathematics As Well
4.9999999021 - We Fixed It, Really
3.9998245917 - Division Considered Harmful
2.9991523619 - Why Do You Think They Call It *Floating* Point?
1.9999103517 - We're Looking for a Few Good Flaws
0.9999999998 - "The Errata Inside" (tm)
like financial things, you compare the end product with the end product of the same calculation run either through the chip again or another chip (or increasingly likely another core).
Still would be faster too.
If you read the chapter about the history about the IEEE FP standard in Microprocessors : a quantitative approach, then you will see that in the past accuracy was already sacrificed for speed in supercomputers.
can't this be used in gfx cards, i mean with anti-aliasing and high resolutions it doesn't really matter so much if 1/2 a pixel is #ffffff or #f8f4f0 , hell you can probably even get a pixel entirely wrong for one frame and nobody will care (as long as it doesn't happen too often).
IranAir Flight 655 never forget!
You get a one-way ticket to pound-me-in-the-ass prison.
Watch out for your cornhole, bud.
I have spent the last 9 months coding up a dynamic scalable UI for the nokia tablets.
I have had to make huge compromises to accuracy to obtain the desired performance.
I had the choice of using the full featured (but slow) widget sets and graphical primatives which existed already, or find a way to make it work as I expected it to.
The results have left people breathless :)
take a look here: http://www.youtube.com/watch?v=iMXp0Dg_UaY
liqbase
Isn't that essentially what JPEG, MPEG and every other lossy codec or transform does?
Learning HOW to think is more important than learning WHAT to think.
I could definitely foresee this being used in game systems, especially for graphics.
As long as it mostly looks right, that's all that really matters.
// file: mice.h
#include "frickin_lasers.h"
But what about the conjugal visits?!
NEWS FLASH: Binary consists of 1 and 0.
NEWS FLASH: People use computers for calculations with more than single-digit binary results.
"probablistic computing" is another way of saying "sloppy engineering".
No- insisting on excessive precision where an "almost certainly right to within +/- x%" solution would be more than good enough and much simpler to obtain is known as overengineering.
I suspect that the financial examples chosen didn't illustrate the point as well as intended (financial companies generally don't like *any* inaccuracy), but that doesn't change the general principle.
Would you prefer a routing algorithm that gobbled up power and took ages to run for a guaranteed shortest route or one that was far more efficient and 99.9% certain to give a route that was within 3% of the shortest possible distance?
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
...is gaming applications.
Programmers spend a lot of time coming up with algorithms that simulate randomness for AI or cloud generation or landscapes or whatever... if the processor was just wonky to begin with it'd make certain things a lot more natural looking.
It's interesting that AI in games is always touted as being "ultra-realistic", but always ends up being insanely easy to trip up. Having something "close enough" would add just enough realism/randomness to situations to perhaps make games and environment more dynamic.
I wouldn't want these things processing my bank balance, though, unless it rounded up.
hookers and grits.
I think the point would be using a DSP/math coprocessor that uses 1/30th the power in exchange for a .001% loss in accuracy for non-essential tasks like music decoding.
I mean, combined with the lousy earbuds most people use, who'd notice? Especially if it makes their MP3 player last 3 times as long as ones that use more traditional and technically accurate DSP/decoder?
I don't read AC A human right
If you bought a popular artist recently, your music is autotuned already.
Anyway, this means that less than 0.1 percent of your decoded audio samples will be less 0.1 percent off. This is probably very acceptable outside concert halls and living rooms if it delivers large bonuses in battery saving or calculation speed.
For example, we could use a much beefier compression algorithm than MP3 or current algorithms even longer on even smaller devices.
It looks like you got sucked into the bad example land. Later on in the article it mentions that it's intended for stuff where accuracy isn't paramount, but where it's not really necessary. Multimedia applications over space/bank calculations.
I mean, there's 1.764 Million pixels in my screen that I'm typing my post on at the moment. Does it really introduce much error if I round it to 1.8M? I'm also running at 60Hz. Do you think that I'd really notice if there's a .01% chance that instead of getting white(255) I get white(254)? That'd be an average of 176 pixels a refresh, assuming an all-white screen. Thing is, those pixels wouldn't be the same every time. Then again, logically each pixel would tend towards red/blue/yellow depending on the error. But only slightly. In a HD movie, are you really going to notice?
I don't read AC A human right
Sorry, I missed the part back in the 80's where using fuzzy logic caused my processor to consume 1/30th the power.
"Convictions are more dangerous enemies of truth than lies."
The author of the linked article has completely misunderstood what this research is about. It is NOT about tolerating errors in the output of computations; that would be completely infeasible. It's about tolerating errors in intermediate values, by using redundancy. For example, three adders made out of unreliable transistors plus a control unit to have them vote, may be smaller and use less power than one adder made out of reliable transistors. However, you can't make everything out of unreliable transistors. In particular, the control unit, and the parts that compare results to each other, have to work reliably and can't be duplicated. That is what is meant by "some information was more valuable than other information", not the low-order bits of a numeric computation.