Miacisの学習はAlphaZeroの学習に比べて少ない計算量で行っていることは確かだが、実時間としては多くかかっている。総演算量(単位時間あたりの演算量×学習時間)をちゃんと検討しておくべきだと思ったのでメモを残しておく。基本的にCPUは無視してGPUあるいはTPUの演算量で比較することにする。
AlphaZero
どちらでも記述は共通しており、学習に使った計算資源は
- 第1世代TPU5000基(生成に使用)
- 第2世代TPU16基(学習に使用)
となる。
第1世代TPUの性能については2017年に論文が出ている。
これのTable2が比較の表となっていて、92 TOPS(TeraOps/second)という性能になっている。第1世代TPUは8bit演算にしか対応しておらず、浮動小数点演算ではないのでFLOPSという単位ではないが、意味合い的には同じものだと思われる。
第2世代TPUは普通の浮動小数点演算ができるらしく、その速度は180 TFLOPSとある。
これらを合わせると、1秒間に行われる演算量は
となる。学習時間はTable S3から将棋で12時間とあるので、
がAlphaZeroの総演算量になる。だいたいと考えれば良さそう。
Miacis
このときの学習が2080ti×2枚のマシンを185時間44分4秒動かしたものになる。
2080ti(FP16)が108 TFLOPS
(これの根拠はなんなんだろう。ちゃんと出典が示せるものがどこかにあれば嬉しいが)
なので、Miacisの計算量は
となる。おおむね程度と見なせる。
比を取るとMiacisはAlphaZeroの0.0072倍くらいの演算量で学習をしていることになる。138倍ほど高速化できていればAlphaZeroと同じ性能が出ているはずだが、まぁ当然そこまでの高速化はできていないだろう。左右反転含めていろいろ工夫を入れているつもりではあるけど、それでも5倍速くなっていれば良いほうかなという感覚なので、もっと学習時間を多くするしかないのかもしれない。