Computer Chess Club Archives




Subject: Playing the NPS game

Author: Gian-Carlo Pascutto

Date: 11:25:50 09/26/01

I have been wondering about my engines speed lately.

Right now, I do about 110 knps in the middlegame on
an Athlon 1000.

Is that good or bad? Well, everybody else (save the one
engine that shall not be named) seems to be doing more,
so it can't be very good ;)

Programs like Crafty do about 700 knps on the same
hardware. ExChess (which has a similar design to
my engine) does about 250-350 knps.

I couldn't care less about the actual NPS value, but
I do seem to get outsearched sometimes, which is quite
annoying. Especially since my eval isn't of the most
sophisticated either. Makes me shiver about the idea
of adding some of the more expensive terms.

A simple explanation would be that I just suck at
programming and my program is slow. That would be
plausible, if it weren't for 2 facts:

a) with material only eval I do +- 300 knps
b) I 'perft' a few percents faster than crafty

I did a few more experiments (no SEE, futility pruning)
and I hardly go over about 350 knps. That's still
half the speed of crafty, with _everything_ enabled.

I'm baffled as to where all those NPS come from/disappear
to. The only area where Crafty would hold the advantage is
capture-only movegen.

My standard movegen does about 450 000 calls per second (testpos: LCT2 pos1).
Capture only makes that 600 000 calls per second. I could
see how crafty is faster here. (anyone care to test how
much?) However, I don't see how this could be enough to
compensate for the huge difference even without an eval
on my part! Crafty is _searching_ faster than I can generate

So, basically, where are all those NPS coming from?

You guys have a 'nodes <<= 2;' somewhere?


This page took 0.05 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.