ChessUSA.com TalkChess.com
Hosted by Your Move Chess & Games
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Perishing Perft !
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: Programming and Technical Discussions Flat
View previous topic :: View next topic  
Author Message
Filip Tvrzsky



Joined: 23 Sep 2006
Posts: 123
Location: Prague

PostPost subject: Re: Perishing Perft !    Posted: Sun May 20, 2007 1:51 am Reply to topic Reply with quote

Hi, let me show my humble bunch of numbers ...
All tests have been done without use of hashing (which I have not implemented in perft), however with hash keys as well as all other unnecessary data structures updated in make/unmake functions (they are the same as in the regular search). Only move evaluation in generator is switched off, therefore there is no call of SEE (what would otherwise slow down the whole thing a lot).
Code:
CPU Type:  Intel(R) Core(TM)2 CPU         T5500  @ 1.66GHz
CPU Frequency: 1662.5 MHz

1. fastest possible case = not making/unmaking last ply, no check detection in last ply (thanks legal move generator, of course)
Code:
perft(7):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     50,081,018          2,291,566               1.02 s   2241.49 kN/s
02/14    Ra1-c1     47,457,788          2,191,590               2.00 s   2238.51 kN/s
03/14    Ra1-d1     33,831,669          1,605,787               2.72 s   2247.99 kN/s
04/14    Rh1-f1     36,304,708          1,651,084               3.45 s   2237.62 kN/s
05/14    Rh1-g1     51,302,720          2,277,740               4.48 s   2215.29 kN/s
06/14     a2-a3     23,941,522          1,284,348               5.04 s   2319.04 kN/s
07/14     a2-a4     26,931,187          1,411,249               5.65 s   2289.24 kN/s
08/14     h2-h3     24,346,577          1,295,833               6.21 s   2322.20 kN/s
09/14     h2-h4     27,793,666          1,432,291               6.84 s   2292.21 kN/s
10/14    Ke1-d1     21,704,666          1,164,297               7.34 s   2334.56 kN/s
11/14    Ke1-d2     52,542,952          2,478,059               8.44 s   2253.03 kN/s
12/14    Ke1-e2     59,615,160          2,776,871               9.68 s   2227.64 kN/s
13/14    Ke1-f1     20,933,844          1,142,686              10.17 s   2335.73 kN/s
14/14    Ke1-f2     51,601,182          2,446,145              11.26 s   2248.66 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(7) = 528,388,659         25,449,546             11.26 s   2260.19 kN/s
FOUND: PERFT(7)=528388659
OK!

2. with make/unmake of last ply but still without check detection in leaves
Code:
perft(7):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     50,081,018          2,291,566               2.88 s    794.44 kN/s
02/14    Ra1-c1     47,457,788          2,191,590               5.70 s    778.01 kN/s
03/14    Ra1-d1     33,831,669          1,605,787               7.68 s    813.74 kN/s
04/14    Rh1-f1     36,304,708          1,651,084               9.78 s    783.95 kN/s
05/14    Rh1-g1     51,302,720          2,277,740              12.74 s    770.55 kN/s
06/14     a2-a3     23,941,522          1,284,348              14.19 s    885.88 kN/s
07/14     a2-a4     26,931,187          1,411,249              15.81 s    871.99 kN/s
08/14     h2-h3     24,346,577          1,295,833              17.28 s    881.72 kN/s
09/14     h2-h4     27,793,666          1,432,291              18.94 s    863.39 kN/s
10/14    Ke1-d1     21,704,666          1,164,297              20.27 s    870.31 kN/s
11/14    Ke1-d2     52,542,952          2,478,059              23.34 s    807.64 kN/s
12/14    Ke1-e2     59,615,160          2,776,871              26.76 s    811.44 kN/s
13/14    Ke1-f1     20,933,844          1,142,686              28.04 s    894.73 kN/s
14/14    Ke1-f2     51,601,182          2,446,145              31.01 s    823.15 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(7) = 528,388,659         25,449,546             31.01 s    820.59 kN/s

