Introducing Probability into Chip Design
prostoalex writes "The August issue of Intel Developer Update has an interview with Shekhar Borkar, Intel Fellow and Director of Circuit Research at Intel Corp. talking about the future of microprocessor design and what goes on inside Intel Labs. Borkar tells why we need even faster processors and how probability will make its way into future chip designs - "It's like the shift from Newtonian mechanics to quantum mechanics. We will shift from the deterministic designs of today to probabilistic and statistical designs of the future.""
Sorry could not resist.
UM, Ford. theres an infinite number of monkeys outside that want to talk to us about a script for hamlet they've hammered out. PROBABILITY FACTOR OF 1 to 1: any other problems are your own lookout.
"We will shift from the deterministic designs of today to probabilistic and statistical designs of the future"
Doesn't branch predictions in current processors use probabilities already?
Beware: In C++, your friends can see your privates!
.999... is exactly equal to 1. To the non-believers out there, consider that 1/3 = .333..., and that 1/3 + 1/3 + 1/3 = 1.
Warning: Opinions known to be heavily biased.
...back in the heady days of Concurrent Computer their top-of-the-line 3280 processor has "usual branch" instructions. The compiler could use the usual branch instructions to provide hints about the probability of the branch being taken to the processor. In a loop, for instance, you'd use a "usual branch not equal" (UBNE) instruction to send execution back to the top. This would indicate to the processor that it should preemptively invalidaate the cache and pipeline.
I'm sure many mainstream processors have this now, but it's funny to think that CCUR had this technology in the late 1980's.
Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
Hey, this is nothing new as anyone who owned an original Pentium can tell you. It probably gave you the right answer, except for the occassional FDIV.
In the interview, a lot of things have been left out. The topic is first and foremost old. It goes back to the 80s. Statistical variations have always been taken into account by using worst cases. Problem is that the worst case approach sucks in the latest technologies, so more sophisticated methods have to be used. There has been a lot of research in the last 10 years (Check american, german, and italian universities, just to name few).
Also, the problem is old, meaning that analog designers had to deal with these problems since the early stages (example: the offset in the operational amplifiers is caused by transistor performance mismatch). Now, digital designs are affected too. First on the clocking network and now all the rest. Furthermore, it is widely known (in the community) that interconnect variations are of the same order of magnitude of the device (i.e. transistor)performance variations, and on the top of that dynamic effects (like cross talk) may severely affect the performance.
I don't agree with him on the fact that all the variations are gaussian, there is plenty of literature that states the contrary, and major chip makers know it very well.
Last but not least, there are already tools that deal with statistical variations, although none of them can handle a microprocessor, as they are mostly circtuit simulation-based. All in all, the good news is that awareness is spreading thru the designers.
Didn't intel already do this whith the original Pentium?
Read, L
At least it didn't say Pentium(R) 4(R). Not for lack of trying, I'm sure.
Kinda like we've been releasing software that "probably" works for the past 40 years?
It's good to see computer engineering is finally catching up with computer science!
This will make HAL even worse:
OPEN the DOOR HAL!
Proberbly not, Dave
Isn't probability already a part of chip design.
"Our new P4 has a 40% probability of being out in May, a 20% chance of being out in June..."
___
It's the end of my comment as I know it and I feel fine.
I believe the kind of probabalistic computing Intel's talking about is analagous to error correction. On your average data CD about 15% of the bits are redundant and devoted to error correction. This reduces the probability of erroneously reading the CD, although the probability of error is still non-zero. Same deal with ECC memory. I'm guessing Intel is looking at ways to apply that kind of trick to the computational logic.
--- Often in error; never in doubt!
Listen to that guy. He just GETS it.
/. do, and contribute all their mind and skills and time to furthering open-source and other efforts, and that is very commendable.
:)
I am actually, to some extent, inspired by that article. Corporate BS policies aside, whatever you think of Intel or AMD or any other company as a company, as a political entity, or as a producer or consumer goods, you still have to feel good that there are people like that, people that just GET the overriding vision of advancing technology, and are actively working to advance it.
I don't have time advance technology much in my current job. I don't have the mind or the skills or the time for boundary-pushing endeavors. Some at
But as we often lament, it sometimes seems like the Big Boys don't have the same spark. Let's not forget that somewhere within the pudge of even the fattest multinational technology company, there are brilliant, passionate minds working to further everything we hold dear. These are people who aren't just brilliant scientists or passionate geeks -- they're both. And they're on our side.
And we'll all be traveling in flying cars while eating meals in pill form!!
Random number generators are used in ASIC and FPGA logic placement and interconnect routing.
:)
The goal is to place and route logic in a way that meets the designer's timing and area constraints. The problem is that a deterministic algorithm for that is NP-complete. Instead of considering all possibilities, a number of randomly-generated possibilities are considered, with some ability to make adjustments when one is chosen.
The randomly-generated possibilities, of course, are not completely random -- it's a matter of multiple gates competing for the same fixed-location logic cell, etc. Who gets the one closest to where they all want to be? Where do you place the rest? What about others competing for THOSE locations? It's complicated.
Since physical science (and by extrapolation, engineering) is built on a "reductionist" paradigm where every problem is broken to its simplest components & solved piecemeal at that level, it makes sense for a "probabilistic" approach to chip design to happen some time. Might as well be now.
But when we operate under the reductionist model, we forget emergent properties at the system level. In developing a "learning" system -- which again, I assume to be the overarching goal -- we have to learn to deal with variation. Situations are almost never exactly the same. In the beginning of a "learning" system, things probably (pun intended) do look random. But as special cases, exceptions, subtle cues, etc. are encountered by the system & incorporated into the decision-making process, things appear to become increasingly deterministic.
So, if a "probabilistic" chip design is implemented properly, it likely will look pretty "deterministic" to the end-user, who expects certain kinds of results.
The problem now is that the hardware is "deterministic" & any attempt to create a "probabilistic" learning system has to happen in software. Right now, the limit to AI, IMO, is simply that chips aren't even in the same league with neurons. "Learning" software built on "learning" hardware ought to be a pretty powerful concept.
Of course, this may just be a way to get around the fact that manufacturing may be pushing the limits for tight tolerances & probabilistic chip design is the only out. Whatever it takes to force a paradigm shift.
"Most places a paradigms won't buy you a cup of coffee..."
"Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
Intel:
The addition is probably right.
Amd:
It will probably melt through your desk.
Me:
I will probably be modded to Hell.
The Kruger Dunning explains most post on
I'm not talking about different functions approaching infinity at different rates.
I'm talking about the fact that 9.99999.... minus nine is exactly 0.99999.....
Therefore 9.99999..... minus 0.99999.... must be exactly 9.
The price of freedom is eternal litigation.
Q4: What are some other applications that need more power?
Look at the whole proactive computing model, where computers will anticipate our needs and sometimes take action on our behalf. That's one.
When he said this, all I could think of was, yeah, computers need more power to run the heavy virus workload and still make them usable.
Alright. So, say that x is 0.99999... with an infinite number of nines. You claim that x is a number distinct from 1 (since you claim 1 - x is nonzero). Since the the rationals and irrationals are both dense in the reals, we know that if we pick any two distinct reals, we'll always have numbers between them. That is, it's impossible to pick a number and the "next" real number without skipping over any. Yet that is essentially what you've done by positing that the gap between these numbers is infinitely small.
Put in other terms,
1 - x = limit(n->infinity, 1 - sum(9*10^(-i), i=1..n)) = limit(n->infinity, 10^(-n))
So let y equal 1 - x. We can show that if y != 0, then 1 - x < y even with a finite number of digits. Just pick n to be the least integer which is at least -log(y)+1 and then 10^n < y just considering a finite number of digits, n.
That is, if you tell me what the nonzero gap between the numbers that you expect to see, one can show that the gap is less than that. Since the gap is a nonnegative number that is less than all nonzero (ie, positive) choices, it is zero.
Therefore, 0.9999999..... = 1.
On an even more off-topic note, has anyone else started to think that trolls that bring up controversial mathematical statements are probably the best way to get responses nowadays? Not to say that the OP was a troll, but if it was, congratulations on all the responses. Also, congratulations to the Monty Hall problem poster some days back that was a troll.
Prudence forbids me to explain myself further. - Isaac Barre, 1765
He's not talking about non-deterministic computing. He's talking about ways to salvage the chip if one or more subcircuits don't function correctly. The article isn't very technical, but this probably alludes to having redundant circuits, possibly even taking the answer that the most redundant circuits produce.
I'm not a smart enough man to know whether or not this is feasible. Keep in mind that introducing these redundancy checks actually increases the "length" of the circuit, increasing propogation delays. If this system works at all, you can be certain that it will be very rigidly subjected to the law of diminishing returns.
-Roxton