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