3. with make/unmake of last ply and check detection in leaves
Code:
perft(7):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     50,081,018          2,291,566               3.38 s    677.50 kN/s
02/14    Ra1-c1     47,457,788          2,191,590               6.67 s    666.26 kN/s
03/14    Ra1-d1     33,831,669          1,605,787               8.99 s    693.44 kN/s
04/14    Rh1-f1     36,304,708          1,651,084              11.45 s    671.22 kN/s
05/14    Rh1-g1     51,302,720          2,277,740              14.89 s    660.96 kN/s
06/14     a2-a3     23,941,522          1,284,348              16.58 s    762.77 kN/s
07/14     a2-a4     26,931,187          1,411,249              18.45 s    754.37 kN/s
08/14     h2-h3     24,346,577          1,295,833              20.15 s    761.95 kN/s
09/14     h2-h4     27,793,666          1,432,291              22.06 s    751.30 kN/s
10/14    Ke1-d1     21,704,666          1,164,297              23.60 s    753.30 kN/s
11/14    Ke1-d2     52,542,952          2,478,059              27.18 s    693.23 kN/s
12/14    Ke1-e2     59,615,160          2,776,871              31.20 s    689.96 kN/s
13/14    Ke1-f1     20,933,844          1,142,686              32.67 s    779.91 kN/s
14/14    Ke1-f2     51,601,182          2,446,145              36.13 s    706.55 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(7) = 528,388,659         25,449,546             36.13 s    704.39 kN/s

4. like previous case but also updating attack bitboards in leaves
Code:
perft(7):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     50,081,018          2,291,566              14.31 s    160.08 kN/s
02/14    Ra1-c1     47,457,788          2,191,590              28.01 s    160.01 kN/s
03/14    Ra1-d1     33,831,669          1,605,787              37.62 s    167.18 kN/s
04/14    Rh1-f1     36,304,708          1,651,084              47.88 s    160.94 kN/s
05/14    Rh1-g1     51,302,720          2,277,740              62.50 s    155.75 kN/s
06/14     a2-a3     23,941,522          1,284,348              69.42 s    185.66 kN/s
07/14     a2-a4     26,931,187          1,411,249              77.20 s    181.45 kN/s
08/14     h2-h3     24,346,577          1,295,833              84.28 s    182.88 kN/s
09/14     h2-h4     27,793,666          1,432,291              92.29 s    178.80 kN/s
10/14    Ke1-d1     21,704,666          1,164,297              98.58 s    185.14 kN/s
11/14    Ke1-d2     52,542,952          2,478,059             113.71 s    163.78 kN/s
12/14    Ke1-e2     59,615,160          2,776,871             130.90 s    161.61 kN/s
13/14    Ke1-f1     20,933,844          1,142,686             136.99 s    187.51 kN/s
14/14    Ke1-f2     51,601,182          2,446,145             151.90 s    164.10 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(7) = 528,388,659         25,449,546            151.90 s    167.55 kN/s

5. previous case with additional move generation in leaves (de facto perft(8), only without counting and calling perft() function in last ply)
Code:
perft(7):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     50,081,018          2,291,566              23.32 s     98.25 kN/s
02/14    Ra1-c1     47,457,788          2,191,590              45.65 s     98.17 kN/s
03/14    Ra1-d1     33,831,669          1,605,787              61.53 s    101.13 kN/s
04/14    Rh1-f1     36,304,708          1,651,084              78.25 s     98.73 kN/s
05/14    Rh1-g1     51,302,720          2,277,740             101.98 s     95.97 kN/s
06/14     a2-a3     23,941,522          1,284,348             113.16 s    114.91 kN/s
07/14     a2-a4     26,931,187          1,411,249             125.73 s    112.30 kN/s
08/14     h2-h3     24,346,577          1,295,833             137.10 s    113.96 kN/s
09/14     h2-h4     27,793,666          1,432,291             150.13 s    109.95 kN/s
10/14    Ke1-d1     21,704,666          1,164,297             160.23 s    115.24 kN/s
11/14    Ke1-d2     52,542,952          2,478,059             184.61 s    101.63 kN/s
12/14    Ke1-e2     59,615,160          2,776,871             212.57 s     99.32 kN/s
13/14    Ke1-f1     20,933,844          1,142,686             222.35 s    116.86 kN/s
14/14    Ke1-f2     51,601,182          2,446,145             246.23 s    102.45 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(7) = 528,388,659         25,449,546            246.23 s    103.36 kN/s

