| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
PhoenixGo is an Go AI program which implement the AlphaGo Zero paper "Mastering the game of Go without human knowledge". It is also known as "BensonDarr" in FoxGo, "cronus" in CGOS, and the champion of "World AI Go Tournament 2018" held in Fuzhou China.
If you use PhoenixGo in your project, please consider mentioning in your README.
If you use PhoenixGo in your research, please consider citing the library as follows:
@misc{PhoenixGo2018,
author = {Qinsong Zeng and Jianchang Zhang and Zhanpeng Zeng and Yongsheng Li and Ming Chen}
title = {PhoenixGo},
year = {2018},
journal = {GitHub repository},
howpublished = {\url{https://github.com/Tencent/PhoenixGo}}
}
Clone the repository and configure the building:
git clone https://github.com/Tencent/PhoenixGo.git cd PhoenixGo ./configure
./configure will ask where CUDA and TensorRT have been installed, specify them if need.
Then build with bazel:
bazel build //mcts:mcts_main
Dependices such as Tensorflow will be downloaded automatically. The building prosess may take a long time.
Download and extract the trained network:
wget https://github.com/Tencent/PhoenixGo/releases/download/trained-network-20b-v1/trained-network-20b-v1.tar.gz tar xvzf trained-network-20b-v1.tar.gz
Run in gtp mode with a config file (depend on the number of GPUs and using TensorRT or not):
bazel-bin/mcts/mcts_main --config_path=etc/{config} --gtp --logtostderr --v=1
The engine supports the GTP protocol, means it could be used with a GUI with GTP capability, such as Sabaki.
--logtostderr let mcts_main log messages to stderr, if you want to log to files, change --logtostderr to --log_dir={log_dir}
You could modify your config file following #configure-guide.
PhoenixGo support running with distributed workers, if there are GPUs on different machine.
Build the distribute worker:
bazel build //dist:dist_zero_model_server
Run dist_zero_model_server on distributed worker, one for each GPU.
CUDA_VISIBLE_DEVICES={gpu} bazel-bin/dist/dist_zero_model_server --server_address"0.0.0.0:{port}" --logtostderr
Fill ip:port of workers in the config file (etc/mcts_dist.conf is an example config for 32 workers), and run the distributed master:
bazel-bin/mcts/mcts_main --config_path=etc/{config} --gtp --logtostderr --v=1
Work in progress.
Here are some important options in the config file:
Options for distribute mode:
Options for async distribute mode:
Async mode is used when there are huge number of distributed workers (more than 200), which need too many eval threads and search threads in sync mode. etc/mcts_async_dist.conf is an example config for 256 workers.
Read mcts/mcts_config.proto for more config options.
mcts_main accept options from command line:
Glog options are also supported:
mcts_main --help for more command line options.
| Back | FazBrowse Home | New Git URL |