TomGrc commited on
Commit
5d27bb5
·
verified ·
1 Parent(s): cf5dc49

Upload default_gtp.cfg

Browse files
Files changed (1) hide show
  1. default_gtp.cfg +730 -0
default_gtp.cfg ADDED
@@ -0,0 +1,730 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Configuration for KataGo C++ GTP engine
2
+
3
+ # Run the program using: `./katago.exe gtp`
4
+
5
+ # In this example config, when a parameter is given as a commented out value,
6
+ # that value also is the default value, unless described otherwise. You can
7
+ # uncomment it (remove the pound sign) and change it if you want.
8
+
9
+ # ===========================================================================
10
+ # Running on an online server or in a real tournament or match
11
+ # ===========================================================================
12
+ # If you plan to run online or in a tournament, read through the "Rules"
13
+ # section below for proper handling of komi, handicaps, end-of-game cleanup,
14
+ # and other details.
15
+
16
+ # ===========================================================================
17
+ # Notes about performance and memory usage
18
+ # ===========================================================================
19
+ # Important: For good performance, you will very likely want to tune the
20
+ # "numSearchThreads" parameter in the Search limits section below! Run
21
+ # "./katago benchmark" to test KataGo and to suggest a reasonable value
22
+ # of this parameter.
23
+
24
+ # For multi-GPU systems, read "OpenCL GPU settings" or "CUDA GPU settings".
25
+ #
26
+ # When using OpenCL, verify that KataGo picks the correct device! Some systems
27
+ # may have both an Intel CPU OpenCL and GPU OpenCL. If # KataGo picks the wrong
28
+ # one, correct this by specifying "openclGpuToUse".
29
+ #
30
+ # Consider adjusting "maxVisits", "ponderingEnabled", "resignThreshold", and
31
+ # other parameters depending on your intended usage.
32
+
33
+ # ===========================================================================
34
+ # Command-line usage
35
+ # ===========================================================================
36
+ # All of the below values may be set or overridden via command-line arguments:
37
+ #
38
+ # -override-config KEY=VALUE,KEY=VALUE,...
39
+
40
+ # ===========================================================================
41
+ # Logs and files
42
+ # ===========================================================================
43
+ # This section defines where and what logging information is produced.
44
+
45
+ # Each run of KataGo will log to a separate file in this dir.
46
+ # This is the default.
47
+ logDir = gtp_logs
48
+ # Uncomment and specify this instead of logDir to write separate dated subdirs
49
+ # logDirDated = gtp_logs
50
+ # Uncomment and specify this instead of logDir to log to only a single file
51
+ # logFile = gtp.log
52
+
53
+ # Logging options
54
+ logAllGTPCommunication = true
55
+ logSearchInfo = true
56
+ logSearchInfoForChosenMove = false
57
+ logToStderr = false
58
+
59
+ # KataGo will display some info to stderr on GTP startup
60
+ # Uncomment the next line and set it to false to suppress that and remain silent
61
+ # startupPrintMessageToStderr = true
62
+
63
+ # Write information to stderr, for use in things like malkovich chat to OGS.
64
+ # ogsChatToStderr = false
65
+
66
+ # Uncomment and set this to a directory to override where openCLTuner files
67
+ # and other cached data is written. By default it saves into a subdir of the
68
+ # current directory on windows, and a subdir of ~/.katago on Linux.
69
+ # homeDataDir = PATH_TO_DIRECTORY
70
+
71
+ # ===========================================================================
72
+ # Analysis
73
+ # ===========================================================================
74
+ # This section configures analysis settings.
75
+ #
76
+ # The maximum number of moves after the first move displayed in variations
77
+ # from analysis commands like kata-analyze or lz-analyze.
78
+ # analysisPVLen = 15
79
+
80
+ # Report winrates for chat and analysis as (BLACK|WHITE|SIDETOMOVE).
81
+ # Most GUIs and analysis tools will expect SIDETOMOVE.
82
+ # reportAnalysisWinratesAs = SIDETOMOVE
83
+
84
+ # Extra noise for wider exploration. Large values will force KataGo to
85
+ # analyze a greater variety of moves than it normally would.
86
+ # An extreme value like 1 distributes playouts across every move on the board,
87
+ # even very bad moves.
88
+ # Affects analysis only, does not affect play.
89
+ # analysisWideRootNoise = 0.04
90
+
91
+ # Try to limit the effect of possible bad or bogus move sequences in the
92
+ # history leading to this position from affecting KataGo's move predictions.
93
+ # analysisIgnorePreRootHistory = true
94
+
95
+ # ===========================================================================
96
+ # Rules
97
+ # ===========================================================================
98
+ # This section configures the scoring and playing rules. Rules can also be
99
+ # changed mid-run by issuing custom GTP commands.
100
+ #
101
+ # See https://lightvector.github.io/KataGo/rules.html for rules details.
102
+ #
103
+ # See https://github.com/lightvector/KataGo/blob/master/docs/GTP_Extensions.md
104
+ # for GTP commands.
105
+
106
+ # Specify the rules as a string.
107
+ # Some legal values include:
108
+ # chinese, japanese, korean, aga, chinese-ogs, new-zealand, stone-scoring,
109
+ # ancient-territory, bga, aga-button
110
+ #
111
+ # For some human rulesets that require complex adjudication in tricky cases
112
+ # (e.g. japanese, korean) KataGo may not precisely match the ruleset in such
113
+ # cases but will do its best.
114
+ rules = tromp-taylor
115
+
116
+ # By default, the "rules" parameter is used, but if you comment it out and
117
+ # uncomment one option in each of the sections below, you can specify an
118
+ # arbitrary combination of individual rules.
119
+
120
+ # koRule = SIMPLE # Simple ko rules (triple ko = no result)
121
+ # koRule = POSITIONAL # Positional superko
122
+ # koRule = SITUATIONAL # Situational superko
123
+
124
+ # scoringRule = AREA # Area scoring
125
+ # scoringRule = TERRITORY # Territory scoring (special computer-friendly territory rules)
126
+
127
+ # taxRule = NONE # All surrounded empty points are scored
128
+ # taxRule = SEKI # Eyes in seki do NOT count as points
129
+ # taxRule = ALL # All groups are taxed up to 2 points for the two eyes needed to live
130
+
131
+ # Is multiple-stone suicide legal? (Single-stone suicide is always illegal).
132
+ # multiStoneSuicideLegal = false
133
+ # multiStoneSuicideLegal = true
134
+
135
+ # "Button go" - the first pass when area scoring awards 0.5 points and does
136
+ # not count for ending the game.
137
+ # Allows area scoring rulesets that have far simpler rules to achieve the same
138
+ # final scoring precision and reward for precise play as territory scoring.
139
+ # hasButton = false
140
+ # hasButton = true
141
+
142
+ # Is this a human ruleset where it's okay to pass before having physically
143
+ # captured and removed all dead stones?
144
+ # friendlyPassOk = false
145
+ # friendlyPassOk = true
146
+
147
+ # How handicap stones in handicap games are compensated
148
+ # whiteHandicapBonus = 0 # White gets no compensation for black's handicap stones (Tromp-taylor, NZ, JP)
149
+ # whiteHandicapBonus = N-1 # White gets N-1 points for black's N handicap stones (AGA)
150
+ # whiteHandicapBonus = N # White gets N points for black's N handicap stones (Chinese)
151
+
152
+ # ------------------------------
153
+ # Other rules hacks
154
+ # ------------------------------
155
+ # Uncomment and change to adjust what board size KataGo uses upon startup
156
+ # by default when GTP doesn't specify.
157
+ # defaultBoardSize = 19
158
+
159
+ # By default, Katago will use the komi that the GUI or GTP controller tries to set.
160
+ # Uncomment and set this to have KataGo ignore the controller and always use this komi.
161
+ # ignoreGTPAndForceKomi = 7
162
+
163
+ # ===========================================================================
164
+ # Bot behavior
165
+ # ===========================================================================
166
+
167
+ # ------------------------------
168
+ # Resignation
169
+ # ------------------------------
170
+
171
+ # Resignation occurs if for at least resignConsecTurns in a row, the
172
+ # winLossUtility (on a [-1,1] scale) is below resignThreshold.
173
+ allowResignation = true
174
+ resignThreshold = -0.90
175
+ resignConsecTurns = 3
176
+
177
+ # By default, KataGo may resign games that it is confidently losing even if they
178
+ # are very close in score. Uncomment and set this to avoid resigning games
179
+ # if the estimated difference is points is less than or equal to this.
180
+ # resignMinScoreDifference = 10
181
+
182
+ # Disallow resignation if turn number < resignMinMovesPerBoardArea * area of board.
183
+ # e.g 0.25 would prohibit resignation on 19x19 until after turn 361 * 0.25 ~= 90.
184
+ # resignMinMovesPerBoardArea = 0.00
185
+
186
+ # ------------------------------
187
+ # Handicap
188
+ # ------------------------------
189
+ # Assume that if black makes many moves in a row right at the start of the
190
+ # game, then the game is a handicap game. This is necessary on some servers
191
+ # and for some GUIs and also when initializing from many SGF files, which may
192
+ # set up a handicap game using repeated GTP "play" commands for black rather
193
+ # than GTP "place_free_handicap" commands; however, it may also lead to
194
+ # incorrect understanding of komi if whiteHandicapBonus is used and a server
195
+ # does not have such a practice. Uncomment and set to false to disable.
196
+ # assumeMultipleStartingBlackMovesAreHandicap = true
197
+
198
+ # Makes katago dynamically adjust in handicap or altered-komi games to assume
199
+ # based on those game settings that it must be stronger or weaker than the
200
+ # opponent and to play accordingly. Greatly improves handicap strength by
201
+ # biasing winrates and scores to favor appropriate safe/aggressive play.
202
+ # Does NOT affect analysis (lz-analyze, kata-analyze, used by programs like
203
+ # Lizzie) so analysis remains unbiased. Uncomment and set this to 0 to disable
204
+ # this and make KataGo play the same always.
205
+ # dynamicPlayoutDoublingAdvantageCapPerOppLead = 0.045
206
+
207
+ # Instead of "dynamicPlayoutDoublingAdvantageCapPerOppLead", you can comment
208
+ # that out and uncomment and set "playoutDoublingAdvantage" to a fixed value
209
+ # from -3.0 to 3.0 that will not change dynamically.
210
+ # ALSO affects analysis tools (lz-analyze, kata-analyze, used by e.g. Lizzie).
211
+ # Negative makes KataGo behave as if it is much weaker than the opponent.
212
+ # Positive makes KataGo behave as if it is much stronger than the opponent.
213
+ # KataGo will adjust to favor safe/aggressive play as appropriate based on
214
+ # the combination of who is ahead and how much stronger/weaker it thinks it is,
215
+ # and report winrates and scores taking the strength difference into account.
216
+ #
217
+ # If this and "dynamicPlayoutDoublingAdvantageCapPerOppLead" are both set
218
+ # then dynamic will be used for all games and this fixed value will be used
219
+ # for analysis tools.
220
+ # playoutDoublingAdvantage = 0.0
221
+
222
+ # Uncomment one of these when using "playoutDoublingAdvantage" to enforce
223
+ # that it will only apply when KataGo plays as the specified color and will be
224
+ # negated when playing as the opposite color.
225
+ # playoutDoublingAdvantagePla = BLACK
226
+ # playoutDoublingAdvantagePla = WHITE
227
+
228
+ # ------------------------------
229
+ # Passing and cleanup
230
+ # ------------------------------
231
+ # Make the bot never assume that its pass will end the game, even if passing
232
+ # would end and "win" under Tromp-Taylor rules. Usually this is a good idea
233
+ # when using it for analysis or playing on servers where scoring may be
234
+ # implemented non-tromp-taylorly. Uncomment and set to false to disable.
235
+ # conservativePass = true
236
+
237
+ # When using territory scoring, self-play games continue beyond two passes
238
+ # with special cleanup rules that may be confusing for human players. This
239
+ # option prevents the special cleanup phases from being reachable when using
240
+ # the bot for GTP play. Uncomment and set to false to enable entering special
241
+ # cleanup. For example, if you are testing it against itself, or against
242
+ # another bot that has precisely implemented the rules documented at
243
+ # https://lightvector.github.io/KataGo/rules.html
244
+ # preventCleanupPhase = true
245
+
246
+ # ------------------------------
247
+ # Miscellaneous behavior
248
+ # ------------------------------
249
+ # If the board is symmetric, search only one copy of each equivalent move.
250
+ # Attempts to also account for ko/superko, will not theoretically perfect for
251
+ # superko. Uncomment and set to false to disable.
252
+ # rootSymmetryPruning = true
253
+
254
+ # Uncomment and set to true to avoid a particular joseki that some networks
255
+ # misevaluate, and also to improve opening diversity versus some particular
256
+ # other bots that like to play it all the time.
257
+ # avoidMYTDaggerHack = false
258
+
259
+ # Prefer to avoid playing the same joseki in every corner of the board.
260
+ # Uncomment to set to a specific value. See "Avoid SGF patterns" section.
261
+ # By default: 0 (even games), 0.005 (handicap games)
262
+ # avoidRepeatedPatternUtility = 0.0
263
+
264
+ # Experimental logic to fight against mirror Go even with unfavorable komi.
265
+ # Uncomment to set to a specific value to use for both playing and analysis.
266
+ # By default: true when playing via GTP, but false when analyzing.
267
+ # antiMirror = true
268
+
269
+ # Enable some hacks that mitigate rare instances when passing messes up deeper searches.
270
+ # enablePassingHacks = true
271
+
272
+ # Uncomment and set this to true to prevent bad or bogus move sequences
273
+ # in the history leading to this position from affecting KataGo's move choices.
274
+ # Same as analysisIgnorePreRootHistory (see above) but applies to actual play.
275
+ # You can enable this if KataGo is being asked to play from positions that it did not
276
+ # choose the moves to reach.
277
+ # ignorePreRootHistory = false
278
+
279
+ # ===========================================================================
280
+ # Search limits
281
+ # ===========================================================================
282
+
283
+ # Terminology:
284
+ # "Playouts" is the number of new playouts of search performed each turn.
285
+ # "Visits" is the same as "Playouts" but also counts search performed on
286
+ # previous turns that is still applicable to this turn.
287
+ # "Time" is the time in seconds.
288
+
289
+ # For example, if KataGo searched 200 nodes on the previous turn, and then
290
+ # after the opponent's reply, 50 nodes of its search tree was still valid,
291
+ # then a visit limit of 200 would allow KataGo to search 150 new nodes
292
+ # (for a final tree size of 200 nodes), whereas a playout limit of of 200
293
+ # would allow KataGo to search 200 nodes (for a final tree size of 250 nodes).
294
+
295
+ # Additionally, KataGo may also move before than the limit in order to
296
+ # obey time controls (e.g. byo-yomi, etc) if the GTP controller has
297
+ # told KataGo that the game has is being played with a given time control.
298
+
299
+ # Limits for search on the current turn.
300
+ # If commented out or unspecified, the default is to have no limit.
301
+ maxVisits = 500
302
+ # maxPlayouts = 300
303
+ # maxTime = 10.0
304
+
305
+ # Ponder on the opponent's turn?
306
+ ponderingEnabled = false
307
+
308
+ # Limits for search when pondering on the opponent's turn.
309
+ # If commented out or unspecified, the default is to have no limit.
310
+ # Limiting the maximum time is recommended so that KataGo won't burn CPU/GPU
311
+ # forever and/or run out of RAM if left unattended while pondering is enabled.
312
+ # maxVisitsPondering = 5000
313
+ # maxPlayoutsPondering = 3000
314
+ maxTimePondering = 60.0
315
+
316
+
317
+ # ------------------------------
318
+ # Other search limits and behavior
319
+ # ------------------------------
320
+
321
+ # Approx number of seconds to buffer for lag for GTP time controls - will
322
+ # move a bit faster assuming there is this much lag per move.
323
+ lagBuffer = 1.0
324
+
325
+ # YOU PROBABLY WANT TO TUNE THIS PARAMETER!
326
+ # The number of threads to use when searching. On powerful GPUs the optimal
327
+ # threads may be much higher than the number of CPU cores you have because
328
+ # many threads are needed to feed efficient large batches to the GPU.
329
+ #
330
+ # Run "./katago benchmark" to tune this parameter and test the effect
331
+ # of changes to any of other parameters.
332
+ numSearchThreads = 32
333
+
334
+ # Play a little faster if the opponent is passing, for human-friendliness.
335
+ # Comment these out to disable them, such as if running a controlled match
336
+ # where you are testing KataGo with fixed compute per move vs other bots.
337
+ searchFactorAfterOnePass = 0.50
338
+ searchFactorAfterTwoPass = 0.25
339
+
340
+ # Play a little faster if super-winning, for human-friendliness.
341
+ # Comment these out to disable them, such as if running a controlled match
342
+ # where you are testing KataGo with fixed compute per move vs other bots.
343
+ searchFactorWhenWinning = 0.40
344
+ searchFactorWhenWinningThreshold = 0.95
345
+
346
+ # ===========================================================================
347
+ # GPU settings
348
+ # ===========================================================================
349
+ # This section configures GPU settings.
350
+ #
351
+ # Maximum number of positions to send to a single GPU at once. The default
352
+ # value is roughly equal to numSearchThreads, but can be specified manually
353
+ # if running out of memory, or using multiple GPUs that expect to share work.
354
+ # nnMaxBatchSize = <integer>
355
+
356
+ # Controls the neural network cache size, which is the primary RAM/memory use.
357
+ # KataGo will cache up to (2 ** nnCacheSizePowerOfTwo) many neural net
358
+ # evaluations in case of transpositions in the tree.
359
+ # Increase this to improve performance for searches with tens of thousands
360
+ # of visits or more. Decrease this to limit memory usage.
361
+ # If you're happy to do some math - each neural net entry takes roughly
362
+ # 1.5KB, except when using whole-board ownership/territory
363
+ # visualizations, where each entry will take roughly 3KB. The number of
364
+ # entries is (2 ** nnCacheSizePowerOfTwo). (E.g. 2 ** 18 = 262144.)
365
+ # You can compute roughly how much memory the cache will use based on this.
366
+ # nnCacheSizePowerOfTwo = 20
367
+
368
+ # Size of mutex pool for nnCache is (2 ** this).
369
+ # nnMutexPoolSizePowerOfTwo = 16
370
+
371
+ # Randomize board orientation when running neural net evals? Uncomment and
372
+ # set to false to disable.
373
+ # nnRandomize = true
374
+
375
+ # If provided, force usage of a specific seed for nnRandomize.
376
+ # The default is to use a randomly generated seed.
377
+ # nnRandSeed = abcdefg
378
+
379
+ # Uncomment and set to true to force GTP to use the maximum board size for
380
+ # internal buffers for the neural net. This will make KataGo slower when
381
+ # evaluating small boards, but will avoid a lengthy initialization time on every
382
+ # change of board size due to having to re-size the neural net buffers on the GPU.
383
+ # This can be useful for example, for OGS's persistent bot mode that uses a single
384
+ # bot instance to handle multiple games and may thrash between different board sizes
385
+ # if there are concurrent games of multiple sizes.
386
+ # gtpForceMaxNNSize = false
387
+
388
+ # ------------------------------
389
+ # Multiple GPUs
390
+ # ------------------------------
391
+ # Set this to the number of GPUs to use or that are available.
392
+ # IMPORTANT: If more than 1, also uncomment the appropriate TensorRT
393
+ # or CUDA or OpenCL section.
394
+ numNNServerThreadsPerModel = 8
395
+
396
+ # ------------------------------
397
+ # TENSORRT GPU settings
398
+ # ------------------------------
399
+ # These only apply when using the TENSORRT version of KataGo.
400
+
401
+ # For one GPU: optionally uncomment this option and change if the GPU to
402
+ # use is not device 0.
403
+ # trtDeviceToUse = 0
404
+
405
+ # For two GPUs: Uncomment these options, AND set numNNServerThreadsPerModel above.
406
+ # Also, change their values if the devices you want to use are not 0 and 1.
407
+ # trtDeviceToUseThread0 = 0
408
+ # trtDeviceToUseThread1 = 1
409
+
410
+ # For three GPUs: Uncomment these options, AND set numNNServerThreadsPerModel above.
411
+ # Also, change their values if the devices you want to use are not 0 and 1 and 2.
412
+ # trtDeviceToUseThread0 = 0
413
+ # trtDeviceToUseThread1 = 1
414
+ # trtDeviceToUseThread2 = 2
415
+
416
+ # The pattern continues for additional GPUs.
417
+
418
+ # ------------------------------
419
+ # CUDA GPU settings
420
+ # ------------------------------
421
+ # These only apply when using the CUDA version of KataGo.
422
+
423
+ # For one GPU: optionally uncomment and change this if the GPU you want to
424
+ # use is not device 0
425
+ # cudaDeviceToUse = 0
426
+
427
+ # For two GPUs: Uncomment these options, AND set numNNServerThreadsPerModel above.
428
+ # Also, change their values if the devices you want to use are not 0 and 1.
429
+ # cudaDeviceToUseThread0 = 0
430
+ # cudaDeviceToUseThread1 = 1
431
+
432
+ # For three GPUs: Uncomment these options, AND set numNNServerThreadsPerModel above.
433
+ # Also, change their values if the devices you want to use are not 0 and 1 and 2.
434
+ cudaDeviceToUseThread0 = 0
435
+ cudaDeviceToUseThread1 = 1
436
+ cudaDeviceToUseThread2 = 2
437
+ cudaDeviceToUseThread3 = 3
438
+ cudaDeviceToUseThread4 = 4
439
+ cudaDeviceToUseThread5 = 5
440
+ cudaDeviceToUseThread6 = 6
441
+ cudaDeviceToUseThread7 = 7
442
+
443
+ # The pattern continues for additional GPUs.
444
+
445
+ # KataGo will automatically use FP16 or not based on the compute capability
446
+ # of your NVIDIA GPU. If you want to try to force a particular behavior
447
+ # you can uncomment these lines and change them to "true" or "false".
448
+ # cudaUseFP16 = auto
449
+ # cudaUseNHWC = auto
450
+
451
+ # ------------------------------
452
+ # OpenCL GPU settings
453
+ # ------------------------------
454
+ # These only apply when using the OpenCL version of KataGo.
455
+
456
+ # Uncomment and set to true to tune OpenCL for every board size separately,
457
+ # rather than only the largest possible size.
458
+ # openclReTunePerBoardSize = false
459
+
460
+ # For one GPU: optionally uncomment and change this if the best device to use is guessed incorrectly.
461
+ # The default behavior tries to guess the 'best' GPU or device on your system to use, usually it will be a good guess.
462
+ # openclDeviceToUse = 0
463
+
464
+ # For two GPUs: Uncomment these two lines and replace X and Y with the device ids of the devices you want to use.
465
+ # It might NOT be 0 and 1, some computers will have many OpenCL devices. You can see what the devices are when
466
+ # KataGo starts up - it should print or log all the devices it finds.
467
+ # (AND also set numNNServerThreadsPerModel above)
468
+ # openclDeviceToUseThread0 = X
469
+ # openclDeviceToUseThread1 = Y
470
+
471
+ # For three GPUs: Uncomment these three lines and replace X and Y and Z with the device ids of the devices you want to use.
472
+ # It might NOT be 0 and 1 and 2, some computers will have many OpenCL devices. You can see what the devices are when
473
+ # KataGo starts up - it should print or log all the devices it finds.
474
+ # (AND also set numNNServerThreadsPerModel above)
475
+ # openclDeviceToUseThread0 = X
476
+ # openclDeviceToUseThread1 = Y
477
+ # openclDeviceToUseThread2 = Z
478
+
479
+ # The pattern continues for additional GPUs.
480
+
481
+ # KataGo will automatically use FP16 or not based on testing your GPU during
482
+ # tuning. If you want to try to force a particular behavior though you can
483
+ # uncomment this option and change it to "true" or "false". This is a fairly
484
+ # blunt setting - more detailed settings are testable by rerunning the tuner
485
+ # with various arguments (./katago tuner).
486
+ # openclUseFP16 = auto
487
+
488
+ # ------------------------------
489
+ # Eigen-specific settings
490
+ # ------------------------------
491
+ # These only apply when using the Eigen (pure CPU) version of KataGo.
492
+
493
+ # Number of CPU threads for evaluating the neural net on the Eigen backend.
494
+ #
495
+ # Default: numSearchThreads
496
+ # numEigenThreadsPerModel = X
497
+
498
+ # ===========================================================================
499
+ # Root move selection and biases
500
+ # ===========================================================================
501
+ # Uncomment and edit any of the below values to change them from their default.
502
+
503
+ # If provided, force usage of a specific seed for various random things in
504
+ # the search. The default is to use a random seed.
505
+ # searchRandSeed = hijklmn
506
+
507
+ # Temperature for the early game, randomize between chosen moves with
508
+ # this temperature
509
+ # chosenMoveTemperatureEarly = 0.5
510
+
511
+ # Decay temperature for the early game by 0.5 every this many moves,
512
+ # scaled with board size.
513
+ # chosenMoveTemperatureHalflife = 19
514
+
515
+ # At the end of search after the early game, randomize between chosen
516
+ # moves with this temperature
517
+ # chosenMoveTemperature = 0.10
518
+
519
+ # Subtract this many visits from each move prior to applying
520
+ # chosenMoveTemperature (unless all moves have too few visits) to downweight
521
+ # unlikely moves
522
+ # chosenMoveSubtract = 0
523
+
524
+ # The same as chosenMoveSubtract but only prunes moves that fall below
525
+ # the threshold. This setting does not affect chosenMoveSubtract.
526
+ # chosenMovePrune = 1
527
+
528
+ # Number of symmetries to sample (without replacement) and average at the root
529
+ # rootNumSymmetriesToSample = 1
530
+
531
+ # Using LCB for move selection?
532
+ # useLcbForSelection = true
533
+
534
+ # How many stdevs a move needs to be better than another for LCB selection
535
+ # lcbStdevs = 5.0
536
+
537
+ # Only use LCB override when a move has this proportion of visits as the
538
+ # top move.
539
+ # minVisitPropForLCB = 0.15
540
+
541
+ # ===========================================================================
542
+ # Internal params
543
+ # ===========================================================================
544
+ # Uncomment and edit any of the below values to change them from their default.
545
+
546
+ # Scales the utility of winning/losing
547
+ # winLossUtilityFactor = 1.0
548
+
549
+ # Scales the utility for trying to maximize score
550
+ # staticScoreUtilityFactor = 0.10
551
+ # dynamicScoreUtilityFactor = 0.30
552
+
553
+ # Adjust dynamic score center this proportion of the way towards zero,
554
+ # capped at a reasonable amount.
555
+ # dynamicScoreCenterZeroWeight = 0.20
556
+ # dynamicScoreCenterScale = 0.75
557
+
558
+ # The utility of getting a "no result" due to triple ko or other long cycle
559
+ # in non-superko rulesets (-1 to 1)
560
+ # noResultUtilityForWhite = 0.0
561
+
562
+ # The number of wins that a draw counts as, for white. (0 to 1)
563
+ # drawEquivalentWinsForWhite = 0.5
564
+
565
+ # Exploration constant for mcts
566
+ # cpuctExploration = 1.0
567
+ # cpuctExplorationLog = 0.45
568
+
569
+ # Parameters that control exploring more in volatile positions, exploring
570
+ # less in stable positions.
571
+ # cpuctUtilityStdevPrior = 0.40
572
+ # cpuctUtilityStdevPriorWeight = 2.0
573
+ # cpuctUtilityStdevScale = 0.85
574
+
575
+ # FPU reduction constant for mcts
576
+ # fpuReductionMax = 0.2
577
+ # rootFpuReductionMax = 0.1
578
+ # fpuParentWeightByVisitedPolicy = true
579
+
580
+ # Parameters that control weighting of evals based on the net's own
581
+ # self-reported uncertainty.
582
+ # useUncertainty = true
583
+ # uncertaintyExponent = 1.0
584
+ # uncertaintyCoeff = 0.25
585
+
586
+ # Explore using optimistic policy
587
+ # rootPolicyOptimism = 0.2
588
+ # policyOptimism = 1.0
589
+
590
+ # Amount to apply a downweighting of children with very bad values relative
591
+ # to good ones.
592
+ # valueWeightExponent = 0.25
593
+
594
+ # Slight incentive for the bot to behave human-like with regard to passing at
595
+ # the end, filling the dame, not wasting time playing in its own territory,
596
+ # etc., and not play moves that are equivalent in terms of points but a bit
597
+ # more unfriendly to humans.
598
+ # rootEndingBonusPoints = 0.5
599
+
600
+ # Make the bot prune useless moves that are just prolonging the game to
601
+ # avoid losing yet.
602
+ # rootPruneUselessMoves = true
603
+
604
+ # Apply bias correction based on local pattern keys
605
+ # subtreeValueBiasFactor = 0.45
606
+ # subtreeValueBiasWeightExponent = 0.85
607
+
608
+ # Use graph search rather than tree search - identify and share search for
609
+ # transpositions.
610
+ # useGraphSearch = true
611
+
612
+ # How much to shard the node table for search synchronization
613
+ # nodeTableShardsPowerOfTwo = 16
614
+
615
+ # How many virtual losses to add when a thread descends through a node
616
+ # numVirtualLossesPerThread = 1
617
+
618
+ # Improve the quality of evals under heavy multithreading
619
+ # useNoisePruning = true
620
+
621
+ # ===========================================================================
622
+ # Automatic avoid patterns
623
+ # ===========================================================================
624
+ # The parameters in this section provide a way to bias away from moves that match
625
+ # patterns that this instance of KataGo has played in previous games, by auto-saving
626
+ # moves to a directory and then auto-loading and biasing against them each new game.
627
+ # Uncomment them to use them. When using this feature, all parameters must be specified.
628
+
629
+ # Different board sizes are tracked separately, but all board sizes share the same
630
+ # parameters by default. Every parameter *except* for autoAvoidRepeatDir and
631
+ # autoAvoidRepeatSaveChunkSize can be overridden per board size,
632
+ # e.g. "autoAvoidRepeatMinTurnNumber13x13". You must ALSO specify the
633
+ # defaults even if you have specified board-size-specific values.
634
+
635
+ # Directory to auto-save moves KataGo plays, to avoid them in future games.
636
+ # You can create a new empty directory and put its path here.
637
+ # If you run parallel instances of KataGo, use different directories if you
638
+ # want them not to share their biases, use the same directory if you want
639
+ # all of them to bias away from past moves that any of them have played.
640
+ # KataGo will also automatically DELETE old data in this directory, so it is
641
+ # recommended that if you do share the same directory between parallel instances,
642
+ # that they all use the same settings that affect data saving/deletion.
643
+ # autoAvoidRepeatDir = PATH_TO_NEW_DIRECTORY
644
+
645
+ # Penalize this much utility per matching move.
646
+ # Values that are too large may lead to bad play. The value of 0.004 is fairly large
647
+ # and might be large enough to result in some early weird/bad moves when trying
648
+ # to avoid past games' moves if enough games begin the same way. You can experiment with it.
649
+ # autoAvoidRepeatUtility = 0.004
650
+
651
+ # Per each new move saved, exponentially decay prior saved moves by this factor.
652
+ # This way, the bias against moves from many games ago is gradually phased out.
653
+ # For example, 0.9995 = 1 - 1/2000, so would be roughly 2000 prior moves worth of
654
+ # penalty weight remembered, in steady state. Depending on what turn number range
655
+ # you are saving, this might equate to a different number of games For example
656
+ # saving the first 50 moves per game would make this roughly 2000 / 50 = 40 games
657
+ # worth of memory.
658
+ # autoAvoidRepeatLambda = 0.9995
659
+
660
+ # Affects data saving/deletion.
661
+ # When the number of saved moves exceeds this, outright delete them to avoid too many
662
+ # files and disk space building up. Also may affect the speed of saving/loading on start
663
+ # of each game if this is set large and a lot of data builds up.
664
+ # autoAvoidRepeatMaxPoses = 10000
665
+
666
+ # Affects data saving/deletion.
667
+ # Only save data for moves within this turn number range of those games.
668
+ # E.g. setting autoAvoidRepeatMinTurnNumber to a number like 4 or 5 would tend to make
669
+ # KataGo not develop a bias against the initial 3-4 and 4-4 corner moves in almost every game.
670
+ # autoAvoidRepeatMinTurnNumber = 0
671
+ # autoAvoidRepeatMaxTurnNumber = 50
672
+
673
+ # Affects data saving/deletion.
674
+ # Within a single run of a program, wait to accumulate this many samples
675
+ # (possibly across multiple clear_boards/games) before saving the data.
676
+ # Can help to avoid writing too many small files to disk, especially when GTP is used
677
+ # in a way that clears the board very frequently (e.g. gtp2ogs pooled manager).
678
+ # autoAvoidRepeatSaveChunkSize = 200
679
+
680
+ # ===========================================================================
681
+ # Avoid SGF patterns
682
+ # ===========================================================================
683
+ # The parameters in this section provide a way to avoid moves that follow
684
+ # specific patterns based on a set of SGF files loaded upon startup.
685
+ # This is basically the same as the above "Automatic avoid patterns" section
686
+ # above except you supply your own SGF files to avoid moves from.
687
+ # Uncomment them to use this feature. Additionally, if the SGF file
688
+ # contains the string %SKIP% in a comment on a move, that move will be
689
+ # ignored for this purpose.
690
+
691
+ # Load SGF files from this directory when the engine is started
692
+ # (only on startup, will not reload unless engine is restarted)
693
+ # avoidSgfPatternDirs = path/to/directory/with/sgfs/
694
+ # You can also surround the file path in double quotes if the file path contains trailing spaces or hash signs.
695
+ # Within double quotes, backslashes are escape characters.
696
+ # avoidSgfPatternDirs = "path/to/directory/with/sgfs/"
697
+
698
+ # Penalize this much utility per matching move.
699
+ # Set this negative if you instead want to favor SGF patterns instead of
700
+ # penalizing them. This number does not need to be large, even 0.001 will
701
+ # make a difference. Values that are too large may lead to bad play.
702
+ # avoidSgfPatternUtility = 0.001
703
+
704
+ # Optional - load only the newest this many files
705
+ # avoidSgfPatternMaxFiles = 20
706
+
707
+ # Optional - Penalty is multiplied by this per each older SGF file, so that
708
+ # old SGF files matter less than newer ones.
709
+ # avoidSgfPatternLambda = 0.90
710
+
711
+ # Optional - pay attention only to moves made by players with this name.
712
+ # For example, set it to the name that your bot's past games will show up
713
+ # as in the SGF, so that the bot will only avoid repeating moves that itself
714
+ # made in past games, not the moves that its opponents made.
715
+ # avoidSgfPatternAllowedNames = my-ogs-bot-name1,my-ogs-bot-name2
716
+
717
+ # Optional - Ignore moves in SGF files that occurred before this turn number.
718
+ # avoidSgfPatternMinTurnNumber = 0
719
+
720
+ # For more avoid patterns:
721
+ # You can also specify a second set of parameters, and a third, fourth,
722
+ # etc. by numbering 2,3,4,...
723
+ #
724
+ # avoidSgf2PatternDirs = ...
725
+ # avoidSgf2PatternUtility = ...
726
+ # avoidSgf2PatternMaxFiles = ...
727
+ # avoidSgf2PatternLambda = ...
728
+ # avoidSgf2PatternAllowedNames = ...
729
+ # avoidSgf2PatternMinTurnNumber = ...
730
+