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.
innit?
(founded 95,000,000 yrs ago, very space opera)
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?
Didn't Intel already implement this technology in their Pentium 2 FPUs? Didn't seem very desirable to me...
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.
What happens when you add up millions of these inaccurate accounts and end up gaining or losing millions of dollars?
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.
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"
So, what, future computers may come with a big sticker :
WARNING : Should not be used in life-critical calculations.
On the other hand, if the errors are really rare and random, and he can make chips 7 times faster at 1/30th the power drain, then you could array 3 such chips at 7 times the speed and 1/10 the power usage, and do your computations by majority vote.
Bits are bits. There's no guarantee that a "low power" chip will only mess up the low-order bits of a number.
What is this guy smokin'?
Wow... soon, I will be able to comprehend music and video at 7x the standard playing speed! Wonderful!
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
But think of the power savings! :P
Honestly, this sounds more like a DSP replacement. Most computers need exact math, but some don't.
This reminds me of the introduction to Samuel R. Delany's The Motion of Light in Water, where he talks about his admittedly faulty memory colliding with a biographer's researched facts. He concludes a long explanation with "...the wrong sentence still feels to me righter than the right one."
No, this technology isn't appropriate for financial transactions. But anywhere that randomness could open the door to unexpected results that shed new light on something, I think this could be pretty exciting.
Don't forget the probability is curve. You can design it so most of the time the lost accuracy will be where you don't care about it (the cents). But if a million people are banking, then probability says some of them will have significant errors (in the thousands column).
This is not good for
a) firing a missile
b) driving a car
c) designing a bridge or building
d) my bank balance
General computing.
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).
There are plenty of calculations in finance where only a few digits of accuracy are needed, either because a price is expressed in only a few digits (e.g., an option value being $1.46 is fine as opposed to $1.46189503 which will get rounded to $1.46 anyway) or because the inputs to the model have large errors themselves (e.g., a volatility of 21% which could just as easily be 20% or 22%, making the less significant digits meaningless anyway). These calculations also happen to be the ones that are done in real time throughout a trading day with countless cycles being wasted on unnecessary accuracy.
In a larger context, there are a ton of financial products that are valued using Monte Carlo simulations. By definition, you've already got probabilistic inaccuracy there. Why not make the individual Monte Carlo paths a bit less precise and just run a lot more of them, since it's the average that really counts?
Now, it could be that what I'm asking for here is really adaptive/selectable precision, but the point is that not all calculations need to be 15-digits accurate or even reproducable to be useful.
...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."
well, lets argue it a bit anyway, for fun.
If fractions are rounded up and down randomly, I mean with an equal chance, then there should be no overall loss or gain, in the long run. Of course, there might be outliers, some accounts might get shorted a bit more, some might get lucky, some people may try to game the system. Sounds just like real life. It wouldn't make such a big difference.
Still, you're right, nobody would accept such a system, because we all like the illusion of control.
assignment != equality != identity
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!
...it would definitely make some games more fun. Imagine that at the end of the game, you meet the big boss - but instead of his usual self (object 13023), he looks like the one at 13024, a steel door.
Anyone who used this for money would (and should) be skinned alive.
It's the wrong thing to target.
If it's not exactly accurate, but instead centers around averages, (how well does it converge towards the REAL answer?) then I could see uses for it, but still in parallell with normal procs for a rough "checksum"...
CGI and various modelings where you just need to pour power at it for example.
Maybe make some kind of "accelerator" board with it to be used for certain apps.
(Still pissed about not having a reasonably priced cell board like that).
I guess the question is can Cher sue over this technology?
Only if lawmakers pass the Cher Patent Term Extension Act.
Repeating the process is not going to improve the results.
Suppose you repeat your calculation 3 times. How will you know that the result of comparing the three results with one another is correct?
What if the only answer you can obtain is "A equals B with a probability of 0.9998"? Recursively repeat this comparison and then compare the results? :)
The answer 42 now makes perfect sense.
No information in TFA whatsoever, only a rather bad example.
Probabilistic algorithms are very useful in computer science, and introducing uncertainly at the hardware level might be very interesting for some applications. But how did they implemented this? How do they save power? How are they faster than normal processors?
Bah. I hate non articles like this.
assignment != equality != identity
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.
And if you want to argue this, I suggest you go talk to the bean counters where you work.
Bean counters won't use this (at least I hope not). Telecom engineers will.
I mean a float isn't an exact number. (Actually they have that concept in the hard sciences as well called significant figures. To give an analogy that's based on a joke if a museum guard started working in a science museum 15 years ago and there was a fossil there that was 80 million years old when he started the fossil is not 80,000,015 years old.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
... they would need to use a crowd of these processors and some kind of "wisdom of crowds" algorithm to figure out which of the output values is good.
So, in rough figures, if 30 processors is enough to get a good reliable answer from the 'crowd' of procesors, and the overhead of the "wisdom of crowds" algorithm is less than 14%, then maybe we have a system that uses the same power and is about 6x as fast, but no power savings.
If a less good answer is acceptible, then maybe only a few processors are necessary, and there is a net power savings. If it takes more than a crowd of 30 to make a completely reliable answer, then it costs power, but we still get a faster system.
It could be useful for certain applications, if carefully applied. In addition to the media playback and gaming apps already mentioned, it could be good in robotics, where speed amd low power count for a lot, and the feedback loops do a lot of successive approximation anyway.
Yeah, cause no one will care if you try to log into godtube and instead get horse-on-girl porn
Or, because the suffix is unimportant, I get whitehouse.com instead of whitehouse.gov
Cause you all know I must have a processor 7 times faster than what is in an iPhone or blackberry to watch video streaming over 3g on a 2 inch screen
The lower power consumption might be a plus, though
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.
What if good enough really IS good enough? In a fast paced game, would you trade a tenfold increase in graphics speed for having a tiny percentage of pixels being barely noticable off the correct color?
Suppose you repeat your calculation 3 times...
If you get three different answers, then you just take the average.
You could even throw in a few extra circuits to throw out wildly anomalous values.
In fact, you could change your computer circuitry from ADD(X, Y) to something like ADD(X, Y, SD), where SD is your [hypothesized] standard deviation, and any cluster of values which appear to be generating an unacceptable standard deviation would get tossed.
Office Space http://www.imdb.com/title/tt0151804/ :)
What if good enough really IS good enough? In a fast paced game, would you trade a tenfold increase in graphics speed for having a tiny percentage of pixels being barely noticable off the correct color?
We already do. All graphic cards today have a "performance - quality" slider.
an option value being $1.46 is fine as opposed to $1.46189503
It is until someone buys 1000000 of them.
If I have been able to see further than others, it is because I bought a pair of binoculars.
I assume this is a joke referring to pentium bugs, but actually, I think instruction-level implementations WOULD be (and is) the desirable place for this. Essentially we're just talking about hardware RNGs and fuzzy calculations. As I understand it, this is widely available already. The problem with doing this CPU-wide is that, as others have pointed out, we DO need accuracy most of the time. Processors are all about executing algorithms. We need algorithms to be predictable. Some algorithms are lossy, yes, but the algorithm itself is predictable. The best example (I know of) is probably genetic algorithms, where all of the "lifeforms" are largely random and most can be WAY off the desired outcome, but the testing system MUST be accurate. So essentially what you need is a clearly lossless execution system, with only a few instructions using randomness. Which is what we have now, including hardware-assisted randomness in some cases. Aside from that, the only lossy testing I can see a use for is things like not checking the least significant bits of a real number when the most significant bits are clearly wrong. That's essentially a lossy test, but it's also just a well-known optimisation technique.
Q:How do you call the Intel Pentium FDIV instruction? A:A good random number generator!
41.9
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
I'd like the option. I'm not sure how gracefully this new fangled probability drive 'degrades' to precision computing...
Why OpalCalc is the best Windows calc
It's somewhere in the vicinity of 9000!
As long as little Johnny feels good about himself it's okay if he thinks 2 + 2 = 5. In the real world he'll have computers and calculators to depend on for math anyway.
-National Education Association Handbook
Failure to follow this advice may result in non-deterministic behavior.
For some years ago Slashdot had a news article about this http://www.beyond3d.com/content/articles/8/
I haven't read the article. However, the idea of this sort of processing technology finding its way into general purpose computers makes my skin crawl. Isn't there already enough uncertainty in computing? We already have spurious hardware malfunctions and uneasily reproduced software glitches to contend with. It's hard enough when troubleshooting issues to discriminate between the existing, overwhelmingly unintentional sources of computing errors without having to consider the possibility of intentionally sloppy chips.
A number of people have voiced concern about using sloppy chips in the context of banking and finance. At least in those contexts you're dealing with data that's not obfuscated in any way--corporate financial statements aside. Consider what would happen if you attempted to compress or simply encode data with a sloppy processor. If you used any existing lossy algorithm the results would be worse than you'd expect, but still potentially within the realm of acceptability. If you used any existing lossless algorithm, the results would be useless. By including trustworthy error correction metadata you could perhaps overcome issue of data unreliability, but you'd have to perform additional calculations to correct the data, thus eating into the efficiency gain achieved by using a sloppy processor. The end result? Greater uncertainty of data correctness, greater complexity of design to overcome uncertainty, and greater difficulty debugging reported issues.
So is basic estimating, which helps you to come up with and verify an accurate answer sooner. That, and standard optimisation techniques based on it, are all this seems to be suggesting. I'm sure the professor isn't trying to claim a big innovation here. This is probably some rookie reporter out looking for a big story, and failing to realise that big stories take actual research, donkey work, and guts.
Actually, this is very common among bankers and accountants. I believe that most spreadsheets do this as well.
http://en.wikipedia.org/wiki/Rounding#Round-to-even_method
It's not exactly 'random' but the system is designed to average out the errors.
I'm not able to find Dr. Palem's original paper from the "computer science meeting in San Francisco," but if, as I surmise, he's advocating a new probabilistically-based microprocessor, the question needs to be asked: If we're willing to consider new architectures (and new ways to program them), is a probabilistic one the best solution to the power consumption and performance problems?
One alternative that should be compared to Palem's would be to do the same thing he's advocating -- reduce the precision -- in a more traditional way: explicity reduce the size of the data path. Quite a few applications could get by with shorter-than-32-bit integers. If not 16, maybe 24? For floating point calculations, many GPUs already support a 16-bit "half" or "s10e5" format (IEEE 754 2008) that's just fine for multimedia. There's also a 24-bit format.
There is a difference between an appoximation and the way the article want to have errors possible.
The approximation used in quake 3 will give the same results everytime. It wont be the _exact_ result, but it will be reproducable.
The same way things are done in the CPUs, anyway. They just run the newton-raphson loop a few times more to get a guranteed minimum accurace.
But that doesnt mean its always the same (in the whitepapers of cpu manufacturer you can find really funky graphs, for example for the error of FSIN (X) for x[0...pi/4].
With the approch from the article, the same calculation may return different results. That a nightmare in terms of error estimation and propagation, except in some very limit cases....
HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
The "Wisdom of Crowds" brought us religion. If microprocessors pick it up, we might end up with Our Lady of SkyNet.
Have gnu, will travel.
In portable media applications of this, you'd be literally hearing background noise from the processor rather than just from the lossy compression algorithm and the reproduction circuitry (notoriously big sources of noise).
If they are talking about imprecision on average of parts per million then you'd never hear it. Even 1 to 10000 is still within the noise floor of your average ipod.
The order of magnitude increase in computational performance could allow for improved compression algorithms with less destortion. The net result is this kind of thing has potential to vastly improve audio/video and battery life.
After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
I suspect that instead of a financial example, where accuracy to the nth position is often times a strict requirement, they should have used a physics calculation. After all, if there were science courses that were very strict about using the proper amount of significant digits, it was physics. Perhaps this processor could be used for physics research, especially if the accuracy level of the processor can be adjusted somehow.
... but God turns up unexpectedly.
So how would this affect AI research? Is the occasional fried synapse what separates a "living" mind from that of a biological computer?
"Common sense will be the death of us all"
Seriously, people have been talking about "fuzzy" processing for decades and it always fails for the same reason. It is not repeatable and it can not be verified.
So, of what use is a processor for home or office that does not compute accurately. Music should sound the same each time you play the same "image.". Graphic images should look the same every time you view them. Checkbooks should balance, and don't use this device on turbo tax.
How does one distinquish, during development, from a "bug" in the software being developed and just fuzziness?
So, yes, it is fun to get computers to "guess," but you do need to understand where the guesses come from, and be able to repeat them.
It's called the Salami Technique.
NEWS FLASH: People use computers for calculations with more than single-digit binary results.
Absolutely.
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.
The discussion is about a processer being less accurate. IMHO floating point isn't accurate enough. You still need a fixed point library to do back calculation -- even in this day of 64bit CPUs.
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?
And here is the fallacy of "fuzzy" models. Your statement "was within 3% of the shortest possible distance?" How would you guarantee that? How could you know that unless you verified the algorithm?
It is "engineering" to start at high precision and work toward an acceptable trade-off on a case by case example, but you can't do that if you start off at a low precision.
Back to your example, you can't "know" you are within 3% if you have not accurately calculated the problem first. The implementation of your argument would be do an exhaustive search once (or periodically) for routing, and then just choose the last router node used from the last edge with child nodes in that vicinity.
I imagine if both cores come up with the same result that the odds are high its a correct result (not very likely both runs will come up with the very same wrong answer). If one or the other is wrong then you toss the result and re-request until you get an agreement between the two cores.
Naturally this only works if the 'error rate' isn't ridiculously high like 50% of all things passed through it. If its more like 1% of everything passed through it comes up in error and you double up all your calculations (using cores that use 1/30th the electricity) you might still come out on top in terms of energy usage (assuming you were using 2 cores to do your math in the first place).
09F911029D74E35BD84156C5635688C0
+2 Troll is Slashdot's way of saying groupthink is confused
I wonder if there is some efficient way of putting in three or more chips, running all calculations repeated in parallel, and apply majority-rule to the result. Even with that overhead, you could end up with something that is still many times faster and more energy efficient than a conventional chip, without sacrificing reliability.
I see this like a sudo type thing. Default to classical behavior, and on demand you can engage "boost mode". Thing is, it should be Per Task and then you can expect people to get lazy and boost things that shouldn't, like the finance calcs. But if that can all be worked out, it's interesting.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
The discussion is about a processer being less accurate.
Not exactly, the discussion was about trading off accuracy for speed and efficiency. And my comment was specifically a reply to what Girlintraining said.
And I don't think that *anyone* was suggesting that this processor would be suitable for all possible computer uses.
The example I gave was hypothetical and pulled out of my backside- and wasn't meant to be anything more than that.
Back to your example, you can't "know" you are within 3% if you have not accurately calculated the problem first.
You could use mathematical/statistical means to prove that in (from my original example) 99.9% of situations the answer returned would be within 3% of the most efficient answer. I can't say more than that because it was a hypothetical algorithm(!)
However, the fact is that although many problems in computer science can be proven to be horribly slow to get the optimal answer, there often exist far more efficient algorithms which will provably return a solution that's within a small percentage of the optimum one.
That's not using probabilistic methods, IIRC- a probabilistic algorithm would, I assume, only be able to be proven to work in a statistical (high) percentage of a very large number of runs. But that would probably be acceptable for non-life-threatening uses.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
Isn't that what Diebold has been doing for years?
No, just kidding...
As an example of how some bit-flips make a bigger difference than others (which is what it's supposed to be an example of), it's a great example.
As an example of an application where it makes sense to use this kind of processor, it would be a lousy example, but that's not what it was supposed to be an example of anyhow.
Moral: No matter how reasonable your analogy, some people with poor reading comprehension skills will think you're an idiot because they can't read very well. Don't worry about it, it's unavoidable, just carry on...
"Convictions are more dangerous enemies of truth than lies."
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
That's how we got the BSOD. :P
Hmm, I wonder. Most sloshdatters may never have heard of fuzzy logic. It was a fad for bad boolean algebra that went nowhere over many years.
Because little errors in hex calculations are ok 0x000FA1 is the same as 0x000FAB RIGHT?!?!
You could use mathematical/statistical means to prove that in (from my original example) 99.9% of situations the answer returned would be within 3% of the most efficient answer. I can't say more than that because it was a hypothetical algorithm(!)
Engineering already uses partial derivatives to understand how errors of inputs affect the output. However an algorithm is far more than a single function, and complete mathematical analysis of even a small algorithm may be too difficult (or too expensive, or too lengthy.) In some algorithms errors will be canceling each other out, in other algorithms errors will be magnifying each other, with end result being completely wrong. Take many sorting algorithms, for example - they really hate to compare values more than once, and if the result of a comparison is randomly wrong, just once, then the resulting array is not sorted correctly.
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.
You already use this technology. In fact I remember encountering this for the first time when writing an AppleScript program in sixth grade to help a room full of students add up Giant Eagle receipts. I was very embarrassed to have no explanation for someone suddenly getting $54.2300000001 on the screen (looking back, our computer teacher probably should have been able to offer us an explanation.)
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.
If you float in the well, does that make you a witch?
Please don't confuse "lossy" media compression with whatever Krishna Palem's technology is going to do. First of all, you can definitely hear the differences if you own a nice pair of cans and a pocket-sized amplifier.
If the technology gets off the ground, expect to see encoders (or even entirely new codec formats) designed to take into account the nuances of specific probablistic computing machines. Personally I will be a little shocked if the notion that a probablistic general-purpose computational device can outperform any hardware specifically designed for decoding multimedia. So that's where you'll probably see the technology going: hardware media decoders (and maybe encoders, too, for real time applications like portable gaming.) Some computational scientific research takes advantage of probablistic analyses, too, so maybe we'll see a niche for these machines in the supercomputer market. Perhaps there is even a home for this technology in Hollywood CGI (raytracing is expensive, and there are already people using probabilistic algorithms to do it faster.)
But honestly, can anyone think of a potential application for the average PC of this technology that isn't media codecs? No, because there isn't one. When is the last time a new computer even batted an eyelash at the CPU power it takes to decode audio and/or video? I've been rolling with a 1GHz processor for years and I still can't make out the bumps in my CPU usage meter caused by my media player. If you can: you're using the wrong codec / decoder / media-player.
With regards to music, they're not talking about skips and pops, they're talking about extremely slight modulations in pitch or, in the case of video, a very slight difference in color.
With respect, you have no idea what they're talking about. I can promise you that if I ran an MP3 decoder on a PC emulator that introduced noise into the lower bits of every computation, before it horribly crashed the noise it put out could not be uniformly characterized by any "slight modulation" or "slight difference." You're probably asking yourself why this matters because surely that is not how anyone proposes to use this technology. Hopefully you're now realizing what this implies: if you'd want to take advantage of this technology, you would have to write your code to specifically tell the processor which operations and registers can deal with a little bit of garbage. Great. I can't wait to code for that.</sarcasm>
If I could get 30x the battery life out of my laptop by accepting imperfections in the video it displays and in the audio it plays (and I know it wouldn't, but this is a hypothetical), then I'd gladly go for it.
You can't. Sorry.
complete mathematical analysis of even a small algorithm may be too difficult (or too expensive, or too lengthy.
Or impossible, if the Halting Problem is anything to go by?- or does that only apply to analysis by a Turing Machine?
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
Take many sorting algorithms, for example - they really hate to compare values more than once, and if the result of a comparison is randomly wrong, just once, then the resulting array is not sorted correctly.
While I don't think the approach being discussed is a good idea, most sorting algorithms are merely concerned with = -1, 1, 0 respectively.
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.
As we move to more parallel computing something like this might be useful. Kind of like how the Minority Report (book not movie) would throw out results which were out of step with the majority we could have chips with cores running the same code in parallel and then throw out the bad results.
Of course it wouldn't be right all the time. But don't blame it! You're the one who wanted it 7x faster.
For example, if I have to reference data structure by pointers, then off by one means I reference the wrong data. If the wrong data is expected to contain a pointer, then it will be totally wrong and I get segmentation fault. If I write a for loop for (i = 0; i lt; n; i++) {...}, and the least significant bit is ignored, then the for loop never makes progress (and never terminates). If i is only successfully incremented 50% of the time, then the for loop runs twice as much as it needs to run. Suppose you are copying files with region indexed by i, you may copy the same region multiple times. How is that faster and more efficient?
Sacrificing accuracy is so far only applicable for floating point computation, and in many cases this sacrifice has already been made. Some hardware lacks IEEE 754 rounding, and I don't think most people would notice that. Most people just use a double or even long double, which seem to provide satisfactory numeric accuracy for most purposes, and don't bother with error analysis of their code.
Last point, if you're going to write a banking system, please under no circumstance use floating point to represent balances. Use an arbitrary precision integer library such as GMP, which works similar to representing each number as a string with arbitrary length but is implemented in a more compact binary format.
I once had a signature.
Or impossible, if the Halting Problem is anything to go by?- or does that only apply to analysis by a Turing Machine?
No, not impossible in general case, since a simple algorithm can be defined as "c := a+b" and all we need to do here to analyze is to check the ADD operation in the CPU, if it introduces any errors. If it does, write them down.
Some of more complex algorithms can be also analyzed; what you do there is you introduce errors into all results. Then when you use these results as inputs into other modules you use the same method, plus modules' input errors, to determine errors in their output, and so on. As you can see, this can quickly become a complex task - and we haven't started talking about loops yet. I'd say such analysis of any common algorithm (or even worse, an uncommon one) will be impractical.
Nevertheless, brain operates imprecisely, just like this proposed CPU. So maybe there is something to it... but not among algorithms that are designed for precise calculations. Things like AI, image recognition, video/audio processing can definitely trade some certainties for something else (element density and connectivity is probably most wanted in AI.)
I was thinking... what if we applied this to memory instead? Sacrificing reliability for a speed/cost/power? It would be disastrous for executable code of course, but maybe worthwhile for things like music or video. Then again, maybe we're already heading in the general direction, looking at MLC vs. SLC flash memory.
While I don't think the approach being discussed is a good idea, most sorting algorithms are merely concerned with = -1, 1, 0 respectively.
I was thinking about an error that a CMP command may introduce when comparing close values. The order of elements then will be wrong, and an eBay customer who bid the highest may lose the auction (for example.) This is a reasonable concern because in many implementations CMP is implemented as SUB with the result ignored but flags set, for the subsequent conditional operation to act upon.
It's bad enough that we've effectively lost the top octave (10kHz and up) to widespread lossy compressed audio, the bottom three octaves (160Hz and down) to widespread use of computer speakers and earbuds, now you're going to introduce random noise?! Speaking from a music production perspective it's already got us badly handcuffed, not to mention every idiot with Garageband thinks they don't need to hire a pro to make their platinum album.
What's really scary is that the auditory capabilities of the entire market can actually degrade from widespread exposure to poor audio, to the point that people literally cannot appreciate good sound. Your ears are not microphones, they are more like keyboards with over 20,000 keys that give the brain information for it to generate the sound you hear. That's right, you are hearing your brain's interpretation of the waves, not the waves themselves.
As the standard of audio quality degrades, so will the brain's ability to appreciate music. There are important subtle cues that are critical to music sounding lifelike instead of synthesized that are already suffering at the hands of lossy compression, if further artifacts are introduced, engineers will probably have to add a more natural noise to the recordings* to mask the artificial noise.
Here is a great article that should shed some light on how music affects the brain. In short, music is most effective by creating and then satisfying anticipation. There's no question random artificial noise severely handicaps that process. I gave up my LP's long ago, I don't want those snaps crackles and pops back!
* We actually already do introduce natural noise to cover artificial noise and have been for decades. It's called bias for analog tape and dithering for digital formats. However, that is a necessary evil for the sake of the recording equipment, and much less significant than the noise random errors would create, even if only to the lower-order data. The noise would have to be constantly as loud as the loudest possible random artifact.
War as we knew it was obsolete
Nothing could beat complete denial
- Emily Haines
Yes, it's great if it's just a random single element in a random single pixel that fluctuates just slightly. But that's not where any inaccuracy is going to be from such a chip as all -that- stuff comes from the screen drivers which are already blazingly fast. Any gains would have to come from the decoder chip and that's where you're going to run into trouble with bits changing - even LSBs.
Open a JPG file, change a random bit somewhere, re-display. If you're lucky, you see virtually no change. If you're unlucky, the entire image -after- the point where you changed the bit will have changed colors (subtly or radically), shifted, become a complete mess or - if you're really unlucky - your JPEG decoder will tell you that the resulting output mismatches the spec for the jpeg (e.g. the headers tell the thing it should be an 800x600 image but while decoding the data it concludes the data ends up being 800x608; whoops.)
( for the curious - yes, that's how some of the more obscure 'jpeg repair' apps work, finding the likely start of corruption and fiddling with bits until you get an acceptable result that you can then retouch if needed ).
And that's just JPG. Now try that with any moden -video- codec where encoding isn't just spatially based, but also temporally.
No, you don't want to have random bits changing in lossy compressed streams. It's a world of hurt.
.... of artificial intelligence.
Nice rant, but I've already mentioned that this sort of thing:
In all probability this would never make it into usage as a CPU, more likely a dedicated section of silicon performing the function of a GPU/FPU/DSP. Actual control instructions would be high-integrity, just the low significance digits would get the 'cheap but a bit more unreliable' methods."
Exactly. This wouldn't be some wierd add-on card or even in your CPU; at least not until long after it's a standard part of Nvidia and ATI's lineup.
There are areas where you need the standard high-reliability silicon, and there are areas where you don't. instruction processes need the good stuff. Though I'll note that even THAT silicon has an error rate; it's just very low, and I imagine much of the extra power is from fail-safes to catch even those.
I don't read AC A human right
I'm going to guess "Mostly Harmless"
Here is a better, brief summary of the work. It shows a standard, deterministic processor with the probabilistic processor as a co-processor.
This is great for real time control systems. Your system always has random error anyway, you are continually trying to compensate for this random error, and you are trying to do it really fast.
NEWS FLASH: People use computers for calculations with more than single-digit binary results.
If you remember binary, it's like this
10101=(1*2^0)+(0*2^1)+(1*2^2)+(0*2^3)+(1*2^4)
If noise are not controlled in the processor, each bit will be induced to change although the error could be compounded on the bits of least significant digits. So you might get 10111 or 10100 or some other combination for the last two bits. This will result in error of around +-3.
Accuracy is more important in calculating the result of bit operators where errors are being magnified. Another important field is bit logic, where a simple error could be disastrous.
This will result in reduced calculation to mitigate error propagation. Thus complex calculation can never be done. For music and video, we could be probably use less than 1 byte for each represented number and the calculations are quite direct (not much use of bit logic and very little error propagation). Another problem that might occur is that you can never do an exact loop ever again which is also a no problem for music. But unlike mp3 where the error are quite controlled, I bet a music player using this noisy processor will produce some of the shittiest music you ever heard and you have to listen to it raw (decompression introduce errors). This will incur extra storage space.
It will sound even worse when you go to a hotter climate. But it might be acceptable for ringtones I think. At it's best, it might sound like your analog radio. Most old timers think it was good enough. But on a plus side, DRM cannot be implemented on such device.
Then they should only use the processor in places where its limitations are not an issue. I certainly wouldn't suggest that it was appropriate for every purpose.
That's exactly what they're proposing: a system-on-a-chip with a conventional processor for most of the application and an on-die probabilistic coprocessor for the calculations that can be done in a probabilistic way. The only people talking about approximate accounting and other such inappropriate uses are Slashdot "smart"-asses.
Windows has been thriving on random errors for the better part of 20 years!
Are all errors guaranteed to be in the least significant bit? What happens if it is in the most significant bit? What happens when you are doing AND/OR operations? I don't think any errors on such things would be necessarily good. "Gee, I can never seem to know what whether or not that option will be turned on in the program since the processor has intentional random errors."
What am I missing here?
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.
Maybe having the ballpark at $13k is good enough. Maybe having the Red in a pixel at 240 is good enough compared to 255. But how is the chip going to tell that making a jump to 0x389519B0 - some offset requires full precision, compared to, I dunno subtracting this number because someone punched it into the calculator program.
And at the end, CPUs calculate a lot of these integers for indexed jumps, and branches very frequently. How's the hardware going to be able to tell when it can skimp and when it cannot?
When it can't, it would be trying to run linux on known bad ram. Things will crash, and people won't be happy. If you need software to hint, then you might be able to code a compiler to do it for you, but even then, the people who knows which addition need full precision and which one doesn't is the application designer. The compiler won't read your minds.
If they say, they'd split this into 2 sets of arithmetic instruction, then they're not going to get the power efficiency they were looking for anyways.
If you really don't need more than 3 significant digits, slide rules use surprisingly low power :-)
Most computers these days have separate processors for graphics and a main CPU, and fairly often the GPU is a lot more powerful than the CPU. Perhaps the place to use the fast low-power less-accurate chip is in the graphics (at least in all the shaders and pixel-bashers, though not necessarily in the geometry calculations)?
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
They have invented this technology long before, end even implemented it in some Intel Pentium processors :)
God forbid the day when my computer decides how accurate my calculations need to be !
http://en.wikipedia.org/wiki/Pentium_FDIV_bug
The original article is basically describing analog computing, where the most significant bits/digits are always correct, but the noise floor can/will eat the least significant parts, right?
I optimized the world's fastest Ogg Vorbis decoder back in 2007, and verified the results of my SIMD code by comparing the 32-bit floating point value of each resulting sample with that from the reference decoder:
Even though many parts of this process works very well with just 16-20 bits, and on something like a GameBoy 12-bit is perfectly fine, there are some very crucial steps in the algorithm that needs to be bit perfect:
The most important one is where the frequency envelope is approximated by a set of Bresenham-style line segments, and every single bit in those calculations _must_ be identical to the reference bits, otherwise the final audio will diverge rapidly.
What I'm trying to say is that probabilistic computing only works for some specific algorithms, and that it can be very hard to determine which is which up front.
Terje
"almost all programming can be viewed as an exercise in caching"
By doing noisy calculations twice, or more, or slower, the errors can be decreased a lot.
This is the same effect as in reading of DNA, where it is read several times to remove errors.
I guess that for low power processors of the future, there must be methods to adjust these trade offs between accuracy, speed, and energy use.
I can think of several ways of doing this by traditional programming.
Kim0
...virtual analog synthesis. A soft-synth designed around one of these cpus would probably sound more like a real Moog, Prophet V, etc. than any VST currently available. Virutal analogue filters and effects would also benefit.
The "noise" on transistors is the ghost into the machine. And someday they will wake up
Religion: The greatest weapon of mass destruction of all time
Here, I found it: "Ten emerging technologies 2008"
Verification in this case means probabilistically proving that the processor will make a certain number of errors, given certain conditions. Since you can make the error rate as low as you want (it could be lower than actual quantum events, for example) this isn't as bad as you might think. Randomised approaches can make proofs simpler than deterministic versioins.
Hi! I am fr*m the futurE and i ha3e one of these probabilistic comp--uters, and i must say they are great, murble murble murble. Low power but fast ÐÐÐÐ and we now use them almost everyw]here.
Of course Excel had to g0, but since then businessmen have been maki\g decisions based on knowledge and understanding rather than nu>mbers so the whole world() economy has picked up.
The only downside wa"s last years election where a dog was made president due a far out probability calculation:. Still, this means our current president is not only more l1ked than any previous pr+++esident he also is better looking, and so far has started no wars!!! His last resolution 'Woof' went ^down very well in both the upper and lower hou#se.
PS: Sorry for the text errors... these things happen, but you get used to &$it.
PPS: Heart of Gold drive currently under development!
Verification in this case means probabilistically proving that the processor will make a certain number of errors, given certain conditions. Since you can make the error rate as low as you want (it could be lower than actual quantum events, for example) this isn't as bad as you might think.
Randomised approaches can make proofs simpler than deterministic versioins.
That sounds like typical "fuzzy" drivel. You can't establish any probabilistic base line for errors without an accurate proof.
This is sort of the difference between quantum physics and old-school physics for which Einstein's famous quote "God does not roll dice" originates.
I would argue that quantum physics as we currently know it will become more accurate as we continue to understand the realm which we have discovered. It is so different that our ape brain is a bit at a loss for a conceptual backdrop.
Similarly, abandoning "accuracy" in computing is a bad idea. A "good" engineer or scientist can estimate a number of things easily to lightly test viability of an idea, but must eventually prove the concept.
A computer and/or system that does not accurately process information and can, in fact, return non-identical answers for identical problems can not be trusted. Most computing involves many calculations, be it animation, banking, science, or what ever. Introducing little inaccuracies at each stage will multiply into larger inaccuracies.
I think this is why 'amiga' was one of the keywords. It reminds me of little-endianness. The amiga did stuff with little-endian I think.
Little-endian means that when number represented in binary, little endian means the left-most bits represent the big numbers, and the rightmost bit means '1' in decimal.
The computer reads memory from right to left, so when you run little endian, the computer only needs to read in the data it needs..continually reading in data to get more precision.
I think this concept is well-established in software but this is the first Ive heard of precision being used in hardware.
Whats the harm in yelling 'Computer, end program!'? You could be living in Star Trek! Go on.. give it a try.
Your comment doesn't even make enough sense to be wrong.
The Amiga used the 68000 processor, which was big-endian, as were almost all processor designs, ever. Most computers today are little-endian, because that's what Intel (following DEC's lead) standardized on.
Computers don't read memory "left to right" or "right to left". They operate in parallel.
I don't think anyone would want a chip that can calculate extremely fast that a nuclear reactor has a probability of failing in the next year between 50 and 99%.
I hadn't known there were so many idiots in the world until I started using the Internet -Stanislaw Lem
There is nothing "fuzzy" about this line of reasoning at all. Take a look at the book by Motowani and Raghavan ("Randomized Algorithms"). There you will see various kinds of randomisation: for example, you can have a randomised approach which is always deterministic in the answer, but may take a variable amount of time. (Randomised versions of Quicksort do this). Or, you can have another type which may make incorrect answers, at a given error rate. Probabilistic counting is of this form.
Now, you can turn a program which makes errors into one which does not make errors by repeatedly running it. In the case of probabilistic counting, you might do the whole thing many times and report the average. So, you can trust it: you just need to know what the probability of error is.
There is no room for any error at all in a financial transaction. Financial calculations must always be exactly precise. You can't just reduce the error unless you are reducing it all the way to zero. And not a statistical zero, but an exact "NO ERROR" precision.
The cake is a pie
I have heard that for a ship's chronometer the recommendation is to carry either one or three.
With one clock, you just use the time it displays and hope it is accurate. With two clocks, if they disagree the only thing you know is that you don't know what time it is and you don't even have a chance of knowing the correct time. With three clocks you can be fairly confident that only one at a time will be off.
Using bank balances as an example of where accuracy isn't required? Seriously? I want whatever drugs the person who wrote that article summary is taking because it must be really good stuff. I'm a certified accountant and believe me there would be hell to pay for even a one penny error in financial calculations. I can't think of a worse example to illustrate inaccuracy being "helpful".
BTW Financial calculations are almost never done using floating point. They use integers on both sides of the decimal point to whatever precision needed precisely because using floating point will inevitably result in an error. It's a pain but it's absolutely necessary because you don't dare have an error of even $0.00001 cents.
... 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.
You make so many assumptions about how the chip operates and what it is *intended* to be used for that your argument is virtually meaningless.
While the article mentions random errors, it doesn't specifically say that the chip relies on noise or how these random errors are generated and used. Until we know this, any reasoning about bits such as your comment is (at best) speculation of limited meaning.
It's incredible the number of comments for this story that make kneejerk assumptions about these things when the original article doesn't say enough to infer them. And anyone with some common sense would assume that the people who designed the chip *might* have had some idea what they were doing and had considered the obvious flaws which every random basement-dwelling Slashdotter takes great delight in pointing out and seems to think they missed. (Despite the article not providing us with enough information to reach this conclusion).
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
...the Improbability drive to come out. Or better yet, the Restaurant Probably drive (did Adams give it a name?)...
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Or impossible, if the Halting Problem is anything to go by?- or does that only apply to analysis by a Turing Machine?
It only applies to analysis *of* a turing machine or a similar hypothetical construct with infinite states. For a finite state machine given enough time the machine must end up in either a single state or an infinitely repeating sequence of states. So if you simulate the machine until you see a repeated state you will know whether the state/repeating sequence of states is one that you would consider halted.
Of course for something as complex as a computer the total number of states is insanely high and as such there may be no repeats in the lifetime of the universe.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
So, of what use is a processor for home or office that does not compute accurately. Music should sound the same each time you play the same "image.". Graphic images should look the same every time you view them. Checkbooks should balance, and don't use this device on turbo tax.
The ear and eye are notoriously easy to fool (MP3s? JPEGs?). And no, you obviously wouldn't want to use "fuzzy" logic to calculate your TurboTax filing.
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
I just can't tell the difference between 128kbps and 256kbps, MP3 from FLAC, 22khz from 44khz.
That's because your ears (meaning the parts of the brain that interpret sound) have not been trained to tell the difference. If you spent a few hours listening to your favorite music at my audio workstation, you would then be able to distinguish between those formats and appreciate the superior ones moreso.
I know that sounds snotty, but is Slashdot really the forum for an "ignorance is bliss" argument?
War as we knew it was obsolete
Nothing could beat complete denial
- Emily Haines
So would the car analogy be where the motor can run at a higher RPM on less gas, but the car sputters from time to time, with the possibility of the motor locking up?
Or would it mean more like, a car that goes faster, has better fuel efficiency, but your inputs (gas, brake, steering), doesn't necessarily match the outputs (accel, decel, direction change).
Going back to a PC running with a processor like this, how does an OS run if a processor doesn't repeatably come to the same answer?
Arguing with an engineer is like wrestling a pig in the mud. After a while, you realize the engineer enjoys it.
My 'audiophile' friend really did try to change my mind on the difference, and I really did give it a genuine chance. I sat, listened for a while to the different things he played for me. He swore they were different bitrates, frequencies, that there was a clear difference, but I just could not perceive it.
However, I have had my hearing checked. I can hear a full range of sound, a little better than most my age (3 years ago). I'm fully aware of every little sound that happens around me, I depend on my hearing far more than my sight when walking or riding a bike.
I'm like a damned radar, I keep my eyes closed when I'm swimming underwater and never run into anything or anyone. I'm fine in pitch black. I can even hear people talk across noisy rooms with high ceilings.
A lot of noise does frustrate me, like people talking and stuff or cars or sirens. I really do hear everything just fine, it gets really distracting.
As sure as I am that my hearing is just fine, even better than fine, I swear whatever deity you might care to imagine: I do not hear the difference between these supposed audio qualities.
"Most people, I think, don't even know what a rootkit is, so why should they care about it?"
What the article really brought to mind was trajectories in games. FPS's, despite the classification, don't have a lot of shots to calculate, but something like Supreme Commander would definitely stand to save on trajectory calculation where hundreds out thousands of 'bullets' can be 'flying' at once.
Maybe it could apply to Fourier transforms too, but I don't dare claim to know the process behind them.
"Most people, I think, don't even know what a rootkit is, so why should they care about it?"
Even if you could, would you really want to? Would you want to make it so that in order to appreciate music you need a $10k sound system, or constantly visit live performances of classical music to appreciate your range?
Personally, I can tell the difference between earbuds/computer speakers/surround sound system with proper wattage capacity and amp, but I haven't bothered to set the sound system back up for a while. Heck, I'm at the point I'd probably be better off buying a new one with HDMI inputs for my new TV. A TV that I can't really tell the difference between 1080p and 720p. I know it's better than analog, that blueray has a better picture than good old DVD(and I remember when THAT was new and crushing it's rival Divx).
How much better of a picture? 100% better? Not hardly - I'd say 10%. For 4X the pixels, I give it 10% in perception. Sad, huh?
I don't read AC A human right
In the era of slow internet, the extra time required to decode a JPEG or MPEG was dwarfed by the time saved by not transmitting the raw, uncompressed data over the phone.
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
Oh god, please don't offer vendors and programmers the choice of accuracy over speed. It's one more variable to screw up, and I can just hear the screams from users who don't understand the trade-offs. Vendor: "hey, we can get a 10x speed boost over our competitor by using the less accurate processor. We'll just put the accuracy caveat in the fine print."
Now WHY did this get a tag of Amiga? Must be the like a flash mob .. err.. flash taggers or something.
Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
Duhh... read the post... Notice how engineers overcome noise??? yup... by INCREASING VOLTAGE. If you have any experience with electronics at all, you will agree with me that the only reason is to increase SNR (Signal noise ratio). In this context, noise refers to white noise.
Even if you want to worship the guy, a little common sense and deductions doesn't hurt. That's how scientific process works. The guy (in the story) is also at fault for not publishing it first before making a claim. But maybe you're a lawyer or from the sales department. So, the whole peer review rant might not make sense to you.
Notice how engineers overcome noise??? yup... by INCREASING VOLTAGE. If you have any experience with electronics at all, you will agree with me that the only reason is to increase SNR (Signal noise ratio). In this context, noise refers to white noise.
That as may be, who mentioned voltage? You, and you appear to be *assuming* that they'll simply keep everything else the same and drop the voltage of the chip increasing the noise. Assumption.
Even if you want to worship the guy
I already said there wasn't enough information to say whether or not this was a good idea. So why the hell you assumed I would "worship" the guy is unclear.
Oh, hang on.... it's entirely clear. You're one of those people who assumes that criticism of a badly-formulated attack on X implies that the critic supports X. Or else just likes to use that flawed logic as the basis of an attack.
But maybe you're a lawyer or from the sales department. So, the whole peer review rant might not make sense to you.
See, now you're just resorting to poorly-veiled insults. That's not even an ad hominem attack, it's just third-rate name calling. While it says nothing about me, it says a *lot* about you.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).