Gull 3 x64 Mac Results

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
MikeB
Posts: 2522
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Gull 3 x64 Mac Results

Post by MikeB » Fri Oct 30, 2015 12:08 am

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% 
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.

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?

User avatar
MikeB
Posts: 2522
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Gull 3 x64 Mac Results

Post by MikeB » Fri Oct 30, 2015 12:27 am

Late Edit:

Just to clarify "Nobody has done SMP better in chess than what Bob" - this is my belief - it is not fact...yet. Up until this point - the two engines with the best SMP implementation, for say 12 or more cores, have been Deep Junior and Deep Rybka. Somebody could challenge me on that - but you would have to prove it. The best SMP implementations are those that gain more than 100 ELO points going from SINGLE CPU version to 4CPU version on CCRL.

basil00
Posts: 55
Joined: Thu Oct 22, 2015 12:14 am

Re: Gull 3 x64 Mac Results

Post by basil00 » Fri Oct 30, 2015 12:40 am

MikeB wrote:What's next: Some code cleanup tonight.
Once you are happy with it, please make your code available and I'll merge it into the repository.

I'm planning to work on syzygy for Gull (but do it properly this time). It requires me to complete a mini-project first however.

JoshPettus
Posts: 730
Joined: Fri Oct 19, 2012 12:23 am

Re: Gull 3 x64 Mac Results

Post by JoshPettus » Fri Oct 30, 2015 4:08 am

How about compared to the windows 64bit version under wine64? I thought you saw that thread? If not here is my pre-compiled wine engine you can use. Just execute it as whatever/dir/wswine.bundle/bin/wine whatever/dir/gull64.exe

http://www.mediafire.com/download/caym7 ... .52.tar.7z

User avatar
MikeB
Posts: 2522
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Gull 3 x64 Mac Updated Source

Post by MikeB » Fri Oct 30, 2015 7:12 am

Ok - here it is. Link will auto download once clicked.

https://www.dropbox.com/s/9m7dq0tsdoql0 ... c.zip?dl=1

Code: Select all

High Level Summary:

Much better behaving on exiting when quitting xboard.
Shows time used (in ms) on the command line and in xboard.
Added shortcut command line tools.  Of course you can still use the the full flavored uci commands:

UCI:  setoption name  Threads value 12
Shortcut:  so mt 12

UCI:   go depth 20
Shortcut: go sd 20

UCI:  go movetime 60
shortcut: go st 60 

and you can also substitute "so" for "setoption" with any of the other setoption type commands.

"q" will also exit the program (same as "quit")

"?"  will stop the engine from thinking and output the move (same as "stop")

Move output will also show: timed used, nodes, nps and pv.

Will work on a bench and auto pgo next.

All my changes should be Unix/Linux compatible.

User avatar
MikeB
Posts: 2522
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Gull 3 x64 Mac Results

Post by MikeB » Fri Oct 30, 2015 7:34 am

JoshPettus wrote:How about compared to the windows 64bit version under wine64? I thought you saw that thread? If not here is my pre-compiled wine engine you can use. Just execute it as whatever/dir/wswine.bundle/bin/wine whatever/dir/gull64.exe

http://www.mediafire.com/download/caym7 ... .52.tar.7z
Just tried it - could not get it work. Not real keen on having a 300MB app for chess program. iI believe the issue is that I already have the 32 bit flavor wine installed. Appreciate the offer, will pass for now.

IanO
Posts: 450
Joined: Wed Mar 08, 2006 8:45 pm
Location: Portland, OR
Contact:

Re: Gull 3 x64 Mac Updated Source

Post by IanO » Fri Oct 30, 2015 5:11 pm

Is there a makefile that is supposed to go with this? I get errors about missing POPCNT and MAP_ANONYMOUS when trying to compile it. Lots of warnings, too: assignments in conditionals, bad sprintf formats for 64-bit ints, string literals to char *. Also including Linux.cpp from Gull.cpp is bad style.

User avatar
MikeB
Posts: 2522
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Gull 3 x64 Mac Updated Source

Post by MikeB » Fri Oct 30, 2015 5:24 pm

