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中独立出去了,你算你的,告诉我结果就行。联系客服