TensorFlow GPU比CPU更慢

CPU: i7-4710HQ
显卡:GTX850m
内存:8G
操作系统:Win10
装了 CUDA8.0,cuDNN6.0,tensorflow-gpu-1.4.0

配置了必要的PATH环境变量之外没做其它配置了。

用同样的TensorFlow代码跑同一个BPNN,用CPU只花了32秒完成,用GPU却执行了140+秒。
为什么我的TensorFlow加了GPU优化之后反而更慢了?
是不是我参数没配置好?

阅读 12.2k
1 个回答

第二天上网Google了一番,有的说是可能网络太小,效率瓶颈卡在了CPU与GPU数据传输上。

对此我做了一波实验,原来的BPNN只有双隐层,节点数分别是15,5,我把改成了4隐层,每层节点数都是2000之后,对单次训练进行了时间统计。

实验出来这时GPU单次训练只花了30~50 ms左右,而CPU的平均耗时是500ms,由此可以断定一个结论:
网络结构比较小的时候,效率瓶颈在CPU与GPU数据传输,这个时候只用cpu会更快。
网络结构比较庞大的时候,gpu的提速就比较明显了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题