amoeba, a chess engine written in D
Richard Delorme via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sat May 21 09:25:27 PDT 2016
On Saturday, 21 May 2016 at 08:23:59 UTC, Johan Engelen wrote:
> On Friday, 20 May 2016 at 23:16:01 UTC, Richard Delorme wrote:
>>
>> The source can be compiled with dmd, ldc or gdc, but the best
>> performance are obtained with the latter (almost twice faster).
>
> Can you give cmdline details and compiler version data for
> this? (how much faster is gdc relative to ldc?)
I used the following compiler versions,
dmd: DMD64 D Compiler v2.071.0
ldc: 0.17.0-beta2 (DMD v2.068.2, LLVM 3.7.1)
gdc: gcc version 5.2.0 (crosstool-NG 203be35 -
20160205-2.066.1-e95a735b97)
to compile, you can use the following commands:
$ DC=ldc2 make amoeba (to compile with ldc)
$ DC=dmd make amoeba (to compile with dmd)
$ DC=gdc make amoeba (to compile with gdc)
$ make amoeba (use gdc by default)
$ make pgo (for profile guided optimization),
$ make pgo BUILD=popcount (to use the CPU popcnt instruction)
With the above versions & my poor knowledge of the compilers, pgo
& BUILD=popcount only worked with gdc. I will try to upgrade to
more recent versions to see if things changed.
to test the speed , you can do:
amoeba bench -f bk.epd -d 14
Here is what I get on my computer (an old i7 2600k at 4Ghz):
dmd: 24 positions 29981105 nodes in 20.000s : 1499024 nps,
depth = 13.71
ldc2: 24 positions 29981105 nodes in 18.340s : 1634711 nps,
depth = 13.71
gdc: 24 positions 29981105 nodes in 12.005s : 2497388 nps,
depth = 13.71
gdc+pgo: 24 positions 29981105 nodes in 10.224s : 2932328 nps,
depth = 13.71
* gdc used the BUILD=popcount options. without, it is slower,
doing the test in 15.4. & 13.6 s., respectively for gdc & gdc +
pgo. So gdc benefits a lot from both pgo and using the popcnt
instruction.
--
Richard
More information about the Digitalmars-d-announce
mailing list