TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

将棋AIの進捗 その13(自己対局のマルチGPU対応 その2)

前回マルチスレッドで2つのCPUを使用して自己対局を行うプログラムを作成したが、局面生成の速度はGPU1つの場合と変わらなかった。
ChainerをPython経由で使用しているため、GILのために効率が上がらなかったためと考えている。

そこで、プロセスを分けてマルチプロセスで実行するようにした。
単に引数でGPU IDを指定できるようにしただけで、特別な仕組みはない。

マルチプロセスで100スレッドずつで実行した結果、局面の生成速度は以下の通りとなった。
比較のため前回の結果もあわせて示す。

シングルGPU(200スレッド) 9.30
マルチスレッド(前回) 9.24
マルチプロセス 6.25+6.32=12.57

マルチプロセスで動かすと、マルチスレッドの1.36倍になった。
12.57局面/秒の生成速度だと、500万局面生成は4.6日でできるようになる。