IanO wrote:Is there a makefile that is supposed to go with this? Is Linux.cpp needed on Mac? I get errors about missing POPCNT, sint64, hash_size, Gentry, etc. when trying to compile it.
Not yet, but i will put one together. Not at home and computer is shut off - but from memory try something like this on the command line from where the sources are : g++ -03 -msse4.1 gull.cpp linux.cpp -o gull

If that does not work , grab an earlier version gull 1.2 that was for the Mac and follow their suggested options . Yes linux.cpp and linux.h are needed . Just need to make sure linux.h is in the same directory. Will be home in 6-7 hours and throw a makefile together tonight with pgo. I'm on El Capitan using gcc 4.7. None of the other gcc versions are working under El Capitan. Icc is also broken under El Capitan. In theory clang should work but I prefer gcc .

Max
Posts: 171
Joined: Tue Apr 13, 2010 8:41 am

Re: Gull 3 x64 Mac Updated Source

Post by Max » Fri Oct 30, 2015 5:54 pm

IanO wrote:Is there a makefile that is supposed to go with this? I get errors about missing POPCNT and MAP_ANONYMOUS when trying to compile it. Lots of warnings, too: assignments in conditionals, bad sprintf formats for 64-bit ints, string literals to char *. Also including Linux.cpp from Gull.cpp is bad style.
Changed MAP_ANONYMOUS to MAP_ANON (2 times in Linux.cpp) and source compiles with clang and gcc.

Code: Select all

g++ Gull.cpp -o gull-3 -O3 -mpopcnt
The nodes and nps with one thread, searching to depth 16 from start position on my Macbook:

Code: Select all

./gull-3
so mt 1
go sd 16
g++ 4.9:
info currmove c2c4 currmovenumber 5
info score cp 22 time 8254 nodes 15530173 nps 1881532 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 f1d3 f8e7 b1c3 b8c6 e1g1 e8g8 f1e1 c8g4
bestmove e2e4 ponder e7e6

clang 6.0:
info currmove e2e4 currmovenumber 1
info score cp 22 time 9472 nodes 15530173 nps 1639587 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 f1d3 f8e7 b1c3 b8c6 e1g1 e8g8 f1e1 c8g4
bestmove e2e4 ponder e7e6

-Max
Hope we're not just the biological boot loader for digital super intelligence. Unfortunately, that is increasingly probable - Elon Musk

IanO
Posts: 450
Joined: Wed Mar 08, 2006 8:45 pm
Location: Portland, OR
Contact:

Re: Gull 3 x64 Mac Updated Source

Post by IanO » Fri Oct 30, 2015 7:17 pm

MikeB wrote:grab an earlier version gull 1.2 that was for the Mac and follow their suggested options.
I should have thought of that first, since I made that makefile. ;)
Max wrote:
IanO wrote:Is there a makefile that is supposed to go with this? I get errors about missing POPCNT and MAP_ANONYMOUS when trying to compile it. Lots of warnings, too: assignments in conditionals, bad sprintf formats for 64-bit ints, string literals to char *. Also including Linux.cpp from Gull.cpp is bad style.
Changed MAP_ANONYMOUS to MAP_ANON (2 times in Linux.cpp) and source compiles with clang and gcc.

Code: Select all

g++ Gull.cpp -o gull-3 -O3 -mpopcnt
Wonderful! Now when I compile I get matching results. I also added -Wno-parentheses to cut down most of the warnings.

I'll be matching Gull 3 against the other strong Mac engines (Komodo, Stockfish, Critter, Ivanhoe, Hiarcs) to see how it measures up.
The nodes and nps with one thread, searching to depth 16 from start position on my Macbook:

Code: Select all

./gull-3
so mt 1
go sd 16
g++ 4.9:
info currmove c2c4 currmovenumber 5
info score cp 22 time 8254 nodes 15530173 nps 1881532 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 f1d3 f8e7 b1c3 b8c6 e1g1 e8g8 f1e1 c8g4
bestmove e2e4 ponder e7e6

clang 6.0:
info currmove e2e4 currmovenumber 1
info score cp 22 time 9472 nodes 15530173 nps 1639587 pv e2e4 e7e6 d2d4 d7d5 e4d5 e6d5 g1f3 g8f6 f1d3 f8e7 b1c3 b8c6 e1g1 e8g8 f1e1 c8g4
bestmove e2e4 ponder e7e6

-Max

Post Reply