打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么要用GPU来训练神经网络而不是CPU?


                    https://www.wukong.com/answer/6513104865965637896/?iid=15906422033&app=news_article&share_ansid=6513104865965637896 

其实CPU和GPU一样可以训练神经网络。实际上,在早期,神经网络都是用CPU训练的。即使现在,像TensorFlow这样的流行框架也支持在CPU上运行。

那么,既然CPU和GPU都可以训练神经网络,为什么一般用GPU训练神经网络?很简单,因为GPU比CPU快很多。

比如,Victor Dibia(IBM研究院Research Staff Member)基于Tensorflow框架训练了一个实时检测手部的网络。

训练这样一个神经网络要花多久?

CPU上大约要12天,而GPU上则是5小时

我们这里不讨论具体的型号,关键是两者的比例。CPU和GPU的差距太大了。

而且,实际上这个神经网络的训练时间已经通过迁移学习大大缩短了。迁移学习指直接拿训练好的图像分类的模型来用,只是重新训练最后一层或几层网络以检测手部,所以能快很多。


      

那如果从头开始训练的话(有的时候没有现成的模型可供迁移),可能要几周甚至几个月。这还是GPU的情况。

按照上面的比例,换算成CPU,那基本上就太慢太慢,慢到不现实的程度。

GPU之所以比CPU快好多,主要是因为,从运算的角度来看,神经网络主要是由大量的浮点矩阵构成的。而现代的神经网络,可能有几千到几百万的浮点矩阵(所谓深度学习),因此需要很大的内存带宽来访问这些海量的浮点矩阵。而GPU的内存带宽比CPU高很多。比如Intel的Core i9-7980XE内存带宽约为57GB/s,而NVIDIA的Tesla P100带宽高达900GB/s。

上图为各代CPU和GPU的带宽比较(来源:Karl Rupp)

就是CPU与独立显卡的区别。没显卡,全部工作由CPU来计算,CPU除了算图形图像,还得算声音,算逻辑,保持系统运转,忙的事多;如果安装了显卡,那么算画面的事就可以从CPU中独立出去了,你算你的,告诉我结果就行。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【杂谈】学深度学习的你有GPU了吗
前沿 | 二值神经网络:催生手腕上的AlphaGo
如何用一个Python示例入门TensorFlow?
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
脑科学与人工智能的结合:生物神经网络与人工神经网络
移动Soc革命!麒麟970 NPU最深度解读:终于明白华为苦心
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服