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.'
I agree. The whole problem with the example given in the summary is that your bank balance should never be wrong. There is no room for error in calculating bank balances. I also don't want to hear skips and pops in my music because they though it would be more energy efficient to use a processor that produced errors. I already get 26 hours of charge out of my MP3 player. I'd rather have them focus on getting more space for cheaper so I can carry lossless audio on my portable mp3 player.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
If you are listening to music on a portable media device, it's safe to say that you aren't going to be able to hear the difference between the lossy format and the lossless format.
It's like drinking from a well. Connoisseurs may claim to be able to taste the difference between it and tap water, but that's just the extra tang from all the bull shit.
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!
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"
...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
There are countless applications for a computer that don't depend on accuracy, but do depend on speed. For example: gaming, stock analysis, scientific/mathematical research etc. Just about every use for the computer can benefit from this. Bear in mind these applications can take the hit of inaccuracy, if not benefit from it depending on the situation. Yes there are some instances were accuracy is crucial, but that's why they will continue to make both of the processors. It's what they call a free market, and there will be always be a new niche to fill.
Help fight spam
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
Ok, so not only do I have to give up efficiency in the chip itself, but now my efficiency suffers because I now have to determine which chips are useful for which applications. I don't want to have to start thinking about whether or not I plan to use my new laptop for anything requiring accuracy greater than such and such a percentage. I suppose this might be effective for niche markets, but it seems messy if you try to make it part of all computing platforms.
Get me a meat pie floater!
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 randomness in these processes occurs in particular places, in particular quantities - this processor presumably produces some characteristic amount of randomness in each calculation, but the odds on it being a meaningful amount for whatever arbitrary calculation you're doing is vanishingly small - and given it's apparently treated to give different amounts of randomness in different bits, it's almost certainly non-uniform as well.
In almost all simulations you want to make use of extremely well-controlled random numbers - something which adding some noise as part of your floating-point calculations is not.