Experimental chess engine written in OpenCL to run on a GPU
Branch: master
Clone or download
Latest commit 4328f5e Nov 25, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
logos init Jul 13, 2016
src set MAXPLY to 64 Oct 11, 2018
COPYING init Jul 13, 2016
README rm benchkaufmann from doc Apr 14, 2018
SetWindowsGPUTimeoutTo20s.reg added reg edit Sep 8, 2016
changelog txt update Jul 17, 2018
results.txt updated results.txt Nov 25, 2018

README

/*
  Name:         Zeta
  Description:  Experimental chess engine written in OpenCL
  Author:       Srdja Matovic <s.matovic@app26.de>
  Created at:   2011-06-23
  Updated at:   2018
  License:      GPL >= v2

  Copyright (C) 2011-2018 Srdja Matovic

  Zeta is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 2 of the License, or
  (at your option) any later version.

  Zeta is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
*/

Zeta, experimental chess engine written in OpenCL.

################################################################################
### WARNING
################################################################################
It is recommended to run the engine on an discrete GPU,
without display connected,
otherwise system and display can freeze or crash during computation.

Some GPU drivers have an timeout of 5 seconds if GPU is connected to display.
So make sure to use an discrete GPU or set proper time controls or disable
the Watch Dog timeout in your driver settings.

Windows OS have an internal gpu timeout, double click the .reg file 
"SetWindowsGPUTimeoutTo20s.reg"
and reboot the OS to set the timeout to 20 seconds.

AMD GPUs may have an driver specific timeout of about 360 to 3600 seconds

################################################################################
### Tested Platforms
################################################################################
Windows 7 64 bit (mingw compiler) and GNU/Linux 64 bit (gcc) OS on x86-64 host
with AMD CPU/GPU or Intel CPU or Nvidia GPU as OpenCL device.

################################################################################
### Usage
################################################################################
First make sure you have an working OpenCL Runtime Environment,
start the zeta executable in command line with -dl option to list
all available OpenCL devices on host:

zeta -dl

Second check the OpenCL device and create a config file for the engine:

zeta -p 0 -d 0 --guessconfigx

Where p is the selected platform id and d is the selected device id.

Third rename the created config file to config.txt and start the engine.

To play against the engine use an CECP v2 protocol capable chess GUI
like Arena, Cutechess, Winboard or Xboard.

Alternatively you can use Xboard commmands directly on commmand Line,
e.g.:
new            // init new game from start position
level 40 4 0   // set time control to 40 moves in 4 minutes
go             // let engine play site to move
usermove d7d5  // let engine apply usermove in coordinate algebraic
               // notation and optionally start thinking

The implemented Time Control is a bit shacky, tuned for 40 moves in 4 minutes

Not supported Xboard commands:
analyze        // enter analyze mode
?              // move now
draw           // handle draw offers
hard/easy      // turn on/off pondering
hint           // give user a hint move
bk             // book lines

Non-Xboard commands:
perft          // perform a performance test, depth set by sd command
selftest       // run an internal test
help           // print usage info
log            // turn log on
benchsmp       // init with new and sd and st commands
               // runs an benchmark for parallel speedup
benchhyatt24   // init with sd and st commands
               // runs an smp benchmark on Hyatt24 positions

################################################################################
## Options
################################################################################
 -l, --log          Write output/debug to file zeta.log
 -v, --version      Print Zeta version info.
 -h, --help         Print Zeta program usage help.
 -s, --selftest     Run an internal test, usefull after compile.
 -pl,               List all OpenCL Platforms on Host
 -dl,               List all OpenCL Devices on Host
 -p 0,              Set Platform ID to 0 for guessconfig 
 -d 0,              Set Device ID to 0 for guessconfig 
 --guessconfig      Guess minimal config for OpenCL devices
 --guessconfigx     Guess optimal config for OpenCL devices