katago在AutoDL几款GPU实例下benchmark测试

katago在AutoDL几款GPU实例下benchmark测试,第1张

前几天误打误撞注册了AutoDL后果然有些停不下来,算上折扣,要比阿里云、腾讯云的gpu服务器更为合适,同时AutoDL是容器化实例,这样初始化在几秒内完成,而阿里云等初始化过程中的GPU驱动、框架搭建时间有些过于漫长了。如果把时间考虑在内,AutoDL性别比就更高了。

但AutoDL受实例限制,暂时无法编译TensorRT Backend版本,编译的是cuda112版本。在不同GPU实例下简单测试了一下katago的benchmark,权重为kata1-b40c256-s10359230464-d2525387336。

使用阿里云最低端的Tesla T4,4核cpu,15G内存服务器作为参考。

在使用sabaki对弈感觉速度尚可,但经过测试,NVIDIA RTX 3060 / 12GB的成绩与阿里云的Tesla T4比想象中要差不少。

作为TeslaT4的替代者,NVIDIA RTX A4000 / 16GB成绩相比TeslaT4略好一点,也符合AutoDL首页算力排名。AutoDL北京地区实例均使用RTX A4000。

NVIDIA RTX 3090 / 24GB成绩两倍于NVIDIA RTX A4000 / 16GB,同样符合算力排名。

最令人吃惊的是NVIDIA RTX 2080Ti / 11GB,成绩直逼阿里云TeslaV100 16G。katago测试过程中,

第一次测试居然认为成绩出现误差,提示“Optimal number of threads is fairly high, increasing the search limit and trying again”自动重新测试了一遍。

不愧为显卡核d。难怪黄厂长严令禁止数据商将游戏显卡用于数据服务器上。其价格居然还要低于NVIDIA RTX A4000 / 16GB,这也是性价比最高的GPU实例。

下载好katago之后解压,压缩包叫:katago-v191-opencl-windows-x64zip
解压完就是katago引擎的文件夹:katago-v191-opencl-windows-x64,内有我事先添加进去的权重文件,大概叫这个名字:modelbingz
回到katago引擎文件夹,往文件浏览器的地址栏里输入cmd,然后回车:
cmd窗口唤出后,输入这条命令:
katagoexe genconfig -model modelbingz -output gtp_customcfg
然后回车。
不出意外的话会看到这个这个提问:
这是问katago默认的围棋规则是什么,我们这里就选中国规则,输入:
chinese
然后回车,感兴趣的同学可以自行了解其他规则。
第二个提问:
这是问katago要不要对读秒之类的时间规则加个额外限制,我们这里选不用。输入:
n
接着看到提示:
没事,继续回车。
第三个提问:
这是问是否允许katago在对手读秒的时候思考,然后这么做要注意什么巴拉巴拉,默认是否。所以我们直接回车。
第四个问题(重要):根据硬件配置,每个人看到的不一样
这是问katago要使用哪个计算核心,如图,每个选项最后面都有一个数字,例如:score 6000201。选数字最大的那一项。
我的独立显卡选项是2(最后的数字也是最大的),所以我输入:
2
回车。
第五个问题:
这是在问katago的内存上限设置为多少。上限而已,直接拉满
建议电脑经常卡的同学输入:
1
建议偶尔会卡的同学输入:
2
建议其他的同学直接回车。
最后一部分问题:
这部分问题一路回车就行。最后会刷出来一堆东西。
然后啥也不用干,等它完事。完事就可以关掉窗口了。
下载sabaki安装文件,双击运行,按照它的提示安装好,运行sabaki。
按下图设置中文。
设置完后关掉重开sabaki。
把显示引擎栏勾上
点击管理引擎:
点击新增按钮,然后配置引擎参数(注意空格,字符全用英文字符)
第一行:随便给katago起个名字就好。
第二行:关闭原来的katago文件夹,然后重新进入一次,复制下路径。(重新进是为了防止复制成cmd路径)
路径类似这个样子(每个人都不一样):
F:\katago-v191-gpu-opencl-windows-x64
接下来我就用“ katago路径 ”代替它,实际配置的时候要换成每个人各自的。
把你的 katago路径 写到第二行里,然后在后面加上:
\katagoexe
具体类似这样:
F:\katago-v191-gpu-opencl-windows-x64\katagoexe
这里每个人都不一样,差不多就OK
第三行:
gtp -model katago路径\modelbingz -config gtp_customcfg
具体类似这样:gtp -model F:\katago-v191-gpu-opencl-windows-x64\modelbingz -config gtp_customcfg
第四行:
time_settings 0 15 1
在中国规则中,上面这个意思就是无保留时间,15秒一步
试运行
当左边引擎加载完毕之后(简单的判断就看左边显示的内容是否在变化),右击引擎,设置为分析器:
成功之后就可以删掉那些没用的除了 katago路径 和sabaki目录之外的其他文件夹。

