Computer Chess Club Archives


Search

Terms

Messages

Subject: Writing a fast chess engine (was Re: MSVC++ 5.0 Profiler)

Author: Paul J. Messmer

Date: 12:48:29 08/06/99

Go up one level in this thread


On August 05, 1999 at 20:47:30, Ren Wu wrote:

>On August 05, 1999 at 17:11:12, Paul J. Messmer wrote:
>
>>
>>Okay, time to de-lurk I guess.  I've been working on a chess engine with the
>>idea of seeing how fast one can make it, and utilizing x86 assembly (MMX
>>technology in particular) where possible.
>
>Please let us know your speed when you done, i am interested in it very much.


It actually plays correctly now, and for fun I've been playing it against Psion
chess (an old favorite) which it now is seems to be a little better than.  I'm
still mucking around with a lot of stuff, and the search and the static eval
(the eval consumes most of the time) is still written in C.  On a single
processor PIII-600 I get around 400K nodes per second middlegame, in endgame
positions I can reach about 700K, which is nothing to write home about yet.  Who
knows how this will change over time, though.  There is much yet to be
optimized.

I had origially set out to make it as fast (NPS) as possible, and have the core
object code that takes 99% of the search time fit into the 16K L1 cache of a
PII/III.  As I've worked with it more though, I wonder if it couldn't be much
stronger in the end with a larger "working set" than 16K and fewer NPS.

I'm not a strong over-the-board or positional player, so I didn't want to try
and give it a ton of chess knowledge.  I want something which isn't "smart", but
rather fast, deep, and perhaps selective.  The AMD K7/Athlon processor I heard
has 64K code/64K data L1 cache, so maybe that processor will make my dilema a
moot point.

>I agree that vtune is a better product, but James is asking about using VC's
>profiler.
>
>I got 10% speed up when i used vtune first time, back to 1997, at C level. My
>program has not yet reached to the point that i have to use assembler to speed
>things up.
>
>Ren

I know he was asking about the VC profiler :), but my suggestion was based on
the unfortunate experience that it just might not be viable (maybe that's just
me, though?).  When I started using it I just kept looking at some of the
results and thinking hmmmmmm... this cannot be right.  Testing and then using
vtune proved this to be true.

My program isn't at the point where I should be using assembly to speed it up
either, undoubtedly :-)  But it is on of the big the "fun parts" that keeps me
interested.  At work I have to do things the right way the first time.  As a
hobby I can program bottom-up, assembly first and then a portable C version
later, and rewrite things five times until I like the way they all go together.

---
Paul J. Messmer
http://www.spootopia.com
messmer@netcom.com



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.