Python 什么';s启用CNMeM的效果,但';cuDNN不可用';在西亚诺?

Python 什么';s启用CNMeM的效果,但';cuDNN不可用';在西亚诺?,python,nvidia,theano,theano-cuda,Python,Nvidia,Theano,Theano Cuda,我有以下基于的代码: 现在,当我用两种模式测试代码时: GPU模式,我得到这个: $ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python gpu.py Using gpu device 0: Tesla C2075 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN not available) [GpuElemwise{exp,no_inplace}(<

我有以下基于的代码:

现在,当我用两种模式测试代码时:

GPU模式,我得到这个:

$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python gpu.py
Using gpu device 0: Tesla C2075 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN not available)
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.475526 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296]
Used the gpu
$ THEANO_FLAGS=mode=FAST_RUN,device=cpu,floatX=float32 python gpu.py
[Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)]
Looping 1000 times took 5.221368 seconds
Result is [ 1.23178029  1.61879337  1.52278066 ...,  2.20771813  2.29967761
  1.62323284]
Used the cpu
$THEANO\u FLAGS=mode=FAST\u RUN,device=gpu,floatX=float32 python gpu.py
使用gpu设备0:Tesla C2075(启用CNMeM时初始大小为95.0%内存,cuDNN不可用)
[GpuElemwise{exp,no_inplace}(),HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
循环1000次需要0.475526秒
结果是[1.23178029 1.61879349 1.52278066…,2.20771813 2.299677761]
1.62323296]
使用gpu
CPU模式,我得到这个:

$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python gpu.py
Using gpu device 0: Tesla C2075 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN not available)
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.475526 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
  1.62323296]
Used the gpu
$ THEANO_FLAGS=mode=FAST_RUN,device=cpu,floatX=float32 python gpu.py
[Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)]
Looping 1000 times took 5.221368 seconds
Result is [ 1.23178029  1.61879337  1.52278066 ...,  2.20771813  2.29967761
  1.62323284]
Used the cpu
$THEANO\u FLAGS=mode=FAST\u RUN,device=cpu,floatX=float32 python gpu.py
[Elemwise{exp,no_inplace}()]
循环1000次耗时5.221368秒
结果是[1.23178029 1.61879337 1.52278066…,2.20771813 2.299677761]
1.62323284]
使用cpu
注意两件事,GPU确实比CPU快(0.47秒比5秒)。但同时在GPU上,我收到cuDNN not available消息


我的问题是。没有cuDNN会有什么影响?它有害吗?

如果你没有使用cuDNN,你的代码就不会使用GPU的所有功能。 在CPU出现之前使用GPU的好处是,GPU有很多真正的内核(从700到4000),普通CPU从1到8

但GPU内核只能进行原始计算。如果您不使用cuDNN,其他标准库会进行计算,或者可能(我不知道确切的情况,只使用GPU内存和简单的CPU进行计算)

CuDNN是一个GPU加速的原语库。 这意味着,如果你开始应用深度神经网络,它将不会像它可能的那样快

请阅读


注:由于我写的GPU内核只能进行原始计算,如果您选择使用GPU,但使用GPU不支持的功能,theano将为CPU临时切换该功能的应用程序。(这需要时间来完成)

我上次使用theano已经有一段时间了,但我认为您可能正在使用通用的CUDA库,因此获得了GPU加速的好处,而不是更专业的cudNN库。因此,如果您能够安装cudNN并使其工作,您可能会获得一些额外的加速。