飞扬围棋

标题: 简单说明一下leela的GTP引擎 [打印本页]

作者: zhouyang    时间: 2017-9-20 20:28
标题: 简单说明一下leela的GTP引擎
本帖最后由 zhouyang 于 2017-9-20 21:44 编辑

leela的GTP引擎是啥,
其实这个名称是不准确的,简单说,是俺以前好像就是在飞扬随口起的名字,要不就是贴吧之类啥的,记不清了。

其实准确点说,可以叫leela的GTP客户端,leela和gogui等没有图形界面的不同,他有图形界面,GTP客户端也完全可以独立工作,俺当时就是随口说个意思,其实叫GTP客户端相对更准确,不过说引擎可能一般棋友更容易理解。

这个是便于和RN等对比。
这个帖子我一点点写,分几个段落,最好俺写完前大家别回复。谢谢。
作者: zhouyang    时间: 2017-9-20 20:34
本帖最后由 zhouyang 于 2017-9-20 21:46 编辑

GTP是一个围棋对弈软件之间的通讯协议。
以前最早的unix工作站,没有图形界面非常正常。
就比如gnugo之类,只有一个命令行界面。那么怎么下棋呢,手动输入坐标,比如D15之类的来下棋,
想想俺好像真的和gogui在命令行下过棋,不得不说,那时候不但体力好,关键是眼神也好。
现在没这劲了,棋友可以尝试。
leela的GTP端,是功能完整的。棋友应该可以下棋尝试。
但其他软件,就未必。
作者: zhouyang    时间: 2017-9-20 20:42
命令行界面下棋太麻烦了,同时如果,远程下棋,或者程序对战,程序远程跟人对战之类要求咋办。
就有了GTP协议,就是程序接受输入输出的命令。
就是命令传输坐标之类,设置贴目多少等等。那么在图形端就可以显示,那么,就可以独立开发图形界面了。或者两个程序通讯,就可以实现对战之类功能。而开发棋软的开发人员未必精通界面开发,或者没有兴趣,就有别的人开发前面图形端,可以完全不懂围棋啥,只要按照协议实现,就好,当然,各种各种都可以,甚至网页。
alphago,至少早期,也是没图形界面。也可以看做一个GTP客户端或者说引擎。
以后俺还是用GTP引擎来描述吧,反正没啥大错。
作者: 逢芳必点    时间: 2017-9-20 20:43
楼主专业高手   感谢   
作者: zhouyang    时间: 2017-9-20 20:48
咦,俺上飞扬特别慢,发的图咋没看见啊,再发一次。
这个就是leela的GTP客户端运行的截图。发的这个是CPU版本。http://bbs.flygo.net/bbs/forum.php?mod=attachment&aid=MTM4ODU1fGFlNDE4ZjFmNDM4YzUyYTQzYWNkMGM2ZmIzYTc4NTk2fDE3MTk2MDI3ODE%3D&request=yes&_f=.png
作者: zhouyang    时间: 2017-9-20 20:54
可以看到是一个命令行的界面,输入坐标应该就可以直接下棋了。
win/linux/mac 下的程序都是这样子的样子,基本一模一样。

这个是引擎吧,俺还是叫引擎,免得把大家搞晕。

这个引擎挂载图形端,就可以下棋。下面俺发一个图形端的截图,用最通用的gogui图形端,好像有人说alphago也是用这个,这俺记不太清了。

其它的,比如,龙gui啥的也应该能用,但俺觉得那个问题多,好像除了支持中文,没啥鸟用,反正有能用的,就懒的鼓捣啊。不过图形客户端很多,gogui基本是比较好用,如果棋友要用,推荐这个。

而且国外可能的是用这个的多。
作者: lu01    时间: 2017-9-20 20:55
谢谢科普
作者: zhouyang    时间: 2017-9-20 20:57
gogui运行截图http://bbs.flygo.net/bbs/forum.php?mod=attachment&aid=MTM4ODU2fDk2ZjBhNDVlZDQzYzEwNjAyMGMwODYzODFhODIyNGJkfDE3MTk2MDI3ODE%3D&request=yes&_f=.pngattach://138857.png
作者: zhouyang    时间: 2017-9-20 21:01
可以看到,这个就是gogui挂rn的引擎运行的截图,下面一个是挂载引擎程序的设置。
目前俺就挂RN-1.0.15和RN-4.20.4

当然,在挂载引擎配置的时候,可以输入各种参数,比如要求RN支持多卡啦。多少个线程同时运算等等的。

或者Leela忽略开局库,每次都计算等等命令和参数。
作者: zhouyang    时间: 2017-9-20 21:03
本帖最后由 zhouyang 于 2017-9-24 00:22 编辑

俺就没怎么拿leelaGTP客户端挂载过,leela的图形界面强1万倍。
最主要的分析功能,只有最强,没有之一!!!。

leela肯定能挂,以前版本俺试过,但没用的价值,除非对战啥的,俺又不琢磨去对弈网站下,就不玩了。

