Caffe在2 GPU上的运行速度是否比在1?

时间:2017-02-27 20:52:23

标签: caffe multi-gpu

我们刚刚在工作中使用了多台机器,而且我正在尝试验证Caffe上的2个GPU是否优于1.要做到这一点,我要做的就是使用CIFAR-10数据集的快速列车示例。所以,到目前为止,我发现2GPU减慢了速度,我不明白为什么。

我正在运行的caffe版本是:

me@ubuntu:~/Downloads/caffe$ ./build/tools/caffe -version
caffe version 1.0.0-rc3

GPU的拓扑结构如下:

me@ubuntu:~$ nvidia-smi topo -m
       GPU0     GPU1    GPU2    GPU3    CPU Affinity
GPU0     X       PIX    PHB     PHB      0-11
GPU1    PIX      X      PHB     PHB      0-11
GPU2    PHB     PHB       X     PIX      0-11
GPU3    PHB     PHB     PIX      X       0-11

Legend:
  X   = Self
  SOC = PCI path traverses a socket-level link (e.g. QPI)
  PHB = PCI path traverses a host bridge
  PXB = PCI path traverses multiple internal switches
  PIX = PCI path traverses an internal switch
  NV# = Path traverses # NVLinks

他们处理的流程如下:

me@ubuntu:~$ nvidia-smi pmon
      # gpu     pid  type    sm   mem   enc   dec   command
      # Idx       #   C/G     %     %     %     %   name
         0      1679   G      0     0     0     0   X              
         0      2740   G      0     1     0     0   compiz         
         0      3600   G      0     0     0     0   firefox        
         1       -     -      -     -     -     -   -              
         2       -     -      -     -     -     -   -              
         3      3328   C     0     0     0     0   python   

我使用这个基本脚本训练了CIFAR-10数据集:

#!/usr/bin/env sh
set -e

TOOLS=./build/tools

$TOOLS/caffe train \
  --solver=examples/cifar10/cifar10_quick_solver.prototxt --gpu=1,2 $@ >> ~/Desktop/caffe_2GPUa_out.txt 2>&1

略有变化:

 --gpu=2,3

 --gpu=2

我希望--gpu=2,3获得最快的结果,然后是--gpu=1,2,然后是--gpu=2。相反,我看到的恰恰相反。

我看到的就是这个,

--gpu=2

I0227 14:41:26.948098  7712 caffe.cpp:251] Starting Optimization
I0227 14:42:04.841394  7712 caffe.cpp:254] Optimization Done.

--gpu=1,2

I0227 15:22:56.675775  7946 parallel.cpp:425] Starting Optimization
I0227 15:23:39.097970  7946 caffe.cpp:254] Optimization Done.

--gpu=2,3

I0227 14:43:13.466243  7742 parallel.cpp:425] Starting Optimization
I0227 14:43:56.215469  7742 caffe.cpp:254] Optimization Done.

所以,我训练的时间是:

 gpu=2     34.89 sec
 gpu=1,2   42.42 sec
 gpu=2,3   42.74 sec

显然,我不了解与Caffe一起运行多个GPU的事情。我原本预计使用2个GPU可以让我加速大约1.8倍。我在这里不理解什么?

0 个答案:

没有答案