我通过CNN + DQN实现了5x5 Gomoku。 这是github链接: https://github.com/bokidigital/CNN_DQN_5x5_Gomoku
我的问题是此代码没有并行化设计。 这意味着,当在Intel Skylake服务器(2个CPU,80个内核)上运行此代码时,CPU使用率仅为90%。
我认为CPU使用率应该是8000%(80个内核)。
由于我在游戏中有一些自定义规则(不仅神经网络部分消耗了约75%的GPU),它还消耗了CPU且没有并行化。
我的环境是:
Skylake CPU X 2
NVIDIA P100 X 2 ( only use 1 )
40GB RAM
Tensorflow 1.14.0
Keras
Python 3.7
Ubuntu 16.04
我的想法是单独运行该程序(在不同的文件夹中运行该进程的许多副本,然后生成不同的权重),那么理想情况下,CPU使用率可以达到8000%(只要许多进程同时运行)< / p>
由于是训练过程,所以每个过程如何训练自己的体重都没关系。
Q1。问题是如何合并其结果(训练后的权重)? (A + B)/ 2?
Q2。看来1个GPU只能由1个进程使用,我试图同时运行3个进程,GPU似乎挂起了。
Q3。如果我禁用了GPU,那么80核Skylake是否会比NVIDIA P100更快?
我希望使用更多的CPU使用率来加快此培训过程。 由于5x5代理经过5天的培训,我测试了相同的代码,但是将网格大小更改为9x9,所以我估计培训时间需要3个月。