是什么让GPU在神经网络计算中如此高效?

时间:2016-05-17 13:40:05

标签: performance neural-network gpu cpu

最近,我尝试在大型CPU服务器上实现和部署深度学习解决方案(具有用于静态输入的附加层的多层LSTM网络)。经过多次尝试,与个人计算机上的性能相比,我的速度只提高了3倍。我听说GPU可能会做得更好。你能解释一下,在深度神经网络计算方面,GPU的优势是什么?

2 个答案:

答案 0 :(得分:5)

GPU'体系结构主要关注并行性,而CPU的主要部分则不是。这意味着GPU可以同时执行大量简单的操作;例如,GPU可以处理屏幕每个像素的颜色(1920x1080几乎是200万像素),每秒60次。 通用CPU每个核心可以有一个ALU(物理或逻辑),因此您的CPU可能有8/16个ALU。 GPU可以有thousands of them

长话短说:CPU可以非常快速地执行一些复杂的操作,而GPU可以非常快速地执行数千个非常简单的操作。此外,由于GPU同时处理大量数据,因此通常会配备一个非常高速的RAM来避免瓶颈。

神经网络基本上是很多小型计算机"并行工作,因此GPU的架构更适合这项任务

答案 1 :(得分:2)

用于训练深度神经网络的事实算法是反向传播算法。它涉及在网络的各个级别计算雅可比矩阵以及这些矩阵的乘法。 矩阵乘法步骤是GPU超出CPU的地方,因为所涉及的操作是结构化的,不需要复杂的机器(如分支预测,无序调度)存在于CPU中。作为一个侧面,你可以说通过使用缓存阻塞,预取和手工编码汇编等技术,CPU在矩阵乘法方面变得更好。

除了训练之外,神经网络的推理部分也利用了有效的矩阵乘法。这是因为各种层的输入和权重(参数)矢量通常以张量形式存储。

使用GPU的另一个好处是提供更好的内存带宽。 GDDR5x接近500 GB / s,相比之下,最先进的DDR4提供约80-100 GB / s。因此,您可以获得大约5倍的带宽改进因子,这是内存密集型神经网络计算可以利用的。