VGG16上的Titan X Pascal在我的机器上比在基准测试中慢得多

时间:2016-12-18 16:19:19

标签: ubuntu lua gpu torch cudnn

我有一个Titan X Pascal,Intel i5-6600,16GB Ram和Ubuntu 14.04中运行的torch7。 Nvidia驱动程序版本为375.20,CUDA Toolkit 8.0和cuDNN v5.1。

我使用Caffe(通过loadcaffe导入)的相同VGG16网络进行了同样的测试in this Benchmark。但是,对于前向传递,我的设置需要80ms,这是基准测试中显然需要的时间的两倍。

我还生成了一批16个图像,包含3个通道,大小为224x224。相关代码是:

 local model = loadcaffe.load("/home/.../Models/VGG16/VGG_ILSVRC_16_layers_deploy.prototxt",
                          "/home/.../Models/VGG16/VGG_ILSVRC_16_layers.caffemodel",
                          "cudnn")

 for i=1, 50 do
   local input = torch.randn(16, 3, 224, 224):type("torch.CudaTensor")

   cutorch.synchronize()
   local timer = torch.Timer()

   model:forward(input)
   cutorch.synchronize()

   local deltaT = timer:time().real
   print("Forward time: " .. deltaT)
 end

输出是: Forward time: 0.96536016464233 Forward time: 0.10063600540161 Forward time: 0.096444129943848 Forward time: 0.089151859283447 Forward time: 0.082037925720215 Forward time: 0.082045078277588 Forward time: 0.079913139343262 Forward time: 0.080273866653442 Forward time: 0.080694913864136 Forward time: 0.082727193832397 Forward time: 0.082070827484131 Forward time: 0.079407930374146 Forward time: 0.080456018447876 Forward time: 0.083559989929199 Forward time: 0.082060098648071 Forward time: 0.081624984741211 Forward time: 0.080413103103638 Forward time: 0.083755016326904 Forward time: 0.083209037780762 ...

为了达到这个速度,我还需要做些什么吗?或者我在这里做错了什么? 或者是因为我使用的是Ubuntu 14.04,而不是Ubuntu 16.04(虽然在基准测试中,在Ubuntu 14.04上运行的GTX 1080也只需要60ms)?

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。

我必须启用cudnn.benchmark标志:

cudnn.benchmark = true

默认情况下,它设置为false,因此cudnn不会选择最快的算法。我的前进时间现在大约是39毫秒。