UCI and general engine setups in v0.75

226 views
Skip to first unread message

Uwe Badermann

unread,
Oct 3, 2016, 10:29:09 AM10/3/16
to PicoChess
Hello forum members,

I recently have updated to 0.75 on my RPi3 and in general it is all working!

I tried to set the number of cores used to 4 in general and also tried to 
check the hash table size, but I didn't find the relevant *.uci respectively *.ini files?!

Now, it is okay for me to check for each engine I use, which options they offer and
which are their names.

But I need to know where and in which format I need to enter them.

Taking stockfish as an example:

a-stockf.uci reads like this

[Level@00]
skill level = 0

[Level@01]
skill level = 1

[Level@02]
skill level = 2

[Level@03]
skill level = 3


Stockfish options are:

pi@raspberrypi:/opt/picochess/engines/armv7l $ ./a-stockf
Stockfish 7 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
uci
id name Stockfish 7
id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott

option name Write Debug Log type check default false
option name Contempt type spin default 0 min -100 max 100
option name Threads type spin default 1 min 1 max 128
option name Hash type spin default 16 min 1 max 2048
option name Clear Hash type button
option name Ponder type check default false
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Move Overhead type spin default 30 min 0 max 5000
option name Minimum Thinking Time type spin default 20 min 0 max 5000
option name Slow Mover type spin default 84 min 10 max 1000
option name nodestime type spin default 0 min 0 max 10000
option name UCI_Chess960 type check default false
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 100
option name Syzygy50MoveRule type check default true
option name SyzygyProbeLimit type spin default 6 min 0 max 6
uciok



==> Have I got to update a-stockf.uci like this?

Threads = 4
Hash = 128
...
[Level@00]
skill level = 0

With brackets or without?
Is it the same format (not options) for each machine?
Rodent i.e. likes ";"


I am confused :-(

Thanks for any helpful advice

Uwe

Jürgen Précour

unread,
Oct 3, 2016, 12:20:05 PM10/3/16
to PicoChess
Hi Uwe,

you can post ANY of the uci parameters inside your level section.
In case of Hash-Size thats abit boring cause need to do this everywhere :-)
For such stuff (=> valid for ALL machines and ALL settings), y can put this inside engines.uci.
First picochess will read this engines.uci file in (if exists), and override the values with yr <engine_name>.uci like "a-stockf.uci".

Hope that helps,
Jürgen

Al

unread,
Oct 3, 2016, 12:23:21 PM10/3/16
to PicoChess
Uwe,

We will have to wait for Jürgen for confirmation, but what I understand is that /opt/picochess/picochess.uci was removed in favour of /opt/picochess/engines/armv7l/engines.uci

I created engines.uci based on the old picochess.uci so mine looks like this:

## uci-option stores options that will be passed to the engine
## This are possible examples - it depends on your search-engine
[uci-option]
Hash = 128
Threads = 4

But as I said, Jürgen can confirm or correct this.

Al.

Al

unread,
Oct 3, 2016, 12:24:33 PM10/3/16
to PicoChess
Cheers Jürgen,

I was typing my reply when you posted

Al.

Uwe Badermann

unread,
Oct 3, 2016, 12:58:26 PM10/3/16
to PicoChess
Hello Jürgen,
hello Al,

You're great!
I take my hat off to you!

It all works and TOP is telling me stockfish running @400%, all cores used.

Now, there is another issue: I can't win on level 6 anymore ;-)

Have a beautiful evening,

Cheers

Uwe

Al

unread,
Oct 3, 2016, 1:39:50 PM10/3/16
to PicoChess
Uwe,

That's a new command for me, Thanks.

It confirms my findings whilst configuring UCI Engines for Engine tournaments in SCID vs PC:

Stockfish, Texel, Arasan & Cinnamon use all 4 cores

Rodent, Zurichess, Floyd & Claudia can only use 1 core.

Cheers

Al.

Uwe Badermann

unread,
Oct 3, 2016, 2:04:58 PM10/3/16
to PicoChess
My pleasure Al.


@Everybody,
who might be too lazy to look engine's uci options up, I have listed these for all Arm7 engines in 0.75 below.
So everybody can look them up quite easily to "pimp the engines" :-))

Have fun,

Cheers

Uwe




===UCI OPTIONS ENGINES IN 0.75  /opt/picochess/engines/armv7l ====

