Author: Tom Kerrigan
Date: 18:28:39 02/15/03
Go up one level in this thread
On February 13, 2003 at 19:40:45, Matt Taylor wrote: >You're not getting it. Logic on the processor for static branch prediction is >80% accurate because auxillary information available to the compiler is thrown >out. Consider the following loop: >for(i = 0; i < 1000; i++) > do_something(); You're the one who's not getting it if you think processors have logic for static branch prediction (hint: processors do dynamic prediction) or if you think these are the kinds of branches that matter for execution or compilation. (Any branch prediction scheme would predict your branch with 99.9% accuracy.) >>Sure, you can avoid having an actual branch instruction. I'm asking you to think >>deeper. How does that make the processor go any faster? > >No branch mispredict = no penalty. Not always possible, but it works well for >short functions such as abs, min, and max. If it were not so, cmov would be a >near useless instruction. That's true, and I forgot about that reason, I guess because branches are only mispredicted 5% of the time. The reason why predication would be used more aggressively on an in-order chip (i.e., why it's a big deal on IA-64) is because it allows post-condition instructions to be issued without dependancies. >>No, more like 12 results and in only one case does the Itanium 2 outperform the >>P4. And I think I've done a very good job explaining why Crafty runs faster on >>the I2 than the P4. >The speed of gcc and perl are rather irrelevant to Chess, aren't they? They are if they better represent computer chess than Crafty does. I'd bet most chess programs out there don't use bitboards (i.e., 64 bit operations) or use bitboards less than Crafty. Bitboards are almost certainly the reason why Crafty performs well on I2 vs. the P4. -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.