Version 1.06 of my chess engine Texel is now available for download from http://dl.dropboxusercontent.com/u/89684995/texel106.7z
This version contains the following features:
- Support for polyglot opening books.
- A tool to automatically compute an opening book.
- An automatically computed polyglot opening book.
- Corrected handling of the 50 move draw rule and the halfmove clock when using tablebases.
- Source code for tools and automatic tests included.
The following executables are included in the download package:
texel64.exe : For 64-bit Windows 7 or later Intel systems with SSE42 and POPCOUNT.
texel64amd.exe : For 64-bit Windows systems with SSE42 and POPCOUNT.
texel64old.exe : For 64-bit Windows systems without SSE42 and POPCOUNT.
texel64 : For 64-bit Linux Intel systems with SSE42 and POPCOUNT.
texel-arm64 : For the Android armv8-a 64-bit architecture.
texel-arm : For the Android armv7-a architecture.
texel32.exe : For 32-bit Windows systems with SSE42 and POPCOUNT.
texel32old.exe : For 32-bit Windows systems without SSE42 and POPCOUNT.
For more Android executables see the "Texel Chess Engine" app in the Google Play Store.
The Linux executable requires a fairly recent 64-bit Linux distribution to run. To compile your own Linux version see the readme.txt file.
Texel 1.06 is around 40-50 elo stronger than Texel 1.05 in self play at very fast time controls.
Detailed list of changes:
Search:
- Don't use ply-2 killers for move ordering.
- Be more restrictive when extending losing (SEE<0) checks.
- Don't do check extensions for moves that are reduced by LMR.
- Don't do singular extensions if the unextended score is a mate score.
- Don't do LMR for the first 2 pseudo-legal moves.
- More aggressive LMR.
- More aggressive null move searches.
- Don't resolve a known loss score bound if there are other moves that are potentially not losing.
Parallel search:
- Allow a helper thread that fails high to interrupt the master thread.
- Changed MIN_SPLIT_DEPTH from 10 to 7 to make better use of multiple threads in short time control games.
- Changed maximum number of search threads to 512.
- Added support for windows NUMA systems having more than 64 cores.
Evaluation:
- Evaluation term to encourage "pawn breaks".
- Bonus for "latent" pawn attacks on enemy minor and major pieces.
- Bonus for safe queen contact checks.
- Only treat pawns on rank 2 and 3 as backwards pawns.
- King safety bonus for pieces (except bishops) on the same side of the board as the king.
- Parameter tuning.
Endgame:
- More patterns for fortress detection in bishop endings.
- On-demand tablebase generation for 4-men pawn-less positions.
- Knowledge about KRKBNN endgame, which is generally a draw.
- Better evaluation of KRBNKRB endgame.
- Larger evaluation score in KRRMKRR endgames
- Improved 50 move draw handling for TB probes.
Speed:
- Reduced TB probe overhead.
- Implemented a small (512KB) per-thread evaluation hash table.
- Removed support for fractional depth.
- Made the transposition table 4-way set associative.
Other:
- Removed "64-bit" from the engine name. 64 bit is now considered standard.
- UCI option to disable null moves.
- Made "BufferTime" a UCI parameter to control time handling safety margin.
- Don't start a new search iteration if it is unlikely that it can finish before the allocated thinking time is up.
- In analysis mode, don't age transposition table entries when starting a new search.
Texel 1.06
Moderators: hgm, Rebel, chrisw
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
-
- Posts: 41432
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Texel 1.06
That you Peter.
Here's a Mac Exe for your collection.
https://www.dropbox.com/s/xtpmd96sq0kv3 ... 4.zip?dl=1
Pseudo bench - go depth 18.
Here's a Mac Exe for your collection.
https://www.dropbox.com/s/xtpmd96sq0kv3 ... 4.zip?dl=1
Pseudo bench - go depth 18.
Code: Select all
info nodes 14166332 nps 1351878 time 10479
bestmove e2e4 ponder c7c5
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
Re: Texel 1.06
Thanks, your node count agrees with what I get.MikeB wrote:Here's a Mac Exe for your collection.
https://www.dropbox.com/s/xtpmd96sq0kv3 ... 4.zip?dl=1
Pseudo bench - go depth 18.
Code: Select all
info nodes 14166332 nps 1351878 time 10479 bestmove e2e4 ponder c7c5
If you have not done so already I think it should be possible to use "make texel64" on OSX to compile a popcount optimized version of texel. Or manually add the following compiler flags if you are not using the makefile:
Code: Select all
-march=corei7 -DHAS_CTZ -DHAS_POPCNT -DHAS_PREFETCH
-
- Posts: 2204
- Joined: Sat Jan 18, 2014 10:24 am
- Location: Andorra
-
- Posts: 937
- Joined: Fri Mar 10, 2006 4:29 pm
- Location: Germany
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Texel 1.06
Those flags were set , had to drop -DHAS_CTZ, my complier, gcc 4.8, didn't like that option , but the others were fine. Created a pgo build, but the gain was not that great from the straight build. Maybe 20K extra nps.petero2 wrote:Thanks, your node count agrees with what I get.MikeB wrote:Here's a Mac Exe for your collection.
https://www.dropbox.com/s/xtpmd96sq0kv3 ... 4.zip?dl=1
Pseudo bench - go depth 18.
Code: Select all
info nodes 14166332 nps 1351878 time 10479 bestmove e2e4 ponder c7c5
If you have not done so already I think it should be possible to use "make texel64" on OSX to compile a popcount optimized version of texel. Or manually add the following compiler flags if you are not using the makefile:Code: Select all
-march=corei7 -DHAS_CTZ -DHAS_POPCNT -DHAS_PREFETCH
-
- Posts: 2555
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Texel 1.06
Congratulations Peter and good luck with the new version, hoping that the improvements will hold against other opponents.
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
Re: Texel 1.06
I see. I did not realize at first that the binary was compressed, so when I did not see the POPCNT opcode in the hexdump I incorrectly thought it was compiled without POPCNT support.MikeB wrote:Those flags were set , had to drop -DHAS_CTZ, my complier, gcc 4.8, didn't like that option , but the others were fine.petero2 wrote:If you have not done so already I think it should be possible to use "make texel64" on OSX to compile a popcount optimized version of texel. Or manually add the following compiler flags if you are not using the makefile:Code: Select all
-march=corei7 -DHAS_CTZ -DHAS_POPCNT -DHAS_PREFETCH
I am surprised that -DHAS_CTZ did not work. I thought that had been available in gcc for a long time. The oldest gcc I have access to is 4.8.3 for linux, which does have the __builtin_ctzl() and __builtin_ctzll() intrinsics.
-
- Posts: 6808
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
Re: Texel 1.06
Hi Peter,
thanks for the final version and for the great documentation.
Will be start a.s.a.p. in my rating list.
Best
Frank
thanks for the final version and for the great documentation.
Will be start a.s.a.p. in my rating list.
Best
Frank