id name Texel 1.06 32-bit
id author Peter Osterlund
option name UCI_EngineAbout type string default Texel 1.06 32-bit by Peter Osterlund, see http://web.comhem.se/petero2home/javachess/index.html#texel
option name Hash type spin default 16 min 1 max 524288
option name OwnBook type check default false
option name BookFile type string default 
option name Ponder type check default true
option name UCI_AnalyseMode type check default false
option name UCI_Opponent type string default 
option name Strength type spin default 1000 min 0 max 1000
option name Threads type spin default 1 min 1 max 512
option name MultiPV type spin default 1 min 1 max 256
option name UseNullMove type check default true
option name GaviotaTbPath type string default 
option name GaviotaTbCache type spin default 1 min 1 max 2047
option name SyzygyPath type string default 
option name MinProbeDepth type spin default 1 min 0 max 100
option name Clear Hash type button
option name BufferTime type spin default 1000 min 1 max 10000
uciok


id name Stockfish 7
id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
option name Write Debug Log type check default false
option name Contempt type spin default 0 min -100 max 100
option name Threads type spin default 1 min 1 max 128
option name Hash type spin default 16 min 1 max 2048
option name Clear Hash type button
option name Ponder type check default false
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Move Overhead type spin default 30 min 0 max 5000
option name Minimum Thinking Time type spin default 20 min 0 max 5000
option name Slow Mover type spin default 84 min 10 max 1000
option name nodestime type spin default 0 min 0 max 10000
option name UCI_Chess960 type check default false
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 100
option name Syzygy50MoveRule type check default true
option name SyzygyProbeLimit type spin default 6 min 0 max 6
uciok


id name Arasan 18.3
id author Jon Dart
option name Hash type spin default 32 min 4 max 2000
option name Ponder type check default true
option name MultiPV type spin default 1 min 1 max 10
option name OwnBook type check default true
option name Book selectivity type spin default 50 min 0 max 100
option name Threads type spin default 1 min 1 max 64
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 2600 min 1000 max 2600
uciok


id name Rodent II 0.9.52
id author Pawel Koziol (based on Sungorus 1.4 by Pablo Vazquez)
option name Hash type spin default 16 min 1 max 4096
option name Clear Hash type button
option name PawnValue type spin default 100 min 0 max 1200
option name KnightValue type spin default 325 min 0 max 1200
option name BishopValue type spin default 335 min 0 max 1200
option name RookValue type spin default 500 min 0 max 1200
option name QueenValue type spin default 1000 min 0 max 1200
option name KeepPawn type spin default 0 min -200 max 200
option name KeepKnight type spin default 0 min -200 max 200
option name KeepBishop type spin default 0 min -200 max 200
option name KeepRook type spin default 0 min -200 max 200
option name KeepQueen type spin default 0 min -200 max 200
option name Material type spin default 100 min 0 max 500
option name PiecePlacement type spin default 80 min 0 max 500
option name KnightLikesClosed type spin default 6 min 0 max 10
option name RookLikesOpen type spin default 3 min 0 max 10
option name OwnAttack type spin default 110 min 0 max 500
option name OppAttack type spin default 100 min 0 max 500
option name OwnMobility type spin default 100 min 0 max 500
option name OppMobility type spin default 110 min 0 max 500
option name KingTropism type spin default 20 min 0 max 500
option name PiecePressure type spin default 100 min 0 max 500
option name PassedPawns type spin default 100 min 0 max 500
option name PawnStructure type spin default 100 min 0 max 500
option name Lines type spin default 100 min 0 max 500
option name Outposts type spin default 100 min 0 max 500
option name NpsLimit type spin default 0 min 0 max 5000000
option name EvalBlur type spin default 0 min 0 max 5000000
option name Contempt type spin default 0 min -250 max 250
option name SlowMover type spin default 100 min 10 max 500
option name Selectivity type spin default 175 min 0 max 200
option name OwnBook type check default true
option name GuideBookFile type string default guide.bin
option name MainBookFile type string default rodent.bin
option name BookFilter type spin default 20 min 0 max 5000000
uciok


id name zurichess graubuenden
id author Alexandru Moșoi
option name Hash type spin default 64 min 1 max 65536
option name MultiPV type spin default 1 min 1 max 16
option name Ponder type check default true
option name Skill Level type spin default 0 min 0 max 10
option name UCI_AnalyseMode type check default false
uciok


id name Floyd x7da0e241
id author Marcel van Kervinck
option name Hash type spin default 128 min 0 max 1024
option name Clear Hash type button
option name Ponder type check default true
uciok


