A couple of perft() benchmarks

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

A couple of perft() benchmarks

Post by sje »

A couple of perft() benchmarks

I made a couple of changes to Symbolic: its castling code is now more table driven (like Oscar's), and the perft() transposition mechanism has been improved for a speed-up of several percent.

To convince myself that I hadn't messed up anything, I ran a couple of hundred perft() tests on the new code. Everything works; here are the logs for perft(10) (44 minutes) and perft(11) (11 hours):

Code: Select all

[] pctran 10
TT: ItemSize: 24 B   ItemCount: 1,073,741,824 (2^30)   TableSize: 24 GiB
Count: 69,352,859,712,417   Pt: 2:55:03.641   Wt: 43:58.949   U: 0.995059   26.411 GHz   37.863 ps
Total: sixty-nine trillion three hundred fifty-two billion eight hundred fifty-nine million seven hundred twelve thousand four hundred seventeen
TT: Table utilization: 0.737608

[] pctran 11
TT: ItemSize: 24 B   ItemCount: 1,073,741,824 (2^30)   TableSize: 24 GiB
Count: 2,097,651,003,696,806   Pt: 1:19:36:08.814   Wt: 10:56:46.985   U: 0.995818   53.454 GHz   18.7077 ps
Total: two quadrillion ninety-seven trillion six hundred fifty-one billion three million six hundred ninety-six thousand eight hundred six
TT: Table utilization: 1
The 2^30 element, 24 GiB transposition table fills to 74% for perft(10) and all the way for perft(11). The CPU is an Intel 3.4 GHz Core i5-4670 (quad core, no hyperthreads).