从使用阿里云GPU云服务器运行katago开始,就发现一个问题:那就是使用sabaki通过gtp协议调用katago,非常顺畅没有任何问题。而同样的运行参数,一旦使用lizzie调用,则卡顿现象十分严重,不得不反复通过暂停、重开,来获取数据。

开始以为是带宽的问题,后来即便将带宽提高到5M也没有丝毫效果。改用AutoDL服务器后,其带宽不需要指定,同样卡顿没有改善。

前几天通过网上学习ssh的时候,看到有文章提到不同ssh服务器,客户端获取的返回数据不一样。受此启发,想到同样GPU服务器,sabaki正常而lizzie存在问题,那说明应该是客户端获取服务器数据、转换的问题。lizzie最早是针对Leelazero的,在获取katago的gtp数据时,对部分数据不识别,或者识别转换效率低,所以导致卡顿,甚至不能正常显示。

于是查看katago的配置文件,感觉应该是logToStderr参数的问题。默认值是false,为了在sabaki观战时看到AI的计算情况,我将值改为TRUE,这样gtp日志输出到sabaki终端。但这样一来,lizzie可能对大量输入数据有些不知所措了。本机还好,一旦通过ssh获取,更是应接不暇了。

果然,将logToStderr值修改为false之后,再调用lizzie,一切正常,顺利完成旧文旧局:“未完”的一局(钱宇平vs小林光一),算是开了一个好头。

昨晚学习测试比较晚,而且强度也比较大,躺下直接睡着。想想儿子上学几乎每天都这样,真是辛苦。
学习的起因是在收尾Leelazero的时候,看到一篇评论,说当今开源的一款围棋AI KataGo甚是厉害,大有赶超leelazero之势。

自阿法狗后,围棋AI层出不穷,但基本都是站在狗身上不见头而已。引起兴趣的是这款AI的贴目、让子设定更为灵活,而且后续版本将支持中国古谱中的还棋头,这样可以对古谱提供支持分析。更关键的是只支持N卡的gpu计算,这样就必须安装CUDA和CUDNN,而这正好是最近需要学习和测试的。

于是开始安装。但上来就挨了当头一棒,老笔记本显卡太旧,CUDA和CUDNN居然直接拒绝安装。马上换上宏碁笔记本,开始了漫长的安装调试。

根据以往的经验,网上的教程不可靠。果然,网上写的容易,安装起来诸多意外。一个一个解决,顺带倒是学习了不少相关知识。

安装完CUDA和CUDNN,KataGo编译倒是简单了,没有费多大功夫。使用sabaki可以调用引擎进行对弈,甚至可以让KataGo和leelazero进行对弈。但网上最流行的lizzie却无法调用。但好在主要问题已经解决,足矣,立马倒头就睡。

今天早晨起来,又把剩余的问题解决。在lizzie的配置文件中的engine-command后面加engine-command-list,将各种引擎伸至权重写入数组,这样就可以通过ctl+数字进行引擎切换。

虽然费时费脑,算是完美的解决吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12993759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存