LOL +1 appreciate all the work you have done to help us get Mac chess engines!IanO wrote:I should have thought of that first, since I made that makefile.MikeB wrote:grab an earlier version gull 1.2 that was for the Mac and follow their suggested options.![]()
Gull 3 x64 Mac Results
Moderator: Ras
-
MikeB
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Gull 3 x64 Mac Updated Source
-
Dann Corbit
- Posts: 12885
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Gull 3 x64 Mac Results
I guess that the SMP code that will be borrowed is not from Crafty.MikeB wrote:Mac Native Gull 3 x64 is about 20 ELO point improvement Gull 3 32 bit running under wine. About what you would expect considering it's 64 bit , optimized for the Mac Pro as opposed to a 32 bit Windows app running under Wine. Really enjoy the playing style since it is different - not sure how to describe it, but its different. A very recent Stockfish went against the old Komodo 9.1, just validates that the top engines are not standing still waiting for others to catch up.Code: Select all
Rank Name Elo + - games score oppo. draws 1 Stockfish 100515 256 29 29 600 83% -43 27% 2 Komodo 9.1 64-bit 230 28 28 600 80% -38 28% 3 Gull 3 x64 Mac 88 26 26 600 61% -15 35% 4 Gull 3 x32 68 25 25 600 58% -11 35% 5 Crafty-25.0 -160 28 28 600 29% 27 24% 6 Scorpio_2.7.7 -226 30 30 600 22% 38 19% 7 Glaurung 2.2 -256 31 31 600 18% 43 20%
One item worthy for comment is that Crafty scored ~17% against Gull 3 x64 Mac in single core mode, but almost 34% or about double in 12 core mode. There is no doubt in my mind that once the latest SMP Crafty code is released , it will be hijacked to all the top chess programs - it is outstanding. Nobody has done SMP better in chess than what Bob has done in this latest update. And of course once everybody has it, it will have neutralizing effect if both have it and the engines who do not have it will suffer. Where the code really shines versus previous implementations is when you go over 8 cores say, 12, 16, 20 or more cores.
What's next:
Some code cleanup tonight. Mac native Gull x64 Mac played 600 flawlessly, no losses on time etc.
Need to fix time output since I found it better (easier) to simply port Crafty's code that gathers time ( not the time allocation or anything like that) then try to fix what Gull had for windows. Of course when doing that, I did not tinker with how Gull displays time , so that needs to be fixed.
Will add a bench command , since i find that useful for optimizing and it's pretty straightforward. May also timer with some of the commands to make it easier to do certain things when at the command line - not really sure why - when they made the uci protocol, they made it setoption "name" OPTION "value" XX - name and value seemed to be redundant to me. Why not set it up "setoption Option xx" and be done with it?
YBW and DTS are far more expensive than Lazy SMP.
The gain for a far more complicated algorithm is iffy at best.
Here are the largest Elo gains going from 1 CPU to 4 CPUs (for those engines that I examined gaining at least 100 Elo):
Deep Junior 13 x64 136
Zappa Mexico II x64 119
Naum 4.6 x64 119
Gull 3.0 x64 118
Nirvana Chess 2.0 x64 118
Stockfish 6.0 x64 114
Stockfish 4.0 x64 110
Deep Rybka 4.1 x64 110
Komodo TCEC x64 108
Shredder WM Edition Bonn 108
Komodo 9.2 x64 106
Stockfish DD x64 106
Chiron 2.0 x64 106
Deep Onno 1.2.70 x64 106
Stockfish 5.0 x64 105
Hannibal 1.5 x64 104
Stockfish 3.0 x64 104
Bright 0.4a 104
Critter 1.6 x64 103
Houdini 4.0 x64 103
Senpai 1.0 x64 100
-
Dann Corbit
- Posts: 12885
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Gull 3 x64 Mac Results
This is the raw data that I used:
Zappa Mexico II x64 4CPU 2825
Zappa Mexico II x64 1CPU 2706
Toga II 3.0 4CPU 2792
Toga II 3.0 1CPU 2700
Stockfish DD x64 4CPU 3199
Stockfish DD x64 1CPU 3093
Stockfish 6.0 x64 4CPU 3298
Stockfish 6.0 x64 1CPU 3184
Stockfish 5.0 x64 4CPU 3237
Stockfish 5.0 x64 1CPU 3132
Stockfish 4.0 x64 4CPU 3143
Stockfish 4.0 x64 1CPU 3033
Stockfish 3.0 x64 4CPU 3095
Stockfish 3.0 x64 1CPU 2991
Spike 1.4 4CPU 2868
Spike 1.4 1CPU 2778
Spark 1.0 x64 4CPU 2841
Spark 1.0 x64 1CPU 2760
Shredder WM Edition Bonn 4CPU 2810
Shredder WM Edition Bonn 1CPU 2702
Senpai 1.0 x64 4CPU 2941
Senpai 1.0 x64 1CPU 2841
Rybka 3 x64 4CPU 3002
Rybka 3 x64 1CPU 2920
Nirvana Chess 2.0 x64 4CPU 2942
Nirvana Chess 2.0 x64 1CPU 2824
Naum 4.6 x64 4CPU 3016
Naum 4.6 x64 1CPU 2897
Komodo TCEC x64 4CPU 3190
Komodo TCEC x64 1CPU 3082
Komodo 9.2 x64 4CPU 3324
Komodo 9.2 x64 1CPU 3218
Jonny 6.00 4CPU 2895
Jonny 6.00 1CPU 2814
Houdini 4.0 x64 4CPU 3212
Houdini 4.0 x64 1CPU 3109
Hiarcs 13.2 4CPU 2861
Hiarcs 13.2 1CPU 2765
Hannibal 1.5 x64 4CPU 3017
Hannibal 1.5 x64 1CPU 2913
Gull 3.0 x64 4CPU 3194
Gull 3.0 x64 1CPU 3076
Ginkgo 1.3 x64 4CPU 3085
Ginkgo 1.3 x64 1CPU 2995
Equinox 3.30 x64 4CPU 3110
Equinox 3.30 x64 1CPU 3017
Deep Sjeng WC 2008 x64 4CPU 2753
Deep Sjeng WC 2008 x64 1CPU 2665
Deep Shredder 12 x64 4CPU 2878
Deep Shredder 12 x64 1CPU 2800
Deep Rybka 4.1 x64 4CPU 3085
Deep Rybka 4.1 x64 1CPU 2975
Deep Onno 1.2.70 x64 4CPU 2780
Deep Onno 1.2.70 x64 1CPU 2674
Deep Junior 2010 x64 4CPU 2734
Deep Junior 2010 x64 1CPU 2645
Deep Junior 13 x64 4CPU 2892
Deep Junior 13 x64 1CPU 2756
Deep Fritz 14 x64 4CPU 3011
Deep Fritz 14 x64 1CPU 2912
Critter 1.6 x64 4CPU 3113
Critter 1.6 x64 1CPU 3010
Chiron 2.0 x64 4CPU 3017
Chiron 2.0 x64 1CPU 2911
Bright 0.4a 4CPU 2718
Bright 0.4a 1CPU 2614
Zappa Mexico II x64 4CPU 2825
Zappa Mexico II x64 1CPU 2706
Toga II 3.0 4CPU 2792
Toga II 3.0 1CPU 2700
Stockfish DD x64 4CPU 3199
Stockfish DD x64 1CPU 3093
Stockfish 6.0 x64 4CPU 3298
Stockfish 6.0 x64 1CPU 3184
Stockfish 5.0 x64 4CPU 3237
Stockfish 5.0 x64 1CPU 3132
Stockfish 4.0 x64 4CPU 3143
Stockfish 4.0 x64 1CPU 3033
Stockfish 3.0 x64 4CPU 3095
Stockfish 3.0 x64 1CPU 2991
Spike 1.4 4CPU 2868
Spike 1.4 1CPU 2778
Spark 1.0 x64 4CPU 2841
Spark 1.0 x64 1CPU 2760
Shredder WM Edition Bonn 4CPU 2810
Shredder WM Edition Bonn 1CPU 2702
Senpai 1.0 x64 4CPU 2941
Senpai 1.0 x64 1CPU 2841
Rybka 3 x64 4CPU 3002
Rybka 3 x64 1CPU 2920
Nirvana Chess 2.0 x64 4CPU 2942
Nirvana Chess 2.0 x64 1CPU 2824
Naum 4.6 x64 4CPU 3016
Naum 4.6 x64 1CPU 2897
Komodo TCEC x64 4CPU 3190
Komodo TCEC x64 1CPU 3082
Komodo 9.2 x64 4CPU 3324
Komodo 9.2 x64 1CPU 3218
Jonny 6.00 4CPU 2895
Jonny 6.00 1CPU 2814
Houdini 4.0 x64 4CPU 3212
Houdini 4.0 x64 1CPU 3109
Hiarcs 13.2 4CPU 2861
Hiarcs 13.2 1CPU 2765
Hannibal 1.5 x64 4CPU 3017
Hannibal 1.5 x64 1CPU 2913
Gull 3.0 x64 4CPU 3194
Gull 3.0 x64 1CPU 3076
Ginkgo 1.3 x64 4CPU 3085
Ginkgo 1.3 x64 1CPU 2995
Equinox 3.30 x64 4CPU 3110
Equinox 3.30 x64 1CPU 3017
Deep Sjeng WC 2008 x64 4CPU 2753
Deep Sjeng WC 2008 x64 1CPU 2665
Deep Shredder 12 x64 4CPU 2878
Deep Shredder 12 x64 1CPU 2800
Deep Rybka 4.1 x64 4CPU 3085
Deep Rybka 4.1 x64 1CPU 2975
Deep Onno 1.2.70 x64 4CPU 2780
Deep Onno 1.2.70 x64 1CPU 2674
Deep Junior 2010 x64 4CPU 2734
Deep Junior 2010 x64 1CPU 2645
Deep Junior 13 x64 4CPU 2892
Deep Junior 13 x64 1CPU 2756
Deep Fritz 14 x64 4CPU 3011
Deep Fritz 14 x64 1CPU 2912
Critter 1.6 x64 4CPU 3113
Critter 1.6 x64 1CPU 3010
Chiron 2.0 x64 4CPU 3017
Chiron 2.0 x64 1CPU 2911
Bright 0.4a 4CPU 2718
Bright 0.4a 1CPU 2614
-
MikeB
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Gull 3 x64 Mac Results
I forgot about Zappa - very good SMP and yes Stockfish does pretty good too. What Bob and I have found is what might work well at 4 CPU may or may not translate well at 20 CPU. Bob now has a 20 CPU box and Crafty does really well.
-
Dann Corbit
- Posts: 12885
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
Re: Gull 3 x64 Mac Results
I guess that it might be the best SMP version around.
But I also guess that it will be an enormous amount of work to duplicate the idea.
It will certainly be interesting to see how well it scales compared to the other methodologies.
But I also guess that it will be an enormous amount of work to duplicate the idea.
It will certainly be interesting to see how well it scales compared to the other methodologies.
-
basil00
- Posts: 55
- Joined: Thu Oct 22, 2015 2:14 am
Re: Gull 3 x64 Mac Results
I've added MACOSX support to my repository: https://github.com/basil00/Gull.
-
MikeB
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Gull 3 x64 Mac Results
Mac Makefile:basil00 wrote:I've added MACOSX support to my repository: https://github.com/basil00/Gull.
Code: Select all
# 10/31/2015
## M. Byrne
## Mac makefile
## command: "make -j gull"
CC=gcc
STRIP=strip
CFLAGS+=-pipe -flto --param l1-cache-size=32 --param l2-cache-size=256 -mtune=native -O3 -msse4.2 -mpopcnt -fno-exceptions -fno-rtti -w -Ofast -fprefetch-loop-arrays
#CFLAGS+=-fprofile-generate
#CFLAGS+=-fprofile-use
gull:
$(CC) $(CFLAGS) Gull.cpp -o Gull
$(STRIP) Gull
clean:
rm -f Gull -
IanO
- Posts: 504
- Joined: Wed Mar 08, 2006 9:45 pm
- Location: Portland, OR
Re: Gull 3 x64 Mac Updated Source
I found that Gull kept crashing with a divide-by-zero error within ten moves or so. I had to add this line to send_best_move() before calculating nps in order to complete a game:
I also find that the myriad of compile options is no faster than just -Ofast.
Code: Select all
if (time_used == 0) time_used = 1;
-
MikeB
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Gull 3 x64 Mac Updated Source
Saw that too - adding nps info with sending move triggered that. I'm gong have to check out -Ofast. What Mac Model do you have ?IanO wrote:I found that Gull kept crashing with a divide-by-zero error within ten moves or so. I had to add this line to send_best_move() before calculating nps in order to complete a game:I also find that the myriad of compile options is no faster than just -Ofast.Code: Select all
if (time_used == 0) time_used = 1;
-
IanO
- Posts: 504
- Joined: Wed Mar 08, 2006 9:45 pm
- Location: Portland, OR
Re: Gull 3 x64 Mac Updated Source
Core i7 (OS X 10.9.5, MacBookPro8,2). gcc --version gives "(clang-600.0.57)". I'm testing with default options, so Threads=4.MikeB wrote:Saw that too - adding nps info with sending move triggered that. I'm going have to check out -Ofast. What Mac Model do you have ?IanO wrote:I found that Gull kept crashing with a divide-by-zero error within ten moves or so. I had to add this line to send_best_move() before calculating nps in order to complete a game:I also find that the myriad of compile options is no faster than just -Ofast.Code: Select all
if (time_used == 0) time_used = 1;
The "Large" option looks like a no-op. Is that work in progress? You should remove that code from released source until it is ready.