UCI Configuration

Configure NIKOLA's engine settings for optimal performance on your hardware.

Overview

NIKOLA uses the Universal Chess Interface (UCI) protocol for communication with chess GUIs. Configuration is done through UCI options that can be set in your GUI or via the command line.

Setting Options via Command Line

nikola setoption name Hash value 4096

UCI Options Reference

Hashspin

Hash table size in megabytes. Larger values improve performance for longer analyses.

Default: 256
Range: 1-131072
Threadsspin

Number of CPU threads for search. Set to your CPU core count for best performance.

Default: 1
Range: 1-1024
GPUcombo

GPU backend for neural network inference. Auto-detects the best available option.

Default: auto
Range: auto, cuda, metal, rocm, webgpu, cpu
GPUDevicesstring

Comma-separated list of GPU device IDs for multi-GPU inference.

Default: 0
Range: device IDs
NNUEPathstring

Path to a custom NNUE network file. Leave empty to use the built-in network.

Default: <builtin>
Range: file path
MultiPVspin

Number of principal variations to output. Higher values show alternative lines.

Default: 1
Range: 1-500
MoveOverheadspin

Time buffer in milliseconds to account for communication delay.

Default: 10
Range: 0-5000
Pondercheck

Enable pondering (thinking on opponent's time).

Default: false
Range: true/false

Recommended Settings

For Analysis

setoption name Hash value 8192
setoption name Threads value 16
setoption name MultiPV value 3

For Tournament Play

setoption name Hash value 4096
setoption name Threads value 8
setoption name Ponder value true
setoption name MoveOverhead value 50

Multi-GPU Setup

For systems with multiple GPUs (e.g., DGX stations):

setoption name GPU value cuda
setoption name GPUDevices value 0,1,2,3

Performance Tip

For best performance, set Hash to approximately 50-70% of your available RAM, and Threads to match your physical CPU core count (not hyperthreads).

Getting StartedBuilding from Source