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.