I benchmarked a few chess engines on my iPod Touch (412 MHz ARM) and my iMac (2.8 GHz Core 2 Duo). On the Core 2 Duo, all programs were using a single core. The table below shows the ratios (nps on Core 2 Duo) / (nps on ARM) for the programs I tested:
Code: Select all
Phalanx XXII: 29.11
Fruit 2.2: 42.1
Glaurung 1.2.1: 42.7
Strelka 2.0B: 85.7
Glaurung 2.2 magic: 91.4
Glaurung 2.2 hq: 122.0
It seems clear that bitboards of all flavors (Strelka uses rotated bitboards) are highly inefficient on the ARM, at least with the currently most popular techniques. It's probably time to develop a non-bitboard version of Glaurung 2...
If somebody has any other open-source programs they want to see benchmarked, I am happy to do the test, as long as the program can be compiled for the ARM without too many changes. In particular, the program should compile cleanly on modern Unix systems, and not use any x86 assembly language except for bitscanning or reversal of the order of bytes in a word (I already have ARM assembly language equivalents for those).
Hyperbola quintessence is a lot simpler and more elegant than magic multiplication, by the way. It also seems to perform just as well as magic multiplication in 64-bit mode on the Core 2 Duo. Unfortunately, magic multiplication is still a lot faster in 32-bit mode.
Tord