6. circle is closing: real perft(8) with same conditions as in 1.
Code:
perft(8):           SubtreePerft        SubtreeInnerNodes
----------------------------------------------------------------------------------
01/14    Ra1-b1     1,062,390,196       52,372,584             23.53 s   2226.17 kN/s
02/14    Ra1-c1     994,961,141         49,649,378             45.89 s   2220.36 kN/s
03/14    Ra1-d1     699,902,214         35,437,456             61.61 s   2254.24 kN/s
04/14    Rh1-f1     749,864,388         37,955,792             78.51 s   2246.09 kN/s
05/14    Rh1-g1     1,078,224,310       53,580,460            102.57 s   2226.71 kN/s
06/14     a2-a3     521,883,593         25,225,870            113.92 s   2223.07 kN/s
07/14     a2-a4     584,490,738         28,342,436            126.63 s   2229.25 kN/s
08/14     h2-h3     530,959,096         25,642,410            138.09 s   2237.70 kN/s
09/14     h2-h4     602,822,744         29,225,957            151.19 s   2231.24 kN/s
10/14    Ke1-d1     471,895,061         22,868,963            161.47 s   2225.16 kN/s
11/14    Ke1-d2     1,138,087,181       55,021,011            186.01 s   2241.76 kN/s
12/14    Ke1-e2     1,299,305,185       62,392,031            214.01 s   2228.49 kN/s
13/14    Ke1-f1     452,781,746         22,076,530            223.81 s   2251.11 kN/s
14/14    Ke1-f2     1,109,817,568       54,047,327            247.82 s   2251.37 kN/s
----------------------------------------------------------------------------------
Total:   PERFT(8) = 11,297,385,161      553,838,205           247.82 s   2234.83 kN/s

So, updating of attack bitboards costs me the most, even little bit more than the move generation ...
Back to top
View user's profile Send private message
Display posts from previous:   
Subject Author Date/Time
Perishing Perft ! GeoffW Thu May 17, 2007 4:26 pm
      Re: Perishing Perft ! Allard Siemelink Thu May 17, 2007 5:07 pm
            Re: Perishing Perft ! Allard Siemelink Thu May 17, 2007 5:10 pm
      Re: Perishing Perft ! pijl Thu May 17, 2007 5:11 pm
      Re: Perishing Perft ! Steven Edwards Thu May 17, 2007 5:18 pm
            Re: Perishing Perft ! Steven Edwards Thu May 17, 2007 6:16 pm
                  Re: Perishing Perft ! Uri Blass Thu May 17, 2007 6:22 pm
                        Re: Perishing Perft ! Alessandro Scotti Thu May 17, 2007 6:44 pm
                              Re: Perishing Perft ! H.G.Muller Fri May 18, 2007 6:46 am
                                    Re: Perishing Perft ! Uri Blass Fri May 18, 2007 7:59 am
                                          Re: Perishing Perft ! Dann Corbit Fri May 18, 2007 9:25 pm
                                                Re: Perishing Perft ! Uri Blass Fri May 18, 2007 9:59 pm
                                                      Re: Perishing Perft ! Dann Corbit Tue May 22, 2007 4:08 am
                  Depth 9, SAN order Steven Edwards Thu May 17, 2007 7:20 pm
                        Re: Depth 9, SAN order Reinhard Scharnagl Sat May 19, 2007 9:13 pm
      Re: Perishing Perft ! Uri Blass Thu May 17, 2007 5:52 pm
      Re: Perishing Perft ! H.G.Muller Thu May 17, 2007 6:11 pm
      Re: Perishing Perft ! GeoffW Sat May 19, 2007 3:46 pm
            Re: Perishing Perft ! Allard Siemelink Sat May 19, 2007 5:05 pm
                  Re: Perishing Perft ! GeoffW Sat May 19, 2007 5:29 pm
                        Re: Perishing Perft ! Alessandro Scotti Sat May 19, 2007 5:53 pm
                              Re: Perishing Perft ! Alessandro Scotti Sat May 19, 2007 6:16 pm
                                    Re: Perishing Perft ! GeoffW Sat May 19, 2007 8:14 pm
                                          Re: Perishing Perft ! Alessandro Scotti Sat May 19, 2007 8:34 pm
                                    Re: Perishing Perft ! Reinhard Scharnagl Sat May 19, 2007 8:42 pm
                        Re: Perishing Perft ! Allard Siemelink Sun May 20, 2007 12:16 am
                              Re: Perishing Perft ! Reinhard Scharnagl Sun May 20, 2007 12:29 pm
                                    Re: Perishing Perft ! Allard Siemelink Sun May 20, 2007 2:54 pm
            Re: Perishing Perft ! Ross Boyd Sat May 19, 2007 10:19 pm
            Re: Perishing Perft ! Filip Tvrzsky Sun May 20, 2007 1:51 am
            Re: Perishing Perft ! H.G.Muller Sun May 20, 2007 8:08 pm
                  Re: Perishing Perft ! Filip Tvrzsky Sun May 20, 2007 9:08 pm
                  Re: Perishing Perft ! GeoffW Sun May 20, 2007 10:56 pm
                        Re: Perishing Perft ! Allard Siemelink Mon May 21, 2007 10:26 pm
                        Re: Perishing Perft ! H.G.Muller Tue May 22, 2007 7:50 am
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: Programming and Technical Discussions

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Powered by phpBB © 2001, 2005 phpBB Group
Enhanced with Moby Threads