Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Anyone ever considered using SSE or 3DNow! to get more NPS?

Author: Bo Persson

Date: 06:40:38 09/05/00

Go up one level in this thread


On September 03, 2000 at 22:03:55, Aaron Gordon wrote:

>Well, that I'm not too sure.. I started to try and program around 1990 but ended
>up getting into hardware more and it to me became more interesting. I'd like to
>now but it seems like such a time consuming process of learning a programming
>language and I wouldn't know where to start. I normally overclock, build
>super-cooling systems for computers & mess with networking. I'll try and run it
>by some people but I really don't think I'll find anything out.. was hoping
>maybe some of you guys could figure something out.

Well, some of us programming guys *have* tried to find any good use for the
processor extensions. It seems a total waste to have all this hardware, and not
use it.  :-)

However, no one seems to have found any useful tricks. At first glance, 64 bit
MMX instructions seem to be ideal for chess bitboard, but it really doesn't work
in practise.

The MMX extensions seem to be optimized for producing long bitstreams, like
video decoding or 3D games. Chess programs, on the other hand, tends to use only
a short sequence of bit operations, before it tests the result to determine if
it is any use to continue. The MMX operations, however, only produce bitmaps,
but do not set any testable flags.


>Also.. would there be any way
>to MAKE a chess engine do floating-point type stuff so SIMD instructions can be
>used? Like I said I don't know anything about programming so I'm just suggesting
>the only thing that comes to mind at this point. Anyway, any idea's are
>appreciated.

In a desperate :-) moment, I tried to use floating point in the evaluation
function. On later Intel processors FP multiplication is at least as fast as
usning integers and also runs in parallell. This would also free up integer
registers.

However, it didn't work out too well. The slight improvements in parallellism
was lost to the need to convert some integers (like piece counts, or number of
occupied squares) to float before you could use them.

The net result was well within the margin of error :-(


Bo Persson
bop@malmo.mail.telia.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.