Author: Tom Kerrigan
Date: 20:24:43 02/11/03
Go up one level in this thread
On February 11, 2003 at 22:39:48, Robert Hyatt wrote: >Your explanation was not bad, but your "no compiler can do this" is dead >wrong. Visit Cray Research, search for their CFT compiler (or their C >compiler) and see if you can find some papers on their optimizing. >They _do_ exactly what you describe. They "lift" (or "hoist") instructions >way back up in the instruction stream so that values are available when needed, >which is _exactly_ what your OOO approach is doing in the hardware. They must be doing this according to static branch prediction, which is maybe 80% accurate, not > 90%, and all compilers have scope boundaries for this sort of stuff, i.e., at loops or functions. OOOE has no such restrictions. It's just a stream of instructions. >I would not say that either is particularly "better". They are "different" >with different approaches to the same problem. The advantage of a ia64-type >approach is that you can stretch the VLIW approach quite a ways, while it >gets harder and harder to do it in an OOO architecture. You end up with more >hardware in the reorder buffer logic than you have in the actual pipelines >that do the real computation. Is that causing a problem other than offending some people's sensibilities? The EV8 was going to have 8 int ALUs and it would have been perfectly viable with today's processes. >Perhaps. However the non-OOO Cray has always been right at the top of the >overall performance heap, so that approach can fly as well and it has certainly I don't know much about Crays but a friend of mine told me that he ran some uniprocessor tests on a Cray and it was roughly as fast as a fast 486. Have any Crays been built in the last several years using actual Cray processors? >>As for VC not generating cmovs, Matt, using cmovs on the P6 is slower than not >>using them. That's why they're not generated. >Under what circumstance? It is possible to have totally unpredictable Under the circumstance of running on a P6, like I said. The P6 has no real support for cmovs; it microcodes them down to several uops and the whole process takes longer than if you just did a branch. >And I believe the VC _will_ produce CMOV instructions, but you have to Eugene can speak to this better than I can, but I don't think VC ever produces cmovs regardless of how you configure it. -Tom
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.