Author: Gian-Carlo Pascutto
Date: 15:35:24 09/26/01
Go up one level in this thread
On September 26, 2001 at 17:45:45, Robert Hyatt wrote: >On September 26, 2001 at 17:11:29, Gian-Carlo Pascutto wrote: > >>On September 26, 2001 at 16:18:21, Bruce Moreland wrote: >> >>>It sounds like you need to spend some quality time with your profiler. It's >>>possible that you are doing one dumb thing, and you can just fix that and go >>>like blazes. It's more likely, with a pretty new program, that everything is >>>slow, but at least you can figure out what the slowest thing is and fix it. >>> >>>bruce >> >>Some profiling data: >> >>mid_eval: 24% >>is_attacked: 12% (is called in eval for kingsafety) > >That seems like a waste, but maybe not. IE There are other ways to evaluate >king safety besides testing if it is attacked using that much CPU time.. I realize. I use attack testing as follows: a) do we have a fianchetto hole? does the opponent have the 'good' bishop? do we have it? is the weak square attacked? b) are two or more squares in front of the king attacked? (a) isn't done much. I added (b) to add some awareness of setups with bishops + queens all aiming onto the position. >Here is what mine looks like for a test I just ran for comparison: > % cumulative self self total > time seconds seconds calls ms/call ms/call name > 25.12 73.94 73.94 38414441 0.00 0.00 Evaluate > 7.33 95.53 21.59 45334984 0.00 0.00 MakeMove > 6.84 115.66 20.13 1999 10.07 123.81 Search > 5.28 131.20 15.54 45334984 0.00 0.00 UnMakeMove What's interesting to note here is that movegen appears below making/unmaking moves. Also SEE seems much cheaper for you. I know crafty uses some tricks to not do SEE sometimes but when I removed them (in crafty) it broke even and when I add them in my program they hurt, so it's a no-go. >>movegen: 11% >>SEE: 10% >>search: 6% >> > >Where is the rest of the time? The next function up was quiescent hash probing, which is memory-bound. >And are you _sure_ you are optimizing things correctly? I have seen _many_ >cases where people have compiled and forgot to enable optimizing thinking it >was the default. I did this once when I first compiled Crafty on a Solaris >box. Default = zero optimization. And when I found this, I ran about 5x >faster immediately. :) Certainly am. The profile was run on an optimized MSVC binary using AMD Codeanalyst. Case in point: Crafty v18.10 White(1): perft 6 total moves=119060324 time=51.29 Sjeng: perft 6 Raw nodes for depth 6: 119060324 Time : 43.34 -- GCP
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.