Texel 1.06

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

Moderators: hgm, Rebel, chrisw

petero2
Posts: 688
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Texel 1.06

Post by petero2 »

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.
User avatar
Graham Banks
Posts: 41432
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Texel 1.06

Post by Graham Banks »

Thanks Peter. :)
gbanksnz at gmail.com
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Texel 1.06

Post by MikeB »

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.

Code: Select all

info nodes 14166332 nps 1351878 time 10479
bestmove e2e4 ponder c7c5
petero2
Posts: 688
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.06

Post by petero2 »

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
Thanks, your node count agrees with what I get.

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
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Texel 1.06

Post by cdani »

Thanks!! Nice improvements!!
Joerg Oster
Posts: 937
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany

Re: Texel 1.06

Post by Joerg Oster »

Thank you, Peter. Nice progress.
Jörg Oster
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Texel 1.06

Post by MikeB »

petero2 wrote:
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
Thanks, your node count agrees with what I get.

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
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.
mar
Posts: 2555
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Texel 1.06

Post by mar »

Congratulations Peter and good luck with the new version, hoping that the improvements will hold against other opponents.
petero2
Posts: 688
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.06

Post by petero2 »

MikeB wrote:
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
Those flags were set , had to drop -DHAS_CTZ, my complier, gcc 4.8, didn't like that option , but the others were fine.
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.

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.
Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Texel 1.06

Post by Frank Quisinsky »

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