Search found 474 matches

by Joost Buijs
Sat Aug 20, 2016 13:11
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

And here the link towards the dropbox folder containing the latest Perft(), including sources.

Bert

https://www.dropbox.com/sh/2stq4b20k64wcxx/AAC1Asa5wxWFUhmofY0dJyUNa?dl=0

Ok... I will compile it and let you know the results somewhat later. I believe you that raymask can be faster as magics ...
by Joost Buijs
Sat Aug 20, 2016 12:57
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft


Will have a look at the Damage GUI later, and will post a reply.
Bert

What I would like to know is what the various DXP buttons (Make, Wait, Run, Terminate) are doing.
I already saw that with 'Wait' it starts to wait for a connection and when I start an engine after this it does connect, but I ...
by Joost Buijs
Thu Aug 18, 2016 09:06
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

I also tried now the approach also used by Harm Jetten to detect first non-empty square in the main KingCapture detection routine.
Timing for the last Perft(9) position is now 7.40s, 7.44s, 7.43s and 7.43s.
See below code for the routine.
I guess some small optimizations are still possible.
As you ...
by Joost Buijs
Tue Aug 16, 2016 19:16
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft


To determine king captures I basically do the following: ((magic_mask_for_current_direction & opposite_pieces & ~edge_squares) >> current_direction) & empty_squares;
This gives you the first empty square after the opposite piece you are allowed to capture.
It is possible to generate another set of ...
by Joost Buijs
Tue Aug 16, 2016 18:46
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

Joost, think further optimization does not make sense, as the Movegenerator is already very fast.
As I want to make some changes to the overall architecture of Damage, I want to spent still somewhat time on the Movegenerator.
I still believe that the King Capture (even without Magic) can be faster ...
by Joost Buijs
Tue Aug 16, 2016 06:53
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

I have removed the KingMove Mapping in the capture routine.
It seems that The Perft(9) position 2 is around 8% - 9% faster.
8.51s -> 7.69s

But hope Joost can confirm, and hope i approach now his results.

See the link as I have updated the Dropbox.

Bert

https://www.dropbox.com/sh/9yx1f7z3x1q6163 ...
by Joost Buijs
Mon Aug 15, 2016 20:32
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

BertTuyt wrote: Which timing function did you use?
I might need another one :)
Bert
I use QueryPerformanceFrequency() and QueryPerformanceCounter().
by Joost Buijs
Mon Aug 15, 2016 19:28
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft


If you have your board class with bitboards for black, white and kings, then occupied == black ^ white. However, if you now define empty_squares == ~occupied, you have introduced 14 bits on the ghosts squares for empty_squares. This means that in patterns as opponent_pieces & (empty_squares << dir ...
by Joost Buijs
Mon Aug 15, 2016 16:09
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

I will post the Intel PGO results somewhat later, installing VS2015 update 3 broke something in the Intel VS2015 integration.
I tried with /QProf-gen and /QProf-use and that didn't work, I guess I have to repair or reinstall the Intel compiler.
Later...

Ok, here are the Intel results with PGO. It ...
by Joost Buijs
Mon Aug 15, 2016 15:45
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

These are the results for the Intel compiler without PGO.


Perft(1) N = 9 0.00 sec. KN/sec = 0
Perft(2) N = 81 0.00 sec. KN/sec = 0
Perft(3) N = 658 0.00 sec. KN/sec = 0
Perft(4) N = 4265 0.00 sec. KN/sec = 0
Perft(5) N = 27117 0.00 sec. KN/sec = 0
Perft(6) N = 167140 0.00 sec. KN/sec = 0
Perft(7 ...
by Joost Buijs
Mon Aug 15, 2016 15:34
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

Joost, thanks.
I would also like to see an as-is comparison.
So just run the executable on your (faster) computer, then I also better know , and can quantify what the effect of the Intel compiler is.
Bert

Bert,

These are the results for the MSVC compiler @ 3600MHz. I took the liberty to add 1 or ...
by Joost Buijs
Mon Aug 15, 2016 14:52
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft



Why do you need the edge_squares masking? If you have the "ghost" squares at each edge, then the opposite_pieces & (empty_squares << current_direction) would be the cheapest way to isolate all opposite pieces with an empty piece behind them.

To be honest, I never looked at it in very great ...
by Joost Buijs
Mon Aug 15, 2016 08:04
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft

Here the link to my Dropbox folder containing a Visual Studio 2015 Perft project (and Perft executable).
Including the Movegen source code.

Interesting what the Perft results are on a fast 4 Ghz machine and/or with better compiler optimization and/or Intel compiler.

Think it still could be faster ...
by Joost Buijs
Mon Aug 15, 2016 07:53
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft


To determine king captures I basically do the following: ((magic_mask_for_current_direction & opposite_pieces & ~edge_squares) >> current_direction) & empty_squares;
This gives you the first empty square after the opposite piece you are allowed to capture.


Why do you need the edge_squares ...
by Joost Buijs
Sun Aug 14, 2016 15:27
Forum: Draughts, Computer, Internet
Topic: Perft
Replies: 256
Views: 215808

Re: Perft


Yesterday ( = Saturday) I tried to debug the Magic code which I had started the weeks before.
It also now works (as the Perft numbers are the same), but for an unknown reason it is not faster.
I only use Magic for the King Moves, so not the King Capture detection (or alike).


It is possible that ...