Nibbler-for-macOS icon indicating copy to clipboard operation
Nibbler-for-macOS copied to clipboard

Combines nibbler chess gui with electron framework and Leela chess (Lc0) for macOS

Nibbler-for-macOS

This repository combines the Nibbler chess GUI with Leela Chess Zero, the UCI-compliant neural network chess engine, as prebuilt binaries for MacOS.

@fohristiwhirl is the creator of the Nibbler chess GUI. Without a MacOS system, it's challenging to integrate Nibbler, with the Electron software framework for MacOS. Until he figured this out and provides a MacOS build of Nibbler, you can use this Nibbler-for-macOS release. It contains

  • Nibbler Chess GUI from https://github.com/fohristiwhirl/nibbler

  • Electron Framework from https://github.com/electron/electron

  • Chess engine Lc0 from https://github.com/LeelaChessZero/lc0 compiled with clang 9.0 for OpenCL and BLAS (Apple vecLib) backends

The chess engine Lc0 needs a weights file (network).

Usage

  • download the release file (not the source code) from https://github.com/twoplan/Nibbler-for-macOS/releases
  • unpack this zip-file to a directory of your choice (you probably just did this)
  • start Nibbler.app (use right click and open)
  • from the menu entry Engine select your path to a (previous downloaded) weights file and the lc0 chess engine (inside this folder, named lc0)
  • choose a backend: blas (uses cpu) or opencl (uses gpu)
  • you are ready now; take a look at menu entry Electron/About

Version of Nibbler is ahead to Nibbler-for-macOS

You can help yourself:

  • download and unpack the latest source code of Nibbler from https://github.com/fohristiwhirl/nibbler/releases
  • replace all files in Nibbler.app/Contents/Resources/app/ with them

Hints

  • the first time a new network size is selected for backend opencl, leelaz_opencl_tuning gets created or updated. Depending on your gpu, this can take some minutes.
  • use the opencl backend on MacBooks with care. It could overheat your system. Check this with Intel power gadget https://software.intel.com/en-us/articles/intel-power-gadget
  • all settings can manually be edited; they are saved in ~/Library/Application Support/Nibbler/config.json
  • got these nps values with blas and opencl for different network sizes:
	size 320x24: (60130, go nodes 1000)	    38 nps (blas) |  42 nps (opencl)
	size 256x20: (42850, go nodes 1000)	    37 nps (blas) |  22 nps (opencl)	
	size 128x10: (56170, go nodes 10000)	   383 nps (blas) | 406 nps (opencl)	
	11258-48x5-se: (go nodes 10000)	          2730 nps (blas) | 175 nps (opencl)

Weights

  • https://lczero.org/networks/
  • https://github.com/dkappe/leela-chess-weights/wiki/Bad-Gyal
  • https://github.com/dkappe/leela-chess-weights/wiki/Distilled-Networks
  • https://github.com/jhorthos/lczero-training/wiki/Leela-Training