Koivisto 3.0 (Including binaries)

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

Moderators: Harvey Williamson, bob, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Koivisto
Posts: 10
Joined: Fri Sep 04, 2020 8:30 pm
Full name: Kim Kahre

Koivisto 3.0 (Including binaries)

Post by Koivisto » Sat Oct 17, 2020 7:28 pm

Koivisto 3.0

We released 2.0 over a month ago, and it is finally time for another release :). In addition to all the elo gainers, we have also fixed a couple bugs related to hash table usage and principal variation printing, so Koivisto should be a much better analysis tool now.

Our testing has shown considerable elo gain over Koivisto 2.0:

Code: Select all

ELO   | 175.73 +- 33.35 (95%)
SPRT  | 60.0+0.6s Threads=1 Hash=64MB
LLR   | 3.03 (-2.94, 2.94) [0.00, 5.00]
Games | N: 300 W: 163 L: 23 D: 114
Changes:
- Added Eugenio Bruno as an author
- changed singular extension conditions
- adjusted null move pruning conditions
- adjusted lmp counts
- limit threads depending on hardware
- full formatting
- Added aspiration windows
- Added simple tempo bonus
- Adjust lmr depending on countermove history
- Adjust lmr conditions
- Added castling rights eval term
- Added blocked pawn eval term
- Added passer rank eval term
- Changed check extension conditions
- Added draw evaluation (no mating material)
- Linearised evaluation functions
- changed futility pruning conditions
- no more floats in eval (mostly)
- Bugfixes

Release:
https://github.com/Luecx/Koivisto/releases/tag/v3.0

