2016-05-17 52 views
2

最近,我尝试在大型CPU服务器上实施并部署一个深度学习解决方案(带有用于静态输入的附加层的多层LSTM网络)。经过多次尝试后,我的个人电脑性能仅比我的速度提高了3倍。我听说GPU可能会做得更好。你能否解释一下,在深度神经网络计算中,GPU比CPU更好的确切原因是什么?什么让GPU在神经网络计算中如此高效?

+1

深度学习(和AI)严重依赖于矩阵和矩阵运算(即线性代数)。 Matrix ops可以高度并行化,并且可以利用数百个线程(考虑例如两个matries的乘法) - 这就是GPU非常擅长的(也可以认为GPU中的内存带宽) – rbm

回答

3

GPU的架构主要集中在并行性上,而CPU的架构则不是。这意味着GPU可以同时进行很多简单的操作;例如,GPU可以每秒60次处理屏幕上每个像素的颜色(1920x1080几乎是200万像素)。 通用CPU每个核心可以有一个ALU(物理或逻辑),所以也许你的CPU有8/16个ALU。 GPU可以有thousands of them。长话短说:CPU可以非常快地执行一些复杂的操作,而GPU可以非常快速地执行数千个非常简单的操作。另外,由于GPU同时处理大量数据,因此通常会配备高速RAM以避免出现瓶颈。

神经网络是基本上很多小的“计算机”,在并行工作,所以GPU适合完成这个任务

2

训练深层神经渔网事实上的算法更好的架构是反向传播算法。它涉及在网络的不同层次上计算雅可比矩阵和乘以这些矩阵。由于涉及的操作是结构化的并且不需要存在于CPU中的复杂机器(如分支预测,无序调度),所以步骤是GPU超过CPU的步骤。作为一个观点,你可能会争辩说,通过使用诸如缓存阻塞,预取和手工编码汇编等技术,CPU在矩阵乘法中变得更好。

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

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