id name Cinnamon 2.0-20160502
id author Giuseppe Cannella
option name Hash type spin default 64 min 1 max 1000
option name Clear Hash type button
option name Nullmove type check default true
option name Book File type string default cinnamon.bin
option name OwnBook type check default false
option name Ponder type check default false
option name Threads type spin default 1 min 1 max 64
option name TB Endgame type combo default none var Gaviota var none
option name GaviotaTbPath type string default gtb/gtb4
option name GaviotaTbCache type spin default 32 min 1 max 1024
option name GaviotaTbScheme type combo default cp4 var none var cp1 var cp2 var cp3 var cp4
option name TB Pieces installed type combo default 3 var none var 3 var 4 var 5
option name TB probing depth type spin default 0 min 0 max 5
option name TB Restart type button
option name PerftThreads type spin default 1 min 1 max 64
option name PerftHashSize type spin default 0 min 0 max 100000
option name PerftDumpFile type string
uciok


id name Claudia v. 0.5.1
id author Antonio Garro
option name Hash type spin default 32 min 32 max 2048
uciok

Al

unread,
Oct 8, 2016, 4:27:46 AM10/8/16
to PicoChess
Uwe,

Did you upgrade to RPi 3, I'm interested in what you think about it?

Al.

Uwe Badermann

unread,
Oct 8, 2016, 6:02:14 AM10/8/16
to PicoChess
Hello Al,

I already have the RPi3 and so from the beginning of my PicoChess engagement - well, I actually have two and one is running einstein@home for BOINC for test reasons (I like number crunching :-) ).

Well, I did the upgrade to 0.75 with the image and have tweaked the ini and uci files as you and Juergen have advised.
It is all working!
Perfect.

I also was able to perform a git pull in the /opt/picochess a bit later. Even after tweaking also the dgtdisplay.py file for setting my own time mode on wQh3, for which Juergen
gave very helpful advice.

The only thing in connection with "mysterious" UCI settings is the hash table size.
But I think I will issue a new thread especially for this purpose. I think it deserves it.

Now, I'm not sure if the code changes concerning the draw indications Juergen has done, is available by the a.m. git pull.
I have to check.
Since I intend to play a tournament mode game this afternoon against PicoChess, my next posts will likely follow in the late afternoon.

Al

unread,
Oct 8, 2016, 6:21:45 AM10/8/16
to PicoChess
Hi Uwe,

I'd imagine it's like the threads & will use the maximu it can. So if you set it to the maximum of all engines (I'm out so can't see previous posts on another device) say 4096 or whatever, each Engine would use its own maximum up to that value i.e 256 if it's a particulate Engines max

Cheers,

Al

Message has been deleted

Jürgen Precour

unread,
Oct 8, 2016, 8:07:06 AM10/8/16
to PicoChess
Hi Uwe,

despite changing the source code (which i prob. said some weeks ago), y can NOW give a time inside the picochess.ini.
You can say "13 26" and that means 13mins start time with 26sec fischer inc (to make it clear - weired time, ha)
The bad stuff about it: Its not displayed at the clock (@time menu!), and you cant change it (otherwise this setting is overriden).
But y can also start it by command line.. which solves the override problem.

The good thing is: doesnt need to change source code, and updates (esp. the automatically ones) will work!

Jürgen

Uwe Badermann

unread,
Oct 9, 2016, 11:13:31 AM10/9/16
to PicoChess
Hello Juergen,

True, and I saw this feature and that's quite ingenious.
But since I like WYSIWYG a lot, I additionally change dgtdisplay.py :-)

Kindest regards

Uwe

Am Samstag, 8. Oktober 2016 14:07:06 UTC+2 schrieb Jürgen Precour:
Hi Uwe,

Uwe Badermann

unread,
Oct 9, 2016, 11:21:25 AM10/9/16
to PicoChess
Hello Al,

well I think it is a bit more complicated.
Just two considerations:

The RPi3 has 1GB RAM.
Some of it is used by the system, some by PicoChess and Python and so on.
=> So I saw that roughly 750MB were "free" with PicoChess idle.

Secondly the time reading the hash from RAM and judging its content has to be balanced 
with the machine's crunshing.
=> So there might be an optimum?

I really like to encapsulate this discussion in a separate thread in this forum.
Give me some time to prepare…

Kindest regards

Uwe

Al

unread,
Oct 9, 2016, 11:27:45 AM10/9/16
to PicoChess
Hi Uwe,

Yes that makes sense, I was going to add 'subject to free space' ...

I'll await your new thread and others answers ....

Cheers,

Al.

Reply all
Reply to author
Forward
0 new messages