Computer Chess Club Archives


Search

Terms

Messages

Subject: Speed factors with 32 bit to 64 migration

Author: Steven Edwards

Date: 21:57:42 04/29/05


Moving a program from a 32 bit system to a 64 bit system does not by itself
guarantee a speed up:

1. If all pointers move from 32 to 64 bits, there may actually be a slow down
due to possibly increased memory traffic.  I would assume that the 64 bit
programming model will be 32 bit pointers with a combination of 32 bit and 64
bit integers.

2. In general, using 64 bit values instead of two 32 bit values will halve the
register allocation requirement.

3. All bitboard operations will speed up by a factor of two (at least).  Some
minor low level re-coding may be needed to help with this.

4. Bitboard operations that require 64 bit shifts or rotations will speed up by
(roughly) a factor of  four.

5. Arithmetic operations on 64 bit integers will likely see a speed doubling for
add/subtract and a quadrupling for multiply/divide.

6. For the assembly language diehard bitboard programmers with a PowerPC system,
it would be possible to reserve, say, about half of the 32 general purpose 64
bit registers for holding the most frequently accessed bitboard values of the
current position.  (Eg., Occupied, Sweeper, ColorLoc[2], AttackByColor[2],
PieceLoc[2][6].)  It might be worth the attempt if one thinks he can beat the
optimizer at its own game.

--------

From the start, Symbolic was targeted towards 64 bit systems: the toolkit uses
bitboards very extensively, there are numerous 64 bit counters, and every
integer and floating point value in the ChessLisp interpreter is 64 bits long.
I'm expecting a significant speed up, but actual figures will have to wait until
I can lay hands on a 64 bit machine.





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