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
So what you're saying is that it might make all my MP3s sound like they are AutoTuned? But the battery will last 30 times longer?
I guess the question is can Cher sue over this technology?
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.
Isn't that the point of using a DSP? So you can use a slower CPU to run the firmware and the DSP do that grunt work of decoding, thus letting you save power with the low voltage CPU?
My question is, if it's just as well to use a DSP, why not just use a damned DSP?
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!
If you're about to join the upcoming avalanche of smartass comments, try reading the UDP-Lite RFC first. For some applications (notably real-time voice and video), timeliness and efficiency are more important than accuracy.
If this means my music player or phone get more battery life, I'm all for it.
Random algorithms are used all the time. In RSA for example, random primes must be generated. This is done with an algorithm that probably gives the right answer, which is good enough. The chance that it would fail is so tiny as to not matter.
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
I'd like to see executives at CBS explain how nipples showed ON TOP of a superbowl performer's outfit.
Talk about a wardrobe malfunction.
I can see the defense now:
Your honor: We ran probabilistic tests with out processors, and while we couldn't really duplicate the problem, we were able to show a penis during one test run. We'd really like to show it to you, but Ms. Jackson has stated that she would quote "Sue us into the ground" unquote.
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?!
I'm sure my bank would love to argue they at least got the 13 right as they skim a penny of every transaction. I'm sure this the most awesome thing since sliced bread, but can we please avoid trying too argue this from the point of peoples bank accounts when it introduces random error.
They can not be used for ANY result that is later used by anything else -- after all, data based on bad data yields bad results.
Next thing you know, some offshore manufacturer will use the "imprecise" (cheaper) chips instead of the "accurate" ones, and simple things we depend on everyday will fail in wonky ways.
A bit-flip on a microwave will make a 30-second timer not expire at 0, and keep going at 99:99 and burn the food.
A bit-flip on a home heating circuit will make 70F appear to be a target heat of 6F and never turn on.
A bit-flip on an MP3 player would have it skip from 65 seconds into the song to 134 second into the song.
These are all results if just ONE BIT were to flip JUST ONCE. The processor described would UNPREDICTABLY and RANDOMLY do worse than actually flip one bit.
What's next -- they'll put three processors in each device and when two of them agree they'll go for it? "Voting Processing" is bs.
E
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.
So basically he's advocating fuzzy logic, which was big in AI research in the 80's?
"I bless every day that I continue to live, for every day is pure profit."
For example, in calculating a bank balance of $13,000.81, deliberately risking getting the "13" incorrect is fraud that risks $13,000 in damages and $1,000,000 in statutory penalties, and risking getting the "81" incorrect is fraud that only risks $0.81 in damages and $1,000,000 in statutory penalties. Surely saving a couple watt-microseconds is worth that!
Maybe we could have a selective accuracy, where programmers can set their needs via registers or direct it to different CPU cores ... just keep using (say, in C) short, int, long, long long (no, AV codecs should not require floating point, but is you wish, there are floats, doubles, long doubles, etc.).
Of course proper implementation of some AV decoder on a modern processor will use available SIMD instructions (MMX and friends) where programmer can easily trade off accuracy (in byte-sized chunks) for speed.
Paul B.
For simulation, Monte Carlo and such statistical sampling this would be perfect. There is already random error - sampling error - so adding a lesser source of error - computational error - while reducing the first would make sense if the computations can be sped up.
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
He's invented analog?
Nihon-go de amari yokunai hanashimasu. However, I believe that the Japanese expression was pronounced closer to "Fudgy-dah!" in ads.
I live in the Washington, DC, area. One of the big perks of living here is the Library of Congress. You have to undergo a security clearance to get permission to be there, but once you get that photo id, hoo boy, there sure is a lot of information there.
I'm a computer programmer (currently working in Web development, as my handle here suggests). Long, long ago, I researched fuzzy logic at the Library of Congress from the original studies that proposed it. (I think that the original papers were from an Air Force study.) It did NOT revolve around lookup tables. It was more fundamental than that.
Fuzzy logic assigns a floating point number to data that represents how confident you are that it's true. In the early days, the number varied between 1.0 (absolute certainty) to 0.0 (not a clue, wild guess), or even -1.0 (absolutely sure that it's not true). The exact range used is unimportant except that it's well-known. Of course, almost all of these numbers are between whatever limiting numbers you set, representing shades of gray. That's where the term fuzzy came from.
We like to believe that knowledge is a deterministic process, but to believe that, we have to ignore our fundamental assumptions, which force us to admit that we don't really know for sure. Fuzzy logic seeks to improve decision-making by acknowledging that fuzziness and quantifying it.
We all know that we have to multiply percentages to derive percentages based on multiple criteria. If roughly 1 in 2 people are male and exactly 1 in 2 have characteristics above the median, we derive that roughly 1 in 4 of all people are males with intelligence above the median for males. But how confident are we in knowing that?
Say, for a given population, the 1-in-2 statistic for males is about 97% likely to be true. The 1-in-2 statistic for being above the median is 100% likely to be true, because that's the definition of median. So when you combine the 2 criteria, the 1-in-4 statistic still has a 97% likelihood of being true. In other words, fuzzy logic is a completely independent, parallel computation based on the confidence factors that travel with the data.
The fact that confidence factors travel with the data is an important part of fuzzy logic. You never throw the confidence factors away and say "That's it. We got the inference we wanted. It's over 95%. That's close enough, so we're going to treat it as true." If you do that, you've gained no wisdom whatsoever from tracking confidence factors. You have to remember that there's still a 5% chance that you're wrong. So all inferences also have their own confidence factors, which are also not thrown away.
To take an Air Force example, in deference to my vague recollection that they sponsored the original study, satellite surveillance reveals that a bunch of bombers are heading north in Russia. Is it just an exercise, or first evidence of an attack? You have to factor in a lot of unknowns. What's their air speed? How likely are they to be carrying a payload at that speed? Even if they appear to be carrying a payload, how likely is it to be a full dress rehearsal, with ballast for realistic plane handling? The list goes on and on. As part of standard readiness, the confidence factors of these questions have been calculated and recalculated on an ongoing basis. NORAD sees the scenario and looks it up in a scenarios book. As a result, they decide not to change the DEFCON, but they read ahead to see what to do if the bombers leave Russian air space. Crossing the border has a different confidence factor that goes into the overall calculations of whether or not it's likely to be just an exercise.
So no, fuzzy logic is not simply using lookup tables. Lookup tables are just a convenient way to organize inferences based on changing conditions in reality.
Returning to Washington, DC, area fo
Transistors are naively analog. It's ironic that we use them for digital logic locked to a frequency cycle.
After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
You probably remember when some scientists noticed it was generating some math error in their applications so they contacted Intel about it.
Intel's response was, "Well, these are early processors in design and shouldn't affect 99% of the population". Of course the scientists created an awareness of this issue and public generated a stink about it even though 99% of them may never run into the bug that affects their applications.
So now 15+ years later this pops up saying it is OK to have these errors in non-critical applications for sake of speed. People are going to wonder about these chips in their products when something isn't working right and may cry afoul.
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.
.... of artificial intelligence.
You say what you say, but for the life of me, I have never felt concerned with the supposed quality of audio. I just can't tell the difference between 128kbps and 256kbps, MP3 from FLAC, 22khz from 44khz.
I also can not tell the difference between HD and upscaled SD when in motion.
It just feels so ridiculous, I swear people are only fooling themselves in this high-def nonsense. I can't be sure of that, maybe there really is something I'm missing I'm unaware of.
"Most people, I think, don't even know what a rootkit is, so why should they care about it?"
We already have accuracy issues with the processors available today. I've worked with quant teams who will insist on only having machines with Intel processors in their compute farm, because they get a different result from the same code running on AMD machines. As the business has signed off the Intel numbers, Intel it is.
In order to stream auto or videao meaningfully, you need to play/display the contents. This has energy consumption high enough that energy savings in the computations will not matter at all before long. In addition, such a chip will allways be very special purpose and most IT experts will not be able to programm in. I call this a dead end.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
... that the economy is now based on Monopoly money.
Now when you log on to your online banking account, you'll get a Chance card:
Bank errors are in your favor... at the moment.