I have managed to compile my engine in 64 bit. I don't have a 64 bit system to test it so I have a couple of questions to the experts on this matter.
My engine is bitboard based and my tester noticed a speed increase of only 37% compared to the 32 bit version. Is this speed-up normal? His machine is an Athlon X2 3600+ running XP 64 bit.
typedef unsigned long long u64;
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;
typedef signed long long s64;
typedef signed int s32;
typedef signed short s16;
typedef signed char s8;
Is the code above correct? Or I need to revise it for the 64 bit compile? The compile seems to work with that code above.
The 64-bit speed-up varies quite a bit based on the engine.
Crafty gains about 50%, IIRC.
Tinker, which is bitboard, but less so than Crafty, only about 25%.
Your results seem to be well within an expected range.
I will try to finish the tests first on the settings and I will try to add Chess 960 support before I will release a new version. If you want, just send me an e-mail and I will send you the latest beta including the 64 bit version.
Edsel Apostol wrote:I think there are engines that has a speed-up of more than 50% but I couldn't remember the results posted here before. Maybe Glaurung and Rybka does.
I think you should be rather satisfied with a 37% speedup from a simple recompile!
If you do some tuning for the 64 bit version, I am sure you can also reach 50% and beyond. Some things that a relatively expensive in 32 bit mode are now cheaper, and can be used in 64 bit mode. That would affect your nps, if you try it out.