Chainerを幾つかの環境で性能比較
2~3日間、デスクトップPCが起動しなかったので、ノートPCにTensorFlowとChainerを入れて試してましたが、性能が非常に悪かったです。
ノートPCはWindows10で、その上でVirtualBox上を動かし、さらにその上でUbuntuを動かしてました。余りに遅いので、Windows10とは別に、Ubuntuを直にインストールしたところ、かなり速くなったので、一応、結果を残して置きます*1。
Chainerのベンチマーク的な「train_mnist.py」をepoch=4にして実行した結果が下記です。(データのコンバートは事前に完了させてから実行)。
測定環境 | NOTE1 | NOTE2 | NOTE3 | DESK1 | DESK2 | DESK3 |
---|---|---|---|---|---|---|
実行時間 | 1030秒 | 413秒 | 245秒 | 78秒 | 81秒 | 13秒 |
上記比率 | 80倍 | 31倍 | 19倍 | 6.0倍 | 6.2倍 | 1.0倍 |
各測定環境の概要は下記です。
名称 | CPU名 | ①Core数 | ②周波数 | ①×② | VBox | GUI |
---|---|---|---|---|---|---|
NOTE1 | Intel i5-2540 | 2 | 2.6GHz | 5.1 | ○ | Unity |
NOTE2 | Intel i5-2540 | 2 | 2.6GHz | 5.1 | ○ | Openbox |
NOTE3 | Intel i5-2540 | 2 | 2.6GHz | 5.1 | - | Unity |
DESK1 | Intel i7-4770K | 4 | 3.5GHz | 14.0 | ○ | Unity |
DESK2 | Intel i7-4770K | 4 | 3.5GHz | 14.0 | - | Unity |
DESK2 | Intel i7-4770K | 4 | 3.5GHz | 14.0 | - | Unity |
CPU性能をCore数×周波数で近似すると、DESKはNOTEの3倍弱の性能と推測され、実際の測定結果(NOTE3とDESK2の比)は3倍強の性能なので、この近似でほぼ合っています(NOTEのVirtualBox(Vbox)は特別に遅いですが...)。
デスクトップPCは、VirtualBoxでも、直にインストールしたUbuntuでも、性能が殆ど変わりませんでしたが、ノートPCは、直にインストールしたUbuntuに比べて、VirutalBoxでは最大で4倍遅くなっていました。
私のノートPCのVirtualBoxでは、ディスプレイの3DアクセラレーションをOFFにする必要があったため、GUIの反応が非常に悪かったですが、GUIと無関係な計算で遅くなっているのが不思議です。
ちなみに、3DアクセラレーションをONにするとXサーバが起動しないため、OFFにしてました。
後から検証したのですが、GUIに関して、3Dが必須のUnityから、超軽量のOpenboxに変えると、かなり速くなりました。それでも、直にインストールした場合に比べると、1.5倍の時間が掛っているので、結構遅いですね。非力なマシンでは、VitualBoxの影響や、GUIの影響を気にする必要があるようです。