TadaoYamaokaの日記

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

レイヤー融合を将棋AIの推論で試してみる

先日試したレイヤー融合をdlshogiのニューラルネットワークで試してみた。

dlshogiはWideResNetを採用しているので、conv->bnのレイヤー融合を適用できるのは、残差ブロックの2つ目の畳み込み層とBatchNormになる。
f:id:TadaoYamaoka:20170511224719p:plain

推論比較

レイヤー融合前後で推論時間を比較してみた。

条件
  • 10ブロック、192フィルタのWideResNet
  • 10万局面の推論時間
  • バッチサイズ128
  • GPUは1080 Ti
  • 5回測定の平均
レイヤー融合前 12.65123224 sec
レイヤー融合後 12.51427692 sec

推論時間はレイヤー融合後で98.9%にしかならなかった。

条件2

FP16での推論時間を比較してみた。

  • GPUは2080 Ti
レイヤー融合前 4.58465764 sec
レイヤー融合後 4.50548268 sec

FP16でも推論時間はレイヤー融合後で98.2%にしかならなかった。

dlshogiのWideResNetにはレイヤー融合は、期待するほどの効果がなかった。


テストをしていてvalueのバイアスが一部漏れていたというバグを見つけてしまった。
期待するほど効果はなかったがバグが見つかったので良しとしよう。