Google発の深層学習フレームワーク「TensorFlow」のAndroidデモをUbuntu 14.04 on VMware Playerでビルドしようとしたが, 一晩かかっても終わらなかった.

ホストマシン:
 CPU:Intel Core i7-2600K
 RAM:8.00GB
 OS:Windows 10 Pro
 VMware Player 6
仮想マシン:
 プロセッサ数:4
 メモリ:3GB
 HDD:100GB
 OS:Ubuntu 14.04

VMware Playerをもう少し快適にできないかと少し調べてみたところ, 仮想マシンのメモリはデフォルトではHDD(or SSD)上にメモリファイル(.vmem)として置かれるようである.
これならディスクI/Oが多発し動作が遅いのも納得である.

そこで, 仮想マシンで実メモリが使えるように, VMware構成(*.vmx)ファイルでメモリ関連の設定を行うことにした.


1. 設定項目[1][2]
vmxファイルに以下の設定を追加する.
  mainMem.useNamedFile= "FALSE"
  MemTrimRate = "0"
  sched.mem.pshare.enable = "FALSE"
  prefvmx
.useRecommendedLockedMemSize = "TRUE"
  MemAllowAutoScaleDown = "FALSE"

2. 各パラメータの説明[1][2]
1) mainMem.useNamedFile = "FALSE" 
  メモリファイル(.vmem)を使用しない.
2) MemTrimRate = "0"
  メモリページのトリミングを無効にする.
3) sched.mem.pshare.enable = "FALSE"
  ページ共有機能を無効にする.
4) prefvmx.useRecommendedLockedMemSize = "TRUE"
 メモリ使用量が変化した際に, メモリサイズを固定する.
5) MemAllowAutoScaleDown = "FALSE"
  仮想OSのメモリサイズの自動調節を無効にする.

上記設定で, 以前よりビルドの進行は速くなったが, それでもandroid:tensorflow_demoのビルドはなかなか終わらない.
まだディスクアクセスが頻発しているもよう.

task

そもそもVMware Player上でビルドしているからなのか, それともPCのメモリ不足が原因なのか不明.
ビルド時間がもったいないので何とかしたい!!

Deep Learningやるために, 新しいLinux PC組もうかな~.
ああ, Core i7-6700K + 16GB RAM + SSD + NVIDIA GTX980がほしい.

----
参照URL:
[1] VMware Player上の仮想OSを高速化させ軽快に作動させるチューニング
[2] VMX-file parameters