Author: Dann Corbit
Date: 18:02:58 07/19/99
Go up one level in this thread
On July 19, 1999 at 20:22:40, Will Singleton wrote: > >In the thread "improving speed," there was some discussion about the nps of >TSCP, what it is and should be, compiler options etc. The first poster said he >was getting 15k nps for TSCP, and Bob and Vincent said it should be 10x that >speed for his machine. Subsequent posters got 30k nps on slower machines. > >I'd be interested to do a more precise test using TSCP, as a means to benchmark >various platforms, as well as to find differences in compiler performance on >identical platforms. This would be easy to do, since TSCP is easily modifiable, >easy to run, and easy to get. > >For those of you willing to participate, here's the method I followed to produce >the output shown below: > >Download TSCP v1.3. >Modify the procedure Think() in search.c to search 6 ply. >Also modify the printf call to show nps. > (I calculated nps by using nodes*60/ticks, where ticks==60th sec) >Compile using optimize on. >Run TSCP, and type ON. > >tscp> on >ply nodes n/s score pv > 1 21 1260 48 d2d4 > 2 93 5580 0 d2d4 d7d5 > 3 996 29880 35 d2d4 d7d5 b1c3 > 4 5952 39680 5 e2e4 d7d5 f1b5 c8d7 b5d3 > 5 32924 43898 35 e2e4 b8c6 b1c3 e7e5 g1f3 > 6 203273 40519 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5 >tscp> > >Platform -- Mac G3/300 (powerbook) >Compiler -- CodeWarrior 3.1, full opt > >I will gather the results (assuming I get any volunteers) and post them here. > >Thanks. > >Will > >------ > >results from previous thread (not a controlled experiment, obviously) >K6-3/400 15k nps >K6-2/300 30k nps >P/233 30k nps Here is a portable alteration. No guarantees on resolution, but *typically* better than you will get with difftime()... /* think() calls search() iteratively and prints the results after every iteration. */ #include <time.h> /* add to top of file */ void think (void) { int i, j, x; /* changes */ clock_t start, end; double cputime; /* end changes */ ply = 0; nodes = 0; memset (history, 0, sizeof (history)); printf ("ply nodes score pv\n"); /* changes */ start = clock (); /* end changes */ for (i = 1; i <= 6; i++) { follow_pv = TRUE; x = search (-10000, 10000, i); printf ("%3d %9d %5d ", i, nodes, x); for (j = 0; j < pv_length[0]; j++) printf (" %c%d%c%d", FILE (pv[0][j].b.from) + 'a', 8 - RANK (pv[0][j].b.from), FILE (pv[0][j].b.to) + 'a', 8 - RANK (pv[0][j].b.to)); printf ("\n"); } /* changes */ end = clock (); cputime = (end - start) / (double) CLOCKS_PER_SEC; printf ("time: %f sec., nodes=%d, NPS = %f\n", cputime, nodes, nodes/cputime); /* end changes */ } Results for a PII 300 MHz machine: A normal optimized compile gives: Tom Kerrigan's Simple Chess Program (TSCP) version 1.3, 11/11/98 'help' displays a list of commands. tscp> on ply nodes score pv 1 21 48 d2d4 2 93 0 d2d4 d7d5 3 996 35 d2d4 d7d5 b1c3 4 5952 5 e2e4 d7d5 f1b5 c8d7 b5d3 5 32924 35 e2e4 b8c6 b1c3 e7e5 g1f3 6 203273 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5 time: 5.458000 sec., nodes=203273, NPS = 37243.129351 tscp> Pentium Pro build with inlining: Tom Kerrigan's Simple Chess Program (TSCP) version 1.3, 11/11/98 'help' displays a list of commands. tscp> on ply nodes score pv 1 21 48 d2d4 2 93 0 d2d4 d7d5 3 996 35 d2d4 d7d5 b1c3 4 5952 5 e2e4 d7d5 f1b5 c8d7 b5d3 5 32924 35 e2e4 b8c6 b1c3 e7e5 g1f3 6 203273 13 e2e4 b8c6 d2d4 d7d5 e4d5 d8d5 time: 5.318000 sec., nodes=203273, NPS = 38223.580293 tscp>
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.