Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

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の影響を気にする必要があるようです。

感想

10倍~20倍も性能が異なると、体感上、耐えられませんね。

非力なマシンでは、VitualBoxの影響や、GUIの影響が思った以上に大きいですね。

*1:GUIをOpenboxにした測定結果を7/7 20:00頃に追加しました。