但为啥提到了GTP客户端啊,这个是有用的,便于棋友确认问题。
作者: zhouyang    时间: 2017-9-20 21:04
下面是GTP客户端解压得的的readme文件,

his is the commandline version of Leela. You likely will want to use
this together with a GTP-capable GUI, or some other tool that speaks
the GTP protocol.

Leela is compatible with GTP version 2, but note that you must add the
"--gtp" option to enable GTP mode.

Allowed options:
  -h [ --help ]                 Show commandline options.
  -g [ --gtp ]                  Enable GTP mode.
  -t [ --threads ] arg (=4)     Number of threads to use.
  -p [ --playouts ] arg         Weaken engine by limiting the number of
                                playouts.
  -b [ --lagbuffer ] arg (=100) Safety margin for time usage in centiseconds.
  -l [ --logfile ] arg          File to log input/output to.
  -q [ --quiet ]                Disable all diagnostic output.
  -k [ --komiadjust ]           Adjust komi one point in my disadvantage
                                (territory scoring).
  --noponder                    Disable thinking on opponent's time.
  --nonets                      Disable use of neural networks.
  --nobook                      Disable use of the fuseki library.
  --gpu arg                     ID of the OpenCL device(s) to use (disables
                                autodetection).

Note that although the engine can be handicapped by limiting the playout
count, playouts are not standardized so this is not a suitable setting
for comparisons between engines. The OpenCL version is stronger at a
given playout count.

Ruleset
-------
Leela plays according to Chinese rules: area scoring with positional superko.
Compensation for handicap stones is given.

Linux
-----
To get the OpenCL version working, you will have to to install
both the OpenCL libraries for your GPU (e.g. nvidia-libopencl1) as
well as an OpenCL ICD loader (e.g. ocl-icd-libopencl1, nvidia-opencl-icd,
amd-opencl-icd or mesa-opencl-icd - the ICD loader is not card specific and
they are supposed to be interchangeable).

You can see the installed OpenCL drivers in /etc/OpenCL/vendors/

Benchmarking
------------
Leela contains a number of internal benchmarks that can be used
to judge the speed (and resulting strength) of a system:

- CPU, integer operations: type "benchmark".

Reference score, Intel Core i5-6600 on Windows = ~14000 g/s (3500 g/s per thread)

- CPU and GPU, floating point: type "netbench". The OpenCL version
will run this computation on the GPU, but CPU speed and core count still
matters for keeping the GPU fed.

Reference score, Intel Core i5-6600 on Windows = ~100 p/s (first/predictions)
Reference score, Intel Core i5-6600 on Windows = ~265 p/s (second/evaluations)

Reference score, NVIDIA GTX 1070 on Windows =    ~475 p/s (first/predictions)
Reference score, NVIDIA GTX 1070 on Windows =   ~1850 p/s (second/evaluations)
作者: zhouyang    时间: 2017-9-20 21:07
本帖最后由 zhouyang 于 2017-9-20 21:48 编辑

基本介绍了各种命令,都很简单,自行参考。

而且除非出于特殊目的,对一般棋友这些参数,没用,不必关心,俺也不展开说了。

关键是下面:

下面上两个引擎的截图,一个是含有GPU加速的,一个是没有的。
作者: zhouyang    时间: 2017-9-20 21:08
引擎截图
作者: zhouyang    时间: 2017-9-20 21:12
前面一个是上面发过的,CPU版的,
下面一个是GPU,就是显卡加速版。

可以看到,下面那个。提示信息多了很多。

就是,上面一个CPU,只提示你CPU信息,根本不管显卡。

而下面GPU版,就是提供了GPU版的自检信息,如果这个界面你能正常启动,那就基本能运行GPU加速版。

当然,有问题会提示出错信息,知道是啥问题,找个懂点计算机的人帮你看下,就很好解决。
作者: zhouyang    时间: 2017-9-20 21:19
本帖最后由 zhouyang 于 2017-9-20 22:34 编辑

Leela contains a number of internal benchmarks that can be used
to judge the speed (and resulting strength) of a system:

- CPU, integer operations: type "benchmark".

Reference score, Intel Core i5-6600 on Windows = ~14000 g/s (3500 g/s per thread)

- CPU and GPU, floating point: type "netbench". The OpenCL version
will run this computation on the GPU, but CPU speed and core count still
matters for keeping the GPU fed.

Reference score, Intel Core i5-6600 on Windows = ~100 p/s (first/predictions)
Reference score, Intel Core i5-6600 on Windows = ~265 p/s (second/evaluations)

Reference score, NVIDIA GTX 1070 on Windows =    ~475 p/s (first/predictions)
Reference score, NVIDIA GTX 1070 on Windows =   ~1850 p/s (second/evaluations)


另外,非常重要的,对于棋友来说,这个程序不但可以自检,同时提供了内置的测试程序。

当然,俺说的都非常简单,稍微懂点计算机或者英语的棋友完全没必要看啊。

