Fuego User Manual
Graphical User Interface
Fuego is a Go playing engine, which communicates with a user interface using
the Go Text Protocol (GTP).
You need a graphical user interface that supports GTP to play against Fuego.
The recommended one is GoGui because
Fuego uses some of the special features of GoGui.
The most important feature is the Analyze Command window, which makes
engine-specific GTP extension commands accessible in the user interface.
These commands allow to query and display internal information about the
move generation and to set engine parameters.
Some of these are only of interest to engine developers, some of them might
also be useful for users.
Configuring Fuego for Your Machine
Fuego tries to use a reasonable default configuration with respect to memory
usage and usage of parallel search on a multi-core or multi-CPU machine.
Parameters can be changed with certain commands in the analyze window of
GoGui, but this will affect only the current session.
To optimize the default configuration for a certain machine in a persistent
way, you can write a text file with GTP commands (e.g. configfile)
and change the command line for invocation of Fuego in the user interface to
fuego --config configfile. Here is an example of such a configuration
file:
uct_param_search number_threads 4
uct_param_search lock_free 1
uct_max_memory 6000000000
uct_param_player reuse_subtree 1
uct_param_player ponder 1
The meaning of these GTP commands is:
- uct_param_search number_threads
-
The number of threads to use.
The default is the number of hardware threads available on the current machine.
- uct_param_search lock_free
-
Whether to enable lock-free multithreading.
The default is 1 (=yes) for modern Intel or AMD CPUs.
This should be enabled on modern Intel or AMD CPUs (with IA-32 and Intel-64
architecture) if more than two threads are used.
Note that without lock-free search the performance of Fuego can even decrease
if you use more threads.
The maximum number of threads that can be used without a decrease of
performance, if the lock-free mode is not used, depends on the board size.
- uct_max_memory
-
Determines the maximum amount of memory in the search tree, and thus the
maximum memory to use.
The default is half of the total memory available on the system.
The example above is using 6GB. Fuego maintains two search trees internally, so
setting max_memory to 512MB gives 256MB to each tree. The second tree is used
for work space if using reuse_subtree, or if the search tree fills up and nodes
with small counts are removed.
- uct_param_player reuse_subtree
-
Whether to reuse the reusable part of the tree from a previous move
generation.
The default is 1 (=yes).
Setting this to 1 is required if pondering is used, but it also gives
a small improvement in playing strength if pondering is not used.
- uct_param_player ponder
-
Whether to continue the search while waiting for the opponent's move.
The default is 0 (=no).
If this is set to 1, uct_param_player reuse_subtree must also be
enabled. Note that with some versions of Fuego built with Cygwin pondering
does not work and Fuego might hang on subsequent commands if it is enabled.
Game-specific Settings
This a list of some game-specific parameters, which can be changed in GoGui's
analyze command window.
- Go Param
-
There is one parameter that is interesting to users:
Timelimit is the fixed time limit in seconds to use for a move
generation, if no time settings are used for the game.
The default is 10.
- Go Param Rules
-
Change the rules used in the game.
Note that entering text in the rules text entry of GoGui's game info dialog
is for storing this information in the file only.
It is not transmitted to the Go program because there is no GTP standard
command for setting the rules.
What rules are used by Fuego depends only on the settings in Go Param Rules.
Watching Fuego's Thinking Process
You can enable the display of Fuego's thinking process by setting
Live gfx in the Uct Param Search analyze command to
Counts or Sequence.
Counts will show the current exploration counts of the moves as labels on the
board and the currently best move using a half-transparent stone.
Sequence will show the current best sequence of moves using half-transparent
stones.
The display interval can be configured with Live gfx interval.
Another display mode is Live gfx in the
Uct Param GlobalSearch analyze command.
It shows the statistics for ownership of each point averaged over all end
positions of the simulations.
This command requires that Territory statistics in
Uct Param GlobalSearch is also enabled.