为什么 Google 云上的 vGPU (Tesla K80) 比 T460P 上的 GTX940M 慢

wur*_*eka 5 google-app-engine gpu google-cloud-platform ubuntu-16.04

我对 Google 云虚拟机上的 vGPU (Tesla K80) 有疑问。

我的笔记本电脑是 Lenovo T460P,配备以下规格:

  • CPU:英特尔 i7-6700HQ
  • 内存:16GB
  • GPU:nVIDIA GTX 940M(CUDA 核心:348)
  • 操作系统:Windiws 10 Pro 64位
  • OpenCV:ver3.2.0,支持 CUDA 8.0(我从http://jamesbowley.co.uk/downloads/下载)

我在 Google Cloud 中创建的虚拟机包含以下规格:

  • CPU:vCPU x 2
  • 内存:4GB
  • 硬盘:25GB
  • GPU:vGPU (Tesla K80) x 1(CUDA 核心 4992)
  • 操作系统:Ubuntu 16.04 LTS 64位
  • CUDA 驱动程序:我按照以下链接的安装过程进行操作: https: //cloud.google.com/compute/docs/gpus/add-gpus
  • OpenCV:ver 3.2.0(编译参数:
    • cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DWITH_TBB=ON -D CUDA_GENERATION=自动 -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -DWITH_NVCUVID=1 - DWITH_CUFFT=ON -DWITH_EIGEN=ON -DWITH_IPP=ON )

我使用 opencv 用 160 张正图像和 800 张负图像来训练 LBP 级联。我在上述两个环境中使用相同的正样本和负样本以下是opencv_createsamples和opencv_traincascade的参数:

opencv_createsamples -info 数据/正图像/正图像.txt -vec 数据/正图像/正图像.vec -w 32 -h 32

opencv_traincascade -数据分类器-vec数据/正图像/正图像.vec -bg数据/负图像/负图像.txt -模式基本 -featureType LBP -numPos 160 -numNeg 800 -minHitRate 0.998 -maxFalseAlarmRate 0.05 -w 32 -h 32 -numStages 10

然而,我发现我的笔记本电脑花了大约 5 分钟才能完成训练。谷歌云的vm花了20多分钟,还处于TRAINING 8阶段。

带有 Tesla K80 的 Google 云虚拟机上的 opencv_traincascade

Google 云虚拟机上的 nvidia-smi

谷歌云的虚拟机出了什么问题?我认为谷歌云的虚拟机应该比我的笔记本电脑计算得更快,因为虚拟机有特斯拉K80。但它实际上比我的笔记本电脑慢得多。

我在 Google 云的虚拟机上错过了什么或做错了什么吗?

感谢帮助。