但俺就替英语不是那么熟的棋友简单解释下,

就是这是两个测试程序,在命令行输入benchmark,就可以测试运行leela的CPU的整数性能,这个不管CPU版本,GPU版本,都是一样的。

下面浮点测试性能,这个在只有CPU的机器上,CPU完成。
有GPU,就是显卡的机器上,显卡加速。
作者: zhouyang    时间: 2017-9-20 21:23
非常简单的说,就是运行下面两行;
Reference score, Intel Core i5-6600 on Windows = ~265 p/s (second/evaluations)

Reference score, NVIDIA GTX 1070 on Windows =   ~1850 p/s (second/evaluations)

可见的结果就是在作者的机器上自己测试,nvidia GTX1070 GPU 比 intel i5-6600 CPU快了6倍。


需要指出的就是这个只有相同版本测,才有意义。比如,可以分别比较此版本,Win/Linux/Mac下的性能。
作者: zhouyang    时间: 2017-9-20 21:25
另外,这个对棋友的重大意义,就是确认leela在你机器上是否正常工作,如果你的测试成绩比别人少很多,那一定有问题。

还有比如,那个有个兄弟说显卡有啥推荐,他就完全可以参考一下他想买显卡的得分。
作者: zhouyang    时间: 2017-9-20 21:32
leela的GTP引擎功能是完整的。关键便于确认问题啊。

就像,以前银星17也有个非常简单的测试程序,在俺机器上测试,8段水平只需1秒,俺知道了,俺就算赢了银星17,8段,也就是赢了银星1秒而已啊。

这个,就有个参照,比如啥版本,机器啥性能,时间设置多长啊。

就像总有人说,俺战胜啥软件啥啥的,不说清楚啥情况,有啥意义,要是让俺随便找机器,啥软件俺都能战胜,但那有个毛的意义。
作者: zhouyang    时间: 2017-9-20 21:43
本帖最后由 zhouyang 于 2017-9-24 00:23 编辑

最后,leela的各种功能非常完善,图形端是非常好用的,尤其是分析功能。

GTP程序对多数棋友来说,就是诊断机器性能,提供性能参考的。

gogui的GTP图形端,可没leela的分析工具,俺基本不用。

另外,RN等引擎根本不能单独工作的,连命令行下棋都不行,只能接图形端。

要是有棋友问这类的GTP挂载问题啥的,俺没准能说两句。

leela引擎的挂载等问题,俺就不回答了,俺自己知道leela可以,但自己基本不用,其实挂leela引擎最主要的可能就是对弈网站自动下棋等等,对这种人吧,俺只能说,您都玩这个了,自己鼓捣呗。俺是不可能折腾那个的,也没兴趣,不清楚。

不像RN,不挂图形端,连棋都没得下,leelaGTP引擎,除非程序比赛,挂载动机不良啊。


俺基本说完,都非常简单的东西,可能了解的人,1分钟就清楚了。
不过或许不是每个棋友都对计算机或者软件或者英语相对熟的,如果俺扯了半天,能让这部分棋友稍微有所参考,就达到了目的了。

嗯,俺说完了,有啥遗漏的,大家提,其实运行非常简单的啊,大家完全可以自己运行下,一是看看自己机器运行leela性能,二是给其他棋友参考啊。
作者: liangr    时间: 2017-9-21 11:08
哈哈,楼主这是科普贴了。估计对不懂计算机的人有点难度啊。
作者: 棋争一路    时间: 2017-9-22 19:56
涨姿势喽!
作者: liuyong01    时间: 2017-9-23 19:30
zhouyang 发表于 2017-9-20 21:43
最后,leela的各种功能非常完善,图形端是非常好用的,尤其是分析功能。

GTP程序对多数棋友来说,就是诊 ...

楼主的意思 是不是 说就是对弈网站自动下棋 安装这个才有用  不然的话 不用安装这个?

作者: zhouyang    时间: 2017-9-23 21:18
liuyong01 发表于 2017-9-23 19:30
楼主的意思 是不是 说就是对弈网站自动下棋 安装这个才有用  不然的话 不用安装这个?

还有重要功能啊,测试本机的leela性能啊。

比如,你自己机器的跑分比同样配置的弱了非常多,那有问题啊。

还有,比如,前面有棋友提到自己不太懂计算机,机器的显卡比较弱,那可以测一下,看性能如何,是在可接受范围内,还是想换显卡啥的啊。


作者: hidear    时间: 2017-9-24 14:25

作者: 静思围棋    时间: 2017-9-24 16:36
gtp是go text protocol的缩写
作者: liuyong01    时间: 2017-9-25 11:39
zhouyang 发表于 2017-9-23 21:18
还有重要功能啊,测试本机的leela性能啊。

比如,你自己机器的跑分比同样配置的弱了非常多,那有问题 ...

简单的说  安装GTP后 能不能进一步提高 软件棋力?





欢迎光临 飞扬围棋 (http://bbs.flygo.net/bbs/) Powered by Discuz! X3.2