Author: Omid David Tabibi
Date: 12:51:02 09/03/03
Go up one level in this thread
On September 03, 2003 at 14:53:23, Robert Hyatt wrote: >I finally found time to run a few tests. > >First, the set-up: I took all my bitmap stuff, added it up, and put it in >a structure that was then set up as an array. IE tdata[128] was an array >of these structures, each element being just enough bytes to hold all of what >I call a "position" including bitmap boards, hash signature, 50 move counter, >etc...) > >At the top of MakeMove() I added tdata[ply+1]=tdata[ply]; to do the copy >stuff. That's all. > >Some results: > >fine 70 searched to 39 plies deep: > >copy/make : 15.5 seconds, make/unmake 14.0 seconds (11% overhead) > >kopec 22 searched to 12 plies deep: > >copy/make : 32.4 seconds, make/unmake 28.3 seconds. (14.5% overhead) > >mate position searched 9 plies deep (mate in 10) > >copy/make : 8.9 seconds, make/unmake 7.5 seconds. (18.7% overhead) > >That's not all the story. however. The copy/make approach requires an >extra register everywhere since the data structures have to be accessed >through a pointer (or via an array subscript, same thing). My test case >does not take care of that. But if you were to mark one register as >"unusable" for the compiler, the result would be worse, for certain. Since >these data values are accessed all over the place, a register has to be used >everywhere, which is going to add to the above, significantly. If it only adds >10% then the above numbers are back to what I originally saw when I speeded >things up by 25% by getting rid of copy/make. > >That's data for Crafty. YMMV of course... Thanks for the interesting data. After some profiling with VTune, I found the following about memcpy() in my program: Of a total of 809 seconds spent in the search() function and all its subfunctions (total searching time), 52 seconds were spent in memcpy(). memcpy() was called a total of 172 million times. I use memcpy() for copying a 256 byte attack table at every make_move(), and another memcpy() of that size in takeback().
This page took 0 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.