-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGTP-check-list.txt
236 lines (231 loc) · 11.1 KB
/
GTP-check-list.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
GTP2
State 1-6 [are not commands]
board size
board configuration[board position]
number of captured stones of either color
move history
komi
time settings
Command
[1] Required Command
[t] protocol_version O version_number C version of GTP
[t] name O name C name of engine
[t] version O version C version of engine
[t] known_command A command_name O true/false
[t] list_commands O commands
[t] quit E the session is terminated and the connection is closed
[t] boardsize
A size
C same as rectangular_boardsize, not support one dimension
[t] clear_board E board cleared, captured stones zero, move history empty
[t] komi A new_komi F syntax error
[?] play
A move[color+vertex/resign/pass]
F syntax, illegal move
C consecutive moves is legal
[can not resign?]
[t] genmove A color O vertex/resign/pass
[t] Tournament
[t] fixed_handicap
A number_of_stones
O handicap stones placed vertices
F syntax, invalid number of stones, board not empty
C the handicap vertex of GTP
[t] place_free_handicap
A/O the same to above
F syntax, invalid number of stones, board not empty, bad vertex list
C the handicap vertex of engine
[t] set_free_handicap
A/O the same to above
F syntax, board not empty, bad vertex list
C the handicap vertex of [user/GUI] requested
[t] Regression
[t] loadsgf
A filename (move_number)[short to mn]
E load mn-position from a sgf file with state 1-5
F "cannot load file"
C filename without " ","#",control characters,
mn>end ? end : mn,
this command has no support for sgf files with variations or game collections
[-x] reg_genmove A color O vertex/resign/pass C genmove but not play
[] Other
[t] undo F "cannot undo"
[] time_settings
A main_time byo_yomi_time byo_yomi_stones
F syntax
[d] time_left
A color [remaining]time [remaining]stones
F syntax
C when main_time>0, the stones is given as 0
[t] final_score O score[i.e. W+0.5 B+2 0] F "cannot score"
[t] final_status_list
A alive/seki/dead
O vertex
F syntax error
C query an engine about the status of the stones,
valid only at game end,
in KataGo, it can use anytime in game
[t] Debug
[t] showboard O board position
[Note]:
A arguments
E effects
O ouput
F fails
C comments
() optional arguments
[] additional words
[1] remaining 1 command to pass test
[-] not in KataGo gtp
[t] has been test at least once, can be used
[k] test in KataGo not Julia
[x] has been test at least once, can't be used
[d] docs need more infomation
[?] something different between test and docs
Regression: Regression testing is a software testing practice that ensures an application still functions as expected after any code changes, updates, or improvements.
KataGo
Common subcommands
gtp
C Runs GTP engine that can be plugged into any standard Go GUI for play/analysis.
GTP
protocol_version, name, version, known_command, list_commands
quit, boardsize, clera_board, komi, play,
undo, genmove, showboard, fixed_handicap, place_free_handicap,
set_free_handicap, time_settings, time_left, final_score, final_status_list,
loadsgf
GTP Extensions
[t] rectangular_boardsize A column row
[t] set_position
A color vertex color vertex ...
C instead of multi 'play', which can be ridiculous, making NN wrong
the difference from xxx_hangicap is set_posittion counts 0 handicap
[?] clear_cache
E can free up memory
[not free up memory]
stop E halts any ongoing pondering
[t] get_komi
[t] kata-get-rules
A JSON dictionary or shorthand string
C may add more fields/options in the future
[t] kata-set-rules
A the same to above, details:
tromp-taylor/chinese/chinese-ogs/chinese-kgs/japanese
/korean/stone-scoring/aga/bga/new-zealand
/aga-button
C "scoring TERRITORY" conflicts "hasButton true"
[t] kata-set-rule
A part of above, details:
ko SIMPLE/POSITIONAL/SITUATIONAL
scoring AREA/TERRITORY
tax NONE/SEKI/ALL
suicide true/false
hasButton true/false
whiteHandicapBonus 0/N-1/N
friendlyPassOK true/false
kgs-rules
kgs-time_settings
kata-time_settings C for KGS
kata-list_time_settings C for KGS
[t] lz-analyze
A (color) centiseconds (kay-value pairs), details:
minmoves N >N legal moves
maxmoves N <N legal moves
avoid color vertex,vertex,... untilDepth
allow color vertex,vertex,... untilDepth
O info indicates the satar of a possible move
move vertex
visits number
winrate int, from 0 to 10000
prior policy prior, 0-10000
lcb move lower confidence bound, 0-10000
order KataGO move rank, 0,1,...
pv principal variation after move
C This command is a bit unusual for GTP in that it will run forever on its own,
but asynchronously if any new GTP command or a raw newline is received,
then it will terminate.
Upon termination, it will still output the usual double-newline
that signals a completed GTP response.
[t] kata-analyze
A the same to above, but add:
ownership true
pvVisits ture
O the same to above, but add or modify:
winrate 0-1
scoreMean same as scoreLead, for Tools
scoreStdev standard deviation of the final score
scoreLead average number of points that the current side is leading by.
with this many points fewer, it would be an even game.
scoreSelfplay average value of the final score
prior 0-1
utility The utility of the move, combining both winrate and score,
as a float in [-C,C] where C is the maximum possible utility.
lcb move winrate LCB, 0-1
utilitLcb
pvVisits
ownership -1 to 1 from A19 to T1
lz-genmove_analyze same as genmove+lz-analyze-like
kata-genmove_analyze same as genmove+kata-analyze-like
analyze same as kata-analyze, for Sabaki
genmove_analyze same as kata-genmove_analyze for Sabaki
[t] kata-raw-nn
A 0-7/all
O whiteWin
whiteLoss
noResult
whiteLead
whiteScoreSelfplay
whiteScoreSelfplaySq (1 float) - predicted mean square of score
policy
policyPass (1 floats) - policy probability for the pass move
whiteOwnership
C Reports the result of a raw neural net evaluation from KataGo,
or multiple raw evaluations in the case of "all".
Output format is of the form symmetry <integer 0-7> <key> <value(s)> <key> <value(s)> ...,
possibly with additional whitespace or newlines between any tokens.
In the case of "all", multiple such outputs of this form are concatenated together.
kata-get-param
kata-set-param
kata-list-params O PDA aWRN
[t] cputime O wall-clock-time
[t] gomill-cpu_time O cpu-time
In list_commands but not in above
[d] kata-debug-print-tc C time-control debug like showboard
[t] printsgf A (filename) O sgfString or sgfFile
[d] search_debug C genmove debug like showboard
[d] genmove_debug C same to above?
benchmark
C Test speed with different numbers of search threads.
genconfig
C User-friendly interface to generate a config with rules and automatic performance tuning.
contribute
C Connect to online distributed KataGo training and run perpetually contributing selfplay games.
match
C Run self-play match games based on a config, more efficient than gtp due to batching.
version
C Print version and exit.
analysis
C Runs an engine designed to analyze entire games in parallel.
tuner
C [OpenCL only] Run tuning to find and optimize parameters that work on your GPU.
Selfplay training subcommands
selfplay
C Play selfplay games and generate training data.
gatekeeper
C Poll directory for new nets and match them against the latest net so far.
Testing/debugging subcommands
[k] evalsgf
C Utility/debug tool, analyze a single position of a game from an SGF file.
runtests
C Test important board algorithms and datastructures
runnnlayertests
C Test a few subcomponents of the current neural net backend
runnnontinyboardtest
runnnsymmetriestest
[k] runownershiptests
C Run neural net search on some hardcoded positions and print svg ownership
runoutputtests
runsearchtests
runsearchtestsv3
runsearchtestsv8
runselfplayinittests
runsekitrainwritetests