很久没有进QQ群了,最近偶然进了一个关于katago的群,发现现在的圈还不如当年,连杂货铺都算不上。还是自己学自己享受吧。
发现里面关于CUDA和OpenCl版本的说法很是杂乱。这可能和leelazero有些混淆,也可能和最近katago版本更新频繁有关。
仅就我的理解和测试实践记录一下,以后可能会有新的认识。
cuda和OpenCL是现在两种并行计算架构,其中cuda是老黄家NVIDIA推出的并行计算架构,说是通用,用可以用,但是只是自家的卡支持;而OpenCL是由苹果牵头的一种真正通用的架构,什么显卡只要是支持它,都可以使用,包括独家垄断cuda的N卡还有后面一个劲发PPT要上市的intel。
leelazero不太清楚,但根据之前的了解,最早的leela是在AMD硬件平台上开发的;而katago则是在cuda平台上开发,所以这两种AI对架构或者显卡肯定会有所偏重。但为了迎合需求,也在改进。最明显的就是katago,在1.3.2版本之前,在他的主页上,明显是倾向cuda甚至鄙弃OpenCL的,因为他提及在OpenCL下会有several times slower。
1.3.2及以后版本的katago关于cuda和opencl问题主要出现在cudaUseFP16相关上,原先默认是关闭的,而且明确写明是20系列的N卡才打开。后来看github上面的有关讨论,开始虽然设置是auto,但其实是true的。这应该也是1.3.2版本在推出后很快更新的一个原因。如果是10系列的显卡,在打开的情况下,真是慢如蜗牛,所以还是关闭为好。即便如此,速度也没法跟opencl版本相比。
所以katago1.3.2版本之后,要想使用CUDA版本,就要换20系列显卡,这应该也是其志在高远的一个表现。