Note that we strongly recommend that you build the binaries yourself for best performance (https://github.com/Luecx/Koivisto#compiling)

We have received immense help from other community members/engine authors and they deserve a shoutout:
- Andrew Grant https://github.com/AndyGrant/Ethereal
- Mk-Chan https://github.com/Mk-Chan
- Terje Kirstihagen https://github.com/TerjeKir
- kz04px https://github.com/kz04px
- bobsquared https://github.com/bobsquared/Mr_Bob_Chess

We enjoyed seeing Koivisto 1.0 on CCRL's rating list, and we'd really like to see how our new release stacks up against the other engines, especially in multiple thread configurations. We estimate Koivisto 3.0 1cpu to be rated above 3000 elo cclr, but we haven't done enough testing to be very accurate.

Previous release thread:
http://talkchess.com/forum3/viewtopic.php?f=2&t=75052

User avatar
CMCanavessi
Posts: 906
Joined: Thu Dec 28, 2017 3:06 pm
Location: Argentina

Re: Koivisto 3.0 (Including binaries)

Post by CMCanavessi » Sun Oct 18, 2020 1:56 am

Nice! I will surely test it in my leagues. Do you have plans to add ponder? I run my games with ponder on and engines without ponder are at a slight disadvantage.
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls

Koivisto
Posts: 10
Joined: Fri Sep 04, 2020 8:30 pm
Full name: Kim Kahre

Re: Koivisto 3.0 (Including binaries)

Post by Koivisto » Sun Oct 18, 2020 8:35 am

CMCanavessi wrote:
Sun Oct 18, 2020 1:56 am
Nice! I will surely test it in my leagues. Do you have plans to add ponder? I run my games with ponder on and engines without ponder are at a slight disadvantage.
Well for sure add pondering eventually, idk when tho.

Gabor Szots
Posts: 623
Joined: Sat Jul 21, 2018 5:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Koivisto 3.0 (Including binaries)

Post by Gabor Szots » Sun Oct 18, 2020 9:55 am

For me the source code compiles as Koivisto 0.0...
Gabor Szots
CCRL testing group

Luecx
Posts: 23
Joined: Thu Jun 18, 2020 7:20 pm
Full name: Finn Eggers

Re: Koivisto 3.0 (Including binaries)

Post by Luecx » Sun Oct 18, 2020 11:22 am

Gabor Szots wrote:
Sun Oct 18, 2020 9:55 am
For me the source code compiles as Koivisto 0.0...
It compiles as Koivisto 0.0 if cmake is used and not the makefile.
We prefer tto use the makefile. We havent worked on the cmakelists.txt for a while.

Gabor Szots
Posts: 623
Joined: Sat Jul 21, 2018 5:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Koivisto 3.0 (Including binaries)

Post by Gabor Szots » Sun Oct 18, 2020 12:00 pm

Luecx wrote:
Sun Oct 18, 2020 11:22 am
Gabor Szots wrote:
Sun Oct 18, 2020 9:55 am
For me the source code compiles as Koivisto 0.0...
It compiles as Koivisto 0.0 if cmake is used and not the makefile.
We prefer tto use the makefile. We havent worked on the cmakelists.txt for a while.
The makefile does not work for me. I get these error messages:
eval.cpp: In member function 'bb::Score Evaluator::evaluate(Board*)':
eval.cpp:765:15: warning: declaration of 'hangingEval' shadows a global declaration [-Wshadow]
765 | EvalScore hangingEval = computeHangingPieces(b);
| ^~~~~~~~~~~
eval.cpp:165:11: note: shadowed declaration is here
165 | EvalScore hangingEval[5]{
| ^~~~~~~~~~~
eval.cpp:766:15: warning: declaration of 'pinnedEval' shadows a global declaration [-Wshadow]
766 | EvalScore pinnedEval = computePinnedPieces(b);
| ^~~~~~~~~~
eval.cpp:173:11: note: shadowed declaration is here
173 | EvalScore pinnedEval[15]{
| ^~~~~~~~~~
eval.cpp:422:11: warning: unused variable 'earlyPSTScalar' [-Wunused-variable]
422 | float earlyPSTScalar = earlyWeightScalar / 100;
| ^~~~~~~~~~~~~~
eval.cpp:423:11: warning: unused variable 'latePSTScalar' [-Wunused-variable]
423 | float latePSTScalar = lateWeightScalar / 100;
| ^~~~~~~~~~~~~
eval.cpp: In member function 'float* Evaluator::getPSQT(bb::Piece, bool)':
eval.cpp:938:45: warning: unused parameter 'early' [-Wunused-parameter]
938 | float* Evaluator::getPSQT(Piece piece, bool early) {
| ~~~~~^~~~~
search.cpp: In function 'bb::Score pvSearch(Board*, bb::Score, bb::Score, bb::Depth, bb::Depth, ThreadData*, move::Move)':
search.cpp:718:30: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
718 | || isCapture(m) && staticExchangeEval >= 0
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:719:29: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
719 | || isPromotion && (promotionPiece(m) % 6 == QUEEN)
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot open output file ../bin/Koivisto_2.2: No such file or directory
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [makefile:26: openbench] Error 1
Gabor Szots
CCRL testing group

Luecx
Posts: 23
Joined: Thu Jun 18, 2020 7:20 pm
Full name: Finn Eggers

Re: Koivisto 3.0 (Including binaries)

Post by Luecx » Sun Oct 18, 2020 12:06 pm

Gabor Szots wrote:
Sun Oct 18, 2020 12:00 pm
Luecx wrote:
Sun Oct 18, 2020 11:22 am
Gabor Szots wrote:
Sun Oct 18, 2020 9:55 am
For me the source code compiles as Koivisto 0.0...
It compiles as Koivisto 0.0 if cmake is used and not the makefile.
We prefer tto use the makefile. We havent worked on the cmakelists.txt for a while.
The makefile does not work for me. I get these error messages:
eval.cpp: In member function 'bb::Score Evaluator::evaluate(Board*)':
eval.cpp:765:15: warning: declaration of 'hangingEval' shadows a global declaration [-Wshadow]
765 | EvalScore hangingEval = computeHangingPieces(b);
| ^~~~~~~~~~~
eval.cpp:165:11: note: shadowed declaration is here
165 | EvalScore hangingEval[5]{
| ^~~~~~~~~~~
eval.cpp:766:15: warning: declaration of 'pinnedEval' shadows a global declaration [-Wshadow]
766 | EvalScore pinnedEval = computePinnedPieces(b);
| ^~~~~~~~~~
eval.cpp:173:11: note: shadowed declaration is here
173 | EvalScore pinnedEval[15]{
| ^~~~~~~~~~
eval.cpp:422:11: warning: unused variable 'earlyPSTScalar' [-Wunused-variable]
422 | float earlyPSTScalar = earlyWeightScalar / 100;
| ^~~~~~~~~~~~~~
eval.cpp:423:11: warning: unused variable 'latePSTScalar' [-Wunused-variable]
423 | float latePSTScalar = lateWeightScalar / 100;
| ^~~~~~~~~~~~~
eval.cpp: In member function 'float* Evaluator::getPSQT(bb::Piece, bool)':
eval.cpp:938:45: warning: unused parameter 'early' [-Wunused-parameter]
938 | float* Evaluator::getPSQT(Piece piece, bool early) {
| ~~~~~^~~~~
search.cpp: In function 'bb::Score pvSearch(Board*, bb::Score, bb::Score, bb::Depth, bb::Depth, ThreadData*, move::Move)':
search.cpp:718:30: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
718 | || isCapture(m) && staticExchangeEval >= 0
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
search.cpp:719:29: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
719 | || isPromotion && (promotionPiece(m) % 6 == QUEEN)
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot open output file ../bin/Koivisto_2.2: No such file or directory
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [makefile:26: openbench] Error 1

Hi Gabor,
sorry it's a bit confusing, but we added building instructions to the readme. The error you're getting is due to no bin folder present. To build:

git clone https://github.com/Luecx/Koivisto.git
cd Koivisto/

mkdir bin/
cd src_files
make native


As you can see we manually do the mkdir bin for now, though in the future we should probably move that to the makefile.

Thanks for your help with testing.

Gabor Szots
Posts: 623
Joined: Sat Jul 21, 2018 5:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Koivisto 3.0 (Including binaries)

Post by Gabor Szots » Sun Oct 18, 2020 12:16 pm

Luecx wrote:
Sun Oct 18, 2020 12:06 pm
Hi Gabor,
sorry it's a bit confusing, but we added building instructions to the readme. The error you're getting is due to no bin folder present. To build:

git clone https://github.com/Luecx/Koivisto.git
cd Koivisto/

mkdir bin/
cd src_files
make native


As you can see we manually do the mkdir bin for now, though in the future we should probably move that to the makefile.

Thanks for your help with testing.
Hi Finn,

Placing a bin folder outside of the sources did help, only the created file displays Koivisto 2.2. And I had to extend it to ...exe manually.
Gabor Szots
CCRL testing group

Luecx
Posts: 23
Joined: Thu Jun 18, 2020 7:20 pm
Full name: Finn Eggers

Re: Koivisto 3.0 (Including binaries)

Post by Luecx » Sun Oct 18, 2020 12:47 pm

Gabor Szots wrote:
Sun Oct 18, 2020 12:16 pm
Luecx wrote:
Sun Oct 18, 2020 12:06 pm
Hi Gabor,
sorry it's a bit confusing, but we added building instructions to the readme. The error you're getting is due to no bin folder present. To build:

git clone https://github.com/Luecx/Koivisto.git
cd Koivisto/

mkdir bin/
cd src_files
make native


As you can see we manually do the mkdir bin for now, though in the future we should probably move that to the makefile.

Thanks for your help with testing.
Hi Finn,

Placing a bin folder outside of the sources did help, only the created file displays Koivisto 2.2. And I had to extend it to ...exe manually.
Hi Gabor,
Thanks again for all the help testing the build process. It seems like we based the release on the wrong commit, before we updated the makefile to correctly show the version. We fixed the release to point to the right commit, with tag 3.0.1. You can try building from master or from this new tag. Thanks for your patience! Hopefully our next release will go smoother.

Gabor Szots
Posts: 623
Joined: Sat Jul 21, 2018 5:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Koivisto 3.0 (Including binaries)

Post by Gabor Szots » Sun Oct 18, 2020 12:51 pm

Luecx wrote:
Sun Oct 18, 2020 12:47 pm
Gabor Szots wrote:
Sun Oct 18, 2020 12:16 pm
Luecx wrote:
Sun Oct 18, 2020 12:06 pm
Hi Gabor,
sorry it's a bit confusing, but we added building instructions to the readme. The error you're getting is due to no bin folder present. To build:

git clone https://github.com/Luecx/Koivisto.git
cd Koivisto/

mkdir bin/
cd src_files
make native


As you can see we manually do the mkdir bin for now, though in the future we should probably move that to the makefile.

Thanks for your help with testing.
Hi Finn,

Placing a bin folder outside of the sources did help, only the created file displays Koivisto 2.2. And I had to extend it to ...exe manually.
Hi Gabor,
Thanks again for all the help testing the build process. It seems like we based the release on the wrong commit, before we updated the makefile to correctly show the version. We fixed the release to point to the right commit, with tag 3.0.1. You can try building from master or from this new tag. Thanks for your patience! Hopefully our next release will go smoother.
Latest release still points to v2.0.
Gabor Szots
CCRL testing group

Post Reply