CPU: i7-4710HQ
显卡:GTX850m
内存:8G
操作系统:Win10
装了 CUDA8.0,cuDNN6.0,tensorflow-gpu-1.4.0
配置了必要的PATH环境变量之外没做其它配置了。
用同样的TensorFlow代码跑同一个BPNN,用CPU只花了32秒完成,用GPU却执行了140+秒。
为什么我的TensorFlow加了GPU优化之后反而更慢了?
是不是我参数没配置好?
CPU: i7-4710HQ
显卡:GTX850m
内存:8G
操作系统:Win10
装了 CUDA8.0,cuDNN6.0,tensorflow-gpu-1.4.0
配置了必要的PATH环境变量之外没做其它配置了。
用同样的TensorFlow代码跑同一个BPNN,用CPU只花了32秒完成,用GPU却执行了140+秒。
为什么我的TensorFlow加了GPU优化之后反而更慢了?
是不是我参数没配置好?
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
第二天上网Google了一番,有的说是可能网络太小,效率瓶颈卡在了CPU与GPU数据传输上。
对此我做了一波实验,原来的BPNN只有双隐层,节点数分别是15,5,我把改成了4隐层,每层节点数都是2000之后,对单次训练进行了时间统计。
实验出来这时GPU单次训练只花了30~50 ms左右,而CPU的平均耗时是500ms,由此可以断定一个结论:
网络结构比较小的时候,效率瓶颈在CPU与GPU数据传输,这个时候只用cpu会更快。
网络结构比较庞大的时候,gpu的